Update SILK code using the CELT range coder
[opus.git] / src_common / SKP_Silk_gain_quant.c
similarity index 71%
rename from src/SKP_Silk_gain_quant.c
rename to src_common/SKP_Silk_gain_quant.c
index 6e1fb4b..de89e3e 100644 (file)
@@ -33,15 +33,16 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 \r
 /* Gain scalar quantization with hysteresis, uniform on log scale */\r
 void SKP_Silk_gains_quant(\r
-    SKP_int                         ind[ NB_SUBFR ],        /* O    gain indices                            */\r
-    SKP_int32                       gain_Q16[ NB_SUBFR ],   /* I/O  gains (quantized out)                   */\r
-    SKP_int                         *prev_ind,              /* I/O  last index in previous frame            */\r
-    const SKP_int                   conditional             /* I    first gain is delta coded if 1          */\r
+    SKP_int                         ind[ MAX_NB_SUBFR ],        /* O    gain indices                            */\r
+    SKP_int32                       gain_Q16[ MAX_NB_SUBFR ],   /* I/O  gains (quantized out)                   */\r
+    SKP_int                         *prev_ind,                  /* I/O  last index in previous frame            */\r
+    const SKP_int                   conditional,                /* I    first gain is delta coded if 1          */\r
+    const SKP_int                   nb_subfr                    /* I    number of subframes                     */\r
 )\r
 {\r
     SKP_int k;\r
 \r
-    for( k = 0; k < NB_SUBFR; k++ ) {\r
+    for( k = 0; k < nb_subfr; k++ ) {\r
         /* Add half of previous quantization error, convert to log scale, scale, floor() */\r
         ind[ k ] = SKP_SMULWB( SCALE_Q16, SKP_Silk_lin2log( gain_Q16[ k ] ) - OFFSET );\r
 \r
@@ -53,12 +54,12 @@ void SKP_Silk_gains_quant(
         /* Compute delta indices and limit */\r
         if( k == 0 && conditional == 0 ) {\r
             /* Full index */\r
-            ind[ k ] = SKP_LIMIT( ind[ k ], 0, N_LEVELS_QGAIN - 1 );\r
+            ind[ k ] = SKP_LIMIT_int( ind[ k ], 0, N_LEVELS_QGAIN - 1 );\r
             ind[ k ] = SKP_max_int( ind[ k ], *prev_ind + MIN_DELTA_GAIN_QUANT );\r
             *prev_ind = ind[ k ];\r
         } else {\r
             /* Delta index */\r
-            ind[ k ] = SKP_LIMIT( ind[ k ] - *prev_ind, MIN_DELTA_GAIN_QUANT, MAX_DELTA_GAIN_QUANT );\r
+            ind[ k ] = SKP_LIMIT_int( ind[ k ] - *prev_ind, MIN_DELTA_GAIN_QUANT, MAX_DELTA_GAIN_QUANT );\r
             /* Accumulate deltas */\r
             *prev_ind += ind[ k ];\r
             /* Shift to make non-negative */\r
@@ -72,15 +73,16 @@ void SKP_Silk_gains_quant(
 \r
 /* Gains scalar dequantization, uniform on log scale */\r
 void SKP_Silk_gains_dequant(\r
-    SKP_int32                       gain_Q16[ NB_SUBFR ],   /* O    quantized gains                         */\r
-    const SKP_int                   ind[ NB_SUBFR ],        /* I    gain indices                            */\r
-    SKP_int                         *prev_ind,              /* I/O  last index in previous frame            */\r
-    const SKP_int                   conditional             /* I    first gain is delta coded if 1          */\r
+    SKP_int32                       gain_Q16[ MAX_NB_SUBFR ],   /* O    quantized gains                         */\r
+    const SKP_int                   ind[ MAX_NB_SUBFR ],        /* I    gain indices                            */\r
+    SKP_int                         *prev_ind,                  /* I/O  last index in previous frame            */\r
+    const SKP_int                   conditional,                /* I    first gain is delta coded if 1          */\r
+    const SKP_int                   nb_subfr                    /* I    number of subframes                     */\r
 )\r
 {\r
     SKP_int   k;\r
 \r
-    for( k = 0; k < NB_SUBFR; k++ ) {\r
+    for( k = 0; k < nb_subfr; k++ ) {\r
         if( k == 0 && conditional == 0 ) {\r
             *prev_ind = ind[ k ];\r
         } else {\r