Bump version to 0.6.0 and increase bitstream version.
[opus.git] / libcelt / modes.h
index 90421ec..0957261 100644 (file)
 #include "arch.h"
 #include "mdct.h"
 #include "psy.h"
+#include "pitch.h"
+
+#define CELT_BITSTREAM_VERSION 0x80000008
+
+#ifdef STATIC_MODES
+#include "static_modes.h"
+#endif
 
 #define MAX_PERIOD 1024
 
+#ifndef CHANNELS
+# ifdef DISABLE_STEREO
+#  define CHANNELS(mode) (1)
+# else
+#  define CHANNELS(mode) ((mode)->nbChannels)
+# endif
+#endif
+
+#define MDCT(mode) (&(mode)->mdct)
+
+#ifndef OVERLAP
+#define OVERLAP(mode) ((mode)->overlap)
+#endif
+
+#ifndef FRAMESIZE
+#define FRAMESIZE(mode) ((mode)->mdctSize)
+#endif
+
 /** Mode definition (opaque)
  @brief Mode definition 
  */
@@ -48,7 +73,6 @@ struct CELTMode {
    celt_int32_t Fs;
    int          overlap;
    int          mdctSize;
-   int          nbMdctBlocks;
    int          nbChannels;
    
    int          nbEBands;
@@ -67,11 +91,18 @@ struct CELTMode {
 
    /* Stuff that could go in the {en,de}coder, but we save space this way */
    mdct_lookup mdct;
-   
+   kiss_fftr_cfg fft;
+
    const celt_word16_t *window;
 
+   int         nbShortMdcts;
+   int         shortMdctSize;
+   mdct_lookup shortMdct;
+   const celt_word16_t *shortWindow;
+
    struct PsyDecay psy;
 
+   int *prob;
    celt_uint32_t marker_end;
 };