]> git.sesse.net Git - vlc/blobdiff - modules/demux/mkv.cpp
One more "Remove useless test before free"
[vlc] / modules / demux / mkv.cpp
index 5b483ce855bfbb0c933185cf50a051cf06b7f9e2..32073d21995df6db0cedd6f855987d3543d7805b 100644 (file)
  * Preamble
  *****************************************************************************/
 
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
 #include <vlc/vlc.h>
 
 #ifdef HAVE_TIME_H
@@ -1044,35 +1048,17 @@ public:
                 delete tracks[i_track]->p_compression_data;
             }
             es_format_Clean( &tracks[i_track]->fmt );
-            if( tracks[i_track]->p_extra_data )
-                free( tracks[i_track]->p_extra_data );
-            if( tracks[i_track]->psz_codec )
-                free( tracks[i_track]->psz_codec );
+            free( tracks[i_track]->p_extra_data );
+            free( tracks[i_track]->psz_codec );
             delete tracks[i_track];
         }
 
-        if( psz_writing_application )
-        {
-            free( psz_writing_application );
-        }
-        if( psz_muxing_application )
-        {
-            free( psz_muxing_application );
-        }
-        if( psz_segment_filename )
-        {
-            free( psz_segment_filename );
-        }
-        if( psz_title )
-        {
-            free( psz_title );
-        }
-        if( psz_date_utc )
-        {
-            free( psz_date_utc );
-        }
-        if ( p_indexes )
-            free( p_indexes );
+        free( psz_writing_application );
+        free( psz_muxing_application );
+        free( psz_segment_filename );
+        free( psz_title );
+        free( psz_date_utc );
+        free( p_indexes );
 
         delete ep;
         delete segment;
@@ -1309,7 +1295,7 @@ public:
     {}
     virtual ~attachment_c()
     {
-        if( p_data ) free( p_data );
+        free( p_data );
     }
 
     std::string    psz_file_name;
@@ -2332,6 +2318,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 +2606,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 )
@@ -2678,7 +2675,7 @@ void demux_sys_t::StopUiThread()
     {
         vlc_object_kill( p_ev );
         vlc_thread_join( p_ev );
-        vlc_object_destroy( p_ev );
+        vlc_object_release( p_ev );
 
         p_ev = NULL;
 
@@ -6020,7 +6017,7 @@ bool dvd_chapter_codec_c::Enter()
             binary *p_data = (*index)->GetBuffer();
             size_t i_size = *p_data++;
             // avoid reading too much from the buffer
-            i_size = min( i_size, ((*index)->GetSize() - 1) >> 3 );
+            i_size = __MIN( i_size, ((*index)->GetSize() - 1) >> 3 );
             for ( ; i_size > 0; i_size--, p_data += 8 )
             {
                 msg_Dbg( &sys.demuxer, "Matroska DVD enter command" );
@@ -6043,7 +6040,7 @@ bool dvd_chapter_codec_c::Leave()
             binary *p_data = (*index)->GetBuffer();
             size_t i_size = *p_data++;
             // avoid reading too much from the buffer
-            i_size = min( i_size, ((*index)->GetSize() - 1) >> 3 );
+            i_size = __MIN( i_size, ((*index)->GetSize() - 1) >> 3 );
             for ( ; i_size > 0; i_size--, p_data += 8 )
             {
                 msg_Dbg( &sys.demuxer, "Matroska DVD leave command" );