Fixes a bug in the handling of the first packet after DTX
[opus.git] / src_SigProc_FIX / SKP_Silk_A2NLSF.c
index d098ae1..592c88c 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
@@ -117,7 +117,7 @@ SKP_INLINE void SKP_Silk_A2NLSF_init(
 /* Compute Normalized Line Spectral Frequencies (NLSFs) from whitening filter coefficients        */\r
 /* If not all roots are found, the a_Q16 coefficients are bandwidth expanded until convergence.    */\r
 void SKP_Silk_A2NLSF(\r
-    SKP_int          *NLSF,                 /* O    Normalized Line Spectral Frequencies, Q15 (0 - (2^15-1)), [d]    */\r
+    SKP_int16        *NLSF,                 /* O    Normalized Line Spectral Frequencies, Q15 (0 - (2^15-1)), [d]    */\r
     SKP_int32        *a_Q16,                /* I/O  Monic whitening filter coefficients in Q16 [d]                   */\r
     const SKP_int    d                      /* I    Filter order (must be even)                                      */\r
 )\r
@@ -210,9 +210,9 @@ void SKP_Silk_A2NLSF(
                 ffrac += SKP_DIV32( ylo, SKP_RSHIFT( ylo - yhi, 8 - BIN_DIV_STEPS_A2NLSF_FIX ) );\r
             }\r
 #if OVERSAMPLE_COSINE_TABLE\r
-            NLSF[ root_ix ] = (SKP_int)SKP_min_32( SKP_LSHIFT( (SKP_int32)k, 7 ) + ffrac, SKP_int16_MAX ); \r
+            NLSF[ root_ix ] = (SKP_int16)SKP_min_32( SKP_LSHIFT( (SKP_int32)k, 7 ) + ffrac, SKP_int16_MAX ); \r
 #else\r
-            NLSF[ root_ix ] = (SKP_int)SKP_min_32( SKP_LSHIFT( (SKP_int32)k, 8 ) + ffrac, SKP_int16_MAX ); \r
+            NLSF[ root_ix ] = (SKP_int16)SKP_min_32( SKP_LSHIFT( (SKP_int32)k, 8 ) + ffrac, SKP_int16_MAX ); \r
 #endif\r
 \r
             SKP_assert( NLSF[ root_ix ] >=     0 );\r
@@ -249,9 +249,9 @@ void SKP_Silk_A2NLSF(
                 i++;\r
                 if( i > MAX_ITERATIONS_A2NLSF_FIX ) {\r
                     /* Set NLSFs to white spectrum and exit */\r
-                    NLSF[ 0 ] = SKP_DIV32_16( 1 << 15, d + 1 );\r
+                    NLSF[ 0 ] = (SKP_int16)SKP_DIV32_16( 1 << 15, d + 1 );\r
                     for( k = 1; k < d; k++ ) {\r
-                        NLSF[ k ] = SKP_SMULBB( k + 1, NLSF[ 0 ] );\r
+                        NLSF[ k ] = (SKP_int16)SKP_SMULBB( k + 1, NLSF[ 0 ] );\r
                     }\r
                     return;\r
                 }\r