|
|
@ -4104,7 +4104,7 @@ AVRational av_guess_sample_aspect_ratio(AVFormatContext *format, AVStream *strea |
|
|
|
AVRational av_guess_frame_rate(AVFormatContext *format, AVStream *st, AVFrame *frame) |
|
|
|
AVRational av_guess_frame_rate(AVFormatContext *format, AVStream *st, AVFrame *frame) |
|
|
|
{ |
|
|
|
{ |
|
|
|
AVRational fr = st->r_frame_rate; |
|
|
|
AVRational fr = st->r_frame_rate; |
|
|
|
AVRational codec_fr = av_inv_q(st->codec->time_base); |
|
|
|
AVRational codec_fr = st->codec->framerate; |
|
|
|
AVRational avg_fr = st->avg_frame_rate; |
|
|
|
AVRational avg_fr = st->avg_frame_rate; |
|
|
|
|
|
|
|
|
|
|
|
if (avg_fr.num > 0 && avg_fr.den > 0 && fr.num > 0 && fr.den > 0 && |
|
|
|
if (avg_fr.num > 0 && avg_fr.den > 0 && fr.num > 0 && fr.den > 0 && |
|
|
@ -4114,7 +4114,6 @@ AVRational av_guess_frame_rate(AVFormatContext *format, AVStream *st, AVFrame *f |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (st->codec->ticks_per_frame > 1) { |
|
|
|
if (st->codec->ticks_per_frame > 1) { |
|
|
|
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 |
|
|
|
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) |
|
|
|
&& fabs(1.0 - av_q2d(av_div_q(avg_fr, fr))) > 0.1) |
|
|
|
fr = codec_fr; |
|
|
|
fr = codec_fr; |
|
|
|