SILK update with LBRR and some bugfixes
[opus.git] / src_FLP / SKP_Silk_find_LPC_FLP.c
index 88f1358..8f6be16 100644 (file)
@@ -1,5 +1,5 @@
 /***********************************************************************\r
-Copyright (c) 2006-2010, Skype Limited. All rights reserved. \r
+Copyright (c) 2006-2011, Skype Limited. All rights reserved. \r
 Redistribution and use in source and binary forms, with or without \r
 modification, (subject to the limitations in the disclaimer below) \r
 are permitted provided that the following conditions are met:\r
@@ -26,10 +26,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 ***********************************************************************/\r
 \r
 #include "SKP_Silk_main_FLP.h"\r
+#include "SKP_Silk_tuning_parameters.h"\r
 \r
 void SKP_Silk_find_LPC_FLP(\r
           SKP_float                 NLSF[],             /* O    NLSFs                                   */\r
-          SKP_int                   *interpIndex,       /* O    NLSF interp. index for NLSF interp.     */\r
+          SKP_int8                  *interpIndex,       /* O    NLSF interp. index for NLSF interp.     */\r
     const SKP_float                 prev_NLSFq[],       /* I    Previous NLSFs, for NLSF interpolation  */\r
     const SKP_int                   useInterpNLSFs,     /* I    Flag                                    */\r
     const SKP_int                   LPC_order,          /* I    LPC order                               */\r
@@ -57,6 +58,7 @@ void SKP_Silk_find_LPC_FLP(
         /* adding it to the residual energy of the first 10 ms in each iteration of the search below    */\r
         res_nrg -= SKP_Silk_burg_modified_FLP( a_tmp, x + ( MAX_NB_SUBFR / 2 ) * subfr_length, \r
             subfr_length, MAX_NB_SUBFR / 2, FIND_LPC_COND_FAC, LPC_order );\r
+        SKP_Silk_bwexpander_FLP( a_tmp, LPC_order, FIND_LPC_CHIRP );\r
 \r
         /* Convert to NLSFs */\r
         SKP_Silk_A2NLSF_FLP( NLSF, a_tmp, LPC_order );\r
@@ -80,7 +82,7 @@ void SKP_Silk_find_LPC_FLP(
             if( res_nrg_interp < res_nrg ) {\r
                 /* Interpolation has lower residual energy */\r
                 res_nrg = res_nrg_interp;\r
-                *interpIndex = k;\r
+                *interpIndex = (SKP_int8)k;\r
             } else if( res_nrg_interp > res_nrg_2nd ) {\r
                 /* No reason to continue iterating - residual energies will continue to climb */\r
                 break;\r