[vlc-commits] demux: mkv: fix broken 1000 fps issues

Francois Cartegnie git at videolan.org
Mon Apr 3 15:16:32 CEST 2017


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Mon Apr  3 15:13:34 2017 +0200| [38b0fe6ec0fd597a308165308105455716f03f76] | committer: Francois Cartegnie

demux: mkv: fix broken 1000 fps issues

When no fps is specified, ffmpeg does not
properly sets default frame duration.

1000/1000000 gets vlc_reduce'd to 1000/1

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=38b0fe6ec0fd597a308165308105455716f03f76
---

 modules/demux/mkv/matroska_segment_parse.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/modules/demux/mkv/matroska_segment_parse.cpp b/modules/demux/mkv/matroska_segment_parse.cpp
index e6debba..bcf7ff5 100644
--- a/modules/demux/mkv/matroska_segment_parse.cpp
+++ b/modules/demux/mkv/matroska_segment_parse.cpp
@@ -491,8 +491,12 @@ void matroska_segment_c::ParseTrackEntry( KaxTrackEntry *m )
             mkv_track_t *tk = vars.tk;
 
             tk->f_fps = 0.0;
-            tk->fmt.video.i_frame_rate_base = static_cast<unsigned>( tk->i_default_duration );
-            tk->fmt.video.i_frame_rate = 1000000;
+
+            if( tk->i_default_duration > 1000 ) /* Broken ffmpeg mux info when non set fps */
+            {
+                tk->fmt.video.i_frame_rate_base = static_cast<unsigned>( tk->i_default_duration );
+                tk->fmt.video.i_frame_rate = 1000000;
+            }
 
             vars.level += 1;
             dispatcher.iterate (tkv.begin (), tkv.end (), Payload( vars ) );



More information about the vlc-commits mailing list