diff --git a/libavcodec/imc.c b/libavcodec/imc.c
index 411bc85b74f55dca92d9adb598955798419ae23b..c60fc7abfa9307ebdec6a91474e4f3eb1fd59c55 100644
--- a/libavcodec/imc.c
+++ b/libavcodec/imc.c
@@ -997,7 +997,7 @@ static int imc_decode_frame(AVCodecContext *avctx, void *data,
 
     IMCContext *q = avctx->priv_data;
 
-    LOCAL_ALIGNED_16(uint16_t, buf16, [IMC_BLOCK_SIZE / 2]);
+    LOCAL_ALIGNED_16(uint16_t, buf16, [(IMC_BLOCK_SIZE + FF_INPUT_BUFFER_PADDING_SIZE) / 2]);
 
     if (buf_size < IMC_BLOCK_SIZE * avctx->channels) {
         av_log(avctx, AV_LOG_ERROR, "frame too small!\n");