flashsv2enc: move blockbuffer realloc to reconfigure_at_keyframe()
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 7 Sep 2012 19:28:29 +0000 (21:28 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 7 Sep 2012 19:46:34 +0000 (21:46 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/flashsv2enc.c

index bc833f4..64e05fb 100644 (file)
@@ -554,16 +554,9 @@ static int encode_block(FlashSV2Context *s, Palette * palette, Block * b,
                         int dist, int keyframe)
 {
     unsigned buf_size = b->width * b->height * 6;
-    uint8_t *buf;
+    uint8_t *buf = s->blockbuffer;
     int res;
 
-    av_fast_malloc(&s->blockbuffer, &s->blockbuffer_size, buf_size);
-    if (!s->blockbuffer) {
-        av_log(s->avctx, AV_LOG_ERROR, "Could not allocate block buffer.\n");
-        return AVERROR(ENOMEM);
-    }
-    buf = s->blockbuffer;
-
     if (b->flags & COLORSPACE_15_7) {
         encode_15_7(palette, b, src, stride, dist);
     } else {
@@ -826,6 +819,11 @@ static int reconfigure_at_keyframe(FlashSV2Context * s, const uint8_t * image,
         init_blocks(s, s->frame_blocks, s->encbuffer, s->databuffer);
         init_blocks(s, s->key_blocks, s->keybuffer, 0);
 
+        av_fast_malloc(&s->blockbuffer, &s->blockbuffer_size, block_width * block_height * 6);
+        if (!s->blockbuffer) {
+            av_log(s->avctx, AV_LOG_ERROR, "Could not allocate block buffer.\n");
+            return AVERROR(ENOMEM);
+        }
     }
 
     s->use15_7 = optimum_use15_7(s);