summaryrefslogtreecommitdiff
path: root/apps/codecs/libfaad/filtbank.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libfaad/filtbank.c')
-rw-r--r--apps/codecs/libfaad/filtbank.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/apps/codecs/libfaad/filtbank.c b/apps/codecs/libfaad/filtbank.c
index e5c1bd3870..90175d953c 100644
--- a/apps/codecs/libfaad/filtbank.c
+++ b/apps/codecs/libfaad/filtbank.c
@@ -198,8 +198,8 @@ static INLINE void mdct(fb_info *fb, real_t *in_data, real_t *out_data, uint16_t
198 198
199ALIGN real_t transf_buf[2*1024] IBSS_ATTR; 199ALIGN real_t transf_buf[2*1024] IBSS_ATTR;
200 200
201void ifilter_bank(uint8_t window_sequence, 201void ifilter_bank(uint8_t window_sequence, uint8_t window_shape,
202 real_t *freq_in, 202 uint8_t window_shape_prev, real_t *freq_in,
203 real_t *time_out, real_t *overlap, 203 real_t *time_out, real_t *overlap,
204 uint8_t object_type, uint16_t frame_len) 204 uint8_t object_type, uint16_t frame_len)
205{ 205{
@@ -232,10 +232,22 @@ void ifilter_bank(uint8_t window_sequence,
232 (void) object_type; 232 (void) object_type;
233#endif 233#endif
234 234
235 window_long = sine_long_1024; 235 /*AAC uses two different window shapes depending on spectal features*/
236 if(window_shape == 0){
237 window_long = sine_long_1024;
238 window_short = sine_short_128;
239 } else {
240 window_long = kbd_long_1024;
241 window_short = kbd_short_128;
242 }
243
244 if(window_shape_prev == 0){
245 window_long_prev = sine_long_1024;
246 window_short_prev = sine_short_128;
247 } else {
236 window_long_prev = kbd_long_1024; 248 window_long_prev = kbd_long_1024;
237 window_short = sine_short_128;
238 window_short_prev = kbd_short_128; 249 window_short_prev = kbd_short_128;
250 }
239 251
240#ifdef LD_DEC 252#ifdef LD_DEC
241 } 253 }