xref: /aosp_15_r20/external/libxaac/decoder/ixheaacd_config.h (revision 15dc779a375ca8b5125643b829a8aa4b70d7f451)
1*15dc779aSAndroid Build Coastguard Worker /******************************************************************************
2*15dc779aSAndroid Build Coastguard Worker  *                                                                            *
3*15dc779aSAndroid Build Coastguard Worker  * Copyright (C) 2018 The Android Open Source Project
4*15dc779aSAndroid Build Coastguard Worker  *
5*15dc779aSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
6*15dc779aSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
7*15dc779aSAndroid Build Coastguard Worker  * You may obtain a copy of the License at:
8*15dc779aSAndroid Build Coastguard Worker  *
9*15dc779aSAndroid Build Coastguard Worker  * http://www.apache.org/licenses/LICENSE-2.0
10*15dc779aSAndroid Build Coastguard Worker  *
11*15dc779aSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
12*15dc779aSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
13*15dc779aSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*15dc779aSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
15*15dc779aSAndroid Build Coastguard Worker  * limitations under the License.
16*15dc779aSAndroid Build Coastguard Worker  *
17*15dc779aSAndroid Build Coastguard Worker  *****************************************************************************
18*15dc779aSAndroid Build Coastguard Worker  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*15dc779aSAndroid Build Coastguard Worker */
20*15dc779aSAndroid Build Coastguard Worker #ifndef IXHEAACD_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