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_MAIN_H 21*15dc779aSAndroid Build Coastguard Worker #define IXHEAACD_MAIN_H 22*15dc779aSAndroid Build Coastguard Worker 23*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_imdct_flt(FLOAT32 in_data[], FLOAT32 out_data[], WORD32 len); 24*15dc779aSAndroid Build Coastguard Worker 25*15dc779aSAndroid Build Coastguard Worker VOID usac_tw_imdct(FLOAT32 in_data[], FLOAT32 out_data[], WORD32 len); 26*15dc779aSAndroid Build Coastguard Worker 27*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_window_calc(FLOAT32 window[], WORD32 len, WORD32 wfun_select); 28*15dc779aSAndroid Build Coastguard Worker 29*15dc779aSAndroid Build Coastguard Worker VOID calc_window_ratio(FLOAT32 window[], WORD32 len, WORD32 prev_len, 30*15dc779aSAndroid Build Coastguard Worker WORD32 wfun_select, WORD32 prev_wfun_select); 31*15dc779aSAndroid Build Coastguard Worker 32*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_tw_window_calc(FLOAT32 window[], WORD32 len, 33*15dc779aSAndroid Build Coastguard Worker WORD32 wfun_select); 34*15dc779aSAndroid Build Coastguard Worker 35*15dc779aSAndroid Build Coastguard Worker typedef struct ia_usac_lpd_decoder { 36*15dc779aSAndroid Build Coastguard Worker WORD32 mode_prev; 37*15dc779aSAndroid Build Coastguard Worker float synth_prev[MAX_PITCH + SYNTH_DELAY_LMAX]; 38*15dc779aSAndroid Build Coastguard Worker float xcitation_prev[MAX_PITCH + INTER_LP_FIL_ORDER + 1]; 39*15dc779aSAndroid Build Coastguard Worker int pitch_prev[NUM_SUBFR_SUPERFRAME_BY2 - 1]; 40*15dc779aSAndroid Build Coastguard Worker float gain_prev[NUM_SUBFR_SUPERFRAME_BY2 - 1]; 41*15dc779aSAndroid Build Coastguard Worker 42*15dc779aSAndroid Build Coastguard Worker float lp_flt_coeff_a_prev[2 * (ORDER + 1)]; 43*15dc779aSAndroid Build Coastguard Worker 44*15dc779aSAndroid Build Coastguard Worker FLOAT32 exc_prev[1 + (2 * FAC_LENGTH)]; 45*15dc779aSAndroid Build Coastguard Worker 46*15dc779aSAndroid Build Coastguard Worker FLOAT32 bpf_prev[FILTER_DELAY + LEN_SUBFR]; 47*15dc779aSAndroid Build Coastguard Worker 48*15dc779aSAndroid Build Coastguard Worker WORD32 ilspold[ORDER]; 49*15dc779aSAndroid Build Coastguard Worker 50*15dc779aSAndroid Build Coastguard Worker FLOAT32 fac_gain; 51*15dc779aSAndroid Build Coastguard Worker FLOAT32 fac_fd_data[FAC_LENGTH / 4]; 52*15dc779aSAndroid Build Coastguard Worker 53*15dc779aSAndroid Build Coastguard Worker FLOAT32 lsf_prev[ORDER]; 54*15dc779aSAndroid Build Coastguard Worker FLOAT32 lspold[ORDER]; 55*15dc779aSAndroid Build Coastguard Worker WORD32 lsfold_first[ORDER]; 56*15dc779aSAndroid Build Coastguard Worker 57*15dc779aSAndroid Build Coastguard Worker FLOAT32 gain_threshold; 58*15dc779aSAndroid Build Coastguard Worker 59*15dc779aSAndroid Build Coastguard Worker WORD32 fscale; 60*15dc779aSAndroid Build Coastguard Worker 61*15dc779aSAndroid Build Coastguard Worker FLOAT32 fd_synth_buf[3 * LEN_FRAME + 1 + ORDER]; 62*15dc779aSAndroid Build Coastguard Worker FLOAT32 *fd_synth; 63*15dc779aSAndroid Build Coastguard Worker WORD32 bpf_active_prev; 64*15dc779aSAndroid Build Coastguard Worker WORD32 last_tcx_pitch; 65*15dc779aSAndroid Build Coastguard Worker FLOAT32 synth_prev_ec[ORDER]; 66*15dc779aSAndroid Build Coastguard Worker } ia_usac_lpd_decoder, *ia_usac_lpd_decoder_handle; 67*15dc779aSAndroid Build Coastguard Worker 68*15dc779aSAndroid Build Coastguard Worker typedef struct ia_usac_data_main_struct { 69*15dc779aSAndroid Build Coastguard Worker FLOAT32 time_sample_vector[MAX_NUM_CHANNELS][4096]; 70*15dc779aSAndroid Build Coastguard Worker FLOAT32 time_sample_vector_prev[MAX_NUM_CHANNELS][4096]; 71*15dc779aSAndroid Build Coastguard Worker WORD32 input_data_ptr[MAX_NUM_CHANNELS][4096]; 72*15dc779aSAndroid Build Coastguard Worker WORD32 overlap_data_ptr[MAX_NUM_CHANNELS][4096]; 73*15dc779aSAndroid Build Coastguard Worker WORD32 output_data_ptr[MAX_NUM_CHANNELS][4096]; 74*15dc779aSAndroid Build Coastguard Worker 75*15dc779aSAndroid Build Coastguard Worker WORD32 window_shape[MAX_NUM_CHANNELS]; 76*15dc779aSAndroid Build Coastguard Worker WORD32 window_shape_prev[MAX_NUM_CHANNELS]; 77*15dc779aSAndroid Build Coastguard Worker WORD32 window_sequence[MAX_NUM_CHANNELS]; 78*15dc779aSAndroid Build Coastguard Worker WORD32 window_sequence_last[MAX_NUM_CHANNELS]; 79*15dc779aSAndroid Build Coastguard Worker 80*15dc779aSAndroid Build Coastguard Worker WORD32 output_samples; 81*15dc779aSAndroid Build Coastguard Worker WORD32 sbr_ratio_idx; 82*15dc779aSAndroid Build Coastguard Worker WORD32 usac_independency_flg; 83*15dc779aSAndroid Build Coastguard Worker 84*15dc779aSAndroid Build Coastguard Worker WORD32 sampling_rate_idx; 85*15dc779aSAndroid Build Coastguard Worker WORD32 audio_object_type; 86*15dc779aSAndroid Build Coastguard Worker 87*15dc779aSAndroid Build Coastguard Worker WORD32 down_samp_sbr; 88*15dc779aSAndroid Build Coastguard Worker WORD32 sbr_mode; 89*15dc779aSAndroid Build Coastguard Worker 90*15dc779aSAndroid Build Coastguard Worker WORD32 tw_mdct[MAX_ELEMENTS]; 91*15dc779aSAndroid Build Coastguard Worker WORD32 mps_pseudo_lr[MAX_ELEMENTS]; 92*15dc779aSAndroid Build Coastguard Worker WORD32 td_frame_prev[MAX_NUM_CHANNELS]; 93*15dc779aSAndroid Build Coastguard Worker 94*15dc779aSAndroid Build Coastguard Worker FLOAT32 warp_sum[MAX_NUM_CHANNELS][2]; 95*15dc779aSAndroid Build Coastguard Worker FLOAT32 warp_cont_mem[MAX_NUM_CHANNELS][3 * 1024]; 96*15dc779aSAndroid Build Coastguard Worker FLOAT32 prev_sample_pos[MAX_NUM_CHANNELS][3 * 1024]; 97*15dc779aSAndroid Build Coastguard Worker FLOAT32 prev_tw_trans_len[MAX_NUM_CHANNELS][2]; 98*15dc779aSAndroid Build Coastguard Worker WORD32 prev_tw_start_stop[MAX_NUM_CHANNELS][2]; 99*15dc779aSAndroid Build Coastguard Worker FLOAT32 prev_warped_time_sample_vector[MAX_NUM_CHANNELS][3 * 1024]; 100*15dc779aSAndroid Build Coastguard Worker 101*15dc779aSAndroid Build Coastguard Worker FLOAT32 lpc_prev[MAX_NUM_CHANNELS][ORDER + 1]; 102*15dc779aSAndroid Build Coastguard Worker FLOAT32 acelp_in[MAX_NUM_CHANNELS][1 + (2 * FAC_LENGTH)]; 103*15dc779aSAndroid Build Coastguard Worker 104*15dc779aSAndroid Build Coastguard Worker WORD32 alpha_q_re[MAX_SHORT_WINDOWS][SFB_NUM_MAX]; 105*15dc779aSAndroid Build Coastguard Worker WORD32 alpha_q_im[MAX_SHORT_WINDOWS][SFB_NUM_MAX]; 106*15dc779aSAndroid Build Coastguard Worker UWORD8 cplx_pred_used[MAX_SHORT_WINDOWS][SFB_NUM_MAX]; 107*15dc779aSAndroid Build Coastguard Worker 108*15dc779aSAndroid Build Coastguard Worker WORD32 alpha_q_re_prev[SFB_NUM_MAX]; 109*15dc779aSAndroid Build Coastguard Worker WORD32 alpha_q_im_prev[SFB_NUM_MAX]; 110*15dc779aSAndroid Build Coastguard Worker WORD32 dmx_re_prev[BLOCK_LEN_LONG]; 111*15dc779aSAndroid Build Coastguard Worker 112*15dc779aSAndroid Build Coastguard Worker VOID *sbr_scratch_mem_base; 113*15dc779aSAndroid Build Coastguard Worker 114*15dc779aSAndroid Build Coastguard Worker WORD32 *coef_fix[MAX_NUM_CHANNELS]; 115*15dc779aSAndroid Build Coastguard Worker FLOAT32 *coef[MAX_NUM_CHANNELS]; 116*15dc779aSAndroid Build Coastguard Worker UWORD8 *ms_used[MAX_NUM_CHANNELS]; 117*15dc779aSAndroid Build Coastguard Worker WORD32 *coef_save[MAX_NUM_CHANNELS]; 118*15dc779aSAndroid Build Coastguard Worker 119*15dc779aSAndroid Build Coastguard Worker WORD16 *factors[MAX_NUM_CHANNELS]; 120*15dc779aSAndroid Build Coastguard Worker UWORD8 *group_dis[MAX_NUM_CHANNELS]; 121*15dc779aSAndroid Build Coastguard Worker 122*15dc779aSAndroid Build Coastguard Worker WORD32 tw_data_present[MAX_NUM_CHANNELS]; 123*15dc779aSAndroid Build Coastguard Worker WORD32 *tw_ratio[MAX_NUM_CHANNELS]; 124*15dc779aSAndroid Build Coastguard Worker ia_tns_frame_info_struct *pstr_tns[MAX_NUM_CHANNELS]; 125*15dc779aSAndroid Build Coastguard Worker 126*15dc779aSAndroid Build Coastguard Worker ia_usac_lpd_decoder_handle str_tddec[MAX_NUM_CHANNELS]; 127*15dc779aSAndroid Build Coastguard Worker 128*15dc779aSAndroid Build Coastguard Worker WORD32 arith_prev_n[MAX_NUM_CHANNELS]; 129*15dc779aSAndroid Build Coastguard Worker WORD8 c_prev[MAX_NUM_CHANNELS][1024 / 2 + 4]; 130*15dc779aSAndroid Build Coastguard Worker WORD8 c[MAX_NUM_CHANNELS][1024 / 2 + 4]; 131*15dc779aSAndroid Build Coastguard Worker 132*15dc779aSAndroid Build Coastguard Worker WORD32 noise_filling_config[MAX_NUM_ELEMENTS]; 133*15dc779aSAndroid Build Coastguard Worker UWORD32 seed_value[MAX_NUM_CHANNELS]; 134*15dc779aSAndroid Build Coastguard Worker WORD32 present_chan; 135*15dc779aSAndroid Build Coastguard Worker 136*15dc779aSAndroid Build Coastguard Worker WORD32 fac_data_present[MAX_NUM_CHANNELS]; 137*15dc779aSAndroid Build Coastguard Worker WORD32 fac_data[MAX_NUM_CHANNELS][FAC_LENGTH + 1]; 138*15dc779aSAndroid Build Coastguard Worker 139*15dc779aSAndroid Build Coastguard Worker ia_sfb_info_struct *pstr_sfb_info[MAX_NUM_CHANNELS]; 140*15dc779aSAndroid Build Coastguard Worker ia_sfb_info_struct str_only_long_info; 141*15dc779aSAndroid Build Coastguard Worker ia_sfb_info_struct str_eight_short_info; 142*15dc779aSAndroid Build Coastguard Worker ia_sfb_info_struct *pstr_usac_winmap[NUM_WIN_SEQ]; 143*15dc779aSAndroid Build Coastguard Worker WORD16 sfb_width_short[(1 << LEN_MAX_SFBS)]; 144*15dc779aSAndroid Build Coastguard Worker 145*15dc779aSAndroid Build Coastguard Worker WORD32 ccfl; 146*15dc779aSAndroid Build Coastguard Worker WORD32 len_subfrm; 147*15dc779aSAndroid Build Coastguard Worker WORD32 num_subfrm; 148*15dc779aSAndroid Build Coastguard Worker 149*15dc779aSAndroid Build Coastguard Worker ia_handle_sbr_dec_inst_struct pstr_esbr_dec; 150*15dc779aSAndroid Build Coastguard Worker ia_aac_dec_sbr_bitstream_struct esbr_bit_str[2]; 151*15dc779aSAndroid Build Coastguard Worker 152*15dc779aSAndroid Build Coastguard Worker WORD32 x_ac_dec[1024]; 153*15dc779aSAndroid Build Coastguard Worker WORD32 scratch_buffer[1024]; 154*15dc779aSAndroid Build Coastguard Worker 155*15dc779aSAndroid Build Coastguard Worker FLOAT32 synth_buf[1883]; 156*15dc779aSAndroid Build Coastguard Worker FLOAT32 exc_buf[1453]; 157*15dc779aSAndroid Build Coastguard Worker FLOAT32 lp_flt_coff[290]; 158*15dc779aSAndroid Build Coastguard Worker WORD32 pitch[25]; 159*15dc779aSAndroid Build Coastguard Worker FLOAT32 pitch_gain[25]; 160*15dc779aSAndroid Build Coastguard Worker 161*15dc779aSAndroid Build Coastguard Worker UWORD16 *huffman_code_book_scl; 162*15dc779aSAndroid Build Coastguard Worker UWORD32 *huffman_code_book_scl_index; 163*15dc779aSAndroid Build Coastguard Worker 164*15dc779aSAndroid Build Coastguard Worker WORD32 *tns_coeff3_32; 165*15dc779aSAndroid Build Coastguard Worker 166*15dc779aSAndroid Build Coastguard Worker WORD32 *tns_coeff4_32; 167*15dc779aSAndroid Build Coastguard Worker 168*15dc779aSAndroid Build Coastguard Worker WORD32 (*tns_max_bands_tbl_usac)[16][2]; 169*15dc779aSAndroid Build Coastguard Worker 170*15dc779aSAndroid Build Coastguard Worker WORD16 sfb_width_long[(1 << LEN_MAX_SFBL)]; 171*15dc779aSAndroid Build Coastguard Worker WORD32 usac_flag; 172*15dc779aSAndroid Build Coastguard Worker 173*15dc779aSAndroid Build Coastguard Worker WORD32 arr_coef_fix[MAX_NUM_CHANNELS][(LN2 + LN2 / 8)]; 174*15dc779aSAndroid Build Coastguard Worker FLOAT32 arr_coef[MAX_NUM_CHANNELS][(LN2 + LN2 / 8)]; 175*15dc779aSAndroid Build Coastguard Worker WORD32 arr_coef_save[MAX_NUM_CHANNELS][(LN2 + LN2 / 8)]; 176*15dc779aSAndroid Build Coastguard Worker WORD16 arr_factors[MAX_NUM_CHANNELS][MAXBANDS]; 177*15dc779aSAndroid Build Coastguard Worker UWORD8 arr_group_dis[MAX_NUM_CHANNELS][NSHORT]; 178*15dc779aSAndroid Build Coastguard Worker WORD32 arr_tw_ratio[MAX_NUM_CHANNELS][NUM_TW_NODES]; 179*15dc779aSAndroid Build Coastguard Worker UWORD8 arr_ms_used[MAX_NUM_CHANNELS][MAXBANDS]; 180*15dc779aSAndroid Build Coastguard Worker ia_usac_lpd_decoder arr_str_tddec[MAX_NUM_CHANNELS]; 181*15dc779aSAndroid Build Coastguard Worker ia_tns_frame_info_struct arr_str_tns[MAX_NUM_CHANNELS]; 182*15dc779aSAndroid Build Coastguard Worker 183*15dc779aSAndroid Build Coastguard Worker WORD32 enh_sbr; 184*15dc779aSAndroid Build Coastguard Worker WORD32 esbr_hq; 185*15dc779aSAndroid Build Coastguard Worker WORD32 enh_sbr_ps; 186*15dc779aSAndroid Build Coastguard Worker WORD32 drc_config_changed; 187*15dc779aSAndroid Build Coastguard Worker WORD32 core_mode; 188*15dc779aSAndroid Build Coastguard Worker WORD32 frame_ok; 189*15dc779aSAndroid Build Coastguard Worker WORD32 sbr_parse_err_flag; 190*15dc779aSAndroid Build Coastguard Worker WORD32 last_frame_ok; 191*15dc779aSAndroid Build Coastguard Worker WORD32 ec_flag; 192*15dc779aSAndroid Build Coastguard Worker WORD32 first_frame; 193*15dc779aSAndroid Build Coastguard Worker WORD32 sbr_parse_complete; 194*15dc779aSAndroid Build Coastguard Worker UWORD8 max_sfb[2]; 195*15dc779aSAndroid Build Coastguard Worker WORD32 num_ch_out; 196*15dc779aSAndroid Build Coastguard Worker WORD16 spec_scale[MAX_NUM_CHANNELS][128]; 197*15dc779aSAndroid Build Coastguard Worker ia_ec_state_str str_error_concealment[MAX_NUM_CHANNELS]; 198*15dc779aSAndroid Build Coastguard Worker ia_td_frame_data_struct *pstr_td_frame; 199*15dc779aSAndroid Build Coastguard Worker WORD32 sampling_rate; 200*15dc779aSAndroid Build Coastguard Worker WORD32 td_frame_prev_ec[MAX_NUM_CHANNELS]; 201*15dc779aSAndroid Build Coastguard Worker FLOAT32 lsp_coeff[5][ORDER]; 202*15dc779aSAndroid Build Coastguard Worker FLOAT32 lsf_adaptive_mean_cand[ORDER]; 203*15dc779aSAndroid Build Coastguard Worker FLOAT32 lsf_adaptive_mean[ORDER]; 204*15dc779aSAndroid Build Coastguard Worker FLOAT32 lpc4_lsf[ORDER]; 205*15dc779aSAndroid Build Coastguard Worker WORD32 bpf_control_info; 206*15dc779aSAndroid Build Coastguard Worker WORD32 first_lpd_flag; 207*15dc779aSAndroid Build Coastguard Worker WORD32 short_fac_flag; 208*15dc779aSAndroid Build Coastguard Worker WORD32 core_mode_last; 209*15dc779aSAndroid Build Coastguard Worker FLOAT32 stability_factor_old; 210*15dc779aSAndroid Build Coastguard Worker WORD32 num_lost_lpd_frames[MAX_NUM_CHANNELS]; 211*15dc779aSAndroid Build Coastguard Worker WORD32 pitch_lag_old; 212*15dc779aSAndroid Build Coastguard Worker WORD32 pitch_lag_frac_old; 213*15dc779aSAndroid Build Coastguard Worker WORD32 pitch_lag; 214*15dc779aSAndroid Build Coastguard Worker WORD32 pitch_lag_frac; 215*15dc779aSAndroid Build Coastguard Worker WORD16 seed_ace; 216*15dc779aSAndroid Build Coastguard Worker ia_ec_state_str *pstr_ec_state; 217*15dc779aSAndroid Build Coastguard Worker FLOAT32 past_pitch_gain; 218*15dc779aSAndroid Build Coastguard Worker FLOAT32 past_gain_code; 219*15dc779aSAndroid Build Coastguard Worker FLOAT32 past_gain_tcx[MAX_NUM_CHANNELS]; 220*15dc779aSAndroid Build Coastguard Worker WORD32 tcx_spec_coeffs[MAX_NUM_CHANNELS][1280]; 221*15dc779aSAndroid Build Coastguard Worker FLOAT32 lspold_ec[ORDER]; 222*15dc779aSAndroid Build Coastguard Worker FLOAT32 lp_flt_coff_a_ec[ORDER + 1]; 223*15dc779aSAndroid Build Coastguard Worker ia_td_frame_data_struct td_frame_data_prev[MAX_NUM_CHANNELS]; 224*15dc779aSAndroid Build Coastguard Worker WORD32 last_shiftp; 225*15dc779aSAndroid Build Coastguard Worker } ia_usac_data_struct; 226*15dc779aSAndroid Build Coastguard Worker 227*15dc779aSAndroid Build Coastguard Worker IA_ERRORCODE ixheaacd_tns_apply(ia_usac_data_struct *usac_data, WORD32 *spec, 228*15dc779aSAndroid Build Coastguard Worker WORD32 nbands, 229*15dc779aSAndroid Build Coastguard Worker ia_sfb_info_struct *pstr_sfb_info, 230*15dc779aSAndroid Build Coastguard Worker ia_tns_frame_info_struct *pstr_tns); 231*15dc779aSAndroid Build Coastguard Worker 232*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_calc_max_spectral_line_dec(WORD32 *ptr_tmp, WORD32 size); 233*15dc779aSAndroid Build Coastguard Worker 234*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_calc_max_spectral_line_armv7(WORD32 *ptr_tmp, WORD32 size); 235*15dc779aSAndroid Build Coastguard Worker 236*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_calc_max_spectral_line_armv8(WORD32 *ptr_tmp, WORD32 size); 237*15dc779aSAndroid Build Coastguard Worker 238*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_tw_buff_update(ia_usac_data_struct *usac_data, WORD32 i, 239*15dc779aSAndroid Build Coastguard Worker ia_usac_lpd_decoder_handle st); 240*15dc779aSAndroid Build Coastguard Worker 241*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_fix2flt_data(ia_usac_data_struct *usac_data, 242*15dc779aSAndroid Build Coastguard Worker ia_usac_lpd_decoder_handle st, WORD32 k); 243*15dc779aSAndroid Build Coastguard Worker 244*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_td_frm_dec(ia_usac_data_struct *usac_data, WORD32 k, WORD32 mod0); 245*15dc779aSAndroid Build Coastguard Worker 246*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_tw_frame_dec(ia_usac_data_struct *usac_data, WORD32 i_ch, 247*15dc779aSAndroid Build Coastguard Worker FLOAT32 sample_pos[], FLOAT32 tw_trans_len[], 248*15dc779aSAndroid Build Coastguard Worker WORD32 tw_start_stop[]); 249*15dc779aSAndroid Build Coastguard Worker 250*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_fd_frm_dec(ia_usac_data_struct *usac_data, WORD32 i_ch); 251*15dc779aSAndroid Build Coastguard Worker 252*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_acelp_mdct(WORD32 *ptr_in, WORD32 *ptr_out, WORD32 *preshift, WORD32 length, 253*15dc779aSAndroid Build Coastguard Worker WORD32 *ptr_scratch); 254*15dc779aSAndroid Build Coastguard Worker 255*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_acelp_mdct_main(ia_usac_data_struct *usac_data, WORD32 *x, WORD32 *y, WORD32 l, 256*15dc779aSAndroid Build Coastguard Worker WORD32 m, WORD32 *preshift); 257*15dc779aSAndroid Build Coastguard Worker 258*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_fr_alias_cnx_fix(WORD32 *x_in, WORD32 len_subfr, WORD32 lfac, WORD32 *iaq, 259*15dc779aSAndroid Build Coastguard Worker WORD32 *izir, WORD32 *ifacdec, WORD8 *qshift1, WORD8 qshift2, 260*15dc779aSAndroid Build Coastguard Worker WORD8 qshift3, WORD32 *preshift, WORD32 *ptr_scratch); 261*15dc779aSAndroid Build Coastguard Worker 262*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_fwd_alias_cancel_tool(ia_usac_data_struct *usac_data, 263*15dc779aSAndroid Build Coastguard Worker ia_td_frame_data_struct *pstr_td_frame_data, 264*15dc779aSAndroid Build Coastguard Worker WORD32 fac_length, FLOAT32 *iaq, WORD32 gain); 265*15dc779aSAndroid Build Coastguard Worker 266*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_lpd_bpf_fix(ia_usac_data_struct *usac_data, WORD32 is_short, 267*15dc779aSAndroid Build Coastguard Worker FLOAT32 out_buffer[], 268*15dc779aSAndroid Build Coastguard Worker ia_usac_lpd_decoder_handle st); 269*15dc779aSAndroid Build Coastguard Worker 270*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_reset_acelp_data_fix(ia_usac_data_struct *usac_data, 271*15dc779aSAndroid Build Coastguard Worker ia_usac_lpd_decoder_handle st, 272*15dc779aSAndroid Build Coastguard Worker WORD32 *ptr_ola_buff, WORD32 last_was_short, 273*15dc779aSAndroid Build Coastguard Worker WORD32 tw_mdct); 274*15dc779aSAndroid Build Coastguard Worker 275*15dc779aSAndroid Build Coastguard Worker FLOAT32 ixheaacd_randomsign(UWORD32 *seed); 276*15dc779aSAndroid Build Coastguard Worker #endif 277