[FFmpeg-cvslog] libopenjpegdec: return meaningful error codes

Anton Khirnov git at videolan.org
Wed Oct 30 09:42:35 CET 2013


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sun Oct 27 10:28:45 2013 +0100| [5c0a09839c707f10e5dba59460e219e989c1da93] | committer: Anton Khirnov

libopenjpegdec: return meaningful error codes

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

 libavcodec/libopenjpegdec.c |   15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/libavcodec/libopenjpegdec.c b/libavcodec/libopenjpegdec.c
index ca824c6..0062701 100644
--- a/libavcodec/libopenjpegdec.c
+++ b/libavcodec/libopenjpegdec.c
@@ -257,7 +257,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
     opj_dinfo_t *dec;
     opj_cio_t *stream;
     opj_image_t *image;
-    int width, height, ret = -1;
+    int width, height, ret;
     int pixel_size = 0;
     int ispacked = 0;
     int i;
@@ -279,7 +279,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
 
     if (!dec) {
         av_log(avctx, AV_LOG_ERROR, "Error initializing decoder.\n");
-        return -1;
+        return AVERROR_UNKNOWN;
     }
     opj_set_event_mgr((opj_common_ptr)dec, NULL, NULL);
 
@@ -294,7 +294,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
         av_log(avctx, AV_LOG_ERROR,
                "Codestream could not be opened for reading.\n");
         opj_destroy_decompress(dec);
-        return -1;
+        return AVERROR_UNKNOWN;
     }
 
     // Decode the header only.
@@ -304,7 +304,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
     if (!image) {
         av_log(avctx, AV_LOG_ERROR, "Error decoding codestream.\n");
         opj_destroy_decompress(dec);
-        return -1;
+        return AVERROR_UNKNOWN;
     }
 
     width  = image->x1 - image->x0;
@@ -315,7 +315,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
         height = (height + (1 << ctx->lowres) - 1) >> ctx->lowres;
     }
 
-    if (av_image_check_size(width, height, 0, avctx) < 0) {
+    if ((ret = av_image_check_size(width, height, 0, avctx)) < 0) {
         av_log(avctx, AV_LOG_ERROR,
                "%dx%d dimension invalid.\n", width, height);
         goto done;
@@ -340,7 +340,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
         if (image->comps[i].prec > avctx->bits_per_raw_sample)
             avctx->bits_per_raw_sample = image->comps[i].prec;
 
-    if (ff_thread_get_buffer(avctx, &frame, 0) < 0) {
+    if ((ret = ff_thread_get_buffer(avctx, &frame, 0)) < 0) {
         av_log(avctx, AV_LOG_ERROR, "ff_thread_get_buffer() failed\n");
         goto done;
     }
@@ -352,6 +352,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
     if (!stream) {
         av_log(avctx, AV_LOG_ERROR,
                "Codestream could not be opened for reading.\n");
+        ret = AVERROR_UNKNOWN;
         goto done;
     }
 
@@ -362,6 +363,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
 
     if (!image) {
         av_log(avctx, AV_LOG_ERROR, "Error decoding codestream.\n");
+        ret = AVERROR_UNKNOWN;
         goto done;
     }
 
@@ -398,6 +400,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
         break;
     default:
         av_log(avctx, AV_LOG_ERROR, "unsupported pixel size %d\n", pixel_size);
+        ret = AVERROR_PATCHWELCOME;
         goto done;
     }
 



More information about the ffmpeg-cvslog mailing list