changeset 9707:b69723e55653 libavcodec

Move a DECLARE_ALIGNED_16 variable in the Nellymoser encoder from the stack into the context to avoid issues when stack variables can not be aligned reliably.
author reimar
date Mon, 25 May 2009 12:17:02 +0000
parents 473fbc242b43
children d23332ab364f
files nellymoserenc.c
diffstat 1 files changed, 5 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/nellymoserenc.c	Mon May 25 02:34:31 2009 +0000
+++ b/nellymoserenc.c	Mon May 25 12:17:02 2009 +0000
@@ -54,6 +54,7 @@
     DSPContext      dsp;
     MDCTContext     mdct_ctx;
     DECLARE_ALIGNED_16(float, mdct_out[NELLY_SAMPLES]);
+    DECLARE_ALIGNED_16(float, in_buff[NELLY_SAMPLES]);
     DECLARE_ALIGNED_16(float, buf[2][3 * NELLY_BUF_LEN]);     ///< sample buffer
     float           (*opt )[NELLY_BANDS];
     uint8_t         (*path)[NELLY_BANDS];
@@ -111,13 +112,11 @@
 
 void apply_mdct(NellyMoserEncodeContext *s)
 {
-    DECLARE_ALIGNED_16(float, in_buff[NELLY_SAMPLES]);
-
-    memcpy(in_buff, s->buf[s->bufsel], NELLY_BUF_LEN * sizeof(float));
-    s->dsp.vector_fmul(in_buff, ff_sine_128, NELLY_BUF_LEN);
-    s->dsp.vector_fmul_reverse(in_buff + NELLY_BUF_LEN, s->buf[s->bufsel] + NELLY_BUF_LEN, ff_sine_128,
+    memcpy(s->in_buff, s->buf[s->bufsel], NELLY_BUF_LEN * sizeof(float));
+    s->dsp.vector_fmul(s->in_buff, ff_sine_128, NELLY_BUF_LEN);
+    s->dsp.vector_fmul_reverse(s->in_buff + NELLY_BUF_LEN, s->buf[s->bufsel] + NELLY_BUF_LEN, ff_sine_128,
                                NELLY_BUF_LEN);
-    ff_mdct_calc(&s->mdct_ctx, s->mdct_out, in_buff);
+    ff_mdct_calc(&s->mdct_ctx, s->mdct_out, s->in_buff);
 
     s->dsp.vector_fmul(s->buf[s->bufsel] + NELLY_BUF_LEN, ff_sine_128, NELLY_BUF_LEN);
     s->dsp.vector_fmul_reverse(s->buf[s->bufsel] + 2 * NELLY_BUF_LEN, s->buf[1 - s->bufsel], ff_sine_128,