summaryrefslogtreecommitdiff
path: root/libavcodec/mpegaudiodec_float.c
diff options
context:
space:
mode:
authorMåns Rullgård <mans@mansr.com>2010-07-01 23:21:20 +0000
committerMåns Rullgård <mans@mansr.com>2010-07-01 23:21:20 +0000
commit59bebb11e01981346c5e2f5b3e557a45ff89823f (patch)
treec104a9326029154ec8a312e4b1062cd016b55165 /libavcodec/mpegaudiodec_float.c
parent35d597d556af54ead069fe63ef6d8fa403af4340 (diff)
mpegaudio: move compute_antialias_float() to mpegaudiodec_float.c
Also put compute_antialias_integer() under !CONFIG_FLOAT and change forward declarations to declare only the relevant one of these. Fixes warnings about unused functions and pointer type mismatches. Originally committed as revision 23950 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mpegaudiodec_float.c')
-rw-r--r--libavcodec/mpegaudiodec_float.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/libavcodec/mpegaudiodec_float.c b/libavcodec/mpegaudiodec_float.c
index a8aebba654..93adaf8cc8 100644
--- a/libavcodec/mpegaudiodec_float.c
+++ b/libavcodec/mpegaudiodec_float.c
@@ -41,6 +41,45 @@ void ff_mpa_synth_filter_float(MPADecodeContext *s, float *synth_buf_ptr,
*synth_buf_offset = offset;
}
+static void compute_antialias_float(MPADecodeContext *s,
+ GranuleDef *g)
+{
+ float *ptr;
+ int n, i;
+
+ /* we antialias only "long" bands */
+ if (g->block_type == 2) {
+ if (!g->switch_point)
+ return;
+ /* XXX: check this for 8000Hz case */
+ n = 1;
+ } else {
+ n = SBLIMIT - 1;
+ }
+
+ ptr = g->sb_hybrid + 18;
+ for(i = n;i > 0;i--) {
+ float tmp0, tmp1;
+ float *csa = &csa_table_float[0][0];
+#define FLOAT_AA(j)\
+ tmp0= ptr[-1-j];\
+ tmp1= ptr[ j];\
+ ptr[-1-j] = tmp0 * csa[0+4*j] - tmp1 * csa[1+4*j];\
+ ptr[ j] = tmp0 * csa[1+4*j] + tmp1 * csa[0+4*j];
+
+ FLOAT_AA(0)
+ FLOAT_AA(1)
+ FLOAT_AA(2)
+ FLOAT_AA(3)
+ FLOAT_AA(4)
+ FLOAT_AA(5)
+ FLOAT_AA(6)
+ FLOAT_AA(7)
+
+ ptr += 18;
+ }
+}
+
#if CONFIG_MP1FLOAT_DECODER
AVCodec mp1float_decoder =
{