| Index: webrtc/common_audio/signal_processing/cross_correlation.c
|
| diff --git a/webrtc/common_audio/signal_processing/cross_correlation.c b/webrtc/common_audio/signal_processing/cross_correlation.c
|
| index d7c9f2b9afede2a0a86d20bf33c082626de2eade..82a42c71b76225ae041c12aa4947190c1a7bdc58 100644
|
| --- a/webrtc/common_audio/signal_processing/cross_correlation.c
|
| +++ b/webrtc/common_audio/signal_processing/cross_correlation.c
|
| @@ -10,6 +10,8 @@
|
|
|
| #include "webrtc/common_audio/signal_processing/include/signal_processing_library.h"
|
|
|
| +#include <assert.h>
|
| +
|
| /* C version of WebRtcSpl_CrossCorrelation() for generic platforms. */
|
| void WebRtcSpl_CrossCorrelationC(int32_t* cross_correlation,
|
| const int16_t* seq1,
|
| @@ -22,8 +24,12 @@ void WebRtcSpl_CrossCorrelationC(int32_t* cross_correlation,
|
|
|
| for (i = 0; i < dim_cross_correlation; i++) {
|
| int32_t corr = 0;
|
| - for (j = 0; j < dim_seq; j++)
|
| - corr += (seq1[j] * seq2[j]) >> right_shifts;
|
| + for (j = 0; j < dim_seq; j++) {
|
| + int32_t old = corr;
|
| + int32_t add = seq1[j] * seq2[j];
|
| + corr += add >> right_shifts;
|
| + assert((add >= 0 && corr >= old) || (add < 0 && corr < old));
|
| + }
|
| seq2 += step_seq2;
|
| *cross_correlation++ = corr;
|
| }
|
|
|