diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c
index 88652f9fe12ee189d681ff038ac1d3ece760b75c..fa3f23f58e6700d4c5286df4a75d5b05482fc268 100644
--- a/libavcodec/rv34.c
+++ b/libavcodec/rv34.c
@@ -103,8 +103,8 @@ static void rv34_gen_vlc(const uint8_t *bits, int size, VLC *vlc, const uint8_t
 {
     int i;
     int counts[17] = {0}, codes[17];
-    uint16_t cw[size], syms[size];
-    uint8_t bits2[size];
+    uint16_t cw[MAX_VLC_SIZE], syms[MAX_VLC_SIZE];
+    uint8_t bits2[MAX_VLC_SIZE];
     int maxbits = 0, realsize = 0;
 
     for(i = 0; i < size; i++){
diff --git a/libavcodec/rv34vlc.h b/libavcodec/rv34vlc.h
index 2b89e4cb467d03b80eaacc3a60a3c59dbe565ade..aa29357c78e0e07f2b339ecda1e6da618b4773c3 100644
--- a/libavcodec/rv34vlc.h
+++ b/libavcodec/rv34vlc.h
@@ -37,6 +37,7 @@
 #define FIRSTBLK_VLC_SIZE  864
 #define OTHERBLK_VLC_SIZE  108
 #define COEFF_VLC_SIZE      32
+#define MAX_VLC_SIZE      1296
 
 static const uint8_t rv34_table_intra_cbppat[NUM_INTRA_TABLES][2][CBPPAT_VLC_SIZE] = {
   {