X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fopus_silk.c;h=2fcbf3b9d3ce6533aa73d98d252309fdb12f0a77;hb=7f22a4ebc97817fd0968f5ea8295c9a59a6292e0;hp=344333cc180f05d7833b9ee48fe90091bad1b39c;hpb=b065c71e9d2ad3c5d65f924a4003e3a7ee595417;p=ffmpeg diff --git a/libavcodec/opus_silk.c b/libavcodec/opus_silk.c index 344333cc180..2fcbf3b9d3c 100644 --- a/libavcodec/opus_silk.c +++ b/libavcodec/opus_silk.c @@ -239,8 +239,10 @@ static void silk_lsf2lpc(const int16_t nlsf[16], float lpcf[16], int order) /* reconstruct A(z) */ for (k = 0; k < order>>1; k++) { - lpc32[k] = -p[k + 1] - p[k] - q[k + 1] + q[k]; - lpc32[order-k-1] = -p[k + 1] - p[k] + q[k + 1] - q[k]; + int32_t p_tmp = p[k + 1] + p[k]; + int32_t q_tmp = q[k + 1] - q[k]; + lpc32[k] = -q_tmp - p_tmp; + lpc32[order-k-1] = q_tmp - p_tmp; } /* limit the range of the LPC coefficients to each fit within an int16_t */