diff nellymoserdec.c @ 6613:54f88d1cee72 libavcodec

Move scale_bias to a more sane place. I am starting to wonder how this trash got into svn ...
author michael
date Wed, 16 Apr 2008 15:28:11 +0000
parents 80cadb0595fb
children d525255f5688
line wrap: on
line diff
--- a/nellymoserdec.c	Wed Apr 16 15:03:07 2008 +0000
+++ b/nellymoserdec.c	Wed Apr 16 15:28:11 2008 +0000
@@ -96,7 +96,7 @@
     AVRandomState   random_state;
     GetBitContext   gb;
     int             add_bias;
-    int             scale_bias;
+    float           scale_bias;
     DSPContext      dsp;
     MDCTContext     imdct_ctx;
     DECLARE_ALIGNED_16(float,imdct_tmp[NELLY_BUF_LEN]);
@@ -120,7 +120,7 @@
     top = NELLY_BUF_LEN-1;
 
     while (bot < NELLY_BUF_LEN) {
-        audio[bot] = ( a_in[bot]*sine_window[bot]+state[bot]*sine_window[top])/s->scale_bias + s->add_bias;
+        audio[bot] = a_in[bot]*sine_window[bot]+state[bot]*sine_window[top] + s->add_bias;
 
         bot++;
         top--;
@@ -279,7 +279,7 @@
     for (i=0 ; i<NELLY_BANDS ; i++) {
         if (i > 0)
             val += nelly_delta_table[get_bits(&s->gb, 5)];
-        pval = pow(2, val/2048);
+        pval = pow(2, val/2048) * s->scale_bias;
         for (j = 0; j < nelly_band_sizes_table[i]; j++) {
             *bptr++ = val;
             *pptr++ = pval;
@@ -328,10 +328,10 @@
 
     if(s->dsp.float_to_int16 == ff_float_to_int16_c) {
         s->add_bias = 385;
-        s->scale_bias = 8*32768;
+        s->scale_bias = 1.0/(8*32768);
     } else {
         s->add_bias = 0;
-        s->scale_bias = 1*8;
+        s->scale_bias = 1.0/(1*8);
     }
 
     /* Generate overlap window */