projects
/
paraslash.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
audioc.c: Always free IO buffer.
[paraslash.git]
/
imdct.c
diff --git
a/imdct.c
b/imdct.c
index ba5690b04e52bdd45ea2d433822d6e6da47fc19d..aab498a390ba3ecdeded2452120d729540e84184 100644
(file)
--- a/
imdct.c
+++ b/
imdct.c
@@
-59,7
+59,7
@@
struct mdct_context {
};
/** cos(2 * pi * x / n) for 0 <= x <= n / 4, followed by its reverse */
};
/** 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)
+#define COSINE_TAB(n)
static fftsample_t cos_ ## n[n / 2] __a
_aligned(16)
COSINE_TAB(16);
COSINE_TAB(32);
COSINE_TAB(16);
COSINE_TAB(32);
@@
-80,7
+80,7
@@
static fftsample_t *cos_tabs[] = {
cos_4096, cos_8192, cos_16384, cos_32768, cos_65536,
};
cos_4096, cos_8192, cos_16384, cos_32768, cos_65536,
};
-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)
{
int m;
if (n <= 2)
@@
-95,9
+95,6
@@
static int split_radix_permutation(int i, int n)
return split_radix_permutation(i, m) * 4 - 1;
}
return split_radix_permutation(i, m) * 4 - 1;
}
-/** 1 / sqrt(2). */
-#define SQRTHALF (float)0.70710678118654752440
-
#define BF(x, y, a, b) {\
x = a - b;\
y = a + b;\
#define BF(x, y, a, b) {\
x = a - b;\
y = a + b;\
@@
-209,7
+206,7
@@
static void fft8(struct fft_complex *z)
BF(z[6].re, z[2].re, z[2].re, t7);
BF(z[6].im, z[2].im, z[2].im, t8);
BF(z[6].re, z[2].re, z[2].re, t7);
BF(z[6].im, z[2].im, z[2].im, t8);
- TRANSFORM(z[1], z[3], z[5], z[7],
SQRTHALF, SQRTHALF
);
+ TRANSFORM(z[1], z[3], z[5], z[7],
M_SQRT1_2, M_SQRT1_2
);
}
static void fft16(struct fft_complex *z)
}
static void fft16(struct fft_complex *z)
@@
-221,7
+218,7
@@
static void fft16(struct fft_complex *z)
fft4(z + 12);
TRANSFORM_ZERO(z[0], z[4], z[8], z[12]);
fft4(z + 12);
TRANSFORM_ZERO(z[0], z[4], z[8], z[12]);
- TRANSFORM(z[2], z[6], z[10], z[14],
SQRTHALF, SQRTHALF
);
+ TRANSFORM(z[2], z[6], z[10], z[14],
M_SQRT1_2, M_SQRT1_2
);
TRANSFORM(z[1], z[5], z[9], z[13], cos_16[1], cos_16[3]);
TRANSFORM(z[3], z[7], z[11], z[15], cos_16[3], cos_16[1]);
}
TRANSFORM(z[1], z[5], z[9], z[13], cos_16[1], cos_16[3]);
TRANSFORM(z[3], z[7], z[11], z[15], cos_16[3], cos_16[1]);
}
@@
-296,7
+293,6
@@
static void imdct_half(struct mdct_context *s, fftsample_t *output,
fft(&s->fft, z);
/* post rotation + reordering */
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,
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,