shithub: opus

Download patch

ref: dcb285211683d7e6d7ee7f47a7c556239f91c231
parent: e99896ebe5eaf57d2590fa2d6b653b4ee94d4b81
author: Jean-Marc Valin <[email protected]>
date: Wed Feb 2 13:16:06 EST 2011

Fixes uninitialised memory issues

--- a/src_FIX/SKP_Silk_find_pitch_lags_FIX.c
+++ b/src_FIX/SKP_Silk_find_pitch_lags_FIX.c
@@ -128,5 +128,10 @@
         } else {
             psEncCtrl->sCmn.signalType = TYPE_UNVOICED;
         }
+    } else {
+        SKP_memset( psEncCtrl->sCmn.pitchL, 0, sizeof( psEncCtrl->sCmn.pitchL ) );
+        psEncCtrl->sCmn.lagIndex = 0;
+        psEncCtrl->sCmn.contourIndex = 0;
+        psEnc->LTPCorr_Q15 = 0;
     }
 }
--- a/src_FLP/SKP_Silk_find_pitch_lags_FLP.c
+++ b/src_FLP/SKP_Silk_find_pitch_lags_FLP.c
@@ -120,5 +120,10 @@
         } else {
             psEncCtrl->sCmn.signalType = TYPE_UNVOICED;
         }
+    } else {
+        SKP_memset( psEncCtrl->sCmn.pitchL, 0, sizeof( psEncCtrl->sCmn.pitchL ) );
+        psEncCtrl->sCmn.lagIndex = 0;
+        psEncCtrl->sCmn.contourIndex = 0;
+        psEnc->LTPCorr = 0;
     }
 }
--- a/src_FLP/SKP_Silk_wrappers_FLP.c
+++ b/src_FLP/SKP_Silk_wrappers_FLP.c
@@ -163,7 +163,6 @@
     SKP_int     i, j;
     SKP_float   tmp_float;
     SKP_int16   x_16[ MAX_FRAME_LENGTH ];
-    /* Prediction and coding parameters */
     SKP_int32   Gains_Q16[ MAX_NB_SUBFR ];
     SKP_DWORD_ALIGN SKP_int16 PredCoef_Q12[ 2 ][ MAX_LPC_ORDER ];
     SKP_int16   LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ];
@@ -179,8 +178,10 @@
 
     /* Convert control struct to fix control struct */
     /* Noise shape parameters */
-    for( i = 0; i < MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER; i++ ) {
-        AR2_Q13[ i ] = SKP_float2int( psEncCtrl->AR2[ i ] * 8192.0f );
+    for( i = 0; i < MAX_NB_SUBFR; i++ ) {
+        for( j = 0; j < psEnc->sCmn.shapingLPCOrder; j++ ) {
+            AR2_Q13[ i * MAX_SHAPE_LPC_ORDER + j ] = SKP_float2int( psEncCtrl->AR2[ i * MAX_SHAPE_LPC_ORDER + j ] * 8192.0f );
+        }
     }
 
     for( i = 0; i < MAX_NB_SUBFR; i++ ) {