summaryrefslogtreecommitdiff
path: root/libavcodec/nellymoserdec.c
diff options
context:
space:
mode:
authorBenjamin Larsson <banan@ludd.ltu.se>2007-11-14 16:33:14 +0000
committerBenjamin Larsson <banan@ludd.ltu.se>2007-11-14 16:33:14 +0000
commit2b992d0e8881e63f605a3fa1f2436e3a89f60957 (patch)
tree0b1733305d5155d426e2fb08d8828e1f4a4d1995 /libavcodec/nellymoserdec.c
parent97c8b06470419f2451f954ae1b9114bcb8f6c816 (diff)
Small simplification
Originally committed as revision 11026 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/nellymoserdec.c')
-rw-r--r--libavcodec/nellymoserdec.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/libavcodec/nellymoserdec.c b/libavcodec/nellymoserdec.c
index 58802025c1..0a51e8b42c 100644
--- a/libavcodec/nellymoserdec.c
+++ b/libavcodec/nellymoserdec.c
@@ -123,9 +123,9 @@ static void overlap_and_window(NellyMoserDecodeContext *s, float *state, float *
while (bot < NELLY_BUF_LEN/4) {
s_bot = audio[bot];
- s_top = audio[top];
- audio[bot] = (audio[mid_up]*sine_window[bot]-state[bot ]*sine_window[top])/s->scale_bias + s->add_bias;
- audio[top] = (-state[bot ]*sine_window[bot]-audio[mid_up]*sine_window[top])/s->scale_bias + s->add_bias;
+ s_top = -audio[top];
+ audio[bot] = (-audio[mid_up]*sine_window[bot]-state[bot ]*sine_window[top])/s->scale_bias + s->add_bias;
+ audio[top] = (-state[bot ]*sine_window[bot]+audio[mid_up]*sine_window[top])/s->scale_bias + s->add_bias;
state[bot] = audio[mid_down];
audio[mid_down] = (s_top *sine_window[mid_down]-state[mid_down]*sine_window[mid_up])/s->scale_bias + s->add_bias;
@@ -281,7 +281,6 @@ void nelly_decode_block(NellyMoserDecodeContext *s, unsigned char block[NELLY_BL
float *aptr, *bptr, *pptr, val, pval;
int bits[NELLY_BUF_LEN];
unsigned char v;
- float a;
init_get_bits(&s->gb, block, NELLY_BLOCK_LEN * 8);
@@ -324,10 +323,9 @@ void nelly_decode_block(NellyMoserDecodeContext *s, unsigned char block[NELLY_BL
aptr, s->imdct_tmp);
/* XXX: overlapping and windowing should be part of a more
generic imdct function */
- a = 1.0 / 8.0;
for(j = 0; j < NELLY_BUF_LEN / 2; j++) {
- aptr[j] = s->imdct_out[j + NELLY_BUF_LEN + NELLY_BUF_LEN / 2] * a;
- aptr[j + NELLY_BUF_LEN / 2] = -s->imdct_out[j] * a;
+ aptr[j] = s->imdct_out[j + NELLY_BUF_LEN + NELLY_BUF_LEN / 2];
+ aptr[j + NELLY_BUF_LEN / 2] = s->imdct_out[j];
}
overlap_and_window(s, s->state, aptr);
}
@@ -345,10 +343,10 @@ static int decode_init(AVCodecContext * avctx) {
if(s->dsp.float_to_int16 == ff_float_to_int16_c) {
s->add_bias = 385;
- s->scale_bias = 32768;
+ s->scale_bias = 8*32768;
} else {
s->add_bias = 0;
- s->scale_bias = 1;
+ s->scale_bias = 1*8;
}
/* Generate overlap window */