X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fopus_silk.c;h=2fcbf3b9d3ce6533aa73d98d252309fdb12f0a77;hb=ed5680f37ed30a01933c0158b21e3bb3c8acfe4a;hp=344333cc180f05d7833b9ee48fe90091bad1b39c;hpb=0cc8e34a94c84132cf5b0f6472c5f61c8a66cee1;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 */