diff options
author | Marcello Caramma (mcaramma) <mcaramma@cisco.com> | 2014-02-24 15:06:46 -0500 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2014-02-24 15:06:46 -0500 |
commit | f17623f2f9c7b129ba6b27f2c32fdfed70a5736c (patch) | |
tree | 5c122288ae93e17fb2ea9d4d75b1c34f694cffd3 /celt | |
parent | 718b10c6282c3ef9d8052e22aee5e853700c2529 (diff) | |
download | libopus-f17623f2f9c7b129ba6b27f2c32fdfed70a5736c.tar.gz |
Fixes an aliasing bug in the MDCT when the frame size isn't a multiple of 4.
In that case, the yp0 and yp1 ended up aliasing for the last element,
despite being marked as restrict.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
Diffstat (limited to 'celt')
-rw-r--r-- | celt/mdct.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/celt/mdct.c b/celt/mdct.c index 1634e8e0..fa5098cd 100644 --- a/celt/mdct.c +++ b/celt/mdct.c @@ -276,8 +276,8 @@ void clt_mdct_backward(const mdct_lookup *l, kiss_fft_scalar *in, kiss_fft_scala /* Post-rotate and de-shuffle from both ends of the buffer at once to make it in-place. */ { - kiss_fft_scalar * OPUS_RESTRICT yp0 = out+(overlap>>1); - kiss_fft_scalar * OPUS_RESTRICT yp1 = out+(overlap>>1)+N2-2; + kiss_fft_scalar * yp0 = out+(overlap>>1); + kiss_fft_scalar * yp1 = out+(overlap>>1)+N2-2; const kiss_twiddle_scalar *t = &trig[0]; /* Loop to (N4+1)>>1 to handle odd N4. When N4 is odd, the middle pair will be computed twice. */ |