]> git.sesse.net Git - vlc/commitdiff
audio filters can return NULL, handle it properly
authorRémi Denis-Courmont <remi@remlab.net>
Wed, 30 Sep 2009 15:10:55 +0000 (18:10 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Wed, 30 Sep 2009 15:12:35 +0000 (18:12 +0300)
src/audio_output/input.c
src/audio_output/output.c

index e34e66c73f1753effeb8984622012f2dfc481c6d..45aa96a5a8096bef669175e618475bcca74a83e0 100644 (file)
@@ -546,6 +546,8 @@ int aout_InputPlay( aout_instance_t * p_aout, aout_input_t * p_input,
     /* Run pre-filters. */
     aout_FiltersPlay( p_aout, p_input->pp_filters, p_input->i_nb_filters,
                       &p_buffer );
+    if( !p_buffer )
+        return 0;
 
     /* Actually run the resampler now. */
     if ( p_input->i_nb_resamplers > 0 )
@@ -556,9 +558,11 @@ int aout_InputPlay( aout_instance_t * p_aout, aout_input_t * p_input,
                           &p_buffer );
     }
 
+    if( !p_buffer )
+        return 0;
     if( p_buffer->i_nb_samples <= 0 )
     {
-        aout_BufferFree( p_buffer );
+        block_Release( p_buffer );
         return 0;
     }
 #endif
@@ -643,6 +647,8 @@ int aout_InputPlay( aout_instance_t * p_aout, aout_input_t * p_input,
 #ifndef AOUT_PROCESS_BEFORE_CHEKS
     /* Run pre-filters. */
     aout_FiltersPlay( p_input->pp_filters, p_input->i_nb_filters, &p_buffer );
+    if( !p_buffer )
+        return 0;
 #endif
 
     /* Run the resampler if needed.
@@ -735,9 +741,11 @@ int aout_InputPlay( aout_instance_t * p_aout, aout_input_t * p_input,
                           &p_buffer );
     }
 
+    if( !p_buffer )
+        return 0;
     if( p_buffer->i_nb_samples <= 0 )
     {
-        aout_BufferFree( p_buffer );
+        block_Release( p_buffer );
         return 0;
     }
 #endif
index d8aca7f37733d9756a4517a0dbec45dc7071a1ef..dc6ea31e71b95135ea9f956c4ffc416b04d6f640 100644 (file)
@@ -249,9 +249,11 @@ void aout_OutputPlay( aout_instance_t * p_aout, aout_buffer_t * p_buffer )
     aout_FiltersPlay( p_aout->output.pp_filters, p_aout->output.i_nb_filters,
                       &p_buffer );
 
+    if( !p_buffer )
+        return;
     if( p_buffer->i_buffer == 0 )
     {
-        aout_BufferFree( p_buffer );
+        block_Release( p_buffer );
         return;
     }