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);