ralf: read Huffman code lengths without GetBitContext

Those descriptions are stored in nibbles, so they are easy to extract.
And this way we don't need to pad tables for possible bit reader overreads.
pull/4/head
Kostya Shishkov 13 years ago
parent cb7190cd2c
commit 494bce6224
  1. 8
      libavcodec/ralf.c

@ -80,17 +80,17 @@ static int init_ralf_vlc(VLC *vlc, const uint8_t *data, int elems)
int counts[17], prefixes[18];
int i, cur_len;
int max_bits = 0;
GetBitContext gb;
init_get_bits(&gb, data, elems * 4);
int nb = 0;
for (i = 0; i <= 16; i++)
counts[i] = 0;
for (i = 0; i < elems; i++) {
cur_len = get_bits(&gb, 4) + 1;
cur_len = (nb ? *data & 0xF : *data >> 4) + 1;
counts[cur_len]++;
max_bits = FFMAX(max_bits, cur_len);
lens[i] = cur_len;
data += nb;
nb ^= 1;
}
prefixes[1] = 0;
for (i = 1; i <= 16; i++)

Loading…
Cancel
Save