From e370aad67ddb15033f656f6b1120c030c759f30b Mon Sep 17 00:00:00 2001 From: Vadim Kalinsky Date: Tue, 28 Jun 2016 14:09:46 -0400 Subject: [PATCH] avformat/mov: Skip non-key frames if AVDISCARD_NONKEY is set. Github: Closes #222 --- libavformat/mov.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavformat/mov.c b/libavformat/mov.c index a929f74511..485bb0bc0c 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -5224,6 +5224,12 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt) sc->current_sample -= should_retry(sc->pb, ret64); return AVERROR_INVALIDDATA; } + + if( st->discard == AVDISCARD_NONKEY && 0==(sample->flags & AVINDEX_KEYFRAME) ) { + av_log(mov->fc, AV_LOG_DEBUG, "Nonkey frame from stream %d discarded due to AVDISCARD_NONKEY\n", sc->ffindex); + goto retry; + } + ret = av_get_packet(sc->pb, pkt, sample->size); if (ret < 0) { sc->current_sample -= should_retry(sc->pb, ret);