@ -2237,35 +2237,35 @@ static void imdct_and_windowing(AACContext *ac, SingleChannelElement *sce)
*/
if ( ( ics - > window_sequence [ 1 ] = = ONLY_LONG_SEQUENCE | | ics - > window_sequence [ 1 ] = = LONG_STOP_SEQUENCE ) & &
( ics - > window_sequence [ 0 ] = = ONLY_LONG_SEQUENCE | | ics - > window_sequence [ 0 ] = = LONG_START_SEQUENCE ) ) {
ac - > dsp . vector_fmul_window ( out , saved , buf , lwindow_prev , 512 ) ;
ac - > f dsp. vector_fmul_window ( out , saved , buf , lwindow_prev , 512 ) ;
} else {
memcpy ( out , saved , 448 * sizeof ( float ) ) ;
memcpy ( out , saved , 448 * sizeof ( float ) ) ;
if ( ics - > window_sequence [ 0 ] = = EIGHT_SHORT_SEQUENCE ) {
ac - > dsp . vector_fmul_window ( out + 448 + 0 * 128 , saved + 448 , buf + 0 * 128 , swindow_prev , 64 ) ;
ac - > dsp . vector_fmul_window ( out + 448 + 1 * 128 , buf + 0 * 128 + 64 , buf + 1 * 128 , swindow , 64 ) ;
ac - > dsp . vector_fmul_window ( out + 448 + 2 * 128 , buf + 1 * 128 + 64 , buf + 2 * 128 , swindow , 64 ) ;
ac - > dsp . vector_fmul_window ( out + 448 + 3 * 128 , buf + 2 * 128 + 64 , buf + 3 * 128 , swindow , 64 ) ;
ac - > dsp . vector_fmul_window ( temp , buf + 3 * 128 + 64 , buf + 4 * 128 , swindow , 64 ) ;
memcpy ( out + 448 + 4 * 128 , temp , 64 * sizeof ( float ) ) ;
ac - > f dsp. vector_fmul_window ( out + 448 + 0 * 128 , saved + 448 , buf + 0 * 128 , swindow_prev , 64 ) ;
ac - > f dsp. vector_fmul_window ( out + 448 + 1 * 128 , buf + 0 * 128 + 64 , buf + 1 * 128 , swindow , 64 ) ;
ac - > f dsp. vector_fmul_window ( out + 448 + 2 * 128 , buf + 1 * 128 + 64 , buf + 2 * 128 , swindow , 64 ) ;
ac - > f dsp. vector_fmul_window ( out + 448 + 3 * 128 , buf + 2 * 128 + 64 , buf + 3 * 128 , swindow , 64 ) ;
ac - > f dsp. vector_fmul_window ( temp , buf + 3 * 128 + 64 , buf + 4 * 128 , swindow , 64 ) ;
memcpy ( out + 448 + 4 * 128 , temp , 64 * sizeof ( float ) ) ;
} else {
ac - > dsp . vector_fmul_window ( out + 448 , saved + 448 , buf , swindow_prev , 64 ) ;
memcpy ( out + 576 , buf + 64 , 448 * sizeof ( float ) ) ;
ac - > f dsp. vector_fmul_window ( out + 448 , saved + 448 , buf , swindow_prev , 64 ) ;
memcpy ( out + 576 , buf + 64 , 448 * sizeof ( float ) ) ;
}
}
// buffer update
if ( ics - > window_sequence [ 0 ] = = EIGHT_SHORT_SEQUENCE ) {
memcpy ( saved , temp + 64 , 64 * sizeof ( float ) ) ;
ac - > dsp . vector_fmul_window ( saved + 64 , buf + 4 * 128 + 64 , buf + 5 * 128 , swindow , 64 ) ;
ac - > dsp . vector_fmul_window ( saved + 192 , buf + 5 * 128 + 64 , buf + 6 * 128 , swindow , 64 ) ;
ac - > dsp . vector_fmul_window ( saved + 320 , buf + 6 * 128 + 64 , buf + 7 * 128 , swindow , 64 ) ;
memcpy ( saved + 448 , buf + 7 * 128 + 64 , 64 * sizeof ( float ) ) ;
memcpy ( saved , temp + 64 , 64 * sizeof ( float ) ) ;
ac - > f dsp. vector_fmul_window ( saved + 64 , buf + 4 * 128 + 64 , buf + 5 * 128 , swindow , 64 ) ;
ac - > f dsp. vector_fmul_window ( saved + 192 , buf + 5 * 128 + 64 , buf + 6 * 128 , swindow , 64 ) ;
ac - > f dsp. vector_fmul_window ( saved + 320 , buf + 6 * 128 + 64 , buf + 7 * 128 , swindow , 64 ) ;
memcpy ( saved + 448 , buf + 7 * 128 + 64 , 64 * sizeof ( float ) ) ;
} else if ( ics - > window_sequence [ 0 ] = = LONG_START_SEQUENCE ) {
memcpy ( saved , buf + 512 , 448 * sizeof ( float ) ) ;
memcpy ( saved + 448 , buf + 7 * 128 + 64 , 64 * sizeof ( float ) ) ;
memcpy ( saved , buf + 512 , 448 * sizeof ( float ) ) ;
memcpy ( saved + 448 , buf + 7 * 128 + 64 , 64 * sizeof ( float ) ) ;
} else { // LONG_STOP or ONLY_LONG
memcpy ( saved , buf + 512 , 512 * sizeof ( float ) ) ;
memcpy ( saved , buf + 512 , 512 * sizeof ( float ) ) ;
}
}