mirror of https://git.ffmpeg.org/ffmpeg.git
nellymoser: Convert to the new bitstream reader
Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
parent
15d4dbfd4a
commit
6f94a64bd6
|
@ -38,8 +38,8 @@
|
||||||
|
|
||||||
#define BITSTREAM_READER_LE
|
#define BITSTREAM_READER_LE
|
||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
|
#include "bitstream.h"
|
||||||
#include "fft.h"
|
#include "fft.h"
|
||||||
#include "get_bits.h"
|
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "nellymoser.h"
|
#include "nellymoser.h"
|
||||||
#include "sinewin.h"
|
#include "sinewin.h"
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
typedef struct NellyMoserDecodeContext {
|
typedef struct NellyMoserDecodeContext {
|
||||||
AVCodecContext* avctx;
|
AVCodecContext* avctx;
|
||||||
AVLFG random_state;
|
AVLFG random_state;
|
||||||
GetBitContext gb;
|
BitstreamContext bc;
|
||||||
float scale_bias;
|
float scale_bias;
|
||||||
AVFloatDSPContext fdsp;
|
AVFloatDSPContext fdsp;
|
||||||
FFTContext imdct_ctx;
|
FFTContext imdct_ctx;
|
||||||
|
@ -67,14 +67,14 @@ static void nelly_decode_block(NellyMoserDecodeContext *s,
|
||||||
int bits[NELLY_BUF_LEN];
|
int bits[NELLY_BUF_LEN];
|
||||||
unsigned char v;
|
unsigned char v;
|
||||||
|
|
||||||
init_get_bits(&s->gb, block, NELLY_BLOCK_LEN * 8);
|
bitstream_init(&s->bc, block, NELLY_BLOCK_LEN * 8);
|
||||||
|
|
||||||
bptr = buf;
|
bptr = buf;
|
||||||
pptr = pows;
|
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++) {
|
for (i=0 ; i<NELLY_BANDS ; i++) {
|
||||||
if (i > 0)
|
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;
|
pval = -pow(2, val/2048) * s->scale_bias;
|
||||||
for (j = 0; j < ff_nelly_band_sizes_table[i]; j++) {
|
for (j = 0; j < ff_nelly_band_sizes_table[i]; j++) {
|
||||||
*bptr++ = val;
|
*bptr++ = val;
|
||||||
|
@ -88,8 +88,8 @@ static void nelly_decode_block(NellyMoserDecodeContext *s,
|
||||||
for (i = 0; i < 2; i++) {
|
for (i = 0; i < 2; i++) {
|
||||||
aptr = audio + i * NELLY_BUF_LEN;
|
aptr = audio + i * NELLY_BUF_LEN;
|
||||||
|
|
||||||
init_get_bits(&s->gb, block, NELLY_BLOCK_LEN * 8);
|
bitstream_init(&s->bc, block, NELLY_BLOCK_LEN * 8);
|
||||||
skip_bits_long(&s->gb, NELLY_HEADER_BITS + i*NELLY_DETAIL_BITS);
|
bitstream_skip(&s->bc, NELLY_HEADER_BITS + i * NELLY_DETAIL_BITS);
|
||||||
|
|
||||||
for (j = 0; j < NELLY_FILL_LEN; j++) {
|
for (j = 0; j < NELLY_FILL_LEN; j++) {
|
||||||
if (bits[j] <= 0) {
|
if (bits[j] <= 0) {
|
||||||
|
@ -97,7 +97,7 @@ static void nelly_decode_block(NellyMoserDecodeContext *s,
|
||||||
if (av_lfg_get(&s->random_state) & 1)
|
if (av_lfg_get(&s->random_state) & 1)
|
||||||
aptr[j] *= -1.0;
|
aptr[j] *= -1.0;
|
||||||
} else {
|
} 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];
|
aptr[j] = ff_nelly_dequantization_table[(1<<bits[j])-1+v]*pows[j];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue