[FFmpeg-cvslog] ffmpeg: Improve filter input fps selection heuristic.

Michael Niedermayer git at videolan.org
Sun Dec 16 05:22:14 CET 2012


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Dec 16 05:09:23 2012 +0100| [718eab527b9af53582c0370e28967e20df991364] | committer: Michael Niedermayer

ffmpeg: Improve filter input fps selection heuristic.

This fixes a broken file that has a incorrect timebase at the codec level.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=718eab527b9af53582c0370e28967e20df991364
---

 ffmpeg_filter.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/ffmpeg_filter.c b/ffmpeg_filter.c
index db95c2f..f550bd4 100644
--- a/ffmpeg_filter.c
+++ b/ffmpeg_filter.c
@@ -562,8 +562,10 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter,
 
     if (!ist->framerate.num && ist->st->codec->ticks_per_frame>1) {
         AVRational codec_fr = av_inv_q(ist->st->codec->time_base);
+        AVRational   avg_fr = ist->st->avg_frame_rate;
         codec_fr.den *= ist->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)
             fr = codec_fr;
     }
 



More information about the ffmpeg-cvslog mailing list