@ -54,6 +54,7 @@ typedef struct NellyMoserEncodeContext {
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 @@ static const uint8_t quant_lut_offset[8] = { 0, 0, 1, 4, 11, 32, 81, 230 };
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 ,