FFT cleanup
[opus.git] / libcelt / dump_modes.c
index 845f87b..8c05845 100644 (file)
@@ -99,43 +99,6 @@ void dump_modes(FILE *file, CELTMode **modes, int nb_modes)
       fprintf(file, "#endif\n");
       fprintf(file, "\n");
 
-      for (k=0;(1<<k>>1)<=mode->nbShortMdcts;k++)
-      {
-         int mdctSize2 = mode->shortMdctSize;
-         if (k>=1)
-            mdctSize2 <<= k-1;
-         else
-            mdctSize2 >>= 1;
-         fprintf(file, "#ifndef DEF_ALLOC_CACHE%d_%d\n", mode->Fs, mdctSize2);
-         fprintf(file, "#define DEF_ALLOC_CACHE%d_%d\n", mode->Fs, mdctSize2);
-         for (j=0;j<mode->nbEBands;j++)
-         {
-            int m;
-            if (mode->_bits[k][j]==NULL)
-            {
-               fprintf (file, "#define allocCache_band%d_%d_%d NULL\n", j, mode->Fs, mdctSize2);
-               continue;
-            }
-            if (j==0 || (mode->_bits[k][j] != mode->_bits[k][j-1]))
-            {
-               fprintf (file, "static const celt_int16 allocCache_band%d_%d_%d[MAX_PSEUDO] = {\n", j, mode->Fs, mdctSize2);
-               for (m=0;m<MAX_PSEUDO;m++)
-                  fprintf (file, "%2d, ", mode->_bits[k][j][m]);
-               fprintf (file, "};\n");
-            } else {
-               fprintf (file, "#define allocCache_band%d_%d_%d allocCache_band%d_%d_%d\n", j, mode->Fs, mdctSize2, j-1, mode->Fs, mdctSize2);
-            }
-         }
-         fprintf (file, "static const celt_int16 *allocCache%d_%d[%d] = {\n", mode->Fs, mdctSize2, mode->nbEBands);
-         for (j=0;j<mode->nbEBands;j++)
-         {
-            fprintf (file, "allocCache_band%d_%d_%d, ", j, mode->Fs, mdctSize2);
-         }
-         fprintf (file, "};\n");
-         fprintf(file, "#endif\n");
-         fprintf(file, "\n");
-      }
-
       fprintf(file, "#ifndef DEF_LOGN%d_%d\n", mode->Fs, mdctSize);
       fprintf(file, "#define DEF_LOGN%d_%d\n", mode->Fs, mdctSize);
       fprintf (file, "static const celt_int16 logN%d_%d[%d] = {\n", mode->Fs, mdctSize, mode->nbEBands);
@@ -145,6 +108,38 @@ void dump_modes(FILE *file, CELTMode **modes, int nb_modes)
       fprintf(file, "#endif\n");
       fprintf(file, "\n");
 
+      /* Pulse cache */
+      fprintf(file, "#ifndef DEF_PULSE_CACHE%d_%d\n", mode->Fs, mdctSize);
+      fprintf(file, "#define DEF_PULSE_CACHE%d_%d\n", mode->Fs, mdctSize);
+      fprintf (file, "static const celt_int16 cache_index%d_%d[%d] = {\n", mode->Fs, mdctSize, (mode->maxLM+2)*mode->nbEBands);
+      for (j=0;j<mode->nbEBands*(mode->maxLM+2);j++)
+         fprintf (file, "%d, ", mode->cache.index[j]);
+      fprintf (file, "};\n");
+      fprintf (file, "static const unsigned char cache_bits%d_%d[%d] = {\n", mode->Fs, mdctSize, mode->cache.size);
+      for (j=0;j<mode->cache.size;j++)
+         fprintf (file, "%d, ", mode->cache.bits[j]);
+      fprintf (file, "};\n");
+      fprintf(file, "#endif\n");
+      fprintf(file, "\n");
+
+      /* FFTs */
+      /*
+      for (i=0;i<mode->mdct.maxshift;i++)
+      {
+         fprintf(file, "#ifndef FFT_BITREV%d_%d\n", mode->Fs, mdctSize>>i);
+         fprintf(file, "#define FFT_BITREV%d_%d\n", mode->Fs, mdctSize>>i);
+         fprintf (file, "static const celt_int16 fft_bitrev%d_%d[%d] = {\n",
+               mode->Fs, mdctSize/i, mode->mdct.kfft[i]->nfft);
+         for (j=0;j<mode->mdct.kfft[i]->nfft;j++)
+            fprintf (file, "%d, ", mode->mdct.kfft[i]->bitrev[j]);
+         fprintf (file, "};\n");
+
+         fprintf(file, "#endif\n");
+         fprintf(file, "\n");
+      }
+      */
+
+      /* Print the actual mode data */
       fprintf(file, "static const CELTMode mode%d_%d_%d = {\n", mode->Fs, mdctSize, mode->overlap);
       fprintf(file, "0x%x,\t/* marker */\n", 0xa110ca7e);
       fprintf(file, INT32 ",\t/* Fs */\n", mode->Fs);
@@ -152,26 +147,14 @@ void dump_modes(FILE *file, CELTMode **modes, int nb_modes)
       fprintf(file, "%d,\t/* nbEBands */\n", mode->nbEBands);
       fprintf(file, "%d,\t/* effEBands */\n", mode->effEBands);
       fprintf(file, "{");
-      for (i=0;i<4;i++)
-         fprintf(file, WORD16 ", ", mode->preemph[i]);
+      for (j=0;j<4;j++)
+         fprintf(file, WORD16 ", ", mode->preemph[j]);
       fprintf(file, "},\t/* preemph */\n");
       fprintf(file, "eBands%d_%d,\t/* eBands */\n", mode->Fs, mdctSize);
       fprintf(file, "%d,\t/* nbAllocVectors */\n", mode->nbAllocVectors);
       fprintf(file, "allocVectors%d_%d,\t/* allocVectors */\n", mode->Fs, mdctSize);
-      fprintf(file, "NULL,\t/* bits */\n");
-      fprintf (file, "{ ");
-      for (k=0;(1<<k>>1)<=mode->nbShortMdcts;k++)
-      {
-         int mdctSize2 = mode->shortMdctSize;
-         if (k>=1)
-            mdctSize2 <<= k-1;
-         else
-            mdctSize2 >>= 1;
-         fprintf (file, "allocCache%d_%d, ", mode->Fs, mdctSize2);
-      }
-      fprintf (file, "}, /* _bits */\n");
 
-      fprintf(file, "{%d, 0, 0, 0},\t", 2*mode->shortMdctSize*mode->nbShortMdcts);
+      fprintf(file, "{%d, %d, 0, 0},\t", mode->mdct.n, mode->mdct.maxshift);
       fprintf (file, "/* mdct */\n");
 
       fprintf(file, "window%d,\t/* window */\n", mode->overlap);
@@ -180,6 +163,8 @@ void dump_modes(FILE *file, CELTMode **modes, int nb_modes)
       fprintf(file, "%d,\t/* shortMdctSize */\n", mode->shortMdctSize);
       fprintf(file, "0,\t/* prob */\n");
       fprintf(file, "logN%d_%d,\t/* logN */\n", mode->Fs, mdctSize);
+      fprintf(file, "{%d, cache_index%d_%d, cache_bits%d_%d},\t/* cache */\n",
+            mode->cache.size, mode->Fs, mdctSize, mode->Fs, mdctSize);
       fprintf(file, "0x%x,\t/* marker */\n", 0xa110ca7e);
       fprintf(file, "};\n");
    }