From 7b2516620cebe50cf0cf255219794e46b82f8dbd Mon Sep 17 00:00:00 2001 From: ivoc Date: Wed, 14 Dec 2016 01:59:59 -0800 Subject: [PATCH] Fix for left shift of negative value in NetEq. BUG=chromium:666612 Review-Url: https://codereview.webrtc.org/2569193002 Cr-Commit-Position: refs/heads/master@{#15596} --- webrtc/common_audio/signal_processing/levinson_durbin.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/webrtc/common_audio/signal_processing/levinson_durbin.c b/webrtc/common_audio/signal_processing/levinson_durbin.c index e890c806cb..2983c56dd6 100644 --- a/webrtc/common_audio/signal_processing/levinson_durbin.c +++ b/webrtc/common_audio/signal_processing/levinson_durbin.c @@ -51,8 +51,7 @@ int16_t WebRtcSpl_LevinsonDurbin(const int32_t* R, int16_t* A, int16_t* K, // K = A[1] = -R[1] / R[0] - temp2W32 = WEBRTC_SPL_LSHIFT_W32((int32_t)R_hi[1],16) - + WEBRTC_SPL_LSHIFT_W32((int32_t)R_low[1],1); // R[1] in Q31 + temp2W32 = R[1] * (1 << norm); // R[1] in Q31 temp3W32 = WEBRTC_SPL_ABS_W32(temp2W32); // abs R[1] temp1W32 = WebRtcSpl_DivW32HiLow(temp3W32, R_hi[0], R_low[0]); // abs(R[1])/R[0] in Q31 // Put back the sign on R[1]