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

gitlab.com/quite/celt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jean-marc.valin@usherbrooke.ca>2010-08-26 10:04:03 +0400
committerJean-Marc Valin <jean-marc.valin@usherbrooke.ca>2010-08-26 10:04:03 +0400
commit5d937c0223451943d6630d15087eb5e16d16b8d7 (patch)
treeeb7b7c3a2b93ea23dff501e8de18755a62e88f66 /libcelt/kiss_fft.c
parent40603b2f03c43b416263a41e5cb92268a03b96a3 (diff)
Disabling mdct and fft init code with static modes
Diffstat (limited to 'libcelt/kiss_fft.c')
-rw-r--r--libcelt/kiss_fft.c89
1 files changed, 47 insertions, 42 deletions
diff --git a/libcelt/kiss_fft.c b/libcelt/kiss_fft.c
index 861528a..3f25289 100644
--- a/libcelt/kiss_fft.c
+++ b/libcelt/kiss_fft.c
@@ -433,40 +433,6 @@ static void ki_bfly5(
#endif
-static
-void compute_bitrev_table(
- int Fout,
- celt_int16 *f,
- const size_t fstride,
- int in_stride,
- celt_int16 * factors,
- const kiss_fft_state *st
- )
-{
- const int p=*factors++; /* the radix */
- const int m=*factors++; /* stage's fft length/p */
-
- /*printf ("fft %d %d %d %d %d %d\n", p*m, m, p, s2, fstride*in_stride, N);*/
- if (m==1)
- {
- int j;
- for (j=0;j<p;j++)
- {
- *f = Fout+j;
- f += fstride*in_stride;
- }
- } else {
- int j;
- for (j=0;j<p;j++)
- {
- compute_bitrev_table( Fout , f, fstride*p, in_stride, factors,st);
- f += fstride*in_stride;
- Fout += m;
- }
- }
-}
-
-
static void kf_work(
kiss_fft_cpx * Fout,
const kiss_fft_cpx * f,
@@ -534,6 +500,43 @@ static void ki_work(
}
}
+
+#ifndef STATIC_MODES
+
+static
+void compute_bitrev_table(
+ int Fout,
+ celt_int16 *f,
+ const size_t fstride,
+ int in_stride,
+ celt_int16 * factors,
+ const kiss_fft_state *st
+ )
+{
+ const int p=*factors++; /* the radix */
+ const int m=*factors++; /* stage's fft length/p */
+
+ /*printf ("fft %d %d %d %d %d %d\n", p*m, m, p, s2, fstride*in_stride, N);*/
+ if (m==1)
+ {
+ int j;
+ for (j=0;j<p;j++)
+ {
+ *f = Fout+j;
+ f += fstride*in_stride;
+ }
+ } else {
+ int j;
+ for (j=0;j<p;j++)
+ {
+ compute_bitrev_table( Fout , f, fstride*p, in_stride, factors,st);
+ f += fstride*in_stride;
+ Fout += m;
+ }
+ }
+}
+
+
/* facbuf is populated by p1,m1,p2,m2, ...
where
p[i] * m[i] = m[i-1]
@@ -643,7 +646,16 @@ kiss_fft_state *kiss_fft_alloc(int nfft,void * mem,size_t * lenmem )
return kiss_fft_alloc_twiddles(nfft, mem, lenmem, NULL);
}
-
+void kiss_fft_free(const kiss_fft_state *cfg)
+{
+ celt_free((celt_int16*)cfg->bitrev);
+ if (cfg->shift < 0)
+ celt_free((kiss_twiddle_cpx*)cfg->twiddles);
+ celt_free((kiss_fft_state*)cfg);
+}
+
+#endif /* STATIC_MODES */
+
static void kiss_fft_stride(const kiss_fft_state *st,const kiss_fft_cpx *fin,kiss_fft_cpx *fout,int in_stride)
{
if (fin == fout)
@@ -688,10 +700,3 @@ void kiss_ifft(const kiss_fft_state *cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *f
kiss_ifft_stride(cfg,fin,fout,1);
}
-void kiss_fft_free(const kiss_fft_state *cfg)
-{
- celt_free((celt_int16*)cfg->bitrev);
- if (cfg->shift < 0)
- celt_free((kiss_twiddle_cpx*)cfg->twiddles);
- celt_free((kiss_fft_state*)cfg);
-}