diff options
Diffstat (limited to 'apps/codecs/libfaad/filtbank.c')
-rw-r--r-- | apps/codecs/libfaad/filtbank.c | 20 |
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 | ||
199 | ALIGN real_t transf_buf[2*1024] IBSS_ATTR; | 199 | ALIGN real_t transf_buf[2*1024] IBSS_ATTR; |
200 | 200 | ||
201 | void ifilter_bank(uint8_t window_sequence, | 201 | void 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 | } |