Update SILK code using the CELT range coder
[opus.git] / src_SigProc_FIX / SKP_Silk_NLSF2A.c
similarity index 93%
rename from src/SKP_Silk_NLSF2A.c
rename to src_SigProc_FIX/SKP_Silk_NLSF2A.c
index 262b654..b262068 100644 (file)
@@ -63,13 +63,13 @@ void SKP_Silk_NLSF2A(
 )\r
 {\r
     SKP_int k, i, dd;\r
-    SKP_int32 cos_LSF_Q20[SigProc_MAX_ORDER_LPC];\r
-    SKP_int32 P[SigProc_MAX_ORDER_LPC/2+1], Q[SigProc_MAX_ORDER_LPC/2+1];\r
+    SKP_int32 cos_LSF_Q20[SKP_Silk_MAX_ORDER_LPC];\r
+    SKP_int32 P[SKP_Silk_MAX_ORDER_LPC/2+1], Q[SKP_Silk_MAX_ORDER_LPC/2+1];\r
     SKP_int32 Ptmp, Qtmp;\r
     SKP_int32 f_int;\r
     SKP_int32 f_frac;\r
     SKP_int32 cos_val, delta;\r
-    SKP_int32 a_int32[SigProc_MAX_ORDER_LPC];\r
+    SKP_int32 a_int32[SKP_Silk_MAX_ORDER_LPC];\r
     SKP_int32 maxabs, absval, idx=0, sc_Q16; \r
 \r
     SKP_assert(LSF_COS_TAB_SZ_FIX == 128);\r
@@ -127,6 +127,7 @@ void SKP_Silk_NLSF2A(
     \r
         if( maxabs > SKP_int16_MAX ) {    \r
             /* Reduce magnitude of prediction coefficients */\r
+            maxabs = SKP_min( maxabs, 98369 ); // ( SKP_int32_MAX / ( 65470 >> 2 ) ) + SKP_int16_MAX = 98369 \r
             sc_Q16 = 65470 - SKP_DIV32( SKP_MUL( 65470 >> 2, maxabs - SKP_int16_MAX ), \r
                                         SKP_RSHIFT32( SKP_MUL( maxabs, idx + 1), 2 ) );\r
             SKP_Silk_bwexpander_32( a_int32, d, sc_Q16 );\r