]> git.sesse.net Git - ffmpeg/commitdiff
avformat/mov: Check if DTS is AV_NOPTS_VALUE in mov_find_next_sample().
authorDale Curtis <dalecurtis@chromium.org>
Thu, 14 May 2020 21:38:07 +0000 (14:38 -0700)
committerMichael Niedermayer <michael@niedermayer.cc>
Fri, 12 Jun 2020 22:43:09 +0000 (00:43 +0200)
Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/mov.c

index e11c9f4457f93738ac51411b7f8ff566253f3b75..2fc27d2aec50052d6af707da0b49fe3efc909dc8 100644 (file)
@@ -7776,7 +7776,7 @@ static AVIndexEntry *mov_find_next_sample(AVFormatContext *s, AVStream **st)
             av_log(s, AV_LOG_TRACE, "stream %d, sample %d, dts %"PRId64"\n", i, msc->current_sample, dts);
             if (!sample || (!(s->pb->seekable & AVIO_SEEKABLE_NORMAL) && current_sample->pos < sample->pos) ||
                 ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) &&
-                 ((msc->pb != s->pb && dts < best_dts) || (msc->pb == s->pb &&
+                 ((msc->pb != s->pb && dts < best_dts) || (msc->pb == s->pb && dts != AV_NOPTS_VALUE &&
                  ((FFABS(best_dts - dts) <= AV_TIME_BASE && current_sample->pos < sample->pos) ||
                   (FFABS(best_dts - dts) > AV_TIME_BASE && dts < best_dts)))))) {
                 sample = current_sample;