cpia: move reget_buffer after header check
authorStephan Hilb <stephan@ecshi.net>
Sat, 1 Sep 2012 08:12:33 +0000 (10:12 +0200)
committerStephan Hilb <stephan@ecshi.net>
Sat, 1 Sep 2012 08:12:33 +0000 (10:12 +0200)
If the header is invalid, there is no need to get at buffer.
Do it after the header has been checked.
Suggested by Reimar Döffinger

libavcodec/cpia.c

index c45936b..a631a05 100644 (file)
@@ -61,12 +61,6 @@ static int cpia_decode_frame(AVCodecContext* avctx,
     AVFrame* const frame = &cpia->frame;
     uint8_t *y, *u, *v, *y_end, *u_end, *v_end;
 
-    // Get buffer filled with previous frame
-    if ((ret = avctx->reget_buffer(avctx, frame)) < 0) {
-        av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed!\n");
-        return ret;
-    }
-
     // Check header
     if ( avpkt->size < FRAME_HEADER_SIZE
       || header[0] != MAGIC_0 || header[1] != MAGIC_1
@@ -104,6 +98,12 @@ static int cpia_decode_frame(AVCodecContext* avctx,
         frame->key_frame = 0;
     }
 
+    // Get buffer filled with previous frame
+    if ((ret = avctx->reget_buffer(avctx, frame)) < 0) {
+        av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed!\n");
+        return ret;
+    }
+
 
     for ( i = 0;
           i < frame->height;