Release unreleased buffers found by make test.
authorCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>
Fri, 16 Oct 2009 14:50:08 +0000 (14:50 +0000)
committerCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>
Fri, 16 Oct 2009 14:50:08 +0000 (14:50 +0000)
Originally committed as revision 20251 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/huffyuv.c
libavcodec/mjpegdec.c
libavcodec/pnmenc.c

index 32a6c0b..531c55b 100644 (file)
@@ -1185,6 +1185,9 @@ static av_cold int decode_end(AVCodecContext *avctx)
     HYuvContext *s = avctx->priv_data;
     int i;
 
+    if (s->picture.data[0])
+        avctx->release_buffer(avctx, &s->picture);
+
     common_end(s);
     av_freep(&s->bitstream_buffer);
 
index e8f0dd6..5e55614 100644 (file)
@@ -1494,6 +1494,9 @@ av_cold int ff_mjpeg_decode_end(AVCodecContext *avctx)
     MJpegDecodeContext *s = avctx->priv_data;
     int i, j;
 
+    if (s->picture.data[0])
+        avctx->release_buffer(avctx, &s->picture);
+
     av_free(s->buffer);
     av_free(s->qscale_table);
 
index e619fc3..adf7dad 100644 (file)
@@ -328,6 +328,15 @@ static int pam_encode_frame(AVCodecContext *avctx, unsigned char *outbuf, int bu
     return s->bytestream - s->bytestream_start;
 }
 
+static av_cold int common_end(AVCodecContext *avctx){
+    PNMContext *s = avctx->priv_data;
+
+    if (s->picture.data[0])
+        avctx->release_buffer(avctx, &s->picture);
+
+    return 0;
+}
+
 #if 0
 static int pnm_probe(AVProbeData *pd)
 {
@@ -371,7 +380,7 @@ AVCodec pgm_decoder = {
     sizeof(PNMContext),
     common_init,
     NULL,
-    NULL,
+    common_end,
     pnm_decode_frame,
     CODEC_CAP_DR1,
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_GRAY8, PIX_FMT_GRAY16BE, PIX_FMT_NONE},
@@ -400,7 +409,7 @@ AVCodec pgmyuv_decoder = {
     sizeof(PNMContext),
     common_init,
     NULL,
-    NULL,
+    common_end,
     pnm_decode_frame,
     CODEC_CAP_DR1,
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
@@ -429,7 +438,7 @@ AVCodec ppm_decoder = {
     sizeof(PNMContext),
     common_init,
     NULL,
-    NULL,
+    common_end,
     pnm_decode_frame,
     CODEC_CAP_DR1,
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB48BE, PIX_FMT_NONE},
@@ -458,7 +467,7 @@ AVCodec pbm_decoder = {
     sizeof(PNMContext),
     common_init,
     NULL,
-    NULL,
+    common_end,
     pnm_decode_frame,
     CODEC_CAP_DR1,
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_MONOWHITE, PIX_FMT_NONE},
@@ -487,7 +496,7 @@ AVCodec pam_decoder = {
     sizeof(PNMContext),
     common_init,
     NULL,
-    NULL,
+    common_end,
     pnm_decode_frame,
     CODEC_CAP_DR1,
     .pix_fmts= (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGB32, PIX_FMT_GRAY8, PIX_FMT_MONOWHITE, PIX_FMT_NONE},