diff options
author | Jean-Marc Valin <jmvalin@amazon.com> | 2022-07-22 09:29:05 +0300 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@amazon.com> | 2022-07-22 19:22:34 +0300 |
commit | e05aea9785f709f5aebb696ee5b4460681676e10 (patch) | |
tree | fdaef5ccc568ef9bbe8cb0bc756d80887ca6a3b8 /celt/celt_lpc.c | |
parent | fbed746cb2d0fee57eae090e67d148d89923f6ff (diff) |
Using saturating round to fix some wrap-arounds
Reviewed by Mark Harris
Diffstat (limited to 'celt/celt_lpc.c')
-rw-r--r-- | celt/celt_lpc.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/celt/celt_lpc.c b/celt/celt_lpc.c index 242e6df5..f91721bc 100644 --- a/celt/celt_lpc.c +++ b/celt/celt_lpc.c @@ -159,17 +159,17 @@ void celt_fir_c( sum[2] = SHL32(EXTEND32(x[i+2]), SIG_SHIFT); sum[3] = SHL32(EXTEND32(x[i+3]), SIG_SHIFT); xcorr_kernel(rnum, x+i-ord, sum, ord, arch); - y[i ] = ROUND16(sum[0], SIG_SHIFT); - y[i+1] = ROUND16(sum[1], SIG_SHIFT); - y[i+2] = ROUND16(sum[2], SIG_SHIFT); - y[i+3] = ROUND16(sum[3], SIG_SHIFT); + y[i ] = SROUND16(sum[0], SIG_SHIFT); + y[i+1] = SROUND16(sum[1], SIG_SHIFT); + y[i+2] = SROUND16(sum[2], SIG_SHIFT); + y[i+3] = SROUND16(sum[3], SIG_SHIFT); } for (;i<N;i++) { opus_val32 sum = SHL32(EXTEND32(x[i]), SIG_SHIFT); for (j=0;j<ord;j++) sum = MAC16_16(sum,rnum[j],x[i+j-ord]); - y[i] = ROUND16(sum, SIG_SHIFT); + y[i] = SROUND16(sum, SIG_SHIFT); } RESTORE_STACK; } |