dont trash table in GET_VLC
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 11 Jul 2002 12:42:20 +0000 (12:42 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 11 Jul 2002 12:42:20 +0000 (12:42 +0000)
Originally committed as revision 741 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/common.c
libavcodec/common.h

index abfa190..63d17b6 100644 (file)
@@ -286,7 +286,7 @@ static int build_table(VLC *vlc, int table_nb_bits,
                 return -1;
             /* note: realloc has been done, so reload tables */
             table = &vlc->table[table_index];
-            table[i][0] = index - table_index; //code
+            table[i][0] = index; //code
         }
     }
     return table_index;
index 8044880..13ac069 100644 (file)
@@ -724,7 +724,6 @@ int init_vlc(VLC *vlc, int nb_bits, int nb_codes,
              const void *codes, int codes_wrap, int codes_size);
 void free_vlc(VLC *vlc);
 
-//note table will be trashed (pointer increased)
 #define GET_VLC(code, name, gb, table, bits, max_depth)\
 {\
     int n, index, nb_bits;\
@@ -738,9 +737,8 @@ void free_vlc(VLC *vlc);
         UPDATE_CACHE(name, gb)\
 \
         nb_bits = -n;\
-        table += code;\
 \
-        index= SHOW_UBITS(name, gb, nb_bits);\
+        index= SHOW_UBITS(name, gb, nb_bits) + code;\
         code = table[index][0];\
         n    = table[index][1];\
         if(max_depth > 2 && n < 0){\
@@ -748,9 +746,8 @@ void free_vlc(VLC *vlc);
             UPDATE_CACHE(name, gb)\
 \
             nb_bits = -n;\
-            table += code;\
 \
-            index= SHOW_UBITS(name, gb, nb_bits);\
+            index= SHOW_UBITS(name, gb, nb_bits) + code;\
             code = table[index][0];\
             n    = table[index][1];\
         }\