Commit 6f94a64b authored by Alexandra Hájková's avatar Alexandra Hájková Committed by Anton Khirnov

nellymoser: Convert to the new bitstream reader

Signed-off-by: 's avatarAnton Khirnov <anton@khirnov.net>
parent 15d4dbfd
......@@ -38,8 +38,8 @@
#define BITSTREAM_READER_LE
#include "avcodec.h"
#include "bitstream.h"
#include "fft.h"
#include "get_bits.h"
#include "internal.h"
#include "nellymoser.h"
#include "sinewin.h"
......@@ -48,7 +48,7 @@
typedef struct NellyMoserDecodeContext {
AVCodecContext* avctx;
AVLFG random_state;
GetBitContext gb;
BitstreamContext bc;
float scale_bias;
AVFloatDSPContext fdsp;
FFTContext imdct_ctx;
......@@ -67,14 +67,14 @@ static void nelly_decode_block(NellyMoserDecodeContext *s,
int bits[NELLY_BUF_LEN];
unsigned char v;
init_get_bits(&s->gb, block, NELLY_BLOCK_LEN * 8);
bitstream_init(&s->bc, block, NELLY_BLOCK_LEN * 8);
bptr = buf;
pptr = pows;
val = ff_nelly_init_table[get_bits(&s->gb, 6)];
val = ff_nelly_init_table[bitstream_read(&s->bc, 6)];
for (i=0 ; i<NELLY_BANDS ; i++) {
if (i > 0)
val += ff_nelly_delta_table[get_bits(&s->gb, 5)];
val += ff_nelly_delta_table[bitstream_read(&s->bc, 5)];
pval = -pow(2, val/2048) * s->scale_bias;
for (j = 0; j < ff_nelly_band_sizes_table[i]; j++) {
*bptr++ = val;
......@@ -88,8 +88,8 @@ static void nelly_decode_block(NellyMoserDecodeContext *s,
for (i = 0; i < 2; i++) {
aptr = audio + i * NELLY_BUF_LEN;
init_get_bits(&s->gb, block, NELLY_BLOCK_LEN * 8);
skip_bits_long(&s->gb, NELLY_HEADER_BITS + i*NELLY_DETAIL_BITS);
bitstream_init(&s->bc, block, NELLY_BLOCK_LEN * 8);
bitstream_skip(&s->bc, NELLY_HEADER_BITS + i * NELLY_DETAIL_BITS);
for (j = 0; j < NELLY_FILL_LEN; j++) {
if (bits[j] <= 0) {
......@@ -97,7 +97,7 @@ static void nelly_decode_block(NellyMoserDecodeContext *s,
if (av_lfg_get(&s->random_state) & 1)
aptr[j] *= -1.0;
} else {
v = get_bits(&s->gb, bits[j]);
v = bitstream_read(&s->bc, bits[j]);
aptr[j] = ff_nelly_dequantization_table[(1<<bits[j])-1+v]*pows[j];
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment