|
@@ -1548,14 +1548,6 @@ static uint32 get_bits(vorb *f, int n)
|
|
return z;
|
|
return z;
|
|
}
|
|
}
|
|
|
|
|
|
-static int32 get_bits_signed(vorb *f, int n)
|
|
|
|
-{
|
|
|
|
- uint32 z = get_bits(f, n);
|
|
|
|
- if (z & (1 << (n-1)))
|
|
|
|
- z += ~((1 << n) - 1);
|
|
|
|
- return (int32) z;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
// @OPTIMIZE: primary accumulator for huffman
|
|
// @OPTIMIZE: primary accumulator for huffman
|
|
// expand the buffer to as many bits as possible without reading off end of packet
|
|
// expand the buffer to as many bits as possible without reading off end of packet
|
|
// it might be nice to allow f->valid_bits and f->acc to be stored in registers,
|
|
// it might be nice to allow f->valid_bits and f->acc to be stored in registers,
|
|
@@ -1639,23 +1631,6 @@ static int codebook_decode_scalar_raw(vorb *f, Codebook *c)
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
-static int codebook_decode_scalar(vorb *f, Codebook *c)
|
|
|
|
-{
|
|
|
|
- int i;
|
|
|
|
- if (f->valid_bits < STB_VORBIS_FAST_HUFFMAN_LENGTH)
|
|
|
|
- prep_huffman(f);
|
|
|
|
- // fast huffman table lookup
|
|
|
|
- i = f->acc & FAST_HUFFMAN_TABLE_MASK;
|
|
|
|
- i = c->fast_huffman[i];
|
|
|
|
- if (i >= 0) {
|
|
|
|
- f->acc >>= c->codeword_lengths[i];
|
|
|
|
- f->valid_bits -= c->codeword_lengths[i];
|
|
|
|
- if (f->valid_bits < 0) { f->valid_bits = 0; return -1; }
|
|
|
|
- return i;
|
|
|
|
- }
|
|
|
|
- return codebook_decode_scalar_raw(f,c);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
#ifndef STB_VORBIS_NO_INLINE_DECODE
|
|
#ifndef STB_VORBIS_NO_INLINE_DECODE
|
|
|
|
|
|
#define DECODE_RAW(var, f,c) \
|
|
#define DECODE_RAW(var, f,c) \
|
|
@@ -1674,6 +1649,23 @@ static int codebook_decode_scalar(vorb *f, Codebook *c)
|
|
|
|
|
|
#else
|
|
#else
|
|
|
|
|
|
|
|
+static int codebook_decode_scalar(vorb *f, Codebook *c)
|
|
|
|
+{
|
|
|
|
+ int i;
|
|
|
|
+ if (f->valid_bits < STB_VORBIS_FAST_HUFFMAN_LENGTH)
|
|
|
|
+ prep_huffman(f);
|
|
|
|
+ // fast huffman table lookup
|
|
|
|
+ i = f->acc & FAST_HUFFMAN_TABLE_MASK;
|
|
|
|
+ i = c->fast_huffman[i];
|
|
|
|
+ if (i >= 0) {
|
|
|
|
+ f->acc >>= c->codeword_lengths[i];
|
|
|
|
+ f->valid_bits -= c->codeword_lengths[i];
|
|
|
|
+ if (f->valid_bits < 0) { f->valid_bits = 0; return -1; }
|
|
|
|
+ return i;
|
|
|
|
+ }
|
|
|
|
+ return codebook_decode_scalar_raw(f,c);
|
|
|
|
+}
|
|
|
|
+
|
|
#define DECODE_RAW(var,f,c) var = codebook_decode_scalar(f,c);
|
|
#define DECODE_RAW(var,f,c) var = codebook_decode_scalar(f,c);
|
|
|
|
|
|
#endif
|
|
#endif
|