if (size <= 14)
return;
if (!queue->samples || queue->len >= queue->size) {
- HintSample *samples;
queue->size += 10;
- samples = av_realloc(queue->samples, sizeof(HintSample)*queue->size);
- if (!samples)
+ if (av_reallocp(&queue->samples, sizeof(*queue->samples) * queue->size) < 0) {
+ queue->len = queue->size = 0;
return;
- queue->samples = samples;
+ }
}
queue->samples[queue->len].data = data;
queue->samples[queue->len].size = size;
* @param data buffer containing RTP packets
* @param size the size of the data buffer
* @param trk the MOVTrack for the hint track
- * @param pts pointer where the timestamp for the written RTP hint is stored
+ * @param dts pointer where the timestamp for the written RTP hint is stored
* @return the number of RTP packets in the written hint
*/
static int write_hint_packets(AVIOContext *out, const uint8_t *data,
- int size, MOVTrack *trk, int64_t *pts)
+ int size, MOVTrack *trk, int64_t *dts)
{
int64_t curpos;
int64_t count_pos, entries_pos;
trk->prev_rtp_ts = ts;
ts_diff = 0;
}
- if (*pts == AV_NOPTS_VALUE)
- *pts = trk->cur_rtp_ts_unwrapped;
+ if (*dts == AV_NOPTS_VALUE)
+ *dts = trk->cur_rtp_ts_unwrapped;
count++;
/* RTPpacket header */
void ff_mov_close_hinting(MOVTrack *track)
{
AVFormatContext *rtp_ctx = track->rtp_ctx;
- uint8_t *ptr;
av_freep(&track->enc);
sample_queue_free(&track->sample_queue);
return;
if (rtp_ctx->pb) {
av_write_trailer(rtp_ctx);
- avio_close_dyn_buf(rtp_ctx->pb, &ptr);
- av_free(ptr);
+ ffio_free_dyn_buf(&rtp_ctx->pb);
}
avformat_free_context(rtp_ctx);
}