From 7dd8bf53bdb5669a7c65822417fe29036435b40f Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 22 Apr 2015 12:24:36 +0200 Subject: avformat: add common mechanism for skipping samples at the start of file This makes using the generic indexing code with mp3 easier at a later point. Signed-off-by: Michael Niedermayer --- libavformat/utils.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'libavformat/utils.c') diff --git a/libavformat/utils.c b/libavformat/utils.c index 950b3c67e4..2f6122d7d6 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -1416,6 +1416,8 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt) sample < st->last_discard_sample) discard_padding = FFMIN(end_sample - st->first_discard_sample, duration); } + if (st->start_skip_samples && (pkt->pts == 0 || pkt->pts == RELATIVE_TS_BASE)) + st->skip_samples = st->start_skip_samples; if (st->skip_samples || discard_padding) { uint8_t *p = av_packet_new_side_data(pkt, AV_PKT_DATA_SKIP_SAMPLES, 10); if (p) { @@ -1645,6 +1647,8 @@ void ff_read_frame_flush(AVFormatContext *s) if (s->internal->inject_global_side_data) st->inject_global_side_data = 1; + + st->skip_samples = 0; } } -- cgit v1.2.3