mirror of https://git.ffmpeg.org/ffmpeg.git
adx: Convert to the new bitstream reader
This commit is contained in:
parent
9aec009f65
commit
4e25051031
|
@ -20,9 +20,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "libavutil/intreadwrite.h"
|
#include "libavutil/intreadwrite.h"
|
||||||
|
|
||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
#include "adx.h"
|
#include "adx.h"
|
||||||
#include "get_bits.h"
|
#include "bitstream.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -66,7 +67,7 @@ static int adx_decode(ADXContext *c, int16_t *out, int offset,
|
||||||
const uint8_t *in, int ch)
|
const uint8_t *in, int ch)
|
||||||
{
|
{
|
||||||
ADXChannelState *prev = &c->prev[ch];
|
ADXChannelState *prev = &c->prev[ch];
|
||||||
GetBitContext gb;
|
BitstreamContext bc;
|
||||||
int scale = AV_RB16(in);
|
int scale = AV_RB16(in);
|
||||||
int i;
|
int i;
|
||||||
int s0, s1, s2, d;
|
int s0, s1, s2, d;
|
||||||
|
@ -75,12 +76,12 @@ static int adx_decode(ADXContext *c, int16_t *out, int offset,
|
||||||
if (scale & 0x8000)
|
if (scale & 0x8000)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
init_get_bits(&gb, in + 2, (BLOCK_SIZE - 2) * 8);
|
bitstream_init(&bc, in + 2, (BLOCK_SIZE - 2) * 8);
|
||||||
out += offset;
|
out += offset;
|
||||||
s1 = prev->s1;
|
s1 = prev->s1;
|
||||||
s2 = prev->s2;
|
s2 = prev->s2;
|
||||||
for (i = 0; i < BLOCK_SAMPLES; i++) {
|
for (i = 0; i < BLOCK_SAMPLES; i++) {
|
||||||
d = get_sbits(&gb, 4);
|
d = bitstream_read_signed(&bc, 4);
|
||||||
s0 = ((d << COEFF_BITS) * scale + c->coeff[0] * s1 + c->coeff[1] * s2) >> COEFF_BITS;
|
s0 = ((d << COEFF_BITS) * scale + c->coeff[0] * s1 + c->coeff[1] * s2) >> COEFF_BITS;
|
||||||
s2 = s1;
|
s2 = s1;
|
||||||
s1 = av_clip_int16(s0);
|
s1 = av_clip_int16(s0);
|
||||||
|
|
Loading…
Reference in New Issue