lagarith: return more meaningful error codes
authorPaul B Mahol <onemda@gmail.com>
Tue, 22 Jan 2013 19:48:23 +0000 (19:48 +0000)
committerPaul B Mahol <onemda@gmail.com>
Tue, 22 Jan 2013 19:48:23 +0000 (19:48 +0000)
Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavcodec/lagarith.c

index d5470a5..eb8a77e 100644 (file)
@@ -518,6 +518,7 @@ static int lag_decode_frame(AVCodecContext *avctx,
     uint32_t offs[4];
     uint8_t *srcs[4], *dst;
     int i, j, planes = 3;
+    int ret;
 
     AVFrame *picture = data;
 
@@ -544,9 +545,9 @@ static int lag_decode_frame(AVCodecContext *avctx,
                 planes = 4;
             }
 
-        if (ff_thread_get_buffer(avctx, p) < 0) {
+        if ((ret = ff_thread_get_buffer(avctx, p)) < 0) {
             av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
-            return -1;
+            return ret;
         }
 
         dst = p->data[0];
@@ -573,9 +574,9 @@ static int lag_decode_frame(AVCodecContext *avctx,
         if (frametype == FRAME_ARITH_RGB24 || frametype == FRAME_U_RGB24)
             avctx->pix_fmt = AV_PIX_FMT_RGB24;
 
-        if (ff_thread_get_buffer(avctx, p) < 0) {
+        if ((ret = ff_thread_get_buffer(avctx, p)) < 0) {
             av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
-            return -1;
+            return ret;
         }
 
         offs[0] = offset_bv;
@@ -632,9 +633,9 @@ static int lag_decode_frame(AVCodecContext *avctx,
     case FRAME_ARITH_YUY2:
         avctx->pix_fmt = AV_PIX_FMT_YUV422P;
 
-        if (ff_thread_get_buffer(avctx, p) < 0) {
+        if ((ret = ff_thread_get_buffer(avctx, p)) < 0) {
             av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
-            return -1;
+            return ret;
         }
 
         if (offset_ry >= buf_size ||
@@ -658,9 +659,9 @@ static int lag_decode_frame(AVCodecContext *avctx,
     case FRAME_ARITH_YV12:
         avctx->pix_fmt = AV_PIX_FMT_YUV420P;
 
-        if (ff_thread_get_buffer(avctx, p) < 0) {
+        if ((ret = ff_thread_get_buffer(avctx, p)) < 0) {
             av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
-            return -1;
+            return ret;
         }
         if (buf_size <= offset_ry || buf_size <= offset_gu || buf_size <= offset_bv) {
             return AVERROR_INVALIDDATA;
@@ -687,7 +688,7 @@ static int lag_decode_frame(AVCodecContext *avctx,
     default:
         av_log(avctx, AV_LOG_ERROR,
                "Unsupported Lagarith frame type: %#x\n", frametype);
-        return -1;
+        return AVERROR_PATCHWELCOME;
     }
 
     *picture = *p;