[vlc-devel] [PATCH 5/7] Support for rotated MP4 Movies (bug #2882)

Matthias Keiser matthias at tristan-inc.com
Mon Feb 17 01:34:47 CET 2014


Previous discussion was here:

https://mailman.videolan.org/pipermail/vlc-devel/2014-February/096817.html

---
 modules/demux/mp4/mp4.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c
index 4c6b680..ecb08d9 100644
--- a/modules/demux/mp4/mp4.c
+++ b/modules/demux/mp4/mp4.c
@@ -361,7 +361,8 @@ static int Open( vlc_object_t * p_this )
     if( LoadInitFrag( p_demux, b_smooth ) != VLC_SUCCESS )
         goto error;
 
-    if( MP4_BoxCount( p_sys->p_root, "/moov/mvex" ) > 0 )
+    if( MP4_BoxCount( p_sys->p_root, "/moov/mvex" ) > 0 &&
+        MP4_BoxCount( p_sys->p_root, "/moof" ) > 0 )
     {
         p_sys->b_fragmented = true;
     }
@@ -378,6 +379,9 @@ static int Open( vlc_object_t * p_this )
         CreateTracksFromSmooBox( p_demux );
         return VLC_SUCCESS;
     }
+    //FIXME: relying on STREAM_CAN_FASTSEEK to decide if we can parse
+    // a file is a bad heuristic, because local files are always
+    // fast-seekable.
     else if( p_sys->b_fragmented && b_seekable )
     {
         /* We are not yet able to demux a fragmented MP4 file, using the 'mfra'
@@ -388,6 +392,7 @@ static int Open( vlc_object_t * p_this )
         stream_Seek( p_demux->s, 0 ); /* rewind, for other demux */
         goto error;
     }
+    //FIXME: This means that avformat will take over, but it doesn't do a better job than we if the file is not seekable.
     else if( !p_sys->b_fragmented && !b_seekable )
     {
         msg_Warn( p_demux, "MP4 plugin discarded (not fast-seekable)" );
-- 
1.8.3.4 (Apple Git-47)





More information about the vlc-devel mailing list