From d0682b5eb0d9b6d2c1bc8d03e7ab87c29bb08abc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reimar=20D=C3=B6ffinger?= Date: Sat, 22 Nov 2014 19:50:37 +0100 Subject: [PATCH] svq1enc: reduce stack usage of recursively-called function. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Reimar Döffinger --- libavcodec/svq1enc.c | 2 +- libavcodec/svq1enc.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c index 288da1ff78..2a0d78043a 100644 --- a/libavcodec/svq1enc.c +++ b/libavcodec/svq1enc.c @@ -96,7 +96,7 @@ static int encode_block(SVQ1EncContext *s, uint8_t *src, uint8_t *ref, int w = 2 << (level + 2 >> 1); int h = 2 << (level + 1 >> 1); int size = w * h; - DECLARE_ALIGNED(16, int16_t, block)[7][256]; + int16_t (*block)[256] = s->encoded_block_levels[level]; const int8_t *codebook_sum, *codebook; const uint16_t(*mean_vlc)[2]; const uint8_t(*multistage_vlc)[2]; diff --git a/libavcodec/svq1enc.h b/libavcodec/svq1enc.h index 740d2ff61b..8e74885117 100644 --- a/libavcodec/svq1enc.h +++ b/libavcodec/svq1enc.h @@ -59,6 +59,8 @@ typedef struct SVQ1EncContext { int c_block_width; int c_block_height; + DECLARE_ALIGNED(16, int16_t, encoded_block_levels)[6][7][256]; + uint16_t *mb_type; uint32_t *dummy; int16_t (*motion_val8[3])[2];