]> git.sesse.net Git - vlc/blobdiff - modules/demux/mkv.cpp
Don't leak memory in error paths
[vlc] / modules / demux / mkv.cpp
index 5b483ce855bfbb0c933185cf50a051cf06b7f9e2..65ed0fb85b915a90094c0a28a99c0d8ba8af1c92 100644 (file)
  * Preamble
  *****************************************************************************/
 
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
 #include <vlc/vlc.h>
 
 #ifdef HAVE_TIME_H
@@ -2332,6 +2336,17 @@ bool matroska_segment_c::Select( mtime_t i_start_time )
                 }
             }
         }
+        else if( !strncmp( tracks[i_track]->psz_codec, "V_REAL/RV", 9 ) )
+        {
+            if( !strcmp( tracks[i_track]->psz_codec, "V_REAL/RV10" ) )
+                tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'R', 'V', '1', '0' );
+            else if( !strcmp( tracks[i_track]->psz_codec, "V_REAL/RV20" ) )
+                tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'R', 'V', '2', '0' );
+            else if( !strcmp( tracks[i_track]->psz_codec, "V_REAL/RV30" ) )
+                tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'R', 'V', '3', '0' );
+            else if( !strcmp( tracks[i_track]->psz_codec, "V_REAL/RV40" ) )
+                tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'R', 'V', '4', '0' );
+        }
         else if( !strncmp( tracks[i_track]->psz_codec, "V_MPEG4", 7 ) )
         {
             if( !strcmp( tracks[i_track]->psz_codec, "V_MPEG4/MS/V3" ) )
@@ -2609,7 +2624,7 @@ bool matroska_segment_c::Select( mtime_t i_start_time )
         }
         else
         {
-            msg_Err( &sys.demuxer, "unknow codec id=`%s'", tracks[i_track]->psz_codec );
+            msg_Err( &sys.demuxer, "unknown codec id=`%s'", tracks[i_track]->psz_codec );
             tracks[i_track]->fmt.i_codec = VLC_FOURCC( 'u', 'n', 'd', 'f' );
         }
         if( tracks[i_track]->b_default )