mixer.c: Fix doxygen \file description.
[paraslash.git] / imdct.c
diff --git a/imdct.c b/imdct.c
index 3495e61..93577b5 100644 (file)
--- a/imdct.c
+++ b/imdct.c
@@ -7,18 +7,14 @@
  * Copyright (c) 2002 Fabrice Bellard
  * Partly based on libdjbfft by D. J. Bernstein
  *
- * Licensed under the GNU Lesser General Public License.
- * For licencing details see COPYING.LIB.
+ * Licensed under the GNU Lesser General Public License, see file COPYING.LIB.
  */
 
 /**
  * \file imdct.c Inverse modified discrete cosine transform.
  */
 
-#include <inttypes.h>
 #include <math.h>
-#include <string.h>
-#include <stdlib.h>
 #include <regex.h>
 
 #include "para.h"
@@ -58,8 +54,10 @@ struct mdct_context {
        struct fft_context fft;
 };
 
-/** cos(2 * pi * x / n) for 0 <= x <= n / 4, followed by its reverse */
-#define COSINE_TAB(n) fftsample_t cos_ ## n[n / 2] __aligned(16)
+/** \cond cosine_tabs */
+
+/* cos(2 * pi * x / n) for 0 <= x <= n / 4, followed by its reverse */
+#define COSINE_TAB(n) static fftsample_t cos_ ## n[n / 2] __a_aligned(16)
 
 COSINE_TAB(16);
 COSINE_TAB(32);
@@ -79,8 +77,9 @@ static fftsample_t *cos_tabs[] = {
        cos_16, cos_32, cos_64, cos_128, cos_256, cos_512, cos_1024, cos_2048,
        cos_4096, cos_8192, cos_16384, cos_32768, cos_65536,
 };
+/** \endcond cosine_tabs */
 
-static int split_radix_permutation(int i, int n)
+__a_const static int split_radix_permutation(int i, int n)
 {
        int m;
        if (n <= 2)
@@ -141,28 +140,26 @@ static int split_radix_permutation(int i, int n)
 }
 
 /* z[0...8n - 1], w[1...2n - 1] */
-#define PASS(name)\
-static void name(struct fft_complex *z, const fftsample_t *wre, unsigned int n)\
-{\
-       fftsample_t t1, t2, t3, t4, t5, t6;\
-       int o1 = 2 * n;\
-       int o2 = 4 * n;\
-       int o3 = 6 * n;\
-       const fftsample_t *wim = wre + o1;\
-       n--;\
-\
-       TRANSFORM_ZERO(z[0], z[o1], z[o2], z[o3]);\
-       TRANSFORM(z[1], z[o1 + 1], z[o2 + 1], z[o3 + 1], wre[1], wim[-1]);\
-       do {\
-               z += 2;\
-               wre += 2;\
-               wim -= 2;\
-               TRANSFORM(z[0], z[o1], z[o2], z[o3], wre[0], wim[0]);\
-               TRANSFORM(z[1], z[o1 + 1], z[o2 + 1], z[o3 + 1], wre[1], wim[-1]);\
-       } while (--n);\
+static void pass(struct fft_complex *z, const fftsample_t *wre, unsigned int n)
+{
+       fftsample_t t1, t2, t3, t4, t5, t6;
+       int o1 = 2 * n;
+       int o2 = 4 * n;
+       int o3 = 6 * n;
+       const fftsample_t *wim = wre + o1;
+
+       n--;
+       TRANSFORM_ZERO(z[0], z[o1], z[o2], z[o3]);
+       TRANSFORM(z[1], z[o1 + 1], z[o2 + 1], z[o3 + 1], wre[1], wim[-1]);
+       do {
+               z += 2;
+               wre += 2;
+               wim -= 2;
+               TRANSFORM(z[0], z[o1], z[o2], z[o3], wre[0], wim[0]);
+               TRANSFORM(z[1], z[o1 + 1], z[o2 + 1], z[o3 + 1], wre[1], wim[-1]);
+       } while (--n);
 }
 
-PASS(pass)
 #undef BUTTERFLIES
 #define BUTTERFLIES BUTTERFLIES_BIG
 
@@ -293,7 +290,6 @@ static void imdct_half(struct mdct_context *s, fftsample_t *output,
        fft(&s->fft, z);
 
        /* post rotation + reordering */
-       output += n4;
        for (k = 0; k < n8; k++) {
                fftsample_t r0, i0, r1, i1;
                CMUL(r0, i1, z[n8 - k - 1].im, z[n8 - k - 1].re,