fixed-point: no float vars left (and nearly no float ops left) in celt.c
[opus.git] / libcelt / modes.h
index 7720791..dc4b395 100644 (file)
 #ifndef MODES_H
 #define MODES_H
 
+#include "celt_types.h"
 #include "celt.h"
 
+/** Mode definition (opaque)
+ @brief Mode definition 
+ */
 struct CELTMode {
+   celt_int32_t marker_start;
+   celt_int32_t Fs;
    int          overlap;
    int          mdctSize;
    int          nbMdctBlocks;
@@ -44,16 +50,18 @@ struct CELTMode {
    int          nbPBands;
    int          pitchEnd;
    
-   const int   *eBands;
-   const int   *pBands;
-   const int   *nbPulses;
+   const int   *eBands;   /**< Definition for each "pseudo-critical band" */
+   const int   *pBands;   /**< Definition of the bands used for the pitch */
    
-   float        ePredCoef;
-   const float *eMeans;
-   const int   *eDecay;
+   float        ePredCoef;/**< Prediction coefficient for the energy encoding */
    
-   int          nbAllocVectors;
-   const int   *allocVectors;
+   int          nbAllocVectors; /**< Number of lines in the matrix below */
+   const int   *allocVectors;   /**< Number of bits in each band for several rates */
+   
+   const int * const *bits; /**< Cache for pulses->bits mapping in each band */
+   celt_int32_t marker_end;
 };
 
+int check_mode(const CELTMode *mode);
+
 #endif