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_STRUCT_DEF_H 21*15dc779aSAndroid Build Coastguard Worker #define IXHEAACD_STRUCT_DEF_H 22*15dc779aSAndroid Build Coastguard Worker 23*15dc779aSAndroid Build Coastguard Worker #include <setjmp.h> 24*15dc779aSAndroid Build Coastguard Worker #include <stdbool.h> 25*15dc779aSAndroid Build Coastguard Worker #include "ixheaacd_peak_limiter_struct_def.h" 26*15dc779aSAndroid Build Coastguard Worker 27*15dc779aSAndroid Build Coastguard Worker #define MAX_DECOR_CONFIG_IDX (2) 28*15dc779aSAndroid Build Coastguard Worker #define MAX_TIME_SLOTS (72) 29*15dc779aSAndroid Build Coastguard Worker #define NUM_MPS_TABLES (13) 30*15dc779aSAndroid Build Coastguard Worker 31*15dc779aSAndroid Build Coastguard Worker #define MAX_PREROLL_FRAME_OFFSET 4 32*15dc779aSAndroid Build Coastguard Worker // max of escapedValue(4, 4, 8) i.e. 2^4 -1 + 2^4 -1 + 2^8 -1; 33*15dc779aSAndroid Build Coastguard Worker #define MAX_PREROLL_SIZE 285 34*15dc779aSAndroid Build Coastguard Worker #define IA_ENHAACPLUS_DEC_MPS_PAYLOAD_SIZE (1024) 35*15dc779aSAndroid Build Coastguard Worker 36*15dc779aSAndroid Build Coastguard Worker typedef struct { 37*15dc779aSAndroid Build Coastguard Worker WORD8 element_instance_tag; 38*15dc779aSAndroid Build Coastguard Worker WORD32 object_type; 39*15dc779aSAndroid Build Coastguard Worker WORD32 samp_freq_index; 40*15dc779aSAndroid Build Coastguard Worker WORD32 num_front_channel_elements; 41*15dc779aSAndroid Build Coastguard Worker WORD32 num_side_channel_elements; 42*15dc779aSAndroid Build Coastguard Worker WORD32 num_back_channel_elements; 43*15dc779aSAndroid Build Coastguard Worker WORD32 num_lfe_channel_elements; 44*15dc779aSAndroid Build Coastguard Worker WORD32 num_assoc_data_elements; 45*15dc779aSAndroid Build Coastguard Worker WORD32 num_valid_cc_elements; 46*15dc779aSAndroid Build Coastguard Worker 47*15dc779aSAndroid Build Coastguard Worker WORD8 front_element_is_cpe[16]; 48*15dc779aSAndroid Build Coastguard Worker WORD8 front_element_tag_select[16]; 49*15dc779aSAndroid Build Coastguard Worker WORD8 side_element_is_cpe[16]; 50*15dc779aSAndroid Build Coastguard Worker WORD8 side_element_tag_select[16]; 51*15dc779aSAndroid Build Coastguard Worker WORD8 back_element_is_cpe[16]; 52*15dc779aSAndroid Build Coastguard Worker WORD8 back_element_tag_select[16]; 53*15dc779aSAndroid Build Coastguard Worker WORD8 lfe_element_tag_select[16]; 54*15dc779aSAndroid Build Coastguard Worker 55*15dc779aSAndroid Build Coastguard Worker WORD32 channels; 56*15dc779aSAndroid Build Coastguard Worker WORD32 alignment_bits; 57*15dc779aSAndroid Build Coastguard Worker 58*15dc779aSAndroid Build Coastguard Worker } ia_program_config_struct; 59*15dc779aSAndroid Build Coastguard Worker 60*15dc779aSAndroid Build Coastguard Worker typedef struct ia_enhaacplus_dec_ind_cc { 61*15dc779aSAndroid Build Coastguard Worker WORD8 cc_target_is_cpe[MAX_BS_ELEMENT]; 62*15dc779aSAndroid Build Coastguard Worker WORD8 cc_target_tag_select[MAX_BS_ELEMENT]; 63*15dc779aSAndroid Build Coastguard Worker WORD8 cc_l[MAX_BS_ELEMENT]; 64*15dc779aSAndroid Build Coastguard Worker WORD8 cc_r[MAX_BS_ELEMENT]; 65*15dc779aSAndroid Build Coastguard Worker WORD32 cc_gain[2 * MAX_BS_ELEMENT]; 66*15dc779aSAndroid Build Coastguard Worker WORD8 elements_coupled[MAX_BS_ELEMENT]; 67*15dc779aSAndroid Build Coastguard Worker WORD num_coupled_elements; 68*15dc779aSAndroid Build Coastguard Worker 69*15dc779aSAndroid Build Coastguard Worker } ia_enhaacplus_dec_ind_cc; 70*15dc779aSAndroid Build Coastguard Worker 71*15dc779aSAndroid Build Coastguard Worker typedef struct { 72*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_pcm_wdsz; 73*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_samp_freq; 74*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_n_channels; 75*15dc779aSAndroid Build Coastguard Worker WORD32 i_channel_mask; 76*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_channel_mode; 77*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_sbr_mode; 78*15dc779aSAndroid Build Coastguard Worker WORD32 ui_effect_type; 79*15dc779aSAndroid Build Coastguard Worker WORD32 ui_target_loudness; 80*15dc779aSAndroid Build Coastguard Worker WORD32 ui_loud_norm_flag; 81*15dc779aSAndroid Build Coastguard Worker 82*15dc779aSAndroid Build Coastguard Worker UWORD32 flag_downmix; 83*15dc779aSAndroid Build Coastguard Worker UWORD32 flag_08khz_out; 84*15dc779aSAndroid Build Coastguard Worker UWORD32 flag_16khz_out; 85*15dc779aSAndroid Build Coastguard Worker UWORD32 flag_to_stereo; 86*15dc779aSAndroid Build Coastguard Worker UWORD32 down_sample_flag; 87*15dc779aSAndroid Build Coastguard Worker UWORD32 header_dec_done; 88*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_mp4_flag; 89*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_disable_sync; 90*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_auto_sbr_upsample; 91*15dc779aSAndroid Build Coastguard Worker WORD32 frame_status; 92*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_max_channels; 93*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_pce_found_in_hdr; 94*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_n_memtabs; 95*15dc779aSAndroid Build Coastguard Worker 96*15dc779aSAndroid Build Coastguard Worker WORD32 ui_drc_boost; 97*15dc779aSAndroid Build Coastguard Worker WORD32 ui_drc_cut; 98*15dc779aSAndroid Build Coastguard Worker WORD32 ui_drc_target_level; 99*15dc779aSAndroid Build Coastguard Worker WORD32 ui_drc_set; 100*15dc779aSAndroid Build Coastguard Worker WORD32 ui_drc_heavy_comp; 101*15dc779aSAndroid Build Coastguard Worker 102*15dc779aSAndroid Build Coastguard Worker ia_program_config_struct str_prog_config; 103*15dc779aSAndroid Build Coastguard Worker WORD32 element_type[MAX_BS_ELEMENT + 1]; 104*15dc779aSAndroid Build Coastguard Worker WORD32 slot_element[MAX_BS_ELEMENT + 1]; 105*15dc779aSAndroid Build Coastguard Worker 106*15dc779aSAndroid Build Coastguard Worker WORD element_instance_order[MAX_BS_ELEMENT]; 107*15dc779aSAndroid Build Coastguard Worker WORD ui_coupling_channel; 108*15dc779aSAndroid Build Coastguard Worker WORD downmix; 109*15dc779aSAndroid Build Coastguard Worker WORD32 loas_present; 110*15dc779aSAndroid Build Coastguard Worker 111*15dc779aSAndroid Build Coastguard Worker WORD framesize_480; 112*15dc779aSAndroid Build Coastguard Worker WORD ld_decoder; 113*15dc779aSAndroid Build Coastguard Worker 114*15dc779aSAndroid Build Coastguard Worker WORD eld_sbr_present; 115*15dc779aSAndroid Build Coastguard Worker 116*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_out_channels; 117*15dc779aSAndroid Build Coastguard Worker WORD32 ui_channel_mask; 118*15dc779aSAndroid Build Coastguard Worker 119*15dc779aSAndroid Build Coastguard Worker WORD32 ui_dec_type; 120*15dc779aSAndroid Build Coastguard Worker 121*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_qmf_bands; 122*15dc779aSAndroid Build Coastguard Worker 123*15dc779aSAndroid Build Coastguard Worker WORD32 ui_flush_cmd; 124*15dc779aSAndroid Build Coastguard Worker 125*15dc779aSAndroid Build Coastguard Worker ia_drc_config drc_config_struct; 126*15dc779aSAndroid Build Coastguard Worker WORD32 output_level; 127*15dc779aSAndroid Build Coastguard Worker WORD32 i_loud_ref_level; 128*15dc779aSAndroid Build Coastguard Worker UWORD8 dup_stereo_flag; 129*15dc779aSAndroid Build Coastguard Worker WORD32 peak_limiter_off; 130*15dc779aSAndroid Build Coastguard Worker 131*15dc779aSAndroid Build Coastguard Worker WORD32 mps_present; 132*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_frame_size; 133*15dc779aSAndroid Build Coastguard Worker WORD32 ui_enh_sbr; 134*15dc779aSAndroid Build Coastguard Worker WORD32 ui_hq_esbr; 135*15dc779aSAndroid Build Coastguard Worker WORD32 ui_enh_sbr_ps; 136*15dc779aSAndroid Build Coastguard Worker WORD32 ui_usac_flag; 137*15dc779aSAndroid Build Coastguard Worker 138*15dc779aSAndroid Build Coastguard Worker WORD32 ui_err_conceal; 139*15dc779aSAndroid Build Coastguard Worker FLAG first_frame; 140*15dc779aSAndroid Build Coastguard Worker } ia_aac_dec_config_struct; 141*15dc779aSAndroid Build Coastguard Worker 142*15dc779aSAndroid Build Coastguard Worker typedef struct ia_aac_dec_state_struct { 143*15dc779aSAndroid Build Coastguard Worker ia_aac_dec_config_struct *p_config; 144*15dc779aSAndroid Build Coastguard Worker 145*15dc779aSAndroid Build Coastguard Worker AUDIO_OBJECT_TYPE audio_object_type; 146*15dc779aSAndroid Build Coastguard Worker 147*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_in_bytes; 148*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_out_bytes; 149*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_exec_done; 150*15dc779aSAndroid Build Coastguard Worker 151*15dc779aSAndroid Build Coastguard Worker WORD16 b_n_raw_data_blk; 152*15dc779aSAndroid Build Coastguard Worker WORD16 s_adts_hdr_present; 153*15dc779aSAndroid Build Coastguard Worker WORD16 s_adif_hdr_present; 154*15dc779aSAndroid Build Coastguard Worker WORD16 num_channel_last; 155*15dc779aSAndroid Build Coastguard Worker UWORD32 sampling_rate; 156*15dc779aSAndroid Build Coastguard Worker UWORD32 extension_samp_rate; 157*15dc779aSAndroid Build Coastguard Worker UWORD32 bit_rate; 158*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_init_done; 159*15dc779aSAndroid Build Coastguard Worker UWORD32 ui_input_over; 160*15dc779aSAndroid Build Coastguard Worker UWORD32 header_dec_done; 161*15dc779aSAndroid Build Coastguard Worker WORD32 frame_counter; 162*15dc779aSAndroid Build Coastguard Worker ia_aac_decoder_struct *pstr_aac_dec_info[MAX_BS_ELEMENT]; 163*15dc779aSAndroid Build Coastguard Worker 164*15dc779aSAndroid Build Coastguard Worker UWORD32 ch_config; 165*15dc779aSAndroid Build Coastguard Worker struct ia_bit_buf_struct str_bit_buf, *pstr_bit_buf; 166*15dc779aSAndroid Build Coastguard Worker ia_aac_dec_sbr_bitstream_struct (*pstr_stream_sbr)[2]; 167*15dc779aSAndroid Build Coastguard Worker ia_handle_sbr_dec_inst_struct str_sbr_dec_info[MAX_BS_ELEMENT]; 168*15dc779aSAndroid Build Coastguard Worker WORD32 sbr_present_flag; 169*15dc779aSAndroid Build Coastguard Worker WORD32 ps_present; 170*15dc779aSAndroid Build Coastguard Worker 171*15dc779aSAndroid Build Coastguard Worker ia_bit_buf_struct *ptr_bit_stream; 172*15dc779aSAndroid Build Coastguard Worker 173*15dc779aSAndroid Build Coastguard Worker VOID *aac_scratch_mem_v; 174*15dc779aSAndroid Build Coastguard Worker VOID *aac_persistent_mem_v; 175*15dc779aSAndroid Build Coastguard Worker 176*15dc779aSAndroid Build Coastguard Worker VOID *sbr_persistent_mem_v; 177*15dc779aSAndroid Build Coastguard Worker WORD32 *ptr_overlap_buf; 178*15dc779aSAndroid Build Coastguard Worker WORD16 num_of_out_samples; 179*15dc779aSAndroid Build Coastguard Worker WORD32 last_frame_ok; 180*15dc779aSAndroid Build Coastguard Worker WORD32 i_bytes_consumed; 181*15dc779aSAndroid Build Coastguard Worker 182*15dc779aSAndroid Build Coastguard Worker WORD32 *coup_ch_output; 183*15dc779aSAndroid Build Coastguard Worker ia_enhaacplus_dec_ind_cc ind_cc_info; 184*15dc779aSAndroid Build Coastguard Worker 185*15dc779aSAndroid Build Coastguard Worker WORD8 protection_absent; 186*15dc779aSAndroid Build Coastguard Worker WORD32 crc_check; 187*15dc779aSAndroid Build Coastguard Worker WORD32 ui_flush_cmd; 188*15dc779aSAndroid Build Coastguard Worker 189*15dc779aSAndroid Build Coastguard Worker WORD32 frame_len_flag; 190*15dc779aSAndroid Build Coastguard Worker WORD32 depends_on_core_coder; 191*15dc779aSAndroid Build Coastguard Worker WORD32 extension_flag; 192*15dc779aSAndroid Build Coastguard Worker 193*15dc779aSAndroid Build Coastguard Worker WORD32 bs_format; 194*15dc779aSAndroid Build Coastguard Worker WORD32 bit_count; 195*15dc779aSAndroid Build Coastguard Worker WORD32 sync_status; 196*15dc779aSAndroid Build Coastguard Worker WORD32 extension_flag_3; 197*15dc779aSAndroid Build Coastguard Worker 198*15dc779aSAndroid Build Coastguard Worker ixheaacd_latm_struct latm_struct_element; 199*15dc779aSAndroid Build Coastguard Worker WORD32 latm_initialized; 200*15dc779aSAndroid Build Coastguard Worker 201*15dc779aSAndroid Build Coastguard Worker ia_drc_dec_struct str_drc_dec_info; 202*15dc779aSAndroid Build Coastguard Worker ia_drc_dec_struct drc_dummy; 203*15dc779aSAndroid Build Coastguard Worker ia_drc_dec_struct *pstr_drc_dec; 204*15dc779aSAndroid Build Coastguard Worker ixheaac_drc_data_struct *pstr_hdrc_data[MAX_BS_ELEMENT * 3]; 205*15dc779aSAndroid Build Coastguard Worker 206*15dc779aSAndroid Build Coastguard Worker WORD32 prev_channel_mode; 207*15dc779aSAndroid Build Coastguard Worker WORD32 drc_cut_fac; 208*15dc779aSAndroid Build Coastguard Worker WORD32 drc_boost_fac; 209*15dc779aSAndroid Build Coastguard Worker 210*15dc779aSAndroid Build Coastguard Worker WORD32 first_drc_frame; 211*15dc779aSAndroid Build Coastguard Worker 212*15dc779aSAndroid Build Coastguard Worker ia_aac_err_config_struct str_err_config; 213*15dc779aSAndroid Build Coastguard Worker WORD32 frame_size; 214*15dc779aSAndroid Build Coastguard Worker WORD32 frame_length; 215*15dc779aSAndroid Build Coastguard Worker 216*15dc779aSAndroid Build Coastguard Worker WORD32 dwnsmp_signal; 217*15dc779aSAndroid Build Coastguard Worker ia_eld_specific_config_struct eld_specific_config; 218*15dc779aSAndroid Build Coastguard Worker FLAG usac_flag; 219*15dc779aSAndroid Build Coastguard Worker 220*15dc779aSAndroid Build Coastguard Worker WORD32 num_of_output_ch; 221*15dc779aSAndroid Build Coastguard Worker VOID *ia_audio_specific_config; 222*15dc779aSAndroid Build Coastguard Worker ia_mps_dec_state_struct mps_dec_handle; 223*15dc779aSAndroid Build Coastguard Worker 224*15dc779aSAndroid Build Coastguard Worker ia_heaac_mps_state_struct heaac_mps_handle; 225*15dc779aSAndroid Build Coastguard Worker UWORD8 mps_buffer[IA_ENHAACPLUS_DEC_MPS_PAYLOAD_SIZE]; 226*15dc779aSAndroid Build Coastguard Worker 227*15dc779aSAndroid Build Coastguard Worker UWORD16 *huffman_code_book_scl; 228*15dc779aSAndroid Build Coastguard Worker UWORD32 *huffman_code_book_scl_index; 229*15dc779aSAndroid Build Coastguard Worker 230*15dc779aSAndroid Build Coastguard Worker ia_aac_dec_tables_struct *pstr_aac_tables; 231*15dc779aSAndroid Build Coastguard Worker 232*15dc779aSAndroid Build Coastguard Worker VOID *pstr_dec_data; 233*15dc779aSAndroid Build Coastguard Worker VOID *sbr_persistent_mem_u; 234*15dc779aSAndroid Build Coastguard Worker VOID *sbr_scratch_mem_u; 235*15dc779aSAndroid Build Coastguard Worker UWORD8 *header_ptr; 236*15dc779aSAndroid Build Coastguard Worker WORD32 header_length; 237*15dc779aSAndroid Build Coastguard Worker ia_sbr_header_data_struct str_sbr_config; 238*15dc779aSAndroid Build Coastguard Worker jmp_buf xaac_jmp_buf; 239*15dc779aSAndroid Build Coastguard Worker WORD32 decode_create_done; 240*15dc779aSAndroid Build Coastguard Worker WORD32 ldmps_present; 241*15dc779aSAndroid Build Coastguard Worker WORD32 fatal_err_present; 242*15dc779aSAndroid Build Coastguard Worker WORD8 *pers_mem_ptr; 243*15dc779aSAndroid Build Coastguard Worker UWORD8 preroll_config_present; 244*15dc779aSAndroid Build Coastguard Worker UWORD8 preroll_config_prev[MAX_PREROLL_SIZE]; 245*15dc779aSAndroid Build Coastguard Worker 246*15dc779aSAndroid Build Coastguard Worker UWORD8 qshift_cnt; 247*15dc779aSAndroid Build Coastguard Worker WORD8 qshift_adj[16]; 248*15dc779aSAndroid Build Coastguard Worker UWORD32 delay_in_samples; 249*15dc779aSAndroid Build Coastguard Worker UWORD8 peak_lim_init; 250*15dc779aSAndroid Build Coastguard Worker ia_peak_limiter_struct peak_limiter; 251*15dc779aSAndroid Build Coastguard Worker UWORD8 sbr_present; 252*15dc779aSAndroid Build Coastguard Worker UWORD8 slot_pos; 253*15dc779aSAndroid Build Coastguard Worker WORD32 mps_header; 254*15dc779aSAndroid Build Coastguard Worker WORD32 ui_mps_out_bytes; 255*15dc779aSAndroid Build Coastguard Worker WORD32 drc_config_changed; 256*15dc779aSAndroid Build Coastguard Worker WORD32 apply_crossfade; 257*15dc779aSAndroid Build Coastguard Worker WORD32 ec_enable; 258*15dc779aSAndroid Build Coastguard Worker WORD32 first_frame; 259*15dc779aSAndroid Build Coastguard Worker } ia_aac_dec_state_struct; 260*15dc779aSAndroid Build Coastguard Worker 261*15dc779aSAndroid Build Coastguard Worker typedef struct ia_exhaacplus_dec_api_struct { 262*15dc779aSAndroid Build Coastguard Worker ia_aac_dec_state_struct *p_state_aac; 263*15dc779aSAndroid Build Coastguard Worker 264*15dc779aSAndroid Build Coastguard Worker ia_aac_dec_config_struct aac_config; 265*15dc779aSAndroid Build Coastguard Worker 266*15dc779aSAndroid Build Coastguard Worker ia_mem_info_struct *p_mem_info_aac; 267*15dc779aSAndroid Build Coastguard Worker 268*15dc779aSAndroid Build Coastguard Worker pVOID *pp_mem_aac; 269*15dc779aSAndroid Build Coastguard Worker 270*15dc779aSAndroid Build Coastguard Worker ia_aac_dec_tables_struct aac_tables; 271*15dc779aSAndroid Build Coastguard Worker ixheaacd_misc_tables *common_tables; 272*15dc779aSAndroid Build Coastguard Worker ia_sbr_tables_struct str_sbr_tables; 273*15dc779aSAndroid Build Coastguard Worker 274*15dc779aSAndroid Build Coastguard Worker } ia_exhaacplus_dec_api_struct; 275*15dc779aSAndroid Build Coastguard Worker 276*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_aacdec_decodeframe( 277*15dc779aSAndroid Build Coastguard Worker ia_exhaacplus_dec_api_struct *p_obj_exhaacplus_dec, 278*15dc779aSAndroid Build Coastguard Worker ia_aac_dec_scratch_struct *aac_scratch_ptrs, VOID *time_data, FLAG frame_status, WORD *type, 279*15dc779aSAndroid Build Coastguard Worker WORD *ch_idx, WORD init_flag, WORD channel, WORD *element_index_order, WORD skip_full_decode, 280*15dc779aSAndroid Build Coastguard Worker WORD ch_fac, WORD slot_element, WORD max_channels, WORD32 total_channels, WORD32 frame_length, 281*15dc779aSAndroid Build Coastguard Worker WORD32 frame_size, ia_drc_dec_struct *pstr_drc_dec, WORD32 object_type, WORD32 ch_config, 282*15dc779aSAndroid Build Coastguard Worker ia_eld_specific_config_struct eld_specific_config, WORD16 adtsheader, 283*15dc779aSAndroid Build Coastguard Worker ia_drc_dec_struct *drc_dummy, WORD32 ldmps_present, UWORD8 *slot_pos, UWORD8 *mps_buffer, 284*15dc779aSAndroid Build Coastguard Worker WORD32 *mps_header, WORD32 *mps_bytes, WORD32 is_init, WORD32 first_frame); 285*15dc779aSAndroid Build Coastguard Worker 286*15dc779aSAndroid Build Coastguard Worker WORD ixheaacd_get_channel_mask( 287*15dc779aSAndroid Build Coastguard Worker ia_exhaacplus_dec_api_struct *p_obj_exhaacplus_dec); 288*15dc779aSAndroid Build Coastguard Worker 289*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_allocate_mem_persistent( 290*15dc779aSAndroid Build Coastguard Worker ia_exhaacplus_dec_api_struct *p_obj_exhaacplus_dec, 291*15dc779aSAndroid Build Coastguard Worker ia_aac_dec_state_struct *p_state_enhaacplus_dec, WORD channels, 292*15dc779aSAndroid Build Coastguard Worker WORD *persistent_used_total, WORD *sbr_persistent_start, WORD ps_enable); 293*15dc779aSAndroid Build Coastguard Worker 294*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_dec_mem_api(ia_exhaacplus_dec_api_struct *p_obj_exhaacplus_dec, 295*15dc779aSAndroid Build Coastguard Worker WORD32 i_cmd, WORD32 i_idx, VOID *pv_value); 296*15dc779aSAndroid Build Coastguard Worker 297*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_fill_aac_mem_tables( 298*15dc779aSAndroid Build Coastguard Worker ia_exhaacplus_dec_api_struct *p_obj_exhaacplus_dec); 299*15dc779aSAndroid Build Coastguard Worker 300*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_decoder_2_ga_hdr( 301*15dc779aSAndroid Build Coastguard Worker ia_exhaacplus_dec_api_struct *p_obj_exhaacplus_dec); 302*15dc779aSAndroid Build Coastguard Worker 303*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_decoder_flush_api( 304*15dc779aSAndroid Build Coastguard Worker ia_exhaacplus_dec_api_struct *p_obj_exhaacplus_dec); 305*15dc779aSAndroid Build Coastguard Worker 306*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_fill_usac_mem_tables(ia_exhaacplus_dec_api_struct *self); 307*15dc779aSAndroid Build Coastguard Worker 308*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_dec_init(ia_exhaacplus_dec_api_struct *p_obj_exhaacplus_dec); 309*15dc779aSAndroid Build Coastguard Worker 310*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_dec_execute(ia_exhaacplus_dec_api_struct *p_obj_exhaacplus_dec); 311*15dc779aSAndroid Build Coastguard Worker 312*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_dec_table_api( 313*15dc779aSAndroid Build Coastguard Worker ia_exhaacplus_dec_api_struct *p_obj_exhaacplus_dec, WORD32 i_cmd, 314*15dc779aSAndroid Build Coastguard Worker WORD32 i_idx, VOID *pv_value); 315*15dc779aSAndroid Build Coastguard Worker 316*15dc779aSAndroid Build Coastguard Worker IA_ERRORCODE ixheaacd_aac_mps_init(ia_exhaacplus_dec_api_struct *p_obj_mps_dec, 317*15dc779aSAndroid Build Coastguard Worker UWORD8 *databuf, WORD32 buffer_size, 318*15dc779aSAndroid Build Coastguard Worker WORD32 sample_rate); 319*15dc779aSAndroid Build Coastguard Worker 320*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_peak_limiter_init(ia_peak_limiter_struct *peak_limiter, UWORD32 num_channels, 321*15dc779aSAndroid Build Coastguard Worker UWORD32 sample_rate, FLOAT32 *buffer, 322*15dc779aSAndroid Build Coastguard Worker UWORD32 *delay_in_samples); 323*15dc779aSAndroid Build Coastguard Worker 324*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_peak_limiter_process(ia_peak_limiter_struct *peak_limiter, VOID *samples, 325*15dc779aSAndroid Build Coastguard Worker UWORD32 frame_len, WORD8 *qshift_adj); 326*15dc779aSAndroid Build Coastguard Worker 327*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_scale_adjust(VOID *samples, UWORD32 frame_len, WORD8 *qshift_adj, 328*15dc779aSAndroid Build Coastguard Worker WORD num_channels); 329*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_peak_limiter_process_float(ia_peak_limiter_struct *peak_limiter, 330*15dc779aSAndroid Build Coastguard Worker FLOAT32 samples[MAX_NUM_CHANNELS][4096], 331*15dc779aSAndroid Build Coastguard Worker UWORD32 frame_len); 332*15dc779aSAndroid Build Coastguard Worker 333*15dc779aSAndroid Build Coastguard Worker 334*15dc779aSAndroid Build Coastguard Worker #endif /* IXHEAACD_STRUCT_DEF_H */ 335