mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 12:09:55 +00:00
avformat/utils: av_guess_frame_rate() favor avg_frame_rate if r_frame_rate has a comparably unlikely value
Fixes Ticket3399 Fixes Ticket2958 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
9c070ae03e
commit
2969fb4393
@ -4325,10 +4325,16 @@ AVRational av_guess_sample_aspect_ratio(AVFormatContext *format, AVStream *strea
|
||||
AVRational av_guess_frame_rate(AVFormatContext *format, AVStream *st, AVFrame *frame)
|
||||
{
|
||||
AVRational fr = st->r_frame_rate;
|
||||
AVRational codec_fr = av_inv_q(st->codec->time_base);
|
||||
AVRational avg_fr = st->avg_frame_rate;
|
||||
|
||||
if (avg_fr.num > 0 && avg_fr.den > 0 && fr.num > 0 && fr.den > 0 &&
|
||||
av_q2d(avg_fr) < 70 && av_q2d(fr) > 210) {
|
||||
fr = avg_fr;
|
||||
}
|
||||
|
||||
|
||||
if (st->codec->ticks_per_frame > 1) {
|
||||
AVRational codec_fr = av_inv_q(st->codec->time_base);
|
||||
AVRational avg_fr = st->avg_frame_rate;
|
||||
codec_fr.den *= st->codec->ticks_per_frame;
|
||||
if ( codec_fr.num > 0 && codec_fr.den > 0 && av_q2d(codec_fr) < av_q2d(fr)*0.7
|
||||
&& fabs(1.0 - av_q2d(av_div_q(avg_fr, fr))) > 0.1)
|
||||
|
Loading…
Reference in New Issue
Block a user