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.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/apps/codecs/libfaad/filtbank.c b/apps/codecs/libfaad/filtbank.c
index 13cc265e21..603e02fa86 100644
--- a/apps/codecs/libfaad/filtbank.c
+++ b/apps/codecs/libfaad/filtbank.c
@@ -159,13 +159,14 @@ static INLINE void mdct(fb_info *fb, real_t *in_data, real_t *out_data, uint16_t
159} 159}
160#endif 160#endif
161 161
162ALIGN real_t transf_buf[2*1024] = {0};
163
162void ifilter_bank(fb_info *fb, uint8_t window_sequence, uint8_t window_shape, 164void ifilter_bank(fb_info *fb, uint8_t window_sequence, uint8_t window_shape,
163 uint8_t window_shape_prev, real_t *freq_in, 165 uint8_t window_shape_prev, real_t *freq_in,
164 real_t *time_out, real_t *overlap, 166 real_t *time_out, real_t *overlap,
165 uint8_t object_type, uint16_t frame_len) 167 uint8_t object_type, uint16_t frame_len)
166{ 168{
167 int16_t i; 169 int16_t i;
168 ALIGN real_t transf_buf[2*1024] = {0};
169 170
170 const real_t *window_long = NULL; 171 const real_t *window_long = NULL;
171 const real_t *window_long_prev = NULL; 172 const real_t *window_long_prev = NULL;
@@ -182,6 +183,7 @@ void ifilter_bank(fb_info *fb, uint8_t window_sequence, uint8_t window_shape,
182 int64_t count = faad_get_ts(); 183 int64_t count = faad_get_ts();
183#endif 184#endif
184 185
186 memset(transf_buf,0,sizeof(transf_buf));
185 /* select windows of current frame and previous frame (Sine or KBD) */ 187 /* select windows of current frame and previous frame (Sine or KBD) */
186#ifdef LD_DEC 188#ifdef LD_DEC
187 if (object_type == LD) 189 if (object_type == LD)
@@ -331,13 +333,13 @@ void ifilter_bank(fb_info *fb, uint8_t window_sequence, uint8_t window_shape,
331 333
332 334
333#ifdef LTP_DEC 335#ifdef LTP_DEC
336ALIGN real_t windowed_buf[2*1024] = {0};
334/* only works for LTP -> no overlapping, no short blocks */ 337/* only works for LTP -> no overlapping, no short blocks */
335void filter_bank_ltp(fb_info *fb, uint8_t window_sequence, uint8_t window_shape, 338void filter_bank_ltp(fb_info *fb, uint8_t window_sequence, uint8_t window_shape,
336 uint8_t window_shape_prev, real_t *in_data, real_t *out_mdct, 339 uint8_t window_shape_prev, real_t *in_data, real_t *out_mdct,
337 uint8_t object_type, uint16_t frame_len) 340 uint8_t object_type, uint16_t frame_len)
338{ 341{
339 int16_t i; 342 int16_t i;
340 ALIGN real_t windowed_buf[2*1024] = {0};
341 343
342 const real_t *window_long = NULL; 344 const real_t *window_long = NULL;
343 const real_t *window_long_prev = NULL; 345 const real_t *window_long_prev = NULL;
@@ -348,8 +350,9 @@ void filter_bank_ltp(fb_info *fb, uint8_t window_sequence, uint8_t window_shape,
348 uint16_t nshort = frame_len/8; 350 uint16_t nshort = frame_len/8;
349 uint16_t nflat_ls = (nlong-nshort)/2; 351 uint16_t nflat_ls = (nlong-nshort)/2;
350 352
351 assert(window_sequence != EIGHT_SHORT_SEQUENCE); 353 //assert(window_sequence != EIGHT_SHORT_SEQUENCE);
352 354
355 memset(windowed_buf,0,sizeof(windowed_buf));
353#ifdef LD_DEC 356#ifdef LD_DEC
354 if (object_type == LD) 357 if (object_type == LD)
355 { 358 {