]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/4xm.c
Merge remote-tracking branch 'qatar/master'
[ffmpeg] / libavcodec / 4xm.c
index 53ee855160838e4ef62dd585bbca01c3e2439e8f..e18687059021bbda409f569bc2f726ac9b4c2668 100644 (file)
@@ -240,15 +240,18 @@ static void idct(DCTELEM block[64])
 
 static av_cold void init_vlcs(FourXContext *f)
 {
-    static VLC_TYPE table[8][32][2];
-    int i;
-
-    for (i = 0; i < 8; i++) {
-        block_type_vlc[0][i].table           = table[i];
-        block_type_vlc[0][i].table_allocated = 32;
-        init_vlc(&block_type_vlc[0][i], BLOCK_TYPE_VLC_BITS, 7,
-                 &block_type_tab[0][i][0][1], 2, 1,
-                 &block_type_tab[0][i][0][0], 2, 1, INIT_VLC_USE_NEW_STATIC);
+    static VLC_TYPE table[2][4][32][2];
+    int i, j;
+
+    for (i = 0; i < 2; i++) {
+        for (j = 0; j < 4; j++) {
+            block_type_vlc[i][j].table           = table[i][j];
+            block_type_vlc[i][j].table_allocated = 32;
+            init_vlc(&block_type_vlc[i][j], BLOCK_TYPE_VLC_BITS, 7,
+                     &block_type_tab[i][j][0][1], 2, 1,
+                     &block_type_tab[i][j][0][0], 2, 1,
+                     INIT_VLC_USE_NEW_STATIC);
+        }
     }
 }
 
@@ -578,7 +581,7 @@ static int decode_i_mb(FourXContext *f)
 static const uint8_t *read_huffman_tables(FourXContext *f,
                                           const uint8_t * const buf, int buf_size)
 {
-    int frequency[512];
+    int frequency[512] = { 0 };
     uint8_t flag[512];
     int up[512];
     uint8_t len_tab[257];
@@ -588,7 +591,6 @@ static const uint8_t *read_huffman_tables(FourXContext *f,
     const uint8_t *ptr_end = buf + buf_size;
     int j;
 
-    memset(frequency, 0, sizeof(frequency));
     memset(up, -1, sizeof(up));
 
     start = *ptr++;
@@ -691,10 +693,9 @@ static int decode_i2_frame(FourXContext *f, const uint8_t *buf, int length)
 
     for (y = 0; y < height; y += 16) {
         for (x = 0; x < width; x += 16) {
-            unsigned int color[4], bits;
+            unsigned int color[4] = { 0 }, bits;
             if (buf_end - buf < 8)
                 return -1;
-            memset(color, 0, sizeof(color));
             // warning following is purely guessed ...
             color[0] = bytestream2_get_le16u(&g3);
             color[1] = bytestream2_get_le16u(&g3);