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_DRC_DATA_STRUCT_H 21*15dc779aSAndroid Build Coastguard Worker 22*15dc779aSAndroid Build Coastguard Worker #define IXHEAACD_DRC_DATA_STRUCT_H 23*15dc779aSAndroid Build Coastguard Worker 24*15dc779aSAndroid Build Coastguard Worker #define MAX_DRC_BANDS 16 25*15dc779aSAndroid Build Coastguard Worker 26*15dc779aSAndroid Build Coastguard Worker #define MAX_AUDIO_CHANNELS 8 27*15dc779aSAndroid Build Coastguard Worker 28*15dc779aSAndroid Build Coastguard Worker #define SBR_QMF_SUB_SAMPLES 64 29*15dc779aSAndroid Build Coastguard Worker #define SBR_QMF_SUB_BANDS 64 30*15dc779aSAndroid Build Coastguard Worker 31*15dc779aSAndroid Build Coastguard Worker typedef enum { 32*15dc779aSAndroid Build Coastguard Worker UNKNOWN_PAYLOAD = 0, 33*15dc779aSAndroid Build Coastguard Worker MPEG_DRC_EXT_DATA = 1, 34*15dc779aSAndroid Build Coastguard Worker DVB_DRC_ANC_DATA = 2 35*15dc779aSAndroid Build Coastguard Worker 36*15dc779aSAndroid Build Coastguard Worker } AACDEC_DRC_PAYLOAD_TYPE; 37*15dc779aSAndroid Build Coastguard Worker 38*15dc779aSAndroid Build Coastguard Worker #define DVB_ANC_DATA_SYNC_BYTE (0xBC) 39*15dc779aSAndroid Build Coastguard Worker typedef struct { 40*15dc779aSAndroid Build Coastguard Worker WORD32 prog_ref_level; 41*15dc779aSAndroid Build Coastguard Worker WORD16 n_mdct_bands[MAX_DRC_BANDS]; 42*15dc779aSAndroid Build Coastguard Worker WORD16 drc_fac[MAX_DRC_BANDS]; 43*15dc779aSAndroid Build Coastguard Worker WORD16 drc_fac_dvb[MAX_DRC_BANDS]; 44*15dc779aSAndroid Build Coastguard Worker WORD8 drc_exp; 45*15dc779aSAndroid Build Coastguard Worker UWORD8 short_block; 46*15dc779aSAndroid Build Coastguard Worker UWORD8 drc_interp_scheme; 47*15dc779aSAndroid Build Coastguard Worker UWORD8 n_drc_bands; 48*15dc779aSAndroid Build Coastguard Worker UWORD8 new_prog_ref_level; 49*15dc779aSAndroid Build Coastguard Worker UWORD8 new_drc_fac; 50*15dc779aSAndroid Build Coastguard Worker UWORD8 prev_interp_scheme; 51*15dc779aSAndroid Build Coastguard Worker WORD32 drc_factors_sbr[SBR_QMF_SUB_SAMPLES][SBR_QMF_SUB_BANDS]; 52*15dc779aSAndroid Build Coastguard Worker WORD32 drc_factors_sbr_lat[SBR_QMF_SUB_SAMPLES][SBR_QMF_SUB_BANDS]; 53*15dc779aSAndroid Build Coastguard Worker } ixheaac_drc_data_struct; 54*15dc779aSAndroid Build Coastguard Worker 55*15dc779aSAndroid Build Coastguard Worker typedef struct { 56*15dc779aSAndroid Build Coastguard Worker UWORD8 b_channel_on[MAX_AUDIO_CHANNELS]; 57*15dc779aSAndroid Build Coastguard Worker UWORD8 prog_ref_level_present; 58*15dc779aSAndroid Build Coastguard Worker UWORD8 prog_ref_level; 59*15dc779aSAndroid Build Coastguard Worker UWORD8 drc_num_bands; 60*15dc779aSAndroid Build Coastguard Worker UWORD8 drc_band_top[MAX_DRC_BANDS]; 61*15dc779aSAndroid Build Coastguard Worker WORD8 dyn_rng_dlbl[MAX_DRC_BANDS]; 62*15dc779aSAndroid Build Coastguard Worker WORD8 dyn_rng_dlbl_dvb[MAX_DRC_BANDS]; 63*15dc779aSAndroid Build Coastguard Worker WORD8 max_dyn_rng_dlbl; 64*15dc779aSAndroid Build Coastguard Worker UWORD8 drc_interpolation_scheme; 65*15dc779aSAndroid Build Coastguard Worker WORD8 drc_data_type; 66*15dc779aSAndroid Build Coastguard Worker } ixheaac_drc_bs_data_struct; 67*15dc779aSAndroid Build Coastguard Worker 68*15dc779aSAndroid Build Coastguard Worker typedef struct { 69*15dc779aSAndroid Build Coastguard Worker ixheaac_drc_bs_data_struct str_drc_bs_data[MAX_BS_ELEMENT]; 70*15dc779aSAndroid Build Coastguard Worker ixheaac_drc_data_struct str_drc_channel_data[MAX_BS_ELEMENT]; 71*15dc779aSAndroid Build Coastguard Worker WORD16 drc_ref_level; 72*15dc779aSAndroid Build Coastguard Worker WORD16 drc_def_level; 73*15dc779aSAndroid Build Coastguard Worker UWORD8 drc_channel_next_index[MAX_BS_ELEMENT]; 74*15dc779aSAndroid Build Coastguard Worker UWORD8 sbr_allowed; 75*15dc779aSAndroid Build Coastguard Worker UWORD8 sbr_found; 76*15dc779aSAndroid Build Coastguard Worker UWORD8 drc_element_found; 77*15dc779aSAndroid Build Coastguard Worker UWORD8 max_audio_channels; 78*15dc779aSAndroid Build Coastguard Worker UWORD8 length_history; 79*15dc779aSAndroid Build Coastguard Worker UWORD8 num_drc_elements; 80*15dc779aSAndroid Build Coastguard Worker WORD32 state; 81*15dc779aSAndroid Build Coastguard Worker WORD32 target_ref_level; 82*15dc779aSAndroid Build Coastguard Worker WORD32 prog_ref_level; 83*15dc779aSAndroid Build Coastguard Worker WORD32 cut_factor; 84*15dc779aSAndroid Build Coastguard Worker WORD32 boost_factor; 85*15dc779aSAndroid Build Coastguard Worker FLAG drc_dig_norm; 86*15dc779aSAndroid Build Coastguard Worker FLAG drc_on; 87*15dc779aSAndroid Build Coastguard Worker FLAG dvb_anc_data_present; 88*15dc779aSAndroid Build Coastguard Worker WORD32 dvb_anc_data_pos; 89*15dc779aSAndroid Build Coastguard Worker WORD32 pres_mode; 90*15dc779aSAndroid Build Coastguard Worker WORD32 heavy_mode; 91*15dc779aSAndroid Build Coastguard Worker } ia_drc_dec_struct; 92*15dc779aSAndroid Build Coastguard Worker 93*15dc779aSAndroid Build Coastguard Worker #endif 94