diff --git a/libavcodec/ra288.c b/libavcodec/ra288.c index 28dca658c8..bc7d9a91eb 100644 --- a/libavcodec/ra288.c +++ b/libavcodec/ra288.c @@ -111,19 +111,16 @@ static int pred(const float *in, float *tgt, int n) in--; // To avoid a -1 subtraction in the inner loop for (x=1; x <= n; x++) { - float *p1 = tgt + x - 1; - float *p2 = tgt; - f1 = in[x+1]; for (y=0; y < x - 1; y++) f1 += in[x-y]*tgt[y]; - *(p1--) = f2 = -f1/f0; - for (y=x >> 1; y--;) { - float temp = *p2 + *p1 * f2; - *(p1--) += *p2 * f2; - *(p2++) = temp; + tgt[x-1] = f2 = -f1/f0; + for (y=0; y < x >> 1; y++) { + float temp = tgt[y] + tgt[x-y-2]*f2; + tgt[x-y-2] += tgt[y]*f2; + tgt[y] = temp; } if ((f0 += f1*f2) < 0) return 0;