]> git.sesse.net Git - vlc/commitdiff
* all: who has seen that I have just forgot to release any buffers...
authorLaurent Aimar <fenrir@videolan.org>
Wed, 5 Nov 2003 01:47:40 +0000 (01:47 +0000)
committerLaurent Aimar <fenrir@videolan.org>
Wed, 5 Nov 2003 01:47:40 +0000 (01:47 +0000)
modules/codec/adpcm.c
modules/codec/araw.c
modules/codec/faad.c

index ff4e33f5cbf3ec8a8136ce767fc576b20c362b8d..5afd36255b2c95ebd714d331573725a2d8d91ad5 100644 (file)
@@ -2,7 +2,7 @@
  * adpcm.c : adpcm variant audio decoder
  *****************************************************************************
  * Copyright (C) 2001, 2002 VideoLAN
- * $Id: adpcm.c,v 1.14 2003/11/04 14:51:51 fenrir Exp $
+ * $Id: adpcm.c,v 1.15 2003/11/05 01:47:40 fenrir Exp $
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *
@@ -286,6 +286,7 @@ static int Decode( decoder_t *p_dec, block_t *p_block )
         }
         else if( !aout_DateGet( &p_sys->date ) )
         {
+            block_Release( p_block );
             return VLC_SUCCESS;
         }
         i_pts = 0;
@@ -296,6 +297,7 @@ static int Decode( decoder_t *p_dec, block_t *p_block )
         if( out == NULL )
         {
             msg_Err( p_dec, "cannot get aout buffer" );
+            block_Release( p_block );
             return VLC_EGENERIC;
         }
         out->start_date = aout_DateGet( &p_sys->date );
@@ -328,6 +330,7 @@ static int Decode( decoder_t *p_dec, block_t *p_block )
         i_data -= p_sys->i_block;
     }
 
+    block_Release( p_block );
     return VLC_SUCCESS;
 }
 
index 217bdddbd7ff2878239ab9f12dd7449079ddedd5..ce4bc2a3ff02a0edaa683b45a976c1ba4003f5ea 100644 (file)
@@ -2,7 +2,7 @@
  * araw.c: Pseudo audio decoder; for raw pcm data
  *****************************************************************************
  * Copyright (C) 2001, 2003 VideoLAN
- * $Id: araw.c,v 1.21 2003/11/04 01:27:33 fenrir Exp $
+ * $Id: araw.c,v 1.22 2003/11/05 01:47:40 fenrir Exp $
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *
@@ -217,7 +217,6 @@ static int DecoderInit( decoder_t *p_dec )
     {
         msg_Err( p_dec, "bad samplerate" );
         return VLC_EGENERIC;
-
     }
 
     p_sys->p_wf = p_wf;
@@ -364,6 +363,7 @@ static int DecoderDecode( decoder_t *p_dec, block_t *p_block )
     }
     if( i_size < p_sys->p_wf->nBlockAlign )
     {
+        block_Release( p_block );
         return VLC_SUCCESS;
     }
     i_samples = i_size / ( ( p_sys->p_wf->wBitsPerSample + 7 ) / 8 ) /
@@ -375,6 +375,7 @@ static int DecoderDecode( decoder_t *p_dec, block_t *p_block )
     }
     else if( !aout_DateGet( &p_sys->date ) )
     {
+        block_Release( p_block );
         return VLC_SUCCESS;
     }
 
@@ -387,6 +388,7 @@ static int DecoderDecode( decoder_t *p_dec, block_t *p_block )
         if( out == NULL )
         {
             msg_Err( p_dec, "cannot get aout buffer" );
+            block_Release( p_block );
             return VLC_EGENERIC;
         }
 
@@ -414,6 +416,7 @@ static int DecoderDecode( decoder_t *p_dec, block_t *p_block )
 
         i_samples -= i_copy;
     }
+    block_Release( p_block );
     return VLC_SUCCESS;
 }
 
index d15aa6f6bb0e00827bd63884769368e6b4b96609..ae96b4b1d5d10f1a50f2c9b20edbcbfbe8ed2b9b 100644 (file)
@@ -2,7 +2,7 @@
  * decoder.c: AAC decoder using libfaad2
  *****************************************************************************
  * Copyright (C) 2001, 2003 VideoLAN
- * $Id: faad.c,v 1.2 2003/11/04 02:23:11 fenrir Exp $
+ * $Id: faad.c,v 1.3 2003/11/05 01:47:40 fenrir Exp $
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *
@@ -195,6 +195,7 @@ static int  RunDecoder    ( decoder_t *p_dec, block_t *p_block )
                          p_sys->p_buffer, p_sys->i_buffer,
                          &i_rate, &i_channels ) < 0 )
         {
+            block_Release( p_block );
             return VLC_EGENERIC;
         }
         p_sys->output_format.i_rate = i_rate;
@@ -218,6 +219,7 @@ static int  RunDecoder    ( decoder_t *p_dec, block_t *p_block )
             msg_Warn( p_dec, "%s", faacDecGetErrorMessage( frame.error ) );
             /* flush the buffer */
             p_sys->i_buffer = 0;
+            block_Release( p_block );
             return VLC_SUCCESS;
         }
         if( frame.channels <= 0 || frame.channels > 6 )
@@ -225,6 +227,7 @@ static int  RunDecoder    ( decoder_t *p_dec, block_t *p_block )
             msg_Warn( p_dec, "invalid channels count" );
             /* flush the buffer */
             p_sys->i_buffer = 0;
+            block_Release( p_block );
             return VLC_SUCCESS;
         }
         if( frame.samples <= 0 )
@@ -232,6 +235,7 @@ static int  RunDecoder    ( decoder_t *p_dec, block_t *p_block )
             msg_Warn( p_dec, "decoded zero samples" );
             /* flush the buffer */
             p_sys->i_buffer = 0;
+            block_Release( p_block );
             return VLC_SUCCESS;
         }
 
@@ -264,6 +268,7 @@ static int  RunDecoder    ( decoder_t *p_dec, block_t *p_block )
         if( p_sys->p_aout_input == NULL )
         {
             msg_Err( p_dec, "cannot create aout" );
+            block_Release( p_block );
             return VLC_EGENERIC;
         }
 
@@ -284,6 +289,7 @@ static int  RunDecoder    ( decoder_t *p_dec, block_t *p_block )
                                        frame.samples / frame.channels ) ) == NULL )
         {
             msg_Err( p_dec, "cannot get a new buffer" );
+            block_Release( p_block );
             return VLC_EGENERIC;
         }
         out->start_date = aout_DateGet( &p_sys->date );
@@ -300,6 +306,7 @@ static int  RunDecoder    ( decoder_t *p_dec, block_t *p_block )
         memmove( &p_sys->p_buffer[0], &p_sys->p_buffer[i_used], p_sys->i_buffer );
     }
 
+    block_Release( p_block );
     return VLC_SUCCESS;
 }