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_CONFIG_H 21*15dc779aSAndroid Build Coastguard Worker #define IXHEAACD_CONFIG_H 22*15dc779aSAndroid Build Coastguard Worker 23*15dc779aSAndroid Build Coastguard Worker #define USAC_MAX_ELEMENTS (16) 24*15dc779aSAndroid Build Coastguard Worker 25*15dc779aSAndroid Build Coastguard Worker #define USAC_MAX_CONFIG_EXTENSIONS (16) 26*15dc779aSAndroid Build Coastguard Worker 27*15dc779aSAndroid Build Coastguard Worker #define ID_USAC_SCE 0 28*15dc779aSAndroid Build Coastguard Worker #define ID_USAC_CPE 1 29*15dc779aSAndroid Build Coastguard Worker #define ID_USAC_LFE 2 30*15dc779aSAndroid Build Coastguard Worker #define ID_USAC_EXT 3 31*15dc779aSAndroid Build Coastguard Worker #define ID_USAC_INVALID 0xFF 32*15dc779aSAndroid Build Coastguard Worker 33*15dc779aSAndroid Build Coastguard Worker #define USAC_SBR_RATIO_NO_SBR 0 34*15dc779aSAndroid Build Coastguard Worker #define USAC_SBR_RATIO_INDEX_2_1 1 35*15dc779aSAndroid Build Coastguard Worker #define USAC_SBR_RATIO_INDEX_8_3 2 36*15dc779aSAndroid Build Coastguard Worker #define USAC_SBR_RATIO_INDEX_4_1 3 37*15dc779aSAndroid Build Coastguard Worker 38*15dc779aSAndroid Build Coastguard Worker #define USAC_OUT_FRAMELENGTH_768 768 39*15dc779aSAndroid Build Coastguard Worker #define USAC_OUT_FRAMELENGTH_1024 1024 40*15dc779aSAndroid Build Coastguard Worker #define USAC_OUT_FRAMELENGTH_2048 2048 41*15dc779aSAndroid Build Coastguard Worker #define USAC_OUT_FRAMELENGTH_4096 4096 42*15dc779aSAndroid Build Coastguard Worker 43*15dc779aSAndroid Build Coastguard Worker #define MAX_CORE_SBR_FRAME_LEN_IDX (4) 44*15dc779aSAndroid Build Coastguard Worker #define IA_MAX_INP_BUFFER_SIZE (8 * 1024 + 11) 45*15dc779aSAndroid Build Coastguard Worker 46*15dc779aSAndroid Build Coastguard Worker #define ID_EXT_ELE_FILL 0 47*15dc779aSAndroid Build Coastguard Worker #define ID_EXT_ELE_MPEGS 1 48*15dc779aSAndroid Build Coastguard Worker #define ID_EXT_ELE_SAOC 2 49*15dc779aSAndroid Build Coastguard Worker #define ID_EXT_ELE_AUDIOPREROLL 3 50*15dc779aSAndroid Build Coastguard Worker #define ID_EXT_ELE_UNI_DRC 4 51*15dc779aSAndroid Build Coastguard Worker 52*15dc779aSAndroid Build Coastguard Worker #define ID_CONFIG_EXT_FILL 0 53*15dc779aSAndroid Build Coastguard Worker #define ID_CONFIG_EXT_LOUDNESS_INFO (2) 54*15dc779aSAndroid Build Coastguard Worker 55*15dc779aSAndroid Build Coastguard Worker #define MAX_PARAMETER_BANDS (28) 56*15dc779aSAndroid Build Coastguard Worker #define MAX_NUM_OTT (5) 57*15dc779aSAndroid Build Coastguard Worker #define MAX_NUM_TTT (1) 58*15dc779aSAndroid Build Coastguard Worker #define MAX_INPUT_CHANNELS (2) 59*15dc779aSAndroid Build Coastguard Worker #define MAX_RESIDUAL_CHANNELS (3) 60*15dc779aSAndroid Build Coastguard Worker #define MAX_OUTPUT_CHANNELS (7) 61*15dc779aSAndroid Build Coastguard Worker #define MAX_NUM_EXT_TYPES (8) 62*15dc779aSAndroid Build Coastguard Worker #define MAX_M_INPUT (2) 63*15dc779aSAndroid Build Coastguard Worker #define MAX_M_OUTPUT (2) 64*15dc779aSAndroid Build Coastguard Worker #define QMF_BANDS_TO_HYBRID (3) 65*15dc779aSAndroid Build Coastguard Worker #define MAX_HYBRID_ONLY_BANDS_PER_QMF (8) 66*15dc779aSAndroid Build Coastguard Worker #define MAX_ARBITRARY_TREE_LEVELS (2) 67*15dc779aSAndroid Build Coastguard Worker #define MAX_OUTPUT_CHANNELS_AT \ 68*15dc779aSAndroid Build Coastguard Worker (MAX_OUTPUT_CHANNELS * (1 << MAX_ARBITRARY_TREE_LEVELS)) 69*15dc779aSAndroid Build Coastguard Worker #define MAX_ARBITRARY_TREE_INDEX ((1 << (MAX_ARBITRARY_TREE_LEVELS + 1)) - 1) 70*15dc779aSAndroid Build Coastguard Worker 71*15dc779aSAndroid Build Coastguard Worker #define MAX_RES_SAMP_FREQ_IDX 11 72*15dc779aSAndroid Build Coastguard Worker 73*15dc779aSAndroid Build Coastguard Worker typedef UWORD8 UINT8; 74*15dc779aSAndroid Build Coastguard Worker typedef UWORD32 UINT32; 75*15dc779aSAndroid Build Coastguard Worker 76*15dc779aSAndroid Build Coastguard Worker typedef struct { 77*15dc779aSAndroid Build Coastguard Worker UINT32 harmonic_sbr; 78*15dc779aSAndroid Build Coastguard Worker UINT32 bs_inter_tes; 79*15dc779aSAndroid Build Coastguard Worker UINT32 bs_pvc; 80*15dc779aSAndroid Build Coastguard Worker WORD16 dflt_start_freq; 81*15dc779aSAndroid Build Coastguard Worker WORD16 dflt_stop_freq; 82*15dc779aSAndroid Build Coastguard Worker WORD16 dflt_header_extra1; 83*15dc779aSAndroid Build Coastguard Worker WORD16 dflt_header_extra2; 84*15dc779aSAndroid Build Coastguard Worker WORD16 dflt_freq_scale; 85*15dc779aSAndroid Build Coastguard Worker WORD16 dflt_alter_scale; 86*15dc779aSAndroid Build Coastguard Worker WORD16 dflt_noise_bands; 87*15dc779aSAndroid Build Coastguard Worker WORD16 dflt_limiter_bands; 88*15dc779aSAndroid Build Coastguard Worker WORD16 dflt_limiter_gains; 89*15dc779aSAndroid Build Coastguard Worker WORD16 dflt_interpol_freq; 90*15dc779aSAndroid Build Coastguard Worker WORD16 dflt_smoothing_mode; 91*15dc779aSAndroid Build Coastguard Worker } ia_usac_dec_sbr_config_struct; 92*15dc779aSAndroid Build Coastguard Worker 93*15dc779aSAndroid Build Coastguard Worker typedef struct { 94*15dc779aSAndroid Build Coastguard Worker UINT32 bs_freq_res; 95*15dc779aSAndroid Build Coastguard Worker UINT32 bs_fixed_gain_dmx; 96*15dc779aSAndroid Build Coastguard Worker UINT32 bs_temp_shape_config; 97*15dc779aSAndroid Build Coastguard Worker UINT32 bs_decorr_config; 98*15dc779aSAndroid Build Coastguard Worker UINT32 bs_high_rate_mode; 99*15dc779aSAndroid Build Coastguard Worker UINT32 bs_phase_coding; 100*15dc779aSAndroid Build Coastguard Worker UINT32 bs_ott_bands_phase_present; 101*15dc779aSAndroid Build Coastguard Worker UINT32 bs_ott_bands_phase; 102*15dc779aSAndroid Build Coastguard Worker UINT32 bs_residual_bands; 103*15dc779aSAndroid Build Coastguard Worker UINT32 bs_pseudo_lr; 104*15dc779aSAndroid Build Coastguard Worker UINT32 bs_env_quant_mode; 105*15dc779aSAndroid Build Coastguard Worker UINT32 ldmps_present_flag; 106*15dc779aSAndroid Build Coastguard Worker 107*15dc779aSAndroid Build Coastguard Worker UINT32 bs_sampling_freq_index; 108*15dc779aSAndroid Build Coastguard Worker UINT32 bs_fampling_frequency; 109*15dc779aSAndroid Build Coastguard Worker UINT32 bs_frame_length; 110*15dc779aSAndroid Build Coastguard Worker UINT32 bs_tree_config; 111*15dc779aSAndroid Build Coastguard Worker UINT32 bs_quant_mode; 112*15dc779aSAndroid Build Coastguard Worker UINT32 bs_one_icc; 113*15dc779aSAndroid Build Coastguard Worker UINT32 bs_arbitrary_downmix; 114*15dc779aSAndroid Build Coastguard Worker UINT32 bs_residual_coding; 115*15dc779aSAndroid Build Coastguard Worker UINT32 bs_fixed_gain_sur; 116*15dc779aSAndroid Build Coastguard Worker UINT32 bs_fixed_gain_LFE; 117*15dc779aSAndroid Build Coastguard Worker UINT32 bs_matrix_mode; 118*15dc779aSAndroid Build Coastguard Worker UINT32 bs_3D_audio_mode; 119*15dc779aSAndroid Build Coastguard Worker UINT32 bs_3D_audio_HRTF_set; 120*15dc779aSAndroid Build Coastguard Worker UINT32 bs_HRTF_freq_res; 121*15dc779aSAndroid Build Coastguard Worker UINT32 HRTF_num_band; 122*15dc779aSAndroid Build Coastguard Worker UINT32 HRTF_num_phase; // new 123*15dc779aSAndroid Build Coastguard Worker UINT32 bs_HRTF_num_chan; 124*15dc779aSAndroid Build Coastguard Worker UINT32 bs_HRTF_asymmetric; 125*15dc779aSAndroid Build Coastguard Worker UINT32 bs_HRTF_level_left[MAX_OUTPUT_CHANNELS][MAX_PARAMETER_BANDS]; 126*15dc779aSAndroid Build Coastguard Worker UINT32 bs_HRTF_level_right[MAX_OUTPUT_CHANNELS][MAX_PARAMETER_BANDS]; 127*15dc779aSAndroid Build Coastguard Worker UINT32 bs_HRTF_phase[MAX_OUTPUT_CHANNELS]; 128*15dc779aSAndroid Build Coastguard Worker UINT32 bs_HRTF_phase_LR[MAX_OUTPUT_CHANNELS][MAX_PARAMETER_BANDS]; 129*15dc779aSAndroid Build Coastguard Worker UINT32 bs_HRTF_icc[MAX_OUTPUT_CHANNELS]; 130*15dc779aSAndroid Build Coastguard Worker UINT32 bs_HRTF_icc_LR[MAX_OUTPUT_CHANNELS][MAX_PARAMETER_BANDS]; 131*15dc779aSAndroid Build Coastguard Worker UINT32 bs_ott_bands[MAX_NUM_OTT]; 132*15dc779aSAndroid Build Coastguard Worker UINT32 bs_ttt_dual_mode[MAX_NUM_TTT]; 133*15dc779aSAndroid Build Coastguard Worker UINT32 bs_ttt_mode_low[MAX_NUM_TTT]; 134*15dc779aSAndroid Build Coastguard Worker UINT32 bs_ttt_mode_high[MAX_NUM_TTT]; 135*15dc779aSAndroid Build Coastguard Worker UINT32 bs_ttt_bands_low[MAX_NUM_TTT]; 136*15dc779aSAndroid Build Coastguard Worker UINT32 bs_ttt_bands_high[MAX_NUM_TTT]; 137*15dc779aSAndroid Build Coastguard Worker 138*15dc779aSAndroid Build Coastguard Worker UINT32 bs_sac_ext_type[MAX_NUM_EXT_TYPES]; 139*15dc779aSAndroid Build Coastguard Worker UINT32 sac_ext_cnt; 140*15dc779aSAndroid Build Coastguard Worker 141*15dc779aSAndroid Build Coastguard Worker UINT32 bs_residual_present[MAX_RESIDUAL_CHANNELS]; 142*15dc779aSAndroid Build Coastguard Worker UINT32 bs_residual_sampling_freq_index; 143*15dc779aSAndroid Build Coastguard Worker UINT32 bs_residual_frames_per_spatial_frame; 144*15dc779aSAndroid Build Coastguard Worker 145*15dc779aSAndroid Build Coastguard Worker UINT32 bs_residual_bands_ld_mps[MAX_RESIDUAL_CHANNELS]; 146*15dc779aSAndroid Build Coastguard Worker 147*15dc779aSAndroid Build Coastguard Worker UINT32 bs_arbitrary_downmix_residual_sampling_freq_index; 148*15dc779aSAndroid Build Coastguard Worker UINT32 bs_arbitrary_downmix_residual_frames_per_spatial_frame; 149*15dc779aSAndroid Build Coastguard Worker WORD32 bs_arbitrary_downmix_residual_bands; 150*15dc779aSAndroid Build Coastguard Worker 151*15dc779aSAndroid Build Coastguard Worker UINT32 num_out_chan_AT; 152*15dc779aSAndroid Build Coastguard Worker UINT32 num_ott_boxes_AT; 153*15dc779aSAndroid Build Coastguard Worker UINT32 bs_output_channel_pos_AT[MAX_OUTPUT_CHANNELS_AT]; 154*15dc779aSAndroid Build Coastguard Worker UINT32 bs_ott_box_present_AT[MAX_OUTPUT_CHANNELS][MAX_ARBITRARY_TREE_INDEX]; 155*15dc779aSAndroid Build Coastguard Worker UINT32 bs_ott_default_cld_AT[MAX_OUTPUT_CHANNELS * MAX_ARBITRARY_TREE_INDEX]; 156*15dc779aSAndroid Build Coastguard Worker UINT32 bs_ott_mode_lfe_AT[MAX_OUTPUT_CHANNELS * MAX_ARBITRARY_TREE_INDEX]; 157*15dc779aSAndroid Build Coastguard Worker UINT32 bs_ott_bands_AT[MAX_OUTPUT_CHANNELS * MAX_ARBITRARY_TREE_INDEX]; 158*15dc779aSAndroid Build Coastguard Worker 159*15dc779aSAndroid Build Coastguard Worker WORD32 num_ott_boxes; 160*15dc779aSAndroid Build Coastguard Worker WORD32 num_ttt_boxes; 161*15dc779aSAndroid Build Coastguard Worker WORD32 num_input_channels; 162*15dc779aSAndroid Build Coastguard Worker WORD32 num_output_channels; 163*15dc779aSAndroid Build Coastguard Worker WORD32 ott_mode_lfe[MAX_NUM_OTT]; // new 164*15dc779aSAndroid Build Coastguard Worker WORD32 no_ldsbr_present; 165*15dc779aSAndroid Build Coastguard Worker } ia_usac_dec_mps_config_struct; 166*15dc779aSAndroid Build Coastguard Worker 167*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_NA -1 /* n/a */ 168*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_L 0 /* Left Front */ 169*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_R 1 /* Right Front */ 170*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_C 2 /* Center Front */ 171*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_LFE 3 /* Low Frequency Enhancement */ 172*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_LS 4 /* Left Surround */ 173*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_RS 5 /* Right Surround */ 174*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_LC 6 /* Left Front Center */ 175*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_RC 7 /* Right Front Center */ 176*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_LSR 8 /* Rear Surround Left */ 177*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_RSR 9 /* Rear Surround Right */ 178*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_CS 10 /* Rear Center */ 179*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_LSD 11 /* Left Surround Direct */ 180*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_RSD 12 /* Right Surround Direct */ 181*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_LSS 13 /* Left Side Surround */ 182*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_RSS 14 /* Right Side Surround */ 183*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_LW 15 /* Left Wide Front */ 184*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_RW 16 /* Right Wide Front */ 185*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_LV 17 /* Left Front Vertical Height */ 186*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_RV 18 /* Right Front Vertical Height */ 187*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_CV 19 /* Center Front Vertical Height */ 188*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_LVR 20 /* Left Surround Vertical Height Rear */ 189*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_RVR 21 /* Right Surround Vertical Height Rear */ 190*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_CVR 22 /* Center Vertical Height Rear */ 191*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_LVSS 23 /* Left Vertical Height Side Surround */ 192*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_RVSS \ 193*15dc779aSAndroid Build Coastguard Worker 24 /* Right Vertical Height Side Surround \ \ \ 194*15dc779aSAndroid Build Coastguard Worker */ 195*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_TS 25 /* Top Center Surround */ 196*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_LFE2 26 /* Low Frequency Enhancement 2 */ 197*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_LB 27 /* Left Front Vertical Bottom */ 198*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_RB 28 /* Right Front Vertical Bottom */ 199*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_CB 29 /* Center Front Vertical Bottom */ 200*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_LVS 30 /* Left Vertical Height Surround */ 201*15dc779aSAndroid Build Coastguard Worker #define BS_OUTPUT_CHANNEL_POS_RVS 31 /* Right Vertical Height Surround */ 202*15dc779aSAndroid Build Coastguard Worker 203*15dc779aSAndroid Build Coastguard Worker #define BS_MAX_NUM_OUT_CHANNELS (255) 204*15dc779aSAndroid Build Coastguard Worker 205*15dc779aSAndroid Build Coastguard Worker #define EXT_COUNT_MAX (2) 206*15dc779aSAndroid Build Coastguard Worker #define MAX_CHANNEL_COUNT (128) 207*15dc779aSAndroid Build Coastguard Worker #define SEQUENCE_COUNT_MAX (24) 208*15dc779aSAndroid Build Coastguard Worker #define PARAM_DRC_TYPE_FF_NODE_COUNT_MAX (9) 209*15dc779aSAndroid Build Coastguard Worker #define PARAM_DRC_INSTRUCTIONS_COUNT_MAX (8) 210*15dc779aSAndroid Build Coastguard Worker #define DOWNMIX_ID_COUNT_MAX (8) 211*15dc779aSAndroid Build Coastguard Worker #define DRC_SET_ID_COUNT_MAX (16) 212*15dc779aSAndroid Build Coastguard Worker #define EQ_SET_ID_COUNT_MAX (8) 213*15dc779aSAndroid Build Coastguard Worker #define LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX (4) 214*15dc779aSAndroid Build Coastguard Worker #define LOUD_EQ_INSTRUCTIONS_COUNT_MAX (8) 215*15dc779aSAndroid Build Coastguard Worker #define FILTER_ELEMENT_COUNT_MAX (16) 216*15dc779aSAndroid Build Coastguard Worker #define FILTER_BLOCK_COUNT_MAX (16) 217*15dc779aSAndroid Build Coastguard Worker #define REAL_ZERO_RADIUS_ONE_COUNT_MAX (14) 218*15dc779aSAndroid Build Coastguard Worker #define REAL_ZERO_COUNT_MAX (64) 219*15dc779aSAndroid Build Coastguard Worker #define COMPLEX_ZERO_COUNT_MAX (64) 220*15dc779aSAndroid Build Coastguard Worker #define REAL_POLE_COUNT_MAX (16) 221*15dc779aSAndroid Build Coastguard Worker #define COMPLEX_POLE_COUNT_MAX (16) 222*15dc779aSAndroid Build Coastguard Worker #define FIR_ORDER_MAX (128) 223*15dc779aSAndroid Build Coastguard Worker #define EQ_NODE_COUNT_MAX (33) 224*15dc779aSAndroid Build Coastguard Worker #define UNIQUE_SUBBAND_GAIN_COUNT_MAX (16) 225*15dc779aSAndroid Build Coastguard Worker #define EQ_SUBBAND_GAIN_COUNT_MAX (135) 226*15dc779aSAndroid Build Coastguard Worker #define EQ_CHANNEL_GROUP_COUNT_MAX (4) 227*15dc779aSAndroid Build Coastguard Worker #define EQ_FILTER_BLOCK_COUNT_MAX (4) 228*15dc779aSAndroid Build Coastguard Worker #define EQ_INSTRUCTIONS_COUNT_MAX (8) 229*15dc779aSAndroid Build Coastguard Worker #define DRC_COEFF_COUNT_MAX (8) 230*15dc779aSAndroid Build Coastguard Worker #define DOWNMIX_INSTRUCTION_COUNT_MAX (16) 231*15dc779aSAndroid Build Coastguard Worker #define DRC_INSTRUCTIONS_COUNT_MAX (DOWNMIX_INSTRUCTION_COUNT_MAX + 20) 232*15dc779aSAndroid Build Coastguard Worker #define BAND_COUNT_MAX (8) 233*15dc779aSAndroid Build Coastguard Worker 234*15dc779aSAndroid Build Coastguard Worker #define N_DELTA_TIME_CODE_TABLE_ENTRIES_MAX (512 + 14) 235*15dc779aSAndroid Build Coastguard Worker #define GAIN_SET_COUNT_MAX SEQUENCE_COUNT_MAX 236*15dc779aSAndroid Build Coastguard Worker #define SPLIT_CHARACTERISTIC_NODE_COUNT_MAX (4) 237*15dc779aSAndroid Build Coastguard Worker #define SPLIT_CHARACTERISTIC_COUNT_MAX (8) 238*15dc779aSAndroid Build Coastguard Worker #define SHAPE_FILTER_COUNT_MAX (8) 239*15dc779aSAndroid Build Coastguard Worker #define CHANNEL_GROUP_COUNT_MAX SEQUENCE_COUNT_MAX 240*15dc779aSAndroid Build Coastguard Worker #define DRC_BAND_COUNT_MAX BAND_COUNT_MAX 241*15dc779aSAndroid Build Coastguard Worker #define SPEAKER_POS_COUNT_MAX (128) 242*15dc779aSAndroid Build Coastguard Worker #define DOWNMIX_COEFF_COUNT_MAX (32 * 32) 243*15dc779aSAndroid Build Coastguard Worker #define MAX_AUDIO_PREROLLS 3 244*15dc779aSAndroid Build Coastguard Worker 245*15dc779aSAndroid Build Coastguard Worker typedef struct { 246*15dc779aSAndroid Build Coastguard Worker UINT32 tw_mdct; 247*15dc779aSAndroid Build Coastguard Worker UINT32 noise_filling; 248*15dc779aSAndroid Build Coastguard Worker UINT32 stereo_config_index; 249*15dc779aSAndroid Build Coastguard Worker 250*15dc779aSAndroid Build Coastguard Worker UINT32 usac_ext_eleme_def_len; 251*15dc779aSAndroid Build Coastguard Worker UINT32 usac_ext_elem_pld_frag; 252*15dc779aSAndroid Build Coastguard Worker 253*15dc779aSAndroid Build Coastguard Worker ia_usac_dec_sbr_config_struct str_usac_sbr_config; 254*15dc779aSAndroid Build Coastguard Worker ia_usac_dec_mps_config_struct str_usac_mps212_config; 255*15dc779aSAndroid Build Coastguard Worker 256*15dc779aSAndroid Build Coastguard Worker } ia_usac_dec_element_config_struct; 257*15dc779aSAndroid Build Coastguard Worker 258*15dc779aSAndroid Build Coastguard Worker typedef struct { 259*15dc779aSAndroid Build Coastguard Worker UWORD32 num_elements; 260*15dc779aSAndroid Build Coastguard Worker UWORD32 num_config_extensions; 261*15dc779aSAndroid Build Coastguard Worker UWORD32 usac_element_type[USAC_MAX_ELEMENTS]; 262*15dc779aSAndroid Build Coastguard Worker ia_usac_dec_element_config_struct str_usac_element_config[USAC_MAX_ELEMENTS]; 263*15dc779aSAndroid Build Coastguard Worker 264*15dc779aSAndroid Build Coastguard Worker WORD32 usac_cfg_ext_info_present[USAC_MAX_CONFIG_EXTENSIONS]; 265*15dc779aSAndroid Build Coastguard Worker WORD32 usac_ext_ele_payload_present[USAC_MAX_ELEMENTS]; 266*15dc779aSAndroid Build Coastguard Worker WORD32 usac_cfg_ext_info_len[USAC_MAX_CONFIG_EXTENSIONS]; 267*15dc779aSAndroid Build Coastguard Worker WORD32 usac_ext_ele_payload_len[USAC_MAX_ELEMENTS]; 268*15dc779aSAndroid Build Coastguard Worker WORD32 usac_ext_gain_payload_len[MAX_AUDIO_PREROLLS + 2]; 269*15dc779aSAndroid Build Coastguard Worker UWORD8 usac_cfg_ext_info_buf[USAC_MAX_CONFIG_EXTENSIONS][768]; 270*15dc779aSAndroid Build Coastguard Worker UWORD8 usac_ext_ele_payload_buf[USAC_MAX_ELEMENTS][768]; 271*15dc779aSAndroid Build Coastguard Worker UWORD8 usac_ext_gain_payload_buf[MAX_AUDIO_PREROLLS * 768]; 272*15dc779aSAndroid Build Coastguard Worker UWORD32 preroll_bytes[MAX_AUDIO_PREROLLS + 273*15dc779aSAndroid Build Coastguard Worker 2]; // Contain the number of bytes in each preroll 274*15dc779aSAndroid Build Coastguard Worker WORD32 preroll_counter; // count the number of prerolls in a frame. 275*15dc779aSAndroid Build Coastguard Worker 276*15dc779aSAndroid Build Coastguard Worker WORD32 preroll_flag; 277*15dc779aSAndroid Build Coastguard Worker 278*15dc779aSAndroid Build Coastguard Worker } ia_usac_decoder_config_struct; 279*15dc779aSAndroid Build Coastguard Worker 280*15dc779aSAndroid Build Coastguard Worker typedef struct { 281*15dc779aSAndroid Build Coastguard Worker UINT32 usac_sampling_frequency_index; 282*15dc779aSAndroid Build Coastguard Worker UINT32 usac_sampling_frequency; 283*15dc779aSAndroid Build Coastguard Worker UINT32 core_sbr_framelength_index; 284*15dc779aSAndroid Build Coastguard Worker UINT32 channel_configuration_index; 285*15dc779aSAndroid Build Coastguard Worker 286*15dc779aSAndroid Build Coastguard Worker UINT32 num_out_channels; 287*15dc779aSAndroid Build Coastguard Worker UINT32 output_channel_pos[BS_MAX_NUM_OUT_CHANNELS]; 288*15dc779aSAndroid Build Coastguard Worker ia_usac_decoder_config_struct str_usac_dec_config; 289*15dc779aSAndroid Build Coastguard Worker 290*15dc779aSAndroid Build Coastguard Worker } ia_usac_config_struct; 291*15dc779aSAndroid Build Coastguard Worker 292*15dc779aSAndroid Build Coastguard Worker typedef struct { 293*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_lim_threshold_present; 294*15dc779aSAndroid Build Coastguard Worker FLOAT32 parametric_lim_threshold; 295*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_lim_attack; 296*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_lim_release_present; 297*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_lim_release; 298*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic; 299*15dc779aSAndroid Build Coastguard Worker 300*15dc779aSAndroid Build Coastguard Worker WORD32 disable_paramteric_drc; 301*15dc779aSAndroid Build Coastguard Worker } ia_parametric_drc_lim_struct; 302*15dc779aSAndroid Build Coastguard Worker typedef struct { 303*15dc779aSAndroid Build Coastguard Worker WORD32 level_estim_k_weighting_type; 304*15dc779aSAndroid Build Coastguard Worker WORD32 level_estim_integration_time_present; 305*15dc779aSAndroid Build Coastguard Worker WORD32 level_estim_integration_time; 306*15dc779aSAndroid Build Coastguard Worker WORD32 drc_curve_definition_type; 307*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic; 308*15dc779aSAndroid Build Coastguard Worker WORD32 node_count; 309*15dc779aSAndroid Build Coastguard Worker WORD32 node_level[PARAM_DRC_TYPE_FF_NODE_COUNT_MAX]; 310*15dc779aSAndroid Build Coastguard Worker WORD32 node_gain[PARAM_DRC_TYPE_FF_NODE_COUNT_MAX]; 311*15dc779aSAndroid Build Coastguard Worker WORD32 drc_gain_smooth_parameters_present; 312*15dc779aSAndroid Build Coastguard Worker WORD32 gain_smooth_attack_time_slow; 313*15dc779aSAndroid Build Coastguard Worker WORD32 gain_smooth_release_time_slow; 314*15dc779aSAndroid Build Coastguard Worker WORD32 gain_smooth_time_fast_present; 315*15dc779aSAndroid Build Coastguard Worker WORD32 gain_smooth_attack_time_fast; 316*15dc779aSAndroid Build Coastguard Worker WORD32 gain_smooth_release_time_fast; 317*15dc779aSAndroid Build Coastguard Worker WORD32 gain_smooth_threshold_present; 318*15dc779aSAndroid Build Coastguard Worker WORD32 gain_smooth_attack_threshold; 319*15dc779aSAndroid Build Coastguard Worker WORD32 gain_smooth_rel_threshold; 320*15dc779aSAndroid Build Coastguard Worker WORD32 gain_smooth_hold_off_count_present; 321*15dc779aSAndroid Build Coastguard Worker WORD32 gain_smooth_hold_off; 322*15dc779aSAndroid Build Coastguard Worker 323*15dc779aSAndroid Build Coastguard Worker WORD32 disable_paramteric_drc; 324*15dc779aSAndroid Build Coastguard Worker } ia_parametric_drc_type_feed_forward_struct; 325*15dc779aSAndroid Build Coastguard Worker typedef struct { 326*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_id; 327*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_look_ahead_flag; 328*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_look_ahead; 329*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_preset_id_present; 330*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_preset_id; 331*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_type; 332*15dc779aSAndroid Build Coastguard Worker WORD32 len_bit_size; 333*15dc779aSAndroid Build Coastguard Worker ia_parametric_drc_type_feed_forward_struct 334*15dc779aSAndroid Build Coastguard Worker str_parametric_drc_type_feed_forward; 335*15dc779aSAndroid Build Coastguard Worker ia_parametric_drc_lim_struct parametric_drc_lim; 336*15dc779aSAndroid Build Coastguard Worker 337*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic; 338*15dc779aSAndroid Build Coastguard Worker WORD32 disable_paramteric_drc; 339*15dc779aSAndroid Build Coastguard Worker } ia_parametric_drc_instructions_struct; 340*15dc779aSAndroid Build Coastguard Worker 341*15dc779aSAndroid Build Coastguard Worker typedef struct { 342*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_id; 343*15dc779aSAndroid Build Coastguard Worker WORD32 side_chain_config_type; 344*15dc779aSAndroid Build Coastguard Worker WORD32 downmix_id; 345*15dc779aSAndroid Build Coastguard Worker WORD32 level_estim_channel_weight_format; 346*15dc779aSAndroid Build Coastguard Worker FLOAT32 level_estim_ch_weight[MAX_CHANNEL_COUNT]; 347*15dc779aSAndroid Build Coastguard Worker WORD32 drc_input_loudness_present; 348*15dc779aSAndroid Build Coastguard Worker FLOAT32 drc_input_loudness; 349*15dc779aSAndroid Build Coastguard Worker 350*15dc779aSAndroid Build Coastguard Worker WORD32 ch_count_from_dwnmix_id; 351*15dc779aSAndroid Build Coastguard Worker } ia_parametric_drc_gain_set_params_struct; 352*15dc779aSAndroid Build Coastguard Worker 353*15dc779aSAndroid Build Coastguard Worker typedef struct { 354*15dc779aSAndroid Build Coastguard Worker WORD32 drc_location; 355*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_frame_size_format; 356*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_frame_size; 357*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_delay_max_present; 358*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_delay_max; 359*15dc779aSAndroid Build Coastguard Worker WORD32 reset_parametric_drc; 360*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_gain_set_count; 361*15dc779aSAndroid Build Coastguard Worker ia_parametric_drc_gain_set_params_struct 362*15dc779aSAndroid Build Coastguard Worker str_parametric_drc_gain_set_params[SEQUENCE_COUNT_MAX]; 363*15dc779aSAndroid Build Coastguard Worker } ia_drc_coeff_parametric_drc_struct; 364*15dc779aSAndroid Build Coastguard Worker 365*15dc779aSAndroid Build Coastguard Worker typedef struct { 366*15dc779aSAndroid Build Coastguard Worker WORD32 loud_eq_set_id; 367*15dc779aSAndroid Build Coastguard Worker WORD32 drc_location; 368*15dc779aSAndroid Build Coastguard Worker WORD32 dwnmix_id_count; 369*15dc779aSAndroid Build Coastguard Worker WORD32 downmix_id[DOWNMIX_ID_COUNT_MAX]; 370*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_id_count; 371*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_id[DRC_SET_ID_COUNT_MAX]; 372*15dc779aSAndroid Build Coastguard Worker WORD32 eq_set_id_count; 373*15dc779aSAndroid Build Coastguard Worker WORD32 eq_set_id[EQ_SET_ID_COUNT_MAX]; 374*15dc779aSAndroid Build Coastguard Worker WORD32 loudness_after_drc; 375*15dc779aSAndroid Build Coastguard Worker WORD32 loudness_after_eq; 376*15dc779aSAndroid Build Coastguard Worker WORD32 loud_eq_gain_sequence_count; 377*15dc779aSAndroid Build Coastguard Worker WORD32 gain_seq_idx[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; 378*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic_format_is_cicp[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; 379*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; 380*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic_left_index[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; 381*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic_right_index[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; 382*15dc779aSAndroid Build Coastguard Worker WORD32 frequency_range_index[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; 383*15dc779aSAndroid Build Coastguard Worker FLOAT32 loud_eq_scaling[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; 384*15dc779aSAndroid Build Coastguard Worker FLOAT32 loud_eq_offset[LOUD_EQ_GAIN_SEQUENCE_COUNT_MAX]; 385*15dc779aSAndroid Build Coastguard Worker } ia_loud_eq_instructions_struct; 386*15dc779aSAndroid Build Coastguard Worker 387*15dc779aSAndroid Build Coastguard Worker typedef struct { 388*15dc779aSAndroid Build Coastguard Worker WORD32 filt_ele_idx; 389*15dc779aSAndroid Build Coastguard Worker WORD32 filt_ele_gain_flag; 390*15dc779aSAndroid Build Coastguard Worker FLOAT32 filt_ele_gain; 391*15dc779aSAndroid Build Coastguard Worker } ia_filt_ele_struct; 392*15dc779aSAndroid Build Coastguard Worker 393*15dc779aSAndroid Build Coastguard Worker typedef struct { 394*15dc779aSAndroid Build Coastguard Worker WORD32 filter_element_count; 395*15dc779aSAndroid Build Coastguard Worker ia_filt_ele_struct str_filter_element[FILTER_ELEMENT_COUNT_MAX]; 396*15dc779aSAndroid Build Coastguard Worker } ia_filt_block_struct; 397*15dc779aSAndroid Build Coastguard Worker 398*15dc779aSAndroid Build Coastguard Worker typedef struct { 399*15dc779aSAndroid Build Coastguard Worker WORD32 eq_filter_format; 400*15dc779aSAndroid Build Coastguard Worker WORD32 bs_real_zero_radius_one_count; 401*15dc779aSAndroid Build Coastguard Worker WORD32 real_zero_count; 402*15dc779aSAndroid Build Coastguard Worker WORD32 generic_zero_count; 403*15dc779aSAndroid Build Coastguard Worker WORD32 real_pole_count; 404*15dc779aSAndroid Build Coastguard Worker WORD32 cmplx_pole_count; 405*15dc779aSAndroid Build Coastguard Worker WORD32 zero_sign[REAL_ZERO_RADIUS_ONE_COUNT_MAX]; 406*15dc779aSAndroid Build Coastguard Worker FLOAT32 real_zero_radius[REAL_ZERO_COUNT_MAX]; 407*15dc779aSAndroid Build Coastguard Worker FLOAT32 generic_zero_radius[COMPLEX_ZERO_COUNT_MAX]; 408*15dc779aSAndroid Build Coastguard Worker FLOAT32 generic_zero_angle[COMPLEX_ZERO_COUNT_MAX]; 409*15dc779aSAndroid Build Coastguard Worker FLOAT32 real_pole_radius[REAL_POLE_COUNT_MAX]; 410*15dc779aSAndroid Build Coastguard Worker FLOAT32 complex_pole_radius[COMPLEX_POLE_COUNT_MAX]; 411*15dc779aSAndroid Build Coastguard Worker FLOAT32 complex_pole_angle[COMPLEX_POLE_COUNT_MAX]; 412*15dc779aSAndroid Build Coastguard Worker WORD32 fir_filt_order; 413*15dc779aSAndroid Build Coastguard Worker WORD32 fir_symmetry; 414*15dc779aSAndroid Build Coastguard Worker FLOAT32 fir_coeff[FIR_ORDER_MAX / 2]; 415*15dc779aSAndroid Build Coastguard Worker } ia_unique_td_filt_element; 416*15dc779aSAndroid Build Coastguard Worker typedef struct { 417*15dc779aSAndroid Build Coastguard Worker WORD32 num_eq_nodes; 418*15dc779aSAndroid Build Coastguard Worker FLOAT32 eq_slope[EQ_NODE_COUNT_MAX]; 419*15dc779aSAndroid Build Coastguard Worker WORD32 eq_freq_delta[EQ_NODE_COUNT_MAX]; 420*15dc779aSAndroid Build Coastguard Worker FLOAT32 eq_gain_initial; 421*15dc779aSAndroid Build Coastguard Worker FLOAT32 eq_gain_delta[EQ_NODE_COUNT_MAX]; 422*15dc779aSAndroid Build Coastguard Worker } ia_eq_subband_gain_spline_struct; 423*15dc779aSAndroid Build Coastguard Worker typedef struct { 424*15dc779aSAndroid Build Coastguard Worker FLOAT32 eq_subband_gain[EQ_SUBBAND_GAIN_COUNT_MAX]; 425*15dc779aSAndroid Build Coastguard Worker } ia_eq_subband_gain_vector; 426*15dc779aSAndroid Build Coastguard Worker typedef struct { 427*15dc779aSAndroid Build Coastguard Worker WORD32 eq_delay_max_present; 428*15dc779aSAndroid Build Coastguard Worker WORD32 eq_delay_max; 429*15dc779aSAndroid Build Coastguard Worker WORD32 unique_filter_block_count; 430*15dc779aSAndroid Build Coastguard Worker ia_filt_block_struct str_filter_block[FILTER_BLOCK_COUNT_MAX]; 431*15dc779aSAndroid Build Coastguard Worker WORD32 unique_td_filter_element_count; 432*15dc779aSAndroid Build Coastguard Worker ia_unique_td_filt_element unique_td_filt_ele[FILTER_ELEMENT_COUNT_MAX]; 433*15dc779aSAndroid Build Coastguard Worker WORD32 unique_eq_subband_gains_count; 434*15dc779aSAndroid Build Coastguard Worker WORD32 eq_subband_gain_representation; 435*15dc779aSAndroid Build Coastguard Worker WORD32 eq_subband_gain_format; 436*15dc779aSAndroid Build Coastguard Worker WORD32 eq_subband_gain_count; 437*15dc779aSAndroid Build Coastguard Worker ia_eq_subband_gain_spline_struct 438*15dc779aSAndroid Build Coastguard Worker str_eq_subband_gain_spline[UNIQUE_SUBBAND_GAIN_COUNT_MAX]; 439*15dc779aSAndroid Build Coastguard Worker ia_eq_subband_gain_vector 440*15dc779aSAndroid Build Coastguard Worker str_eq_subband_gain_vector[UNIQUE_SUBBAND_GAIN_COUNT_MAX]; 441*15dc779aSAndroid Build Coastguard Worker } ia_eq_coeff_struct; 442*15dc779aSAndroid Build Coastguard Worker typedef struct { 443*15dc779aSAndroid Build Coastguard Worker WORD32 filter_block_count; 444*15dc779aSAndroid Build Coastguard Worker WORD32 filter_block_index[EQ_FILTER_BLOCK_COUNT_MAX]; 445*15dc779aSAndroid Build Coastguard Worker } ia_filter_block_refs_struct; 446*15dc779aSAndroid Build Coastguard Worker typedef struct { 447*15dc779aSAndroid Build Coastguard Worker WORD32 eq_cascade_gain_present[EQ_CHANNEL_GROUP_COUNT_MAX]; 448*15dc779aSAndroid Build Coastguard Worker FLOAT32 eq_cascade_gain[EQ_CHANNEL_GROUP_COUNT_MAX]; 449*15dc779aSAndroid Build Coastguard Worker ia_filter_block_refs_struct str_filter_block_refs[EQ_CHANNEL_GROUP_COUNT_MAX]; 450*15dc779aSAndroid Build Coastguard Worker WORD32 eq_phase_alignment_present; 451*15dc779aSAndroid Build Coastguard Worker WORD32 eq_phase_alignment[EQ_CHANNEL_GROUP_COUNT_MAX] 452*15dc779aSAndroid Build Coastguard Worker [EQ_CHANNEL_GROUP_COUNT_MAX]; 453*15dc779aSAndroid Build Coastguard Worker } ia_td_filter_cascade_struct; 454*15dc779aSAndroid Build Coastguard Worker 455*15dc779aSAndroid Build Coastguard Worker typedef struct { 456*15dc779aSAndroid Build Coastguard Worker WORD32 eq_set_id; 457*15dc779aSAndroid Build Coastguard Worker WORD32 eq_set_complexity_level; 458*15dc779aSAndroid Build Coastguard Worker WORD32 dwnmix_id_count; 459*15dc779aSAndroid Build Coastguard Worker WORD32 downmix_id[DOWNMIX_ID_COUNT_MAX]; 460*15dc779aSAndroid Build Coastguard Worker WORD32 eq_apply_to_downmix; 461*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_id_count; 462*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_id[DRC_SET_ID_COUNT_MAX]; 463*15dc779aSAndroid Build Coastguard Worker WORD32 eq_set_purpose; 464*15dc779aSAndroid Build Coastguard Worker WORD32 depends_on_eq_set_present; 465*15dc779aSAndroid Build Coastguard Worker WORD32 depends_on_eq_set; 466*15dc779aSAndroid Build Coastguard Worker WORD32 no_independent_eq_use; 467*15dc779aSAndroid Build Coastguard Worker WORD32 eq_channel_count; 468*15dc779aSAndroid Build Coastguard Worker WORD32 eq_ch_group_count; 469*15dc779aSAndroid Build Coastguard Worker WORD32 eq_ch_group_of_channel[MAX_CHANNEL_COUNT]; 470*15dc779aSAndroid Build Coastguard Worker WORD32 td_filter_cascade_present; 471*15dc779aSAndroid Build Coastguard Worker ia_td_filter_cascade_struct str_td_filter_cascade; 472*15dc779aSAndroid Build Coastguard Worker WORD32 subband_gains_present; 473*15dc779aSAndroid Build Coastguard Worker WORD32 subband_gains_index[EQ_CHANNEL_GROUP_COUNT_MAX]; 474*15dc779aSAndroid Build Coastguard Worker WORD32 eq_transition_duration_present; 475*15dc779aSAndroid Build Coastguard Worker WORD32 eq_transition_duration; 476*15dc779aSAndroid Build Coastguard Worker } ia_eq_instructions_struct; 477*15dc779aSAndroid Build Coastguard Worker 478*15dc779aSAndroid Build Coastguard Worker typedef struct { 479*15dc779aSAndroid Build Coastguard Worker WORD32 drc_config_ext_type[EXT_COUNT_MAX]; 480*15dc779aSAndroid Build Coastguard Worker WORD32 ext_bit_size[EXT_COUNT_MAX - 1]; 481*15dc779aSAndroid Build Coastguard Worker 482*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_present; 483*15dc779aSAndroid Build Coastguard Worker ia_drc_coeff_parametric_drc_struct str_drc_coeff_param_drc; 484*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_instructions_count; 485*15dc779aSAndroid Build Coastguard Worker ia_parametric_drc_instructions_struct 486*15dc779aSAndroid Build Coastguard Worker str_parametric_drc_instructions[PARAM_DRC_INSTRUCTIONS_COUNT_MAX]; 487*15dc779aSAndroid Build Coastguard Worker WORD32 drc_extension_v1_present; 488*15dc779aSAndroid Build Coastguard Worker WORD32 loud_eq_instructions_flag; 489*15dc779aSAndroid Build Coastguard Worker WORD32 loud_eq_instructions_count; 490*15dc779aSAndroid Build Coastguard Worker ia_loud_eq_instructions_struct 491*15dc779aSAndroid Build Coastguard Worker loud_eq_instructions[LOUD_EQ_INSTRUCTIONS_COUNT_MAX]; 492*15dc779aSAndroid Build Coastguard Worker WORD32 eq_flag; 493*15dc779aSAndroid Build Coastguard Worker ia_eq_coeff_struct str_eq_coeff; 494*15dc779aSAndroid Build Coastguard Worker WORD32 eq_instructions_count; 495*15dc779aSAndroid Build Coastguard Worker ia_eq_instructions_struct str_eq_instructions[EQ_INSTRUCTIONS_COUNT_MAX]; 496*15dc779aSAndroid Build Coastguard Worker } ia_drc_config_ext; 497*15dc779aSAndroid Build Coastguard Worker 498*15dc779aSAndroid Build Coastguard Worker typedef struct { 499*15dc779aSAndroid Build Coastguard Worker WORD32 drc_location; 500*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic; 501*15dc779aSAndroid Build Coastguard Worker } ia_drc_coefficients_basic_struct; 502*15dc779aSAndroid Build Coastguard Worker 503*15dc779aSAndroid Build Coastguard Worker typedef struct { 504*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_id; 505*15dc779aSAndroid Build Coastguard Worker WORD32 drc_location; 506*15dc779aSAndroid Build Coastguard Worker WORD32 dwnmix_id_count; 507*15dc779aSAndroid Build Coastguard Worker WORD32 downmix_id[DOWNMIX_ID_COUNT_MAX]; 508*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_effect; 509*15dc779aSAndroid Build Coastguard Worker WORD32 limiter_peak_target_present; 510*15dc779aSAndroid Build Coastguard Worker FLOAT32 limiter_peak_target; 511*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_target_loudness_present; 512*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_target_loudness_value_upper; 513*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_target_loudness_value_lower_present; 514*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_target_loudness_value_lower; 515*15dc779aSAndroid Build Coastguard Worker } ia_drc_instructions_basic_struct; 516*15dc779aSAndroid Build Coastguard Worker 517*15dc779aSAndroid Build Coastguard Worker typedef struct { 518*15dc779aSAndroid Build Coastguard Worker WORD32 gain_seq_idx; 519*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic; 520*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic_present; 521*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic_format_is_cicp; 522*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic_left_index; 523*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic_right_index; 524*15dc779aSAndroid Build Coastguard Worker WORD32 crossover_freq_idx; 525*15dc779aSAndroid Build Coastguard Worker WORD32 start_subband_index; 526*15dc779aSAndroid Build Coastguard Worker } ia_gain_params_struct; 527*15dc779aSAndroid Build Coastguard Worker typedef struct { 528*15dc779aSAndroid Build Coastguard Worker WORD32 size; 529*15dc779aSAndroid Build Coastguard Worker WORD32 code; 530*15dc779aSAndroid Build Coastguard Worker WORD32 value; 531*15dc779aSAndroid Build Coastguard Worker } ia_delta_time_code_table_entry_struct; 532*15dc779aSAndroid Build Coastguard Worker typedef struct { 533*15dc779aSAndroid Build Coastguard Worker ia_delta_time_code_table_entry_struct 534*15dc779aSAndroid Build Coastguard Worker delta_time_code_table[N_DELTA_TIME_CODE_TABLE_ENTRIES_MAX]; 535*15dc779aSAndroid Build Coastguard Worker } ia_tables_struct; 536*15dc779aSAndroid Build Coastguard Worker 537*15dc779aSAndroid Build Coastguard Worker typedef struct { 538*15dc779aSAndroid Build Coastguard Worker WORD32 gain_coding_profile; 539*15dc779aSAndroid Build Coastguard Worker WORD32 gain_interpolation_type; 540*15dc779aSAndroid Build Coastguard Worker WORD32 full_frame; 541*15dc779aSAndroid Build Coastguard Worker WORD32 time_alignment; 542*15dc779aSAndroid Build Coastguard Worker WORD32 time_delt_min_flag; 543*15dc779aSAndroid Build Coastguard Worker WORD32 time_delt_min_val; 544*15dc779aSAndroid Build Coastguard Worker WORD32 band_count; 545*15dc779aSAndroid Build Coastguard Worker WORD32 drc_band_type; 546*15dc779aSAndroid Build Coastguard Worker ia_gain_params_struct gain_params[BAND_COUNT_MAX]; 547*15dc779aSAndroid Build Coastguard Worker 548*15dc779aSAndroid Build Coastguard Worker WORD32 num_gain_max_values; 549*15dc779aSAndroid Build Coastguard Worker ia_tables_struct str_tables; 550*15dc779aSAndroid Build Coastguard Worker } ia_gain_set_params_struct; 551*15dc779aSAndroid Build Coastguard Worker 552*15dc779aSAndroid Build Coastguard Worker typedef struct { 553*15dc779aSAndroid Build Coastguard Worker WORD32 characteristic_format; 554*15dc779aSAndroid Build Coastguard Worker FLOAT32 in_out_ratio; 555*15dc779aSAndroid Build Coastguard Worker FLOAT32 gain; 556*15dc779aSAndroid Build Coastguard Worker FLOAT32 exp; 557*15dc779aSAndroid Build Coastguard Worker WORD32 flip_sign; 558*15dc779aSAndroid Build Coastguard Worker WORD32 characteristic_node_count; 559*15dc779aSAndroid Build Coastguard Worker FLOAT32 node_level[SPLIT_CHARACTERISTIC_NODE_COUNT_MAX + 1]; 560*15dc779aSAndroid Build Coastguard Worker FLOAT32 node_gain[SPLIT_CHARACTERISTIC_NODE_COUNT_MAX + 1]; 561*15dc779aSAndroid Build Coastguard Worker } ia_split_drc_characteristic_struct; 562*15dc779aSAndroid Build Coastguard Worker 563*15dc779aSAndroid Build Coastguard Worker typedef struct { 564*15dc779aSAndroid Build Coastguard Worker WORD32 corner_freq_index; 565*15dc779aSAndroid Build Coastguard Worker WORD32 filter_strength_index; 566*15dc779aSAndroid Build Coastguard Worker } ia_shape_filter_params_struct; 567*15dc779aSAndroid Build Coastguard Worker 568*15dc779aSAndroid Build Coastguard Worker typedef struct { 569*15dc779aSAndroid Build Coastguard Worker WORD32 lf_cut_filter_present; 570*15dc779aSAndroid Build Coastguard Worker ia_shape_filter_params_struct str_lf_cut_params; 571*15dc779aSAndroid Build Coastguard Worker WORD32 lf_boost_filter_present; 572*15dc779aSAndroid Build Coastguard Worker ia_shape_filter_params_struct str_lf_boost_params; 573*15dc779aSAndroid Build Coastguard Worker WORD32 hf_cut_filter_present; 574*15dc779aSAndroid Build Coastguard Worker ia_shape_filter_params_struct str_hf_cut_params; 575*15dc779aSAndroid Build Coastguard Worker WORD32 hf_boost_filter_present; 576*15dc779aSAndroid Build Coastguard Worker ia_shape_filter_params_struct str_hf_boost_params; 577*15dc779aSAndroid Build Coastguard Worker } ia_shape_filter_block_params_struct; 578*15dc779aSAndroid Build Coastguard Worker 579*15dc779aSAndroid Build Coastguard Worker typedef struct { 580*15dc779aSAndroid Build Coastguard Worker WORD32 version; 581*15dc779aSAndroid Build Coastguard Worker WORD32 drc_location; 582*15dc779aSAndroid Build Coastguard Worker WORD32 drc_frame_size_present; 583*15dc779aSAndroid Build Coastguard Worker WORD32 drc_frame_size; 584*15dc779aSAndroid Build Coastguard Worker WORD32 gain_set_count; 585*15dc779aSAndroid Build Coastguard Worker ia_gain_set_params_struct gain_set_params[GAIN_SET_COUNT_MAX]; 586*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic_left_present; 587*15dc779aSAndroid Build Coastguard Worker WORD32 characteristic_left_count; 588*15dc779aSAndroid Build Coastguard Worker ia_split_drc_characteristic_struct 589*15dc779aSAndroid Build Coastguard Worker str_split_characteristic_left[SPLIT_CHARACTERISTIC_COUNT_MAX]; 590*15dc779aSAndroid Build Coastguard Worker WORD32 drc_characteristic_right_present; 591*15dc779aSAndroid Build Coastguard Worker WORD32 characteristic_right_count; 592*15dc779aSAndroid Build Coastguard Worker ia_split_drc_characteristic_struct 593*15dc779aSAndroid Build Coastguard Worker str_split_characteristic_right[SPLIT_CHARACTERISTIC_COUNT_MAX]; 594*15dc779aSAndroid Build Coastguard Worker WORD32 shape_filters_present; 595*15dc779aSAndroid Build Coastguard Worker WORD32 shape_num_filter; 596*15dc779aSAndroid Build Coastguard Worker ia_shape_filter_block_params_struct 597*15dc779aSAndroid Build Coastguard Worker str_shape_filter_block_params[SHAPE_FILTER_COUNT_MAX + 1]; 598*15dc779aSAndroid Build Coastguard Worker WORD32 gain_sequence_count; 599*15dc779aSAndroid Build Coastguard Worker WORD32 gain_set_params_index_for_gain_sequence[SEQUENCE_COUNT_MAX]; 600*15dc779aSAndroid Build Coastguard Worker WORD32 gain_set_count_plus; 601*15dc779aSAndroid Build Coastguard Worker 602*15dc779aSAndroid Build Coastguard Worker } ia_uni_drc_coeffs_struct; 603*15dc779aSAndroid Build Coastguard Worker 604*15dc779aSAndroid Build Coastguard Worker typedef struct { 605*15dc779aSAndroid Build Coastguard Worker WORD32 target_characteristic_left_present[DRC_BAND_COUNT_MAX]; 606*15dc779aSAndroid Build Coastguard Worker WORD32 target_characteristic_left_index[DRC_BAND_COUNT_MAX]; 607*15dc779aSAndroid Build Coastguard Worker WORD32 target_characteristic_right_present[DRC_BAND_COUNT_MAX]; 608*15dc779aSAndroid Build Coastguard Worker WORD32 target_characteristic_right_index[DRC_BAND_COUNT_MAX]; 609*15dc779aSAndroid Build Coastguard Worker WORD32 shape_filter_flag; 610*15dc779aSAndroid Build Coastguard Worker WORD32 shape_filter_idx; 611*15dc779aSAndroid Build Coastguard Worker WORD32 gain_scaling_flag[BAND_COUNT_MAX]; 612*15dc779aSAndroid Build Coastguard Worker FLOAT32 attn_scaling[BAND_COUNT_MAX]; 613*15dc779aSAndroid Build Coastguard Worker FLOAT32 ampl_scaling[BAND_COUNT_MAX]; 614*15dc779aSAndroid Build Coastguard Worker WORD32 gain_offset_flag[BAND_COUNT_MAX]; 615*15dc779aSAndroid Build Coastguard Worker FLOAT32 gain_offset[BAND_COUNT_MAX]; 616*15dc779aSAndroid Build Coastguard Worker } ia_gain_modifiers_struct; 617*15dc779aSAndroid Build Coastguard Worker 618*15dc779aSAndroid Build Coastguard Worker typedef struct { 619*15dc779aSAndroid Build Coastguard Worker WORD32 ducking_scaling_flag; 620*15dc779aSAndroid Build Coastguard Worker FLOAT32 ducking_scaling; 621*15dc779aSAndroid Build Coastguard Worker FLOAT32 ducking_scaling_quantized; 622*15dc779aSAndroid Build Coastguard Worker } ia_ducking_modifiers_struct; 623*15dc779aSAndroid Build Coastguard Worker 624*15dc779aSAndroid Build Coastguard Worker typedef struct { 625*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_id; 626*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_complexity_level; 627*15dc779aSAndroid Build Coastguard Worker WORD32 requires_eq; 628*15dc779aSAndroid Build Coastguard Worker WORD32 drc_apply_to_dwnmix; 629*15dc779aSAndroid Build Coastguard Worker WORD32 drc_location; 630*15dc779aSAndroid Build Coastguard Worker WORD32 dwnmix_id_count; 631*15dc779aSAndroid Build Coastguard Worker WORD32 downmix_id[DOWNMIX_ID_COUNT_MAX]; 632*15dc779aSAndroid Build Coastguard Worker WORD32 depends_on_drc_set_present; 633*15dc779aSAndroid Build Coastguard Worker WORD32 depends_on_drc_set; 634*15dc779aSAndroid Build Coastguard Worker WORD32 no_independent_use; 635*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_effect; 636*15dc779aSAndroid Build Coastguard Worker WORD32 gain_set_index[MAX_CHANNEL_COUNT]; 637*15dc779aSAndroid Build Coastguard Worker ia_gain_modifiers_struct 638*15dc779aSAndroid Build Coastguard Worker str_gain_modifiers_of_ch_group[CHANNEL_GROUP_COUNT_MAX]; 639*15dc779aSAndroid Build Coastguard Worker ia_ducking_modifiers_struct 640*15dc779aSAndroid Build Coastguard Worker str_ducking_modifiers_for_channel[MAX_CHANNEL_COUNT]; 641*15dc779aSAndroid Build Coastguard Worker WORD32 limiter_peak_target_present; 642*15dc779aSAndroid Build Coastguard Worker FLOAT32 limiter_peak_target; 643*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_target_loudness_present; 644*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_target_loudness_value_upper; 645*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_target_loudness_value_lower_present; 646*15dc779aSAndroid Build Coastguard Worker WORD32 drc_set_target_loudness_value_lower; 647*15dc779aSAndroid Build Coastguard Worker 648*15dc779aSAndroid Build Coastguard Worker WORD32 audio_num_chan; 649*15dc779aSAndroid Build Coastguard Worker WORD32 num_drc_ch_groups; 650*15dc779aSAndroid Build Coastguard Worker WORD32 gain_set_index_for_channel_group[CHANNEL_GROUP_COUNT_MAX]; 651*15dc779aSAndroid Build Coastguard Worker WORD32 band_count_of_ch_group[CHANNEL_GROUP_COUNT_MAX]; 652*15dc779aSAndroid Build Coastguard Worker WORD32 gain_interpolation_type_for_channel_group[CHANNEL_GROUP_COUNT_MAX]; 653*15dc779aSAndroid Build Coastguard Worker WORD32 time_delta_min_for_channel_group[CHANNEL_GROUP_COUNT_MAX]; 654*15dc779aSAndroid Build Coastguard Worker WORD32 time_alignment_for_channel_group[CHANNEL_GROUP_COUNT_MAX]; 655*15dc779aSAndroid Build Coastguard Worker ia_ducking_modifiers_struct 656*15dc779aSAndroid Build Coastguard Worker str_ducking_modifiers_for_channel_group[CHANNEL_GROUP_COUNT_MAX]; 657*15dc779aSAndroid Build Coastguard Worker WORD32 channel_group_of_ch[MAX_CHANNEL_COUNT]; 658*15dc779aSAndroid Build Coastguard Worker WORD32 num_chan_per_ch_group[CHANNEL_GROUP_COUNT_MAX]; 659*15dc779aSAndroid Build Coastguard Worker WORD32 gain_element_count; 660*15dc779aSAndroid Build Coastguard Worker WORD32 multiband_audio_sig_count; 661*15dc779aSAndroid Build Coastguard Worker WORD32 ch_group_parametric_drc_flag[CHANNEL_GROUP_COUNT_MAX]; 662*15dc779aSAndroid Build Coastguard Worker WORD32 gain_set_idx_of_ch_group_parametric_drc[CHANNEL_GROUP_COUNT_MAX]; 663*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_look_ahead_samples[CHANNEL_GROUP_COUNT_MAX]; 664*15dc779aSAndroid Build Coastguard Worker WORD32 parametric_drc_look_ahead_samples_max; 665*15dc779aSAndroid Build Coastguard Worker } ia_drc_instructions_struct; 666*15dc779aSAndroid Build Coastguard Worker 667*15dc779aSAndroid Build Coastguard Worker typedef struct { 668*15dc779aSAndroid Build Coastguard Worker WORD32 base_channel_count; 669*15dc779aSAndroid Build Coastguard Worker WORD32 layout_signaling_present; 670*15dc779aSAndroid Build Coastguard Worker WORD32 defined_layout; 671*15dc779aSAndroid Build Coastguard Worker WORD32 speaker_position[SPEAKER_POS_COUNT_MAX]; 672*15dc779aSAndroid Build Coastguard Worker } ia_channel_layout_struct; 673*15dc779aSAndroid Build Coastguard Worker typedef struct { 674*15dc779aSAndroid Build Coastguard Worker WORD32 downmix_id; 675*15dc779aSAndroid Build Coastguard Worker WORD32 target_channel_count; 676*15dc779aSAndroid Build Coastguard Worker WORD32 target_layout; 677*15dc779aSAndroid Build Coastguard Worker WORD32 downmix_coefficients_present; 678*15dc779aSAndroid Build Coastguard Worker FLOAT32 downmix_coefficient[DOWNMIX_COEFF_COUNT_MAX]; 679*15dc779aSAndroid Build Coastguard Worker } ia_downmix_instructions_struct; 680*15dc779aSAndroid Build Coastguard Worker typedef struct ia_drc_config { 681*15dc779aSAndroid Build Coastguard Worker WORD32 sample_rate_present; 682*15dc779aSAndroid Build Coastguard Worker WORD32 sampling_rate; 683*15dc779aSAndroid Build Coastguard Worker WORD32 dwnmix_instructions_count; 684*15dc779aSAndroid Build Coastguard Worker WORD32 drc_coefficients_drc_count; 685*15dc779aSAndroid Build Coastguard Worker WORD32 drc_instructions_uni_drc_count; 686*15dc779aSAndroid Build Coastguard Worker WORD32 drc_instructions_count_plus; 687*15dc779aSAndroid Build Coastguard Worker WORD32 drc_description_basic_present; 688*15dc779aSAndroid Build Coastguard Worker WORD32 drc_coefficients_basic_count; 689*15dc779aSAndroid Build Coastguard Worker WORD32 drc_instructions_basic_count; 690*15dc779aSAndroid Build Coastguard Worker WORD32 drc_config_ext_present; 691*15dc779aSAndroid Build Coastguard Worker WORD32 apply_drc; 692*15dc779aSAndroid Build Coastguard Worker ia_drc_config_ext str_drc_config_ext; 693*15dc779aSAndroid Build Coastguard Worker ia_drc_coefficients_basic_struct 694*15dc779aSAndroid Build Coastguard Worker str_drc_coefficients_basic[DRC_COEFF_COUNT_MAX]; 695*15dc779aSAndroid Build Coastguard Worker ia_drc_instructions_basic_struct 696*15dc779aSAndroid Build Coastguard Worker str_drc_instructions_basic[DRC_INSTRUCTIONS_COUNT_MAX]; 697*15dc779aSAndroid Build Coastguard Worker ia_uni_drc_coeffs_struct 698*15dc779aSAndroid Build Coastguard Worker str_p_loc_drc_coefficients_uni_drc[DRC_COEFF_COUNT_MAX]; 699*15dc779aSAndroid Build Coastguard Worker ia_drc_instructions_struct 700*15dc779aSAndroid Build Coastguard Worker str_drc_instruction_str[DRC_INSTRUCTIONS_COUNT_MAX]; 701*15dc779aSAndroid Build Coastguard Worker ia_channel_layout_struct channel_layout; 702*15dc779aSAndroid Build Coastguard Worker ia_downmix_instructions_struct 703*15dc779aSAndroid Build Coastguard Worker dwnmix_instructions[DOWNMIX_INSTRUCTION_COUNT_MAX]; 704*15dc779aSAndroid Build Coastguard Worker } ia_drc_config; 705*15dc779aSAndroid Build Coastguard Worker 706*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_conf_default(ia_usac_config_struct *pstr_usac_conf); 707*15dc779aSAndroid Build Coastguard Worker 708*15dc779aSAndroid Build Coastguard Worker UWORD32 ixheaacd_sbr_ratio(UWORD32 core_sbr_frame_len_idx); 709*15dc779aSAndroid Build Coastguard Worker 710*15dc779aSAndroid Build Coastguard Worker UWORD32 ixheaacd_sbr_params(UWORD32 core_sbr_frame_len_idx, 711*15dc779aSAndroid Build Coastguard Worker WORD32 *output_frame_length, WORD32 *block_size, 712*15dc779aSAndroid Build Coastguard Worker WORD32 *output_samples, WORD32 *sampling_freq, 713*15dc779aSAndroid Build Coastguard Worker UWORD32 *sample_freq_indx); 714*15dc779aSAndroid Build Coastguard Worker 715*15dc779aSAndroid Build Coastguard Worker WORD32 ixheaacd_config(ia_bit_buf_struct *bit_buff, 716*15dc779aSAndroid Build Coastguard Worker ia_usac_config_struct *pstr_usac_conf, UINT32 *chan, WORD32 ec_flag); 717*15dc779aSAndroid Build Coastguard Worker 718*15dc779aSAndroid Build Coastguard Worker #endif /* IXHEAACD_CONFIG_H */ 719