FFT cleanup
[opus.git] / libcelt / modes.h
index 44be1d8..226842a 100644 (file)
@@ -38,7 +38,6 @@
 #include "celt.h"
 #include "arch.h"
 #include "mdct.h"
-#include "pitch.h"
 #include "entenc.h"
 #include "entdec.h"
 
 #define FRAMESIZE(mode) ((mode)->mdctSize)
 #endif
 
+typedef struct {
+   int size;
+   const celt_int16 *index;
+   const unsigned char *bits;
+} PulseCache;
+
 /** Mode definition (opaque)
  @brief Mode definition 
  */
@@ -78,16 +83,12 @@ struct CELTMode {
 
    int          nbEBands;
    int          effEBands;
-   int          pitchEnd;
    celt_word16    preemph[4];
    const celt_int16   *eBands;   /**< Definition for each "pseudo-critical band" */
    
    int          nbAllocVectors; /**< Number of lines in the matrix below */
    const unsigned char   *allocVectors;   /**< Number of bits in each band for several rates */
    
-   const celt_int16 * const **bits;
-   const celt_int16 * const *(_bits[MAX_CONFIG_SIZES]); /**< Cache for pulses->bits mapping in each band */
-
    /* Stuff that could go in the {en,de}coder, but we save space this way */
    mdct_lookup mdct;
 
@@ -99,6 +100,8 @@ struct CELTMode {
 
    int *prob;
    const celt_int16 *logN;
+
+   PulseCache cache;
    celt_uint32 marker_end;
 };