From 494bce6224c7da6a174fb16a49ed26e5aab32af1 Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Sat, 24 Mar 2012 07:29:51 +0100 Subject: 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. --- libavcodec/ralf.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'libavcodec/ralf.c') diff --git a/libavcodec/ralf.c b/libavcodec/ralf.c index 38e7e69cb7..0e5b04663f 100644 --- a/libavcodec/ralf.c +++ b/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++) -- cgit v1.2.3