summaryrefslogtreecommitdiff
path: root/libavformat/utils.c
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2015-04-22 12:24:36 +0200
committerMichael Niedermayer <michaelni@gmx.at>2015-04-22 14:05:46 +0200
commit7dd8bf53bdb5669a7c65822417fe29036435b40f (patch)
treef8a077180fcad39c49dc349147fc038b8a3f63f8 /libavformat/utils.c
parentafc7748d1f6abc4b3b1cc957b0fa6941837db3d0 (diff)
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 <michaelni@gmx.at>
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r--libavformat/utils.c4
1 files changed, 4 insertions, 0 deletions
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;
}
}