diff --git a/celt/celt.c b/celt/celt.c index 91f7dfe1c20a4e604f4d2bf05d7d758f8a785b94..1c4aedbef467b94d897c6c6e4d29ac3003273c0c 100644 --- a/celt/celt.c +++ b/celt/celt.c @@ -572,6 +572,10 @@ static void deemphasis(celt_sig *in[], opus_val16 *pcm, int N, int C, int downsa { int c; int Nd; + opus_val16 coef0, coef1; + + coef0 = coef[0]; + coef1 = coef[1]; Nd = N/downsample; c=0; do { int j; @@ -581,21 +585,22 @@ static void deemphasis(celt_sig *in[], opus_val16 *pcm, int N, int C, int downsa x =in[c]; y = pcm+c; /* Shortcut for the standard (non-custom modes) case */ - if (coef[1] == 0) + if (coef1 == 0) { for (j=0;j<N;j++) { celt_sig tmp = x[j] + m; - m = MULT16_32_Q15(coef[0], tmp); + m = MULT16_32_Q15(coef0, tmp); scratch[j] = tmp; } } else { + opus_val16 coef3 = coef[3]; for (j=0;j<N;j++) { celt_sig tmp = x[j] + m; - m = MULT16_32_Q15(coef[0], tmp) - - MULT16_32_Q15(coef[1], x[j]); - tmp = SHL32(MULT16_32_Q15(coef[3], tmp), 2); + m = MULT16_32_Q15(coef0, tmp) + - MULT16_32_Q15(coef1, x[j]); + tmp = SHL32(MULT16_32_Q15(coef3, tmp), 2); scratch[j] = tmp; } }