mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
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.
This commit is contained in:
parent
cdf6eb5a97
commit
1eb57e1d9b
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user