[FFmpeg-cvslog] libopenjpegdec: refactor some code and fix memory leaks

Paul B Mahol git at videolan.org
Mon Mar 26 05:45:02 CEST 2012


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Mon Mar 26 02:22:34 2012 +0000| [3dc0b9d6dae6c533018e1750a8dd34ca57a69e0e] | committer: Michael Niedermayer

libopenjpegdec: refactor some code and fix memory leaks

Signed-off-by: Paul B Mahol <onemda at gmail.com>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3dc0b9d6dae6c533018e1750a8dd34ca57a69e0e
---

 libavcodec/libopenjpegdec.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/libavcodec/libopenjpegdec.c b/libavcodec/libopenjpegdec.c
index fced76d..d6a381c 100644
--- a/libavcodec/libopenjpegdec.c
+++ b/libavcodec/libopenjpegdec.c
@@ -278,7 +278,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
 
     if(ff_thread_get_buffer(avctx, picture) < 0){
         av_log(avctx, AV_LOG_ERROR, "ff_thread_get_buffer() failed\n");
-        return -1;
+        goto done;
     }
 
     ctx->dec_params.cp_limit_decoding = NO_LIMITATION;
@@ -288,17 +288,16 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
     stream = opj_cio_open((opj_common_ptr)dec, buf, buf_size);
     if(!stream) {
         av_log(avctx, AV_LOG_ERROR, "Codestream could not be opened for reading.\n");
-        opj_destroy_decompress(dec);
-        return -1;
+        goto done;
     }
 
+    opj_image_destroy(image);
     // Decode the codestream
     image = opj_decode_with_info(dec, stream, NULL);
     opj_cio_close(stream);
     if(!image) {
         av_log(avctx, AV_LOG_ERROR, "Error decoding codestream.\n");
-        opj_destroy_decompress(dec);
-        return -1;
+        goto done;
     }
 
     pixel_size = av_pix_fmt_descriptors[avctx->pix_fmt].comp[0].step_minus1 + 1;



More information about the ffmpeg-cvslog mailing list