Skip to content
Snippets Groups Projects
Commit f17623f2 authored by Marcello Caramma (mcaramma)'s avatar Marcello Caramma (mcaramma) Committed by Jean-Marc Valin
Browse files

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: default avatarJean-Marc Valin <jmvalin@jmvalin.ca>
parent 718b10c6
No related branches found
No related tags found
No related merge requests found
...@@ -276,8 +276,8 @@ void clt_mdct_backward(const mdct_lookup *l, kiss_fft_scalar *in, kiss_fft_scala ...@@ -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 /* Post-rotate and de-shuffle from both ends of the buffer at once to make
it in-place. */ it in-place. */
{ {
kiss_fft_scalar * OPUS_RESTRICT yp0 = out+(overlap>>1); kiss_fft_scalar * yp0 = out+(overlap>>1);
kiss_fft_scalar * OPUS_RESTRICT yp1 = out+(overlap>>1)+N2-2; kiss_fft_scalar * yp1 = out+(overlap>>1)+N2-2;
const kiss_twiddle_scalar *t = &trig[0]; const kiss_twiddle_scalar *t = &trig[0];
/* Loop to (N4+1)>>1 to handle odd N4. When N4 is odd, the /* Loop to (N4+1)>>1 to handle odd N4. When N4 is odd, the
middle pair will be computed twice. */ middle pair will be computed twice. */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment