Make binkaudio work with ff_float_to_int16_interleave_c (martin at martin dot st)
authorPeter Ross <pross@xvid.org>
Thu, 11 Mar 2010 10:52:34 +0000 (10:52 +0000)
committerPeter Ross <pross@xvid.org>
Thu, 11 Mar 2010 10:52:34 +0000 (10:52 +0000)
Originally committed as revision 22466 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/binkaudio.c

index b9d3df8..5fbc2de 100644 (file)
@@ -222,6 +222,11 @@ static void decode_block(BinkAudioContext *s, short *out, int use_dct)
             ff_rdft_calc(&s->trans.rdft, coeffs);
     }
 
+    if (s->dsp.float_to_int16_interleave == ff_float_to_int16_interleave_c) {
+        for (i = 0; i < s->channels; i++)
+            for (j = 0; j < s->frame_len; j++)
+                s->coeffs_ptr[i][j] = 385.0 + s->coeffs_ptr[i][j]*(1.0/32767.0);
+    }
     s->dsp.float_to_int16_interleave(out, (const float **)s->coeffs_ptr, s->frame_len, s->channels);
 
     if (!s->first) {