diff --git a/libavformat/utils.c b/libavformat/utils.c index 1c5614f874..0240b0c3b5 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2729,7 +2729,7 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) } st->info->duration_count++; // ignore the first 4 values, they might have some random jitter - if (st->info->duration_count > 3) + if (st->info->duration_count > 3 && is_relative(pkt->dts) == is_relative(last)) st->info->duration_gcd = av_gcd(st->info->duration_gcd, duration); } if (pkt->dts != AV_NOPTS_VALUE)