test_opus_api: Fix valgrind expectations broken by last commit.
[opus.git] / silk / structs.h
index c3de024..5d37f66 100644 (file)
@@ -1,28 +1,28 @@
 /***********************************************************************
 Copyright (c) 2006-2011, Skype Limited. All rights reserved.
 Redistribution and use in source and binary forms, with or without
-modification, (subject to the limitations in the disclaimer below)
-are permitted provided that the following conditions are met:
+modification, are permitted provided that the following conditions
+are met:
 - Redistributions of source code must retain the above copyright notice,
 this list of conditions and the following disclaimer.
 - Redistributions in binary form must reproduce the above copyright
 notice, this list of conditions and the following disclaimer in the
 documentation and/or other materials provided with the distribution.
-- Neither the name of Skype Limited, nor the names of specific
-contributors, may be used to endorse or promote products derived from
-this software without specific prior written permission.
-NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
-BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
-BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+- Neither the name of Internet Society, IETF or IETF Trust, nor the 
+names of specific contributors, may be used to endorse or promote
+products derived from this software without specific prior written
+permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS”
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
 ***********************************************************************/
 
 #ifndef SILK_STRUCTS_H
@@ -43,40 +43,40 @@ extern "C"
 /* Noise shaping quantization state */
 /************************************/
 typedef struct {
-    opus_int16   xq[           2 * MAX_FRAME_LENGTH ]; /* Buffer for quantized output signal */
-    opus_int32   sLTP_shp_Q10[ 2 * MAX_FRAME_LENGTH ];
-    opus_int32   sLPC_Q14[ MAX_SUB_FRAME_LENGTH + NSQ_LPC_BUF_LENGTH ];
-    opus_int32   sAR2_Q14[ MAX_SHAPE_LPC_ORDER ];
-    opus_int32   sLF_AR_shp_Q12;
-    opus_int     lagPrev;
-    opus_int     sLTP_buf_idx;
-    opus_int     sLTP_shp_buf_idx;
-    opus_int32   rand_seed;
-    opus_int32   prev_inv_gain_Q16;
-    opus_int     rewhite_flag;
+    opus_int16                  xq[           2 * MAX_FRAME_LENGTH ]; /* Buffer for quantized output signal                             */
+    opus_int32                  sLTP_shp_Q14[ 2 * MAX_FRAME_LENGTH ];
+    opus_int32                  sLPC_Q14[ MAX_SUB_FRAME_LENGTH + NSQ_LPC_BUF_LENGTH ];
+    opus_int32                  sAR2_Q14[ MAX_SHAPE_LPC_ORDER ];
+    opus_int32                  sLF_AR_shp_Q14;
+    opus_int                    lagPrev;
+    opus_int                    sLTP_buf_idx;
+    opus_int                    sLTP_shp_buf_idx;
+    opus_int32                  rand_seed;
+    opus_int32                  prev_gain_Q16;
+    opus_int                    rewhite_flag;
 } silk_nsq_state;
 
 /********************************/
 /* VAD state                    */
 /********************************/
 typedef struct {
-    opus_int32   AnaState[ 2 ];                  /* Analysis filterbank state: 0-8 kHz                       */
-    opus_int32   AnaState1[ 2 ];                 /* Analysis filterbank state: 0-4 kHz                       */
-    opus_int32   AnaState2[ 2 ];                 /* Analysis filterbank state: 0-2 kHz                       */
-    opus_int32   XnrgSubfr[ VAD_N_BANDS ];       /* Subframe energies                                        */
-    opus_int32   NrgRatioSmth_Q8[ VAD_N_BANDS ]; /* Smoothed energy level in each band                       */
-    opus_int16   HPstate;                        /* State of differentiator in the lowest band               */
-    opus_int32   NL[ VAD_N_BANDS ];              /* Noise energy level in each band                          */
-    opus_int32   inv_NL[ VAD_N_BANDS ];          /* Inverse noise energy level in each band                  */
-    opus_int32   NoiseLevelBias[ VAD_N_BANDS ];  /* Noise level estimator bias/offset                        */
-    opus_int32   counter;                        /* Frame counter used in the initial phase                  */
+    opus_int32                  AnaState[ 2 ];                  /* Analysis filterbank state: 0-8 kHz                                   */
+    opus_int32                  AnaState1[ 2 ];                 /* Analysis filterbank state: 0-4 kHz                                   */
+    opus_int32                  AnaState2[ 2 ];                 /* Analysis filterbank state: 0-2 kHz                                   */
+    opus_int32                  XnrgSubfr[ VAD_N_BANDS ];       /* Subframe energies                                                    */
+    opus_int32                  NrgRatioSmth_Q8[ VAD_N_BANDS ]; /* Smoothed energy level in each band                                   */
+    opus_int16                  HPstate;                        /* State of differentiator in the lowest band                           */
+    opus_int32                  NL[ VAD_N_BANDS ];              /* Noise energy level in each band                                      */
+    opus_int32                  inv_NL[ VAD_N_BANDS ];          /* Inverse noise energy level in each band                              */
+    opus_int32                  NoiseLevelBias[ VAD_N_BANDS ];  /* Noise level estimator bias/offset                                    */
+    opus_int32                  counter;                        /* Frame counter used in the initial phase                              */
 } silk_VAD_state;
 
 /* Variable cut-off low-pass filter state */
 typedef struct {
     opus_int32                   In_LP_State[ 2 ];           /* Low pass filter state */
     opus_int32                   transition_frame_no;        /* Counter which is mapped to a cut-off frequency */
-    opus_int                     mode;                       /* Operating mode, <0: switch down, >0: switch up; 0: do nothing */
+    opus_int                     mode;                       /* Operating mode, <0: switch down, >0: switch up; 0: do nothing           */
 } silk_LP_state;
 
 /* Structure containing NLSF codebook */
@@ -101,6 +101,7 @@ typedef struct {
     opus_int32                   mid_side_amp_Q0[ 4 ];
     opus_int16                   smth_width_Q14;
     opus_int16                   width_prev_Q14;
+    opus_int16                   silent_side_len;
     opus_int8                    predIx[ MAX_FRAMES_PER_PACKET ][ 2 ][ 3 ];
     opus_int8                    mid_only_flags[ MAX_FRAMES_PER_PACKET ];
 } stereo_enc_state;
@@ -129,176 +130,174 @@ typedef struct {
 /* Encoder state                */
 /********************************/
 typedef struct {
-    opus_int32                       In_HP_State[ 2 ];               /* High pass filter state                                               */
-    opus_int32                       variable_HP_smth1_Q15;          /* State of first smoother                                              */
-    opus_int32                       variable_HP_smth2_Q15;          /* State of second smoother                                             */
-    silk_LP_state                   sLP;                            /* Low pass filter state                                                */
-    silk_VAD_state                  sVAD;                           /* Voice activity detector state                                        */
-    silk_nsq_state                  sNSQ;                           /* Noise Shape Quantizer State                                          */
-    opus_int16                       prev_NLSFq_Q15[ MAX_LPC_ORDER ];/* Previously quantized NLSF vector                                     */
-    opus_int                         speech_activity_Q8;             /* Speech activity                                                      */
-    opus_int                         allow_bandwidth_switch;         /* Flag indicating that switching of internal bandwidth is allowed      */
-    opus_int8                        LBRRprevLastGainIndex;
-    opus_int8                        prevSignalType;
-    opus_int                         prevLag;
-    opus_int                         pitch_LPC_win_length;
-    opus_int                         max_pitch_lag;                  /* Highest possible pitch lag (samples)                                 */
-    opus_int32                       API_fs_Hz;                      /* API sampling frequency (Hz)                                          */
-    opus_int32                       prev_API_fs_Hz;                 /* Previous API sampling frequency (Hz)                                 */
-    opus_int                         maxInternal_fs_Hz;              /* Maximum internal sampling frequency (Hz)                             */
-    opus_int                         minInternal_fs_Hz;              /* Minimum internal sampling frequency (Hz)                             */
-    opus_int                         desiredInternal_fs_Hz;          /* Soft request for internal sampling frequency (Hz)                    */
-    opus_int                         fs_kHz;                         /* Internal sampling frequency (kHz)                                    */
-    opus_int                         delay;                          /* Number of samples of delay to apply */
-    opus_int                         nb_subfr;                       /* Number of 5 ms subframes in a frame                                  */
-    opus_int                         frame_length;                   /* Frame length (samples)                                               */
-    opus_int                         subfr_length;                   /* Subframe length (samples)                                            */
-    opus_int                         ltp_mem_length;                 /* Length of LTP memory                                                 */
-    opus_int                         la_pitch;                       /* Look-ahead for pitch analysis (samples)                              */
-    opus_int                         la_shape;                       /* Look-ahead for noise shape analysis (samples)                        */
-    opus_int                         shapeWinLength;                 /* Window length for noise shape analysis (samples)                     */
-    opus_int32                       TargetRate_bps;                 /* Target bitrate (bps)                                                 */
-    opus_int                         PacketSize_ms;                  /* Number of milliseconds to put in each packet                         */
-    opus_int                         PacketLoss_perc;                /* Packet loss rate measured by farend                                  */
-    opus_int32                       frameCounter;
-    opus_int                         Complexity;                     /* Complexity setting                                                   */
-    opus_int                         nStatesDelayedDecision;         /* Number of states in delayed decision quantization                    */
-    opus_int                         useInterpolatedNLSFs;           /* Flag for using NLSF interpolation                                    */
-    opus_int                         shapingLPCOrder;                /* Filter order for noise shaping filters                               */
-    opus_int                         predictLPCOrder;                /* Filter order for prediction filters                                  */
-    opus_int                         pitchEstimationComplexity;      /* Complexity level for pitch estimator                                 */
-    opus_int                         pitchEstimationLPCOrder;        /* Whitening filter order for pitch estimator                           */
-    opus_int32                       pitchEstimationThreshold_Q16;   /* Threshold for pitch estimator                                        */
-    opus_int                         LTPQuantLowComplexity;          /* Flag for low complexity LTP quantization                             */
-    opus_int                         mu_LTP_Q9;                      /* Rate-distortion tradeoff in LTP quantization                         */
-    opus_int                         NLSF_MSVQ_Survivors;            /* Number of survivors in NLSF MSVQ                                     */
-    opus_int                         first_frame_after_reset;        /* Flag for deactivating NLSF interp. and fluc. reduction after resets  */
-    opus_int                         controlled_since_last_payload;  /* Flag for ensuring codec_control only runs once per packet            */
-    opus_int                         warping_Q16;                    /* Warping parameter for warped noise shaping                           */
-    opus_int                         useCBR;                         /* Flag to enable constant bitrate                                      */
-    opus_int                         prefillFlag;                    /* Flag to indicate that only buffers are prefilled, no coding          */
-    const opus_uint8                 *pitch_lag_low_bits_iCDF;       /* Pointer to iCDF table for low bits of pitch lag index                */
-    const opus_uint8                 *pitch_contour_iCDF;            /* Pointer to iCDF table for pitch contour index                        */
-    const silk_NLSF_CB_struct       *psNLSF_CB;                     /* Pointer to NLSF codebook                                             */
-    opus_int                         input_quality_bands_Q15[ VAD_N_BANDS ];
-    opus_int                         input_tilt_Q15;
-    opus_int                         SNR_dB_Q7;                      /* Quality setting                                                      */
-
-    opus_int8                        VAD_flags[ MAX_FRAMES_PER_PACKET ];
-    opus_int8                        LBRR_flag;
-    opus_int                         LBRR_flags[ MAX_FRAMES_PER_PACKET ];
-
-    SideInfoIndices                 indices;
-    opus_int8                        pulses[ MAX_FRAME_LENGTH ];
+    opus_int32                   In_HP_State[ 2 ];                  /* High pass filter state                                           */
+    opus_int32                   variable_HP_smth1_Q15;             /* State of first smoother                                          */
+    opus_int32                   variable_HP_smth2_Q15;             /* State of second smoother                                         */
+    silk_LP_state                sLP;                               /* Low pass filter state                                            */
+    silk_VAD_state               sVAD;                              /* Voice activity detector state                                    */
+    silk_nsq_state               sNSQ;                              /* Noise Shape Quantizer State                                      */
+    opus_int16                   prev_NLSFq_Q15[ MAX_LPC_ORDER ];   /* Previously quantized NLSF vector                                 */
+    opus_int                     speech_activity_Q8;                /* Speech activity                                                  */
+    opus_int                     allow_bandwidth_switch;            /* Flag indicating that switching of internal bandwidth is allowed  */
+    opus_int8                    LBRRprevLastGainIndex;
+    opus_int8                    prevSignalType;
+    opus_int                     prevLag;
+    opus_int                     pitch_LPC_win_length;
+    opus_int                     max_pitch_lag;                     /* Highest possible pitch lag (samples)                             */
+    opus_int32                   API_fs_Hz;                         /* API sampling frequency (Hz)                                      */
+    opus_int32                   prev_API_fs_Hz;                    /* Previous API sampling frequency (Hz)                             */
+    opus_int                     maxInternal_fs_Hz;                 /* Maximum internal sampling frequency (Hz)                         */
+    opus_int                     minInternal_fs_Hz;                 /* Minimum internal sampling frequency (Hz)                         */
+    opus_int                     desiredInternal_fs_Hz;             /* Soft request for internal sampling frequency (Hz)                */
+    opus_int                     fs_kHz;                            /* Internal sampling frequency (kHz)                                */
+    opus_int                     nb_subfr;                          /* Number of 5 ms subframes in a frame                              */
+    opus_int                     frame_length;                      /* Frame length (samples)                                           */
+    opus_int                     subfr_length;                      /* Subframe length (samples)                                        */
+    opus_int                     ltp_mem_length;                    /* Length of LTP memory                                             */
+    opus_int                     la_pitch;                          /* Look-ahead for pitch analysis (samples)                          */
+    opus_int                     la_shape;                          /* Look-ahead for noise shape analysis (samples)                    */
+    opus_int                     shapeWinLength;                    /* Window length for noise shape analysis (samples)                 */
+    opus_int32                   TargetRate_bps;                    /* Target bitrate (bps)                                             */
+    opus_int                     PacketSize_ms;                     /* Number of milliseconds to put in each packet                     */
+    opus_int                     PacketLoss_perc;                   /* Packet loss rate measured by farend                              */
+    opus_int32                   frameCounter;
+    opus_int                     Complexity;                        /* Complexity setting                                               */
+    opus_int                     nStatesDelayedDecision;            /* Number of states in delayed decision quantization                */
+    opus_int                     useInterpolatedNLSFs;              /* Flag for using NLSF interpolation                                */
+    opus_int                     shapingLPCOrder;                   /* Filter order for noise shaping filters                           */
+    opus_int                     predictLPCOrder;                   /* Filter order for prediction filters                              */
+    opus_int                     pitchEstimationComplexity;         /* Complexity level for pitch estimator                             */
+    opus_int                     pitchEstimationLPCOrder;           /* Whitening filter order for pitch estimator                       */
+    opus_int32                   pitchEstimationThreshold_Q16;      /* Threshold for pitch estimator                                    */
+    opus_int                     LTPQuantLowComplexity;             /* Flag for low complexity LTP quantization                         */
+    opus_int                     mu_LTP_Q9;                         /* Rate-distortion tradeoff in LTP quantization                     */
+    opus_int                     NLSF_MSVQ_Survivors;               /* Number of survivors in NLSF MSVQ                                 */
+    opus_int                     first_frame_after_reset;           /* Flag for deactivating NLSF interpolation, pitch prediction       */
+    opus_int                     controlled_since_last_payload;     /* Flag for ensuring codec_control only runs once per packet        */
+    opus_int                     warping_Q16;                       /* Warping parameter for warped noise shaping                       */
+    opus_int                     useCBR;                            /* Flag to enable constant bitrate                                  */
+    opus_int                     prefillFlag;                       /* Flag to indicate that only buffers are prefilled, no coding      */
+    const opus_uint8             *pitch_lag_low_bits_iCDF;          /* Pointer to iCDF table for low bits of pitch lag index            */
+    const opus_uint8             *pitch_contour_iCDF;               /* Pointer to iCDF table for pitch contour index                    */
+    const silk_NLSF_CB_struct    *psNLSF_CB;                        /* Pointer to NLSF codebook                                         */
+    opus_int                     input_quality_bands_Q15[ VAD_N_BANDS ];
+    opus_int                     input_tilt_Q15;
+    opus_int                     SNR_dB_Q7;                         /* Quality setting                                                  */
+
+    opus_int8                    VAD_flags[ MAX_FRAMES_PER_PACKET ];
+    opus_int8                    LBRR_flag;
+    opus_int                     LBRR_flags[ MAX_FRAMES_PER_PACKET ];
+
+    SideInfoIndices              indices;
+    opus_int8                    pulses[ MAX_FRAME_LENGTH ];
 
     /* Input/output buffering */
-    opus_int16                       inputBuf[ MAX_FRAME_LENGTH + 2 ]; /* Buffer containing input signal                                   */
-    opus_int16                       delayBuf[MAX_ENCODER_DELAY];
-    opus_int                         inputBufIx;
-    opus_int                         nFramesPerPacket;
-    opus_int                         nFramesEncoded;                 /* Number of frames analyzed in current packet                          */
+    opus_int16                   inputBuf[ MAX_FRAME_LENGTH + 2 ];  /* Buffer containing input signal                                   */
+    opus_int                     inputBufIx;
+    opus_int                     nFramesPerPacket;
+    opus_int                     nFramesEncoded;                    /* Number of frames analyzed in current packet                      */
 
-    opus_int                         nChannelsAPI;
-    opus_int                         nChannelsInternal;
-    opus_int                         channelNb;
+    opus_int                     nChannelsAPI;
+    opus_int                     nChannelsInternal;
+    opus_int                     channelNb;
 
     /* Parameters For LTP scaling Control */
-    opus_int                         frames_since_onset;
+    opus_int                     frames_since_onset;
 
     /* Specifically for entropy coding */
-    opus_int                         ec_prevSignalType;
-    opus_int16                       ec_prevLagIndex;
+    opus_int                     ec_prevSignalType;
+    opus_int16                   ec_prevLagIndex;
 
     silk_resampler_state_struct resampler_state;
 
     /* DTX */
-    opus_int                         useDTX;                         /* Flag to enable DTX                                                   */
-    opus_int                         inDTX;                          /* Flag to signal DTX period                                            */
-    opus_int                         noSpeechCounter;                /* Counts concecutive nonactive frames, used by DTX                     */
+    opus_int                     useDTX;                            /* Flag to enable DTX                                               */
+    opus_int                     inDTX;                             /* Flag to signal DTX period                                        */
+    opus_int                     noSpeechCounter;                   /* Counts concecutive nonactive frames, used by DTX                 */
 
     /* Inband Low Bitrate Redundancy (LBRR) data */
-    opus_int                         useInBandFEC;                   /* Saves the API setting for query                                      */
-    opus_int                         LBRR_enabled;                   /* Depends on useInBandFRC, bitrate and packet loss rate                */
-    opus_int                         LBRR_GainIncreases;             /* Gains increment for coding LBRR frames                               */
-    SideInfoIndices                 indices_LBRR[ MAX_FRAMES_PER_PACKET ];
-    opus_int8                        pulses_LBRR[ MAX_FRAMES_PER_PACKET ][ MAX_FRAME_LENGTH ];
+    opus_int                     useInBandFEC;                      /* Saves the API setting for query                                  */
+    opus_int                     LBRR_enabled;                      /* Depends on useInBandFRC, bitrate and packet loss rate            */
+    opus_int                     LBRR_GainIncreases;                /* Gains increment for coding LBRR frames                           */
+    SideInfoIndices              indices_LBRR[ MAX_FRAMES_PER_PACKET ];
+    opus_int8                    pulses_LBRR[ MAX_FRAMES_PER_PACKET ][ MAX_FRAME_LENGTH ];
 } silk_encoder_state;
 
 
 /* Struct for Packet Loss Concealment */
 typedef struct {
-    opus_int32   pitchL_Q8;                      /* Pitch lag to use for voiced concealment                  */
-    opus_int16   LTPCoef_Q14[ LTP_ORDER ];       /* LTP coeficients to use for voiced concealment            */
-    opus_int16   prevLPC_Q12[ MAX_LPC_ORDER ];
-    opus_int     last_frame_lost;                /* Was previous frame lost                                  */
-    opus_int32   rand_seed;                      /* Seed for unvoiced signal generation                      */
-    opus_int16   randScale_Q14;                  /* Scaling of unvoiced random signal                        */
-    opus_int32   conc_energy;
-    opus_int     conc_energy_shift;
-    opus_int16   prevLTP_scale_Q14;
-    opus_int32   prevGain_Q16[ MAX_NB_SUBFR ];
-    opus_int     fs_kHz;
+    opus_int32                  pitchL_Q8;                          /* Pitch lag to use for voiced concealment                          */
+    opus_int16                  LTPCoef_Q14[ LTP_ORDER ];           /* LTP coeficients to use for voiced concealment                    */
+    opus_int16                  prevLPC_Q12[ MAX_LPC_ORDER ];
+    opus_int                    last_frame_lost;                    /* Was previous frame lost                                          */
+    opus_int32                  rand_seed;                          /* Seed for unvoiced signal generation                              */
+    opus_int16                  randScale_Q14;                      /* Scaling of unvoiced random signal                                */
+    opus_int32                  conc_energy;
+    opus_int                    conc_energy_shift;
+    opus_int16                  prevLTP_scale_Q14;
+    opus_int32                  prevGain_Q16[ 2 ];
+    opus_int                    fs_kHz;
+    opus_int                    nb_subfr;
+    opus_int                    subfr_length;
 } silk_PLC_struct;
 
 /* Struct for CNG */
 typedef struct {
-    opus_int32   CNG_exc_buf_Q10[ MAX_FRAME_LENGTH ];
-    opus_int16   CNG_smth_NLSF_Q15[ MAX_LPC_ORDER ];
-    opus_int32   CNG_synth_state[ MAX_LPC_ORDER ];
-    opus_int32   CNG_smth_Gain_Q16;
-    opus_int32   rand_seed;
-    opus_int     fs_kHz;
+    opus_int32                  CNG_exc_buf_Q14[ MAX_FRAME_LENGTH ];
+    opus_int16                  CNG_smth_NLSF_Q15[ MAX_LPC_ORDER ];
+    opus_int32                  CNG_synth_state[ MAX_LPC_ORDER ];
+    opus_int32                  CNG_smth_Gain_Q16;
+    opus_int32                  rand_seed;
+    opus_int                    fs_kHz;
 } silk_CNG_struct;
 
 /********************************/
 /* Decoder state                */
 /********************************/
 typedef struct {
-    opus_int32       prev_inv_gain_Q16;
-    opus_int32       exc_Q10[ MAX_FRAME_LENGTH ];
-    opus_int32       sLPC_Q14_buf[ MAX_LPC_ORDER ];
-    opus_int16       outBuf[ MAX_FRAME_LENGTH + 2 * MAX_SUB_FRAME_LENGTH ];  /* Buffer for output signal                                 */
-    opus_int16       delayBuf[ MAX_DECODER_DELAY ];              /* Buffer for delaying the SILK output prior to resampling              */
-    opus_int         delay;                                      /* How much decoder delay to add                                        */
-    opus_int         lagPrev;                                    /* Previous Lag                                                         */
-    opus_int8        LastGainIndex;                              /* Previous gain index                                                  */
-    opus_int         fs_kHz;                                     /* Sampling frequency in kHz                                            */
-    opus_int32       prev_API_sampleRate;                        /* Previous API sample frequency (Hz)                                   */
-    opus_int         nb_subfr;                                   /* Number of 5 ms subframes in a frame                                  */
-    opus_int         frame_length;                               /* Frame length (samples)                                               */
-    opus_int         subfr_length;                               /* Subframe length (samples)                                            */
-    opus_int         ltp_mem_length;                             /* Length of LTP memory                                                 */
-    opus_int         LPC_order;                                  /* LPC order                                                            */
-    opus_int16       prevNLSF_Q15[ MAX_LPC_ORDER ];              /* Used to interpolate LSFs                                             */
-    opus_int         first_frame_after_reset;                    /* Flag for deactivating NLSF interp. and fluc. reduction after resets  */
-    const opus_uint8 *pitch_lag_low_bits_iCDF;                   /* Pointer to iCDF table for low bits of pitch lag index                */
-    const opus_uint8 *pitch_contour_iCDF;                        /* Pointer to iCDF table for pitch contour index                        */
+    opus_int32                  prev_gain_Q16;
+    opus_int32                  exc_Q14[ MAX_FRAME_LENGTH ];
+    opus_int32                  sLPC_Q14_buf[ MAX_LPC_ORDER ];
+    opus_int16                  outBuf[ MAX_FRAME_LENGTH + 2 * MAX_SUB_FRAME_LENGTH ];  /* Buffer for output signal                     */
+    opus_int                    lagPrev;                            /* Previous Lag                                                     */
+    opus_int8                   LastGainIndex;                      /* Previous gain index                                              */
+    opus_int                    fs_kHz;                             /* Sampling frequency in kHz                                        */
+    opus_int32                  fs_API_hz;                          /* API sample frequency (Hz)                                        */
+    opus_int                    nb_subfr;                           /* Number of 5 ms subframes in a frame                              */
+    opus_int                    frame_length;                       /* Frame length (samples)                                           */
+    opus_int                    subfr_length;                       /* Subframe length (samples)                                        */
+    opus_int                    ltp_mem_length;                     /* Length of LTP memory                                             */
+    opus_int                    LPC_order;                          /* LPC order                                                        */
+    opus_int16                  prevNLSF_Q15[ MAX_LPC_ORDER ];      /* Used to interpolate LSFs                                         */
+    opus_int                    first_frame_after_reset;            /* Flag for deactivating NLSF interpolation                         */
+    const opus_uint8            *pitch_lag_low_bits_iCDF;           /* Pointer to iCDF table for low bits of pitch lag index            */
+    const opus_uint8            *pitch_contour_iCDF;                /* Pointer to iCDF table for pitch contour index                    */
 
     /* For buffering payload in case of more frames per packet */
-    opus_int         nFramesDecoded;
-    opus_int         nFramesPerPacket;
+    opus_int                    nFramesDecoded;
+    opus_int                    nFramesPerPacket;
 
     /* Specifically for entropy coding */
-    opus_int         ec_prevSignalType;
-    opus_int16       ec_prevLagIndex;
+    opus_int                    ec_prevSignalType;
+    opus_int16                  ec_prevLagIndex;
 
-    opus_int         VAD_flags[ MAX_FRAMES_PER_PACKET ];
-    opus_int         LBRR_flag;
-    opus_int         LBRR_flags[ MAX_FRAMES_PER_PACKET ];
+    opus_int                    VAD_flags[ MAX_FRAMES_PER_PACKET ];
+    opus_int                    LBRR_flag;
+    opus_int                    LBRR_flags[ MAX_FRAMES_PER_PACKET ];
 
     silk_resampler_state_struct resampler_state;
 
-    const silk_NLSF_CB_struct   *psNLSF_CB;                 /* Pointer to NLSF codebook                                             */
+    const silk_NLSF_CB_struct   *psNLSF_CB;                         /* Pointer to NLSF codebook                                         */
 
     /* Quantization indices */
-    SideInfoIndices indices;
+    SideInfoIndices             indices;
 
     /* CNG state */
-    silk_CNG_struct sCNG;
+    silk_CNG_struct             sCNG;
 
     /* Stuff used for PLC */
-    opus_int         lossCnt;
-    opus_int         prevSignalType;
+    opus_int                    lossCnt;
+    opus_int                    prevSignalType;
 
     silk_PLC_struct sPLC;
 
@@ -308,13 +307,13 @@ typedef struct {
 /* Decoder control      */
 /************************/
 typedef struct {
-    /* prediction and coding parameters */
-    opus_int             pitchL[ MAX_NB_SUBFR ];
-    opus_int32           Gains_Q16[ MAX_NB_SUBFR ];
-    /* holds interpolated and final coefficients, 4-byte aligned */
+    /* Prediction and coding parameters */
+    opus_int                    pitchL[ MAX_NB_SUBFR ];
+    opus_int32                  Gains_Q16[ MAX_NB_SUBFR ];
+    /* Holds interpolated and final coefficients, 4-byte aligned */
     silk_DWORD_ALIGN opus_int16 PredCoef_Q12[ 2 ][ MAX_LPC_ORDER ];
-    opus_int16           LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ];
-    opus_int             LTP_scale_Q14;
+    opus_int16                  LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ];
+    opus_int                    LTP_scale_Q14;
 } silk_decoder_control;