]> git.sesse.net Git - vlc/commitdiff
* Fix the extradata with mkv native MPEG4 SP/ASP/AP
authorDerk-Jan Hartman <hartman@videolan.org>
Wed, 23 Aug 2006 21:47:53 +0000 (21:47 +0000)
committerDerk-Jan Hartman <hartman@videolan.org>
Wed, 23 Aug 2006 21:47:53 +0000 (21:47 +0000)
modules/demux/mkv.cpp

index 8d2ede2dfc554b2cd58b6fb3241218688b0651e0..d04a5cf911d6ab6c2d69eb0750420154feade989 100644 (file)
@@ -2200,17 +2200,17 @@ bool matroska_segment_c::Select( mtime_t i_start_time )
             {
                 tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'D', 'I', 'V', '3' );
             }
-            else if( !strcmp( tracks[i_track]->psz_codec, "V_MPEG4/ISO/AVC" ) )
+            else if( !strncmp( tracks[i_track]->psz_codec, "V_MPEG4/ISO", 11 ) )
             {
-                tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'a', 'v', 'c', '1' );
+                /* A MPEG 4 codec, SP, ASP, AP or AVC */
+                if( !strcmp( tracks[i_track]->psz_codec, "V_MPEG4/ISO/AVC" ) )
+                    tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'a', 'v', 'c', '1' );
+                else
+                    tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'm', 'p', '4', 'v' );
                 tracks[i_track]->fmt.i_extra = tracks[i_track]->i_extra_data;
                 tracks[i_track]->fmt.p_extra = malloc( tracks[i_track]->i_extra_data );
                 memcpy( tracks[i_track]->fmt.p_extra,tracks[i_track]->p_extra_data, tracks[i_track]->i_extra_data );
             }
-            else
-            {
-                tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'm', 'p', '4', 'v' );
-            }
         }
         else if( !strcmp( tracks[i_track]->psz_codec, "V_QUICKTIME" ) )
         {