93 lines
2.7 KiB
C
93 lines
2.7 KiB
C
|
/******************************************************************************
|
||
|
* *
|
||
|
* Copyright (C) 2018 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_DRC_DATA_STRUCT_H
|
||
|
|
||
|
#define IXHEAACD_DRC_DATA_STRUCT_H
|
||
|
|
||
|
#define MAX_DRC_BANDS 16
|
||
|
|
||
|
#define MAX_AUDIO_CHANNELS 8
|
||
|
|
||
|
#define SBR_QMF_SUB_SAMPLES 64
|
||
|
#define SBR_QMF_SUB_BANDS 64
|
||
|
|
||
|
typedef enum {
|
||
|
UNKNOWN_PAYLOAD = 0,
|
||
|
MPEG_DRC_EXT_DATA = 1,
|
||
|
DVB_DRC_ANC_DATA = 2
|
||
|
|
||
|
} AACDEC_DRC_PAYLOAD_TYPE;
|
||
|
|
||
|
#define DVB_ANC_DATA_SYNC_BYTE (0xBC)
|
||
|
typedef struct {
|
||
|
WORD32 prog_ref_level;
|
||
|
WORD16 n_mdct_bands[MAX_DRC_BANDS];
|
||
|
WORD16 drc_fac[MAX_DRC_BANDS];
|
||
|
WORD16 drc_fac_dvb[MAX_DRC_BANDS];
|
||
|
WORD8 drc_exp;
|
||
|
UWORD8 short_block;
|
||
|
UWORD8 drc_interp_scheme;
|
||
|
UWORD8 n_drc_bands;
|
||
|
UWORD8 new_prog_ref_level;
|
||
|
UWORD8 new_drc_fac;
|
||
|
UWORD8 prev_interp_scheme;
|
||
|
WORD32 drc_factors_sbr[SBR_QMF_SUB_SAMPLES][SBR_QMF_SUB_BANDS];
|
||
|
} ixheaac_drc_data_struct;
|
||
|
|
||
|
typedef struct {
|
||
|
UWORD8 b_channel_on[MAX_AUDIO_CHANNELS];
|
||
|
UWORD8 prog_ref_level_present;
|
||
|
UWORD8 prog_ref_level;
|
||
|
UWORD8 drc_num_bands;
|
||
|
UWORD8 drc_band_top[MAX_DRC_BANDS];
|
||
|
WORD8 dyn_rng_dlbl[MAX_DRC_BANDS];
|
||
|
WORD8 dyn_rng_dlbl_dvb[MAX_DRC_BANDS];
|
||
|
WORD8 max_dyn_rng_dlbl;
|
||
|
UWORD8 drc_interpolation_scheme;
|
||
|
WORD8 drc_data_type;
|
||
|
} ixheaac_drc_bs_data_struct;
|
||
|
|
||
|
typedef struct {
|
||
|
ixheaac_drc_bs_data_struct str_drc_bs_data[MAX_BS_ELEMENT];
|
||
|
ixheaac_drc_data_struct str_drc_channel_data[MAX_BS_ELEMENT];
|
||
|
WORD16 drc_ref_level;
|
||
|
WORD16 drc_def_level;
|
||
|
UWORD8 drc_channel_next_index[MAX_BS_ELEMENT];
|
||
|
UWORD8 sbr_allowed;
|
||
|
UWORD8 sbr_found;
|
||
|
UWORD8 drc_element_found;
|
||
|
UWORD8 max_audio_channels;
|
||
|
UWORD8 length_history;
|
||
|
UWORD8 num_drc_elements;
|
||
|
WORD32 state;
|
||
|
WORD32 target_ref_level;
|
||
|
WORD32 prog_ref_level;
|
||
|
WORD32 cut_factor;
|
||
|
WORD32 boost_factor;
|
||
|
FLAG drc_dig_norm;
|
||
|
FLAG drc_on;
|
||
|
FLAG dvb_anc_data_present;
|
||
|
WORD32 dvb_anc_data_pos;
|
||
|
WORD32 pres_mode;
|
||
|
WORD32 heavy_mode;
|
||
|
} ia_drc_dec_struct;
|
||
|
|
||
|
#endif
|