[Ffmpeg-cvslog] r8161 - trunk/libavcodec/faac.c

bcoudurier subversion
Wed Feb 28 10:56:15 CET 2007


Author: bcoudurier
Date: Wed Feb 28 10:56:15 2007
New Revision: 8161

Modified:
   trunk/libavcodec/faac.c

Log:
free faac extradata

Modified: trunk/libavcodec/faac.c
==============================================================================
--- trunk/libavcodec/faac.c	(original)
+++ trunk/libavcodec/faac.c	Wed Feb 28 10:56:15 2007
@@ -76,15 +76,19 @@ static int Faac_encode_init(AVCodecConte
     avctx->extradata_size = 0;
     if (avctx->flags & CODEC_FLAG_GLOBAL_HEADER) {
 
-        unsigned char *buffer;
+        unsigned char *buffer = NULL;
         unsigned long decoder_specific_info_size;
 
         if (!faacEncGetDecoderSpecificInfo(s->faac_handle, &buffer,
                                            &decoder_specific_info_size)) {
-            avctx->extradata = buffer;
+            avctx->extradata = av_malloc(decoder_specific_info_size + FF_INPUT_BUFFER_PADDING_SIZE);
             avctx->extradata_size = decoder_specific_info_size;
+            memcpy(avctx->extradata, buffer, avctx->extradata_size);
             faac_cfg->outputFormat = 0;
         }
+#undef free
+        free(buffer);
+#define free please_use_av_free
     }
 
     if (!faacEncSetConfiguration(s->faac_handle, faac_cfg)) {
@@ -115,8 +119,7 @@ static int Faac_encode_close(AVCodecCont
     FaacAudioContext *s = avctx->priv_data;
 
     av_freep(&avctx->coded_frame);
-
-    //if (avctx->extradata_size) free(avctx->extradata);
+    av_freep(&avctx->extradata);
 
     faacEncClose(s->faac_handle);
     return 0;




More information about the ffmpeg-cvslog mailing list