shithub: opus

Download patch

ref: ae3321849596094d204f9c3dbe485b5fde6e5782
parent: c76c4de1232531b80c4f6bdf7415771c326d5e92
author: Jean-Marc Valin <jmvalin@jmvalin.ca>
date: Fri Jul 22 10:44:24 EDT 2016

Reduce risk of overflowing in mono downsampling

Not observed yet (except when caused by a different bug), but "just in case"

--- a/celt/celt_decoder.c
+++ b/celt/celt_decoder.c
@@ -333,7 +333,7 @@
       denormalise_bands(mode, X+N, freq2, oldBandE+nbEBands, start, effEnd, M,
             downsample, silence);
       for (i=0;i<N;i++)
-         freq[i] = HALF32(ADD32(freq[i],freq2[i]));
+         freq[i] = ADD32(HALF32(freq[i]), HALF32(freq2[i]));
       for (b=0;b<B;b++)
          clt_mdct_backward(&mode->mdct, &freq[b], out_syn[0]+NB*b, mode->window, overlap, shift, B, arch);
    } else {