Completely removed the old allocation table.
[opus.git] / libcelt / modes.h
index 1ab72f8..816a10b 100644 (file)
@@ -40,7 +40,9 @@
 #include "mdct.h"
 #include "pitch.h"
 
-#define CELT_BITSTREAM_VERSION 0x8000000b
+#define MAX_CONFIG_SIZES 5
+
+#define CELT_BITSTREAM_VERSION 0x8000000c
 
 #ifdef STATIC_MODES
 #include "static_modes.h"
@@ -64,8 +66,6 @@
 # endif
 #endif
 
-#define MDCT(mode) (&(mode)->mdct)
-
 #ifndef OVERLAP
 #define OVERLAP(mode) ((mode)->overlap)
 #endif
@@ -91,21 +91,21 @@ struct CELTMode {
    celt_word16 ePredCoef;/**< Prediction coefficient for the energy encoding */
    
    int          nbAllocVectors; /**< Number of lines in the matrix below */
-   const celt_int16   *allocVectors;   /**< Number of bits in each band for several rates */
+   const unsigned char   *allocVectors;   /**< Number of bits in each band for several rates */
    
-   const celt_int16 * const *bits; /**< Cache for pulses->bits mapping in each band */
+   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;
+   mdct_lookup mdct[MAX_CONFIG_SIZES];
 
    const celt_word16 *window;
 
    int         nbShortMdcts;
    int         shortMdctSize;
-   mdct_lookup shortMdct;
-   const celt_word16 *shortWindow;
 
    int *prob;
+   const celt_int16 *logN;
    celt_uint32 marker_end;
 };