do the -1 outside of the transform
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 16 Apr 2008 14:49:10 +0000 (14:49 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 16 Apr 2008 14:49:10 +0000 (14:49 +0000)
Originally committed as revision 12852 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/nellymoserdec.c

index 204910d..9324df4 100644 (file)
@@ -120,8 +120,8 @@ static void overlap_and_window(NellyMoserDecodeContext *s, float *state, float *
     top = NELLY_BUF_LEN-1;
 
     while (bot < NELLY_BUF_LEN/2) {
-        audio[bot] =  (- a_in[bot]*sine_window[bot]-state[bot]*sine_window[top])/s->scale_bias + s->add_bias;
-        audio[top] =  (-state[bot]*sine_window[bot]- a_in[top]*sine_window[top])/s->scale_bias + s->add_bias;
+        audio[bot] = ( a_in[bot]*sine_window[bot]+state[bot]*sine_window[top])/s->scale_bias + s->add_bias;
+        audio[top] = (state[bot]*sine_window[bot]+ a_in[top]*sine_window[top])/s->scale_bias + s->add_bias;
         state[bot] = a_in[bot + NELLY_BUF_LEN];
 
         bot++;
@@ -299,11 +299,11 @@ void nelly_decode_block(NellyMoserDecodeContext *s, const unsigned char block[NE
         for (j = 0; j < NELLY_FILL_LEN; j++) {
             if (bits[j] <= 0) {
                 aptr[j] = M_SQRT1_2*pows[j];
-                if (av_random(&s->random_state) & 1)
+                if (!(av_random(&s->random_state) & 1))
                     aptr[j] *= -1.0;
             } else {
                 v = get_bits(&s->gb, bits[j]);
-                aptr[j] = dequantization_table[(1<<bits[j])-1+v]*pows[j];
+                aptr[j] = -dequantization_table[(1<<bits[j])-1+v]*pows[j];
             }
         }
         memset(&aptr[NELLY_FILL_LEN], 0,