xref: /aosp_15_r20/external/libxaac/decoder/ixheaacd_qmf_dec.h (revision 15dc779a375ca8b5125643b829a8aa4b70d7f451)
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