]> git.sesse.net Git - vlc/blobdiff - src/input/decoder.c
audio_output: Use a destructor.
[vlc] / src / input / decoder.c
index 5eaa1b3abe695c6e257d676d18041370d819c190..6955f7f93b5a8000cf37800a5e354024d1fb34de 100644 (file)
@@ -483,7 +483,7 @@ static decoder_t * CreateDecoder( input_thread_t *p_input,
     p_dec->p_owner->p_packetizer = NULL;
 
     /* decoder fifo */
-    if( ( p_dec->p_owner->p_fifo = block_FifoNew( p_dec ) ) == NULL )
+    if( ( p_dec->p_owner->p_fifo = block_FifoNew() ) == NULL )
     {
         msg_Err( p_dec, "out of memory" );
         return NULL;
@@ -563,7 +563,7 @@ static decoder_t * CreateDecoder( input_thread_t *p_input,
             p_owner->b_cc_supported = true;
     }
 
-    vlc_mutex_init( p_dec, &p_owner->lock_cc );
+    vlc_mutex_init( &p_owner->lock_cc );
     for( i = 0; i < 4; i++ )
     {
         p_owner->pb_cc_present[i] = false;
@@ -986,7 +986,11 @@ static void DeleteDecoder( decoder_t * p_dec )
     /* Cleanup */
     if( p_dec->p_owner->p_aout_input )
         aout_DecDelete( p_dec->p_owner->p_aout, p_dec->p_owner->p_aout_input );
-
+    if( p_dec->p_owner->p_aout )
+    {
+        vlc_object_release( p_dec->p_owner->p_aout );
+        p_dec->p_owner->p_aout = NULL;
+    }
     if( p_dec->p_owner->p_vout )
     {
         int i_pic;