Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.xiph.org/xiph/opus.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@jmvalin.ca>2013-12-21 08:13:29 +0400
committerJean-Marc Valin <jmvalin@jmvalin.ca>2013-12-21 08:13:29 +0400
commit2e26b82ec24060f61bc553d1f36efad49d97167e (patch)
treef117eec6d7bff76293d5c1c617dd2f260c1b1699 /celt/kiss_fft.c
parent8e02afcfff4d1e4ddbf06a5b6878d49d6c3fccb5 (diff)
Moves the bitrev step to the IMDCT pre-rotation
Diffstat (limited to 'celt/kiss_fft.c')
-rw-r--r--celt/kiss_fft.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/celt/kiss_fft.c b/celt/kiss_fft.c
index ad706c73..39c4d7ec 100644
--- a/celt/kiss_fft.c
+++ b/celt/kiss_fft.c
@@ -665,7 +665,7 @@ void opus_fft(const kiss_fft_state *st,const kiss_fft_cpx *fin,kiss_fft_cpx *fou
}
}
-void opus_ifft(const kiss_fft_state *st,const kiss_fft_cpx *fin,kiss_fft_cpx *fout)
+void opus_ifft_impl(const kiss_fft_state *st,kiss_fft_cpx *fout)
{
int m2, m;
int p;
@@ -676,11 +676,6 @@ void opus_ifft(const kiss_fft_state *st,const kiss_fft_cpx *fin,kiss_fft_cpx *fo
/* st->shift can be -1 */
shift = st->shift>0 ? st->shift : 0;
- celt_assert2 (fin != fout, "In-place FFT not supported");
- /* Bit-reverse the input */
- for (i=0;i<st->nfft;i++)
- fout[st->bitrev[i]] = fin[i];
-
fstride[0] = 1;
L=0;
do {
@@ -717,3 +712,14 @@ void opus_ifft(const kiss_fft_state *st,const kiss_fft_cpx *fin,kiss_fft_cpx *fo
}
}
+#ifdef TEST_UNIT_DFT_C
+void opus_ifft(const kiss_fft_state *st,const kiss_fft_cpx *fin,kiss_fft_cpx *fout)
+{
+ int i;
+ celt_assert2 (fin != fout, "In-place FFT not supported");
+ /* Bit-reverse the input */
+ for (i=0;i<st->nfft;i++)
+ fout[st->bitrev[i]] = fin[i];
+ opus_ifft_impl(st, fout);
+}
+#endif