From 80fa48a413a066a87e1a5683d248ce921a444292 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 18 Apr 2015 00:58:51 +0200 Subject: avformat/utils: Use codec_info_duration_fields in fps calculation end decission when no timestamps and thus no duration_count is available This avoids waiting for a count to increase which will always be 0 and may reduce the startup delay for affected streams (rare) Signed-off-by: Michael Niedermayer --- libavformat/utils.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 6c7ca0acc1..15aaa700cf 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -3136,9 +3136,13 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) fps_analyze_framecount = 0; /* variable fps and no guess at the real fps */ if (!(st->r_frame_rate.num && st->avg_frame_rate.num) && - st->info->duration_count < fps_analyze_framecount && - st->codec->codec_type == AVMEDIA_TYPE_VIDEO) - break; + st->codec->codec_type == AVMEDIA_TYPE_VIDEO) { + int count = (ic->iformat->flags & AVFMT_NOTIMESTAMPS) ? + st->info->codec_info_duration_fields/2 : + st->info->duration_count; + if (count < fps_analyze_framecount) + break; + } if (st->parser && st->parser->parser->split && !st->codec->extradata) break; -- cgit v1.2.3