summaryrefslogtreecommitdiff
path: root/libavcodec/bitstream.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-06-16 18:46:14 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-06-16 19:10:32 +0200
commitf7f96cf4bcc369730bb945e993bec53881e212f5 (patch)
tree82ffc813726fb8ded2e511cd2f603b5326ab29c4 /libavcodec/bitstream.c
parent600cbf367231b187c6d7194810c3b350f8fa1d39 (diff)
avcodec/bitstream: fill invalid vlc tables entries as last pass instead of first
This avoids writing entries twice Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/bitstream.c')
-rw-r--r--libavcodec/bitstream.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/libavcodec/bitstream.c b/libavcodec/bitstream.c
index 2d3f6067d3..c61243e7a6 100644
--- a/libavcodec/bitstream.c
+++ b/libavcodec/bitstream.c
@@ -174,11 +174,6 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes,
return table_index;
table = &vlc->table[table_index];
- for (i = 0; i < table_size; i++) {
- table[i][1] = 0; //bits
- table[i][0] = -1; //codes
- }
-
/* first pass: map codes and compute auxiliary table sizes */
for (i = 0; i < nb_codes; i++) {
n = codes[i].bits;
@@ -237,6 +232,12 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes,
i = k-1;
}
}
+
+ for (i = 0; i < table_size; i++) {
+ if (table[i][1] == 0) //bits
+ table[i][0] = -1; //codes
+ }
+
return table_index;
}