1*15dc779aSAndroid Build Coastguard Worker /****************************************************************************** 2*15dc779aSAndroid Build Coastguard Worker * * 3*15dc779aSAndroid Build Coastguard Worker * Copyright (C) 2018 The Android Open Source Project 4*15dc779aSAndroid Build Coastguard Worker * 5*15dc779aSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 6*15dc779aSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 7*15dc779aSAndroid Build Coastguard Worker * You may obtain a copy of the License at: 8*15dc779aSAndroid Build Coastguard Worker * 9*15dc779aSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 10*15dc779aSAndroid Build Coastguard Worker * 11*15dc779aSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 12*15dc779aSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 13*15dc779aSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*15dc779aSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 15*15dc779aSAndroid Build Coastguard Worker * limitations under the License. 16*15dc779aSAndroid Build Coastguard Worker * 17*15dc779aSAndroid Build Coastguard Worker ***************************************************************************** 18*15dc779aSAndroid Build Coastguard Worker * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19*15dc779aSAndroid Build Coastguard Worker */ 20*15dc779aSAndroid Build Coastguard Worker #ifndef IXHEAACD_QMF_DEC_H 21*15dc779aSAndroid Build Coastguard Worker #define IXHEAACD_QMF_DEC_H 22*15dc779aSAndroid Build Coastguard Worker 23*15dc779aSAndroid Build Coastguard Worker typedef struct { 24*15dc779aSAndroid Build Coastguard Worker WORD32 no_channels; 25*15dc779aSAndroid Build Coastguard Worker const WORD16 *analy_win_coeff; 26*15dc779aSAndroid Build Coastguard Worker const WORD16 *p_filter; 27*15dc779aSAndroid Build Coastguard Worker const WORD16 *cos_twiddle; 28*15dc779aSAndroid Build Coastguard Worker const WORD16 *sin_twiddle; 29*15dc779aSAndroid Build Coastguard Worker const WORD16 *alt_sin_twiddle; 30*15dc779aSAndroid Build Coastguard Worker const WORD16 *t_cos; 31*15dc779aSAndroid Build Coastguard Worker const WORD16 *t_sin; 32*15dc779aSAndroid Build Coastguard Worker 33*15dc779aSAndroid Build Coastguard Worker WORD16 *anal_filter_states; 34*15dc779aSAndroid Build Coastguard Worker WORD16 *filter_states; 35*15dc779aSAndroid Build Coastguard Worker WORD16 num_time_slots; 36*15dc779aSAndroid Build Coastguard Worker 37*15dc779aSAndroid Build Coastguard Worker WORD16 lsb; 38*15dc779aSAndroid Build Coastguard Worker WORD16 usb; 39*15dc779aSAndroid Build Coastguard Worker 40*15dc779aSAndroid Build Coastguard Worker WORD16 qmf_filter_state_size; 41*15dc779aSAndroid Build Coastguard Worker WORD16 *core_samples_buffer; 42*15dc779aSAndroid Build Coastguard Worker WORD16 ana_offset; 43*15dc779aSAndroid Build Coastguard Worker WORD16 *filter_pos; 44*15dc779aSAndroid Build Coastguard Worker WORD16 *dummy_0; 45*15dc779aSAndroid Build Coastguard Worker WORD16 ixheaacd_drc_offset; 46*15dc779aSAndroid Build Coastguard Worker WORD16 *filter_pos_syn; 47*15dc779aSAndroid Build Coastguard Worker WORD16 *dummy_1; 48*15dc779aSAndroid Build Coastguard Worker 49*15dc779aSAndroid Build Coastguard Worker WORD32 *analy_win_coeff_32; 50*15dc779aSAndroid Build Coastguard Worker const WORD32 *p_filter_32; 51*15dc779aSAndroid Build Coastguard Worker const WORD32 *esbr_cos_twiddle; 52*15dc779aSAndroid Build Coastguard Worker const WORD32 *esbr_alt_sin_twiddle; 53*15dc779aSAndroid Build Coastguard Worker const WORD32 *esbr_t_cos; 54*15dc779aSAndroid Build Coastguard Worker WORD32 *anal_filter_states_32; 55*15dc779aSAndroid Build Coastguard Worker WORD32 *state_new_samples_pos_low_32; 56*15dc779aSAndroid Build Coastguard Worker WORD32 *filter_states_32; 57*15dc779aSAndroid Build Coastguard Worker WORD32 *filter_pos_32; 58*15dc779aSAndroid Build Coastguard Worker WORD32 *filter_pos_syn_32; 59*15dc779aSAndroid Build Coastguard Worker 60*15dc779aSAndroid Build Coastguard Worker WORD16 *fp1_anal; 61*15dc779aSAndroid Build Coastguard Worker WORD16 *fp2_anal; 62*15dc779aSAndroid Build Coastguard Worker WORD16 *filter_2; 63*15dc779aSAndroid Build Coastguard Worker 64*15dc779aSAndroid Build Coastguard Worker WORD16 *fp1_syn; 65*15dc779aSAndroid Build Coastguard Worker WORD16 *fp2_syn; 66*15dc779aSAndroid Build Coastguard Worker WORD16 sixty4; 67*15dc779aSAndroid Build Coastguard Worker WORD32 *core_samples_buffer_32; 68*15dc779aSAndroid Build Coastguard Worker WORD32 *fp1_anal_32; 69*15dc779aSAndroid Build Coastguard Worker WORD32 *fp2_anal_32; 70*15dc779aSAndroid Build Coastguard Worker WORD32 *filter_2_32; 71*15dc779aSAndroid Build Coastguard Worker 72*15dc779aSAndroid Build Coastguard Worker } ia_sbr_qmf_filter_bank_struct; 73*15dc779aSAndroid Build Coastguard Worker 74*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_cplx_anal_qmffilt(const WORD16 *time_inp, 75*15dc779aSAndroid Build Coastguard Worker ia_sbr_scale_fact_struct *sbr_scale_factor, WORD32 **qmf_real, 76*15dc779aSAndroid Build Coastguard Worker WORD32 **qmf_imag, ia_sbr_qmf_filter_bank_struct *qmf_bank, 77*15dc779aSAndroid Build Coastguard Worker ia_qmf_dec_tables_struct *qmf_dec_tables_ptr, WORD ch_fac, 78*15dc779aSAndroid Build Coastguard Worker WORD32 low_pow_flag, WORD audio_object_type); 79*15dc779aSAndroid Build Coastguard Worker 80*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_cplx_anal_qmffilt_32(const WORD32 *time_inp, 81*15dc779aSAndroid Build Coastguard Worker ia_sbr_scale_fact_struct *sbr_scale_factor, 82*15dc779aSAndroid Build Coastguard Worker WORD32 **qmf_real, WORD32 **qmf_imag, 83*15dc779aSAndroid Build Coastguard Worker ia_sbr_qmf_filter_bank_struct *qmf_bank, 84*15dc779aSAndroid Build Coastguard Worker ia_qmf_dec_tables_struct *qmf_dec_tables_ptr, 85*15dc779aSAndroid Build Coastguard Worker WORD ch_fac, WORD32 ldsbr_present); 86*15dc779aSAndroid Build Coastguard Worker 87*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_cplx_synt_qmffilt( 88*15dc779aSAndroid Build Coastguard Worker WORD32 **qmf_real, WORD32 **qmf_im, WORD32 split_slot, 89*15dc779aSAndroid Build Coastguard Worker WORD32 *qmf_real_out[MAX_ENV_COLS], WORD32 *qmf_imag_out[MAX_ENV_COLS], 90*15dc779aSAndroid Build Coastguard Worker ia_sbr_scale_fact_struct *sbr_scale_factor, WORD16 *time_out, 91*15dc779aSAndroid Build Coastguard Worker ia_sbr_qmf_filter_bank_struct *qmf_bank, ia_ps_dec_struct *ptr_ps_dec, 92*15dc779aSAndroid Build Coastguard Worker FLAG active, FLAG low_pow_flag, ia_sbr_tables_struct *sbr_tables_ptr, 93*15dc779aSAndroid Build Coastguard Worker ixheaacd_misc_tables *pstr_common_tables, WORD ch_fac, FLAG drc_on, 94*15dc779aSAndroid Build Coastguard Worker WORD32 drc_sbr_factors[][64], WORD32 audio_object_type); 95*15dc779aSAndroid Build Coastguard Worker 96*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_esbr_qmfanal32_winadd(WORD32 *inp1, WORD32 *inp2, 97*15dc779aSAndroid Build Coastguard Worker WORD32 *tmp_qmf_1, WORD32 *tmp_qmf_2, 98*15dc779aSAndroid Build Coastguard Worker WORD32 *out, WORD32 num_band); 99*15dc779aSAndroid Build Coastguard Worker 100*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_esbr_fwd_modulation(const WORD32 *time_in, WORD32 *r_subband, 101*15dc779aSAndroid Build Coastguard Worker WORD32 *i_subband, 102*15dc779aSAndroid Build Coastguard Worker ia_sbr_qmf_filter_bank_struct *qmf_bank, 103*15dc779aSAndroid Build Coastguard Worker ia_qmf_dec_tables_struct *qmf_dec_tables_ptr); 104*15dc779aSAndroid Build Coastguard Worker 105*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_esbr_inv_modulation(WORD32 *qmf_real, 106*15dc779aSAndroid Build Coastguard Worker ia_sbr_qmf_filter_bank_struct *syn_qmf, 107*15dc779aSAndroid Build Coastguard Worker ia_qmf_dec_tables_struct *qmf_dec_tables_ptr, 108*15dc779aSAndroid Build Coastguard Worker WORD32 no_synthesis_channels); 109*15dc779aSAndroid Build Coastguard Worker 110*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_shiftrountine_with_rnd_hq(WORD32 *qmf_real, WORD32 *qmf_imag, 111*15dc779aSAndroid Build Coastguard Worker WORD32 *filter_states, WORD32 len, 112*15dc779aSAndroid Build Coastguard Worker WORD32 shift); 113*15dc779aSAndroid Build Coastguard Worker 114*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_esbr_qmfsyn64_winadd(WORD32 *tmp1, WORD32 *tmp2, WORD32 *inp1, 115*15dc779aSAndroid Build Coastguard Worker WORD32 *sample_buffer, WORD32 ch_fac); 116*15dc779aSAndroid Build Coastguard Worker 117*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_esbr_qmfsyn32_winadd(WORD32 *tmp1, WORD32 *tmp2, WORD32 *inp1, 118*15dc779aSAndroid Build Coastguard Worker WORD32 *sample_buffer, WORD32 ch_fac); 119*15dc779aSAndroid Build Coastguard Worker 120*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_sbr_qmfanal32_winadds(WORD16 *fp1, WORD16 *fp2, WORD16 *filter_1, 121*15dc779aSAndroid Build Coastguard Worker WORD16 *filter_2, WORD32 *analysis_buffer, 122*15dc779aSAndroid Build Coastguard Worker WORD16 *filter_states, 123*15dc779aSAndroid Build Coastguard Worker const WORD16 *time_sample_buf, 124*15dc779aSAndroid Build Coastguard Worker WORD32 ch_fac); 125*15dc779aSAndroid Build Coastguard Worker 126*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_sbr_qmfanal32_winadds_eld(WORD16 *fp1, WORD16 *fp2, 127*15dc779aSAndroid Build Coastguard Worker WORD16 *filter_1, WORD16 *filter_2, 128*15dc779aSAndroid Build Coastguard Worker WORD32 *analysis_buffer, 129*15dc779aSAndroid Build Coastguard Worker WORD16 *filter_states, 130*15dc779aSAndroid Build Coastguard Worker const WORD16 *time_sample_buf, 131*15dc779aSAndroid Build Coastguard Worker WORD32 ch_fac); 132*15dc779aSAndroid Build Coastguard Worker 133*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_fwd_modulation(const WORD32 *p_time_in1, WORD32 *real_subband, 134*15dc779aSAndroid Build Coastguard Worker WORD32 *imag_subband, 135*15dc779aSAndroid Build Coastguard Worker ia_sbr_qmf_filter_bank_struct *qmf_bank, 136*15dc779aSAndroid Build Coastguard Worker ia_qmf_dec_tables_struct *qmf_dec_tables_ptr, 137*15dc779aSAndroid Build Coastguard Worker WORD32 ld_mps_flag); 138*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_dct3_32(WORD32 *input, WORD32 *output, 139*15dc779aSAndroid Build Coastguard Worker const WORD16 *main_twidle_fwd, const WORD16 *post_tbl, 140*15dc779aSAndroid Build Coastguard Worker const WORD16 *w_16, const WORD32 *p_table); 141*15dc779aSAndroid Build Coastguard Worker 142*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_dec_DCT2_64_asm(WORD32 *dct_in, WORD32 *ptime_out, WORD32 *w1024, 143*15dc779aSAndroid Build Coastguard Worker UWORD8 *dig_rev_table2_128, WORD16 *post_fft_tbl, 144*15dc779aSAndroid Build Coastguard Worker WORD16 *dct23_tw, WORD16 *filter_states); 145*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_cos_sin_mod(WORD32 *subband, 146*15dc779aSAndroid Build Coastguard Worker ia_sbr_qmf_filter_bank_struct *qmf_bank, 147*15dc779aSAndroid Build Coastguard Worker WORD16 *p_twiddle, WORD32 *p_dig_rev_tbl); 148*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_shiftrountine(WORD32 *qmf_real, WORD32 *qmf_imag, WORD32 len, 149*15dc779aSAndroid Build Coastguard Worker WORD32 common_shift); 150*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_shiftrountine_with_rnd(WORD32 *qmf_real, WORD32 *qmf_imag, 151*15dc779aSAndroid Build Coastguard Worker WORD16 *filter_states, WORD32 len, 152*15dc779aSAndroid Build Coastguard Worker WORD32 shift); 153*15dc779aSAndroid Build Coastguard Worker 154*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_radix4bfly(const WORD16 *w, WORD32 *x, WORD32 npoints, 155*15dc779aSAndroid Build Coastguard Worker WORD32 ch_fac); 156*15dc779aSAndroid Build Coastguard Worker 157*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_postradixcompute4(WORD32 *ptr_y, WORD32 *ptr_x, 158*15dc779aSAndroid Build Coastguard Worker const WORD32 *p_dig_rev_tbl, WORD32 npoints); 159*15dc779aSAndroid Build Coastguard Worker 160*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_postradixcompute2(WORD32 *ptr_y, WORD32 *ptr_x, 161*15dc779aSAndroid Build Coastguard Worker const WORD32 *p_dig_rev_tbl, WORD32 npoints); 162*15dc779aSAndroid Build Coastguard Worker 163*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_shiftrountine_with_rnd_eld(WORD32 *qmf_real, WORD32 *qmf_imag, 164*15dc779aSAndroid Build Coastguard Worker WORD16 *filter_states, WORD32 len, 165*15dc779aSAndroid Build Coastguard Worker WORD32 shift); 166*15dc779aSAndroid Build Coastguard Worker 167*15dc779aSAndroid Build Coastguard Worker void ixheaacd_sbr_imdct_using_fft(const WORD32 *ptr_w, WORD32 npoints, 168*15dc779aSAndroid Build Coastguard Worker WORD32 *ptr_x, WORD32 *ptr_y, 169*15dc779aSAndroid Build Coastguard Worker UWORD8 *bit_rev_1024, UWORD8 *bit_rev_512, 170*15dc779aSAndroid Build Coastguard Worker UWORD8 *bit_rev_128, UWORD8 *bit_rev_32); 171*15dc779aSAndroid Build Coastguard Worker 172*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_esbr_cos_sin_mod_loop1(WORD32 *subband, WORD32 M, 173*15dc779aSAndroid Build Coastguard Worker const WORD32 *p_sin_cos, 174*15dc779aSAndroid Build Coastguard Worker WORD32 subband_tmp[]); 175*15dc779aSAndroid Build Coastguard Worker 176*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_esbr_cos_sin_mod_loop2(WORD32 *subband, const WORD32 *p_sin, 177*15dc779aSAndroid Build Coastguard Worker WORD32 M); 178*15dc779aSAndroid Build Coastguard Worker 179*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_esbr_radix4bfly(const WORD32 *p_twiddle, WORD32 subband_tmp[], 180*15dc779aSAndroid Build Coastguard Worker WORD32 a, WORD32 npoint); 181*15dc779aSAndroid Build Coastguard Worker 182*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_radix4bfly(const WORD16 *w, WORD32 *x, WORD32 npoints, 183*15dc779aSAndroid Build Coastguard Worker WORD32 ch_fac); 184*15dc779aSAndroid Build Coastguard Worker 185*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_postradixcompute4(WORD32 *ptr_y, WORD32 *ptr_x, 186*15dc779aSAndroid Build Coastguard Worker const WORD32 *p_dig_rev_tbl, WORD32 npoints); 187*15dc779aSAndroid Build Coastguard Worker 188*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_postradixcompute2(WORD32 *ptr_y, WORD32 *ptr_x, 189*15dc779aSAndroid Build Coastguard Worker const WORD32 *p_dig_rev_tbl, WORD32 npoints); 190*15dc779aSAndroid Build Coastguard Worker 191*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_cos_sin_mod_loop1(WORD32 *subband, WORD32 M, 192*15dc779aSAndroid Build Coastguard Worker const WORD16 *p_sin_cos, WORD32 subband_tmp[]); 193*15dc779aSAndroid Build Coastguard Worker 194*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_cos_sin_mod_loop2(WORD32 *subband, const WORD16 *p_sin, WORD32 M); 195*15dc779aSAndroid Build Coastguard Worker 196*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_sbr_qmfsyn64_winadd(WORD16 *tmp1, WORD16 *tmp2, WORD16 *inp1, 197*15dc779aSAndroid Build Coastguard Worker WORD16 *sample_buffer, FLAG shift, 198*15dc779aSAndroid Build Coastguard Worker WORD32 ch_fac); 199*15dc779aSAndroid Build Coastguard Worker 200*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_esbr_cos_sin_mod(WORD32 *subband, 201*15dc779aSAndroid Build Coastguard Worker ia_sbr_qmf_filter_bank_struct *qmf_bank, 202*15dc779aSAndroid Build Coastguard Worker WORD32 *p_twiddle, WORD32 *p_dig_rev_tbl); 203*15dc779aSAndroid Build Coastguard Worker 204*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_inv_modulation_lp(WORD32 *qmf_real, WORD16 *filter_states, 205*15dc779aSAndroid Build Coastguard Worker ia_sbr_qmf_filter_bank_struct *syn_qmf, 206*15dc779aSAndroid Build Coastguard Worker ia_qmf_dec_tables_struct *qmf_dec_tables_ptr); 207*15dc779aSAndroid Build Coastguard Worker 208*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_sbr_pre_twiddle(WORD32 *p_xre, WORD32 *p_xim, WORD16 *p_twiddles); 209*15dc779aSAndroid Build Coastguard Worker 210*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_inv_emodulation(WORD32 *qmf_real, 211*15dc779aSAndroid Build Coastguard Worker ia_sbr_qmf_filter_bank_struct *syn_qmf, 212*15dc779aSAndroid Build Coastguard Worker ia_qmf_dec_tables_struct *qmf_dec_tables_ptr); 213*15dc779aSAndroid Build Coastguard Worker 214*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_pretwdct2(WORD32 *inp, WORD32 *out_fwd); 215*15dc779aSAndroid Build Coastguard Worker 216*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_sbr_qmfanal32_winadd_eld(WORD16 *inp1, WORD16 *inp2, 217*15dc779aSAndroid Build Coastguard Worker const WORD16 *p_qmf1, 218*15dc779aSAndroid Build Coastguard Worker const WORD16 *p_qmf2, WORD32 *p_out); 219*15dc779aSAndroid Build Coastguard Worker 220*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_sbr_qmfanal32_winadd_eld_32(WORD32 *inp1, WORD32 *inp2, 221*15dc779aSAndroid Build Coastguard Worker const WORD32 *p_qmf1, 222*15dc779aSAndroid Build Coastguard Worker const WORD32 *p_qmf2, WORD32 *p_out); 223*15dc779aSAndroid Build Coastguard Worker 224*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_sbr_qmfanal32_winadd_eld_mps(WORD32 *inp1, WORD32 *inp2, 225*15dc779aSAndroid Build Coastguard Worker const WORD32 *p_qmf1, 226*15dc779aSAndroid Build Coastguard Worker const WORD32 *p_qmf2, WORD32 *p_out); 227*15dc779aSAndroid Build Coastguard Worker 228*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_dct2_32(WORD32 *inp, WORD32 *out, 229*15dc779aSAndroid Build Coastguard Worker ia_qmf_dec_tables_struct *qmf_dec_tables_ptr, 230*15dc779aSAndroid Build Coastguard Worker WORD16 *filter_states); 231*15dc779aSAndroid Build Coastguard Worker 232*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_inv_modulation_lp(WORD32 *qmf_real, WORD16 *filter_states, 233*15dc779aSAndroid Build Coastguard Worker ia_sbr_qmf_filter_bank_struct *syn_qmf, 234*15dc779aSAndroid Build Coastguard Worker ia_qmf_dec_tables_struct *qmf_dec_tables_ptr); 235*15dc779aSAndroid Build Coastguard Worker 236*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_fftposttw(WORD32 *out, 237*15dc779aSAndroid Build Coastguard Worker ia_qmf_dec_tables_struct *qmf_dec_tables_ptr); 238*15dc779aSAndroid Build Coastguard Worker 239*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_posttwdct2(WORD32 *inp, WORD16 *out_fwd, 240*15dc779aSAndroid Build Coastguard Worker ia_qmf_dec_tables_struct *qmf_dec_tables_ptr); 241*15dc779aSAndroid Build Coastguard Worker 242*15dc779aSAndroid Build Coastguard Worker #endif 243