diff mpegaudiodec_float.c @ 12044:49c528a39187 libavcodec

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.
author mru
date Thu, 01 Jul 2010 23:21:20 +0000
parents 3f3d08bb5cf8
children fb3fcaf3c1b6
line wrap: on
line diff
--- a/mpegaudiodec_float.c	Thu Jul 01 23:21:17 2010 +0000
+++ b/mpegaudiodec_float.c	Thu Jul 01 23:21:20 2010 +0000
@@ -41,6 +41,45 @@
     *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 =
 {