Disabling mdct and fft init code with static modes
authorJean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Thu, 26 Aug 2010 06:04:03 +0000 (02:04 -0400)
committerJean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Thu, 26 Aug 2010 06:04:03 +0000 (02:04 -0400)
libcelt/kiss_fft.c
libcelt/mdct.c
libcelt/quant_bands.c
tests/dft-test.c
tests/mdct-test.c

index 861528a..3f25289 100644 (file)
@@ -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);
-}
index a10a50b..a970d33 100644 (file)
    and scaling in many places. 
 */
 
+#ifndef SKIP_CONFIG_H
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
+#endif
 
 #include "mdct.h"
 #include "kiss_fft.h"
@@ -59,6 +61,8 @@
 #define M_PI 3.141592653
 #endif
 
+#ifndef STATIC_MODES
+
 void clt_mdct_init(mdct_lookup *l,int N, int maxshift)
 {
    int i;
@@ -100,6 +104,8 @@ void clt_mdct_clear(mdct_lookup *l)
    celt_free((kiss_twiddle_scalar*)l->trig);
 }
 
+#endif /* STATIC_MODES */
+
 void clt_mdct_forward(const mdct_lookup *l, kiss_fft_scalar *in, kiss_fft_scalar * restrict out, const celt_word16 *window, int overlap, int shift)
 {
    int i;
index 54c4e82..a8d0ba2 100644 (file)
@@ -81,6 +81,8 @@ static int intra_decision(const celt_word16 *eBands, celt_word16 *oldEBands, int
    return SHR32(dist,2*DB_SHIFT) > 2*C*(end-start);
 }
 
+#ifndef STATIC_MODES
+
 celt_int16 *quant_prob_alloc(const CELTMode *m)
 {
    int i;
@@ -105,6 +107,7 @@ void quant_prob_free(const celt_int16 *freq)
 {
    celt_free((celt_int16*)freq);
 }
+#endif
 
 static void quant_coarse_energy_impl(const CELTMode *m, int start, int end,
       const celt_word16 *eBands, celt_word16 *oldEBands, int budget,
index 749205a..ad2d020 100644 (file)
@@ -2,6 +2,12 @@
 #include "config.h"
 #endif
 
+#define SKIP_CONFIG_H
+
+#ifdef STATIC_MODES
+#undef STATIC_MODES
+#endif
+
 #include <stdio.h>
 #include "kiss_fft.h"
 
index 63dd4e7..01d6d3f 100644 (file)
@@ -2,6 +2,12 @@
 #include "config.h"
 #endif
 
+#define SKIP_CONFIG_H
+
+#ifdef STATIC_MODES
+#undef STATIC_MODES
+#endif
+
 #include <stdio.h>
 #include "mdct.h"
 #define CELT_C