/****************************************************************************** * * Copyright (C) 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ***************************************************************************** * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore */ #ifndef IXHEAACD_MPS_STRUCT_DEF_H #define IXHEAACD_MPS_STRUCT_DEF_H typedef struct { const WORD32 *p_filter_ana; const WORD32 *ref_co_eff_ptr_l; const WORD32 *ref_co_eff_ptr_r; WORD32 offset_l; WORD32 offset_r; WORD32 *qmf_states_buffer; WORD16 flag; WORD16 offset; WORD32 *qmf_states_curr_pos; } ia_mps_dec_qmf_ana_filter_bank; typedef struct { const WORD32 *p_filter_syn; WORD32 *sbr_qmf_states_synthesis; } ia_mps_dec_qmf_syn_filter_bank; typedef struct { WORD32 ia_mps_enc_qmf_64_640[650]; WORD16 sbr_alt_sin_twiddle[33]; WORD16 sbr_cos_twiddle[32]; WORD16 sbr_sin_twiddle[32]; WORD16 fft_c[4]; WORD16 ia_qmf_anl_addt_cos[32]; WORD16 ia_qmf_anl_addt_sin[32]; } ia_mps_dec_qmf_tables_struct; typedef struct { WORD32 sqrt_tab[513]; } ia_mps_dec_common_tables_struct; typedef struct { WORD16 p8_13[19]; WORD16 p2_6[6]; WORD32 sine_array[2048]; WORD32 cosine_array[2048]; } ia_mps_dec_hybrid_tables_struct; typedef struct { WORD32 row_2_channel_stp[7][8]; WORD32 row_2_channel_ges[7][8]; WORD32 row_2_residual[7][8]; } ia_mps_dec_index_tables_struct; typedef struct { ia_mps_dec_index_tables_struct idx_table; WORD32 hybrid_2_param_28[71]; WORD32 r1_matrix_l[31]; WORD32 ten_cld_by_10[31]; WORD32 w00_cld2_15[31]; WORD32 table_kappa[8]; WORD32 dec_pow[31]; WORD32 cld_tab_1[31]; WORD32 cld_tab_2[31]; WORD32 cld_tab_3[31]; WORD32 reciprocal[576]; WORD32 c_l_table[31]; WORD32 cos_table[16][31]; WORD32 sin_table[8][31]; } ia_mps_dec_m1_m2_tables_struct; typedef struct { WORD32 rev_delay[4][10]; WORD32 rev_split_freq_0[4]; WORD32 rev_split_freq_1[4]; WORD32 rev_split_freq_2[4]; } ia_mps_dec_rev_tables_struct; typedef struct { ia_mps_dec_rev_tables_struct rev_table; WORD32 lattice_coeff_0[10][20]; WORD32 lattice_coeff_1[10][15]; WORD32 lattice_coeff_2[10][6]; WORD32 lattice_coeff_3[10][3]; WORD32 den_coef_0[10][21]; WORD32 den_coef_1[10][16]; WORD32 den_coef_2[10][7]; WORD32 den_coef_3[10][4]; WORD32 lattice_delta_phi[10][20]; } ia_mps_dec_decorr_tables_struct; typedef struct { WORD32 bp[25]; WORD32 bpxgf[25]; WORD32 bp2xgf2[25]; WORD32 ia_mps_dec_qmf_64_640[325]; WORD32 time_out_idx_5xxx[6]; WORD32 time_out_idx_7xxx[8]; } ia_mps_dec_tp_process_tables_struct; typedef struct { WORD32 wf_02[02]; WORD32 wf_03[03]; WORD32 wf_04[04]; WORD32 wf_15[15]; WORD32 wf_16[16]; WORD32 wf_18[18]; WORD32 wf_24[24]; WORD32 wf_30[30]; WORD32 wf_32[32]; } ia_mps_dec_wf_tables_struct; typedef struct { const WORD32 *wf[32]; } ia_mps_dec_wf_ptr_table_struct; typedef struct { WORD32 twi_post_cos[64]; WORD32 twi_post_sin[64]; WORD32 hybrid_2_qmf[71]; WORD32 local_sin_4[4]; WORD32 local_sin_15[16]; WORD32 local_sin_16[16]; WORD32 local_sin_18[18]; WORD32 local_sin_24[24]; WORD32 local_sin_30[30]; WORD32 local_sin_32[32]; } ia_mps_dec_mdct2qmf_table_struct; typedef struct { WORD16 gmax_fix[72]; WORD32 dwin_fix[72]; WORD32 nstart_fix[5][72]; WORD32 dfrac_fix[5][56]; WORD32 part4[4]; WORD32 part5[5]; WORD32 part7[7]; WORD32 part10[10]; WORD32 part14[14]; WORD32 part20[20]; WORD32 part28[28]; WORD32 part40[40]; WORD32 w_real[16]; WORD32 w_imag[16]; WORD32 bitrev[16]; } ia_mps_dec_tonality_tables_struct; typedef struct { WORD32 kernels_4_to_71[71]; WORD32 kernels_5_to_71[71]; WORD32 kernels_7_to_71[71]; WORD32 kernels_10_to_71[71]; WORD32 kernels_14_to_71[71]; WORD32 kernels_20_to_71[71]; WORD32 kernels_28_to_71[71]; WORD32 bb_env_kernels[71]; } ia_mps_dec_kernels_table_struct; typedef struct { WORD32 mapping_4_to_28[28]; WORD32 mapping_5_to_28[28]; WORD32 mapping_7_to_28[28]; WORD32 mapping_10_to_28[28]; WORD32 mapping_14_to_28[28]; WORD32 mapping_20_to_28[28]; } ia_mps_dec_mapping_table_struct; typedef struct { WORD32 num_input_channels; WORD32 num_output_channels; WORD32 num_ott_boxes; WORD32 num_ttt_boxes; WORD32 ott_mode_lfe[5]; } ia_mps_dec_tree_properties_struct; typedef struct { ia_mps_dec_kernels_table_struct kernel_table; ia_mps_dec_mapping_table_struct map_table; ia_mps_dec_tree_properties_struct tree_property_table[7]; WORD32 sampling_freq_table[15]; WORD32 freq_res_table[8]; WORD32 temp_shape_chan_table[2][7]; WORD32 surround_gain_table[5]; WORD32 lfe_gain_table[5]; WORD32 clip_gain_table[8]; WORD32 pb_stride_table[4]; WORD32 smg_time_table[4]; WORD32 dequant_cld[31]; WORD32 dequant_cld_coarse[15]; WORD32 dequant_cpc[52]; WORD32 dequant_cpc_coarse[26]; WORD32 dequant_icc[8]; WORD32 factor_cld_tab_1[31]; WORD32 hrtf_power[64]; WORD32 envshape_data[2][5]; WORD32 pcm_chnksz_level_3[5]; WORD32 pcm_chnksz_level_4; WORD32 pcm_chnksz_level_7[6]; WORD32 pcm_chnksz_level_8; WORD32 pcm_chnksz_level_11[2]; WORD32 pcm_chnksz_level_13[4]; WORD32 pcm_chnksz_level_15; WORD32 pcm_chnksz_level_19[4]; WORD32 pcm_chnksz_level_25[3]; WORD32 pcm_chnksz_level_26; WORD32 pcm_chnksz_level_31; WORD32 pcm_chnksz_level_51[4]; } ia_mps_dec_bitdec_tables_struct; typedef struct { WORD32 blind_cld_mesh[31][21]; WORD32 blind_icc_mesh[31][21]; WORD32 blind_cpc_1_mesh[31][21]; WORD32 blind_cpc_2_mesh[31][21]; } ia_mps_dec_mesh_tables_struct; typedef struct { ia_mps_dec_mesh_tables_struct mesh_table; WORD32 exp_1[13]; WORD32 exp_2[13]; WORD32 exp_4[13]; WORD32 exp_8[13]; WORD32 exp_16[13]; WORD32 exp_32[13]; WORD32 exp_64[13]; WORD32 exp_128[13]; } ia_mps_dec_blind_tables_struct; typedef struct { WORD16 *cos_table_long[64]; WORD16 *cos_table_short[10]; } ia_mps_dec_mdct2qmf_cos_table_struct; typedef struct { WORD16 cos_table_long_32_00[32]; WORD16 cos_table_long_32_01[32]; WORD16 cos_table_long_32_02[32]; WORD16 cos_table_long_32_03[32]; WORD16 cos_table_long_32_04[32]; WORD16 cos_table_long_32_05[32]; WORD16 cos_table_long_32_06[32]; WORD16 cos_table_long_32_07[32]; WORD16 cos_table_long_32_08[32]; WORD16 cos_table_long_32_09[32]; WORD16 cos_table_long_32_10[32]; WORD16 cos_table_long_32_11[32]; WORD16 cos_table_long_32_12[32]; WORD16 cos_table_long_32_13[32]; WORD16 cos_table_long_32_14[32]; WORD16 cos_table_long_32_15[32]; WORD16 cos_table_long_32_16[32]; WORD16 cos_table_long_32_17[32]; WORD16 cos_table_long_32_18[32]; WORD16 cos_table_long_32_19[32]; WORD16 cos_table_long_32_20[32]; WORD16 cos_table_long_32_21[32]; WORD16 cos_table_long_32_22[32]; WORD16 cos_table_long_32_23[32]; WORD16 cos_table_long_32_24[32]; WORD16 cos_table_long_32_25[32]; WORD16 cos_table_long_32_26[32]; WORD16 cos_table_long_32_27[32]; WORD16 cos_table_long_32_28[32]; WORD16 cos_table_long_32_29[32]; WORD16 cos_table_long_32_30[32]; WORD16 cos_table_long_32_31[32]; WORD16 cos_table_long_30_00[30]; WORD16 cos_table_long_30_01[30]; WORD16 cos_table_long_30_02[30]; WORD16 cos_table_long_30_03[30]; WORD16 cos_table_long_30_04[30]; WORD16 cos_table_long_30_05[30]; WORD16 cos_table_long_30_06[30]; WORD16 cos_table_long_30_07[30]; WORD16 cos_table_long_30_08[30]; WORD16 cos_table_long_30_09[30]; WORD16 cos_table_long_30_10[30]; WORD16 cos_table_long_30_11[30]; WORD16 cos_table_long_30_12[30]; WORD16 cos_table_long_30_13[30]; WORD16 cos_table_long_30_14[30]; WORD16 cos_table_long_30_15[30]; WORD16 cos_table_long_30_16[30]; WORD16 cos_table_long_30_17[30]; WORD16 cos_table_long_30_18[30]; WORD16 cos_table_long_30_19[30]; WORD16 cos_table_long_30_20[30]; WORD16 cos_table_long_30_21[30]; WORD16 cos_table_long_30_22[30]; WORD16 cos_table_long_30_23[30]; WORD16 cos_table_long_30_24[30]; WORD16 cos_table_long_30_25[30]; WORD16 cos_table_long_30_26[30]; WORD16 cos_table_long_30_27[30]; WORD16 cos_table_long_30_28[30]; WORD16 cos_table_long_30_29[30]; WORD16 cos_table_long_24_00[24]; WORD16 cos_table_long_24_01[24]; WORD16 cos_table_long_24_02[24]; WORD16 cos_table_long_24_03[24]; WORD16 cos_table_long_24_04[24]; WORD16 cos_table_long_24_05[24]; WORD16 cos_table_long_24_06[24]; WORD16 cos_table_long_24_07[24]; WORD16 cos_table_long_24_08[24]; WORD16 cos_table_long_24_09[24]; WORD16 cos_table_long_24_10[24]; WORD16 cos_table_long_24_11[24]; WORD16 cos_table_long_24_12[24]; WORD16 cos_table_long_24_13[24]; WORD16 cos_table_long_24_14[24]; WORD16 cos_table_long_24_15[24]; WORD16 cos_table_long_24_16[24]; WORD16 cos_table_long_24_17[24]; WORD16 cos_table_long_24_18[24]; WORD16 cos_table_long_24_19[24]; WORD16 cos_table_long_24_20[24]; WORD16 cos_table_long_24_21[24]; WORD16 cos_table_long_24_22[24]; WORD16 cos_table_long_24_23[24]; WORD16 cos_table_long_18_00[18]; WORD16 cos_table_long_18_01[18]; WORD16 cos_table_long_18_02[18]; WORD16 cos_table_long_18_03[18]; WORD16 cos_table_long_18_04[18]; WORD16 cos_table_long_18_05[18]; WORD16 cos_table_long_18_06[18]; WORD16 cos_table_long_18_07[18]; WORD16 cos_table_long_18_08[18]; WORD16 cos_table_long_18_09[18]; WORD16 cos_table_long_18_10[18]; WORD16 cos_table_long_18_11[18]; WORD16 cos_table_long_18_12[18]; WORD16 cos_table_long_18_13[18]; WORD16 cos_table_long_18_14[18]; WORD16 cos_table_long_18_15[18]; WORD16 cos_table_long_18_16[18]; WORD16 cos_table_long_18_17[18]; WORD16 cos_table_long_16_00[16]; WORD16 cos_table_long_16_01[16]; WORD16 cos_table_long_16_02[16]; WORD16 cos_table_long_16_03[16]; WORD16 cos_table_long_16_04[16]; WORD16 cos_table_long_16_05[16]; WORD16 cos_table_long_16_06[16]; WORD16 cos_table_long_16_07[16]; WORD16 cos_table_long_16_08[16]; WORD16 cos_table_long_16_09[16]; WORD16 cos_table_long_16_10[16]; WORD16 cos_table_long_16_11[16]; WORD16 cos_table_long_16_12[16]; WORD16 cos_table_long_16_13[16]; WORD16 cos_table_long_16_14[16]; WORD16 cos_table_long_16_15[16]; WORD16 cos_table_long_15_00[15]; WORD16 cos_table_long_15_01[15]; WORD16 cos_table_long_15_02[15]; WORD16 cos_table_long_15_03[15]; WORD16 cos_table_long_15_04[15]; WORD16 cos_table_long_15_05[15]; WORD16 cos_table_long_15_06[15]; WORD16 cos_table_long_15_07[15]; WORD16 cos_table_long_15_08[15]; WORD16 cos_table_long_15_09[15]; WORD16 cos_table_long_15_10[15]; WORD16 cos_table_long_15_11[15]; WORD16 cos_table_long_15_12[15]; WORD16 cos_table_long_15_13[15]; WORD16 cos_table_long_15_14[15]; WORD16 cos_table_short_4_00[4]; WORD16 cos_table_short_4_01[4]; WORD16 cos_table_short_4_02[4]; WORD16 cos_table_short_4_03[4]; WORD16 cos_table_short_3_00[3]; WORD16 cos_table_short_3_01[3]; WORD16 cos_table_short_3_02[3]; WORD16 cos_table_short_2_00[2]; WORD16 cos_table_short_2_01[2]; } ia_mps_dec_mdct2qmf_tables_struct; #endif /* IXHEAACD_MPS_STRUCT_DEF_H */