From 1eb57e1d9b59db0aa63348c21bf3290bd3f5efcb Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Fri, 25 Apr 2014 16:33:27 +0200 Subject: lavc: eliminate tb_unreliable() If framerate estimation is enabled, it makes sense to always apply it, instead of limiting it to a few specific cases. --- libavformat/utils.c | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index e35c1e4656..9d82093784 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2174,24 +2174,6 @@ static int get_std_framerate(int i) return ((const int[]) { 24, 30, 60, 12, 15 })[i - 60 * 12] * 1000 * 12; } -/* Is the time base unreliable? - * This is a heuristic to balance between quick acceptance of the values in - * the headers vs. some extra checks. - * Old DivX and Xvid often have nonsense timebases like 1fps or 2fps. - * MPEG-2 commonly misuses field repeat flags to store different framerates. - * And there are "variable" fps files this needs to detect as well. */ -static int tb_unreliable(AVCodecContext *c) -{ - if (c->time_base.den >= 101L * c->time_base.num || - c->time_base.den < 5L * c->time_base.num || - // c->codec_tag == AV_RL32("DIVX") || - // c->codec_tag == AV_RL32("XVID") || - c->codec_id == AV_CODEC_ID_MPEG2VIDEO || - c->codec_id == AV_CODEC_ID_H264) - return 1; - return 0; -} - int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) { int i, count, ret, read_size, j; @@ -2264,7 +2246,7 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) if (ic->fps_probe_size >= 0) fps_analyze_framecount = ic->fps_probe_size; /* variable fps and no guess at the real fps */ - if (tb_unreliable(st->codec) && !st->avg_frame_rate.num && + if (!st->avg_frame_rate.num && st->codec_info_nb_frames < fps_analyze_framecount && st->codec->codec_type == AVMEDIA_TYPE_VIDEO) break; -- cgit v1.2.3