151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick/******************************************************************************
251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick *                                                                            *
351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * Copyright (C) 2018 The Android Open Source Project
451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick *
551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * Licensed under the Apache License, Version 2.0 (the "License");
651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * you may not use this file except in compliance with the License.
751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * You may obtain a copy of the License at:
851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick *
951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * http://www.apache.org/licenses/LICENSE-2.0
1051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick *
1151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * Unless required by applicable law or agreed to in writing, software
1251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * distributed under the License is distributed on an "AS IS" BASIS,
1351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * See the License for the specific language governing permissions and
1551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * limitations under the License.
1651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick *
1751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick *****************************************************************************
1851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
1951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick*/
2051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#ifndef IXHEAACD_DRC_DEC_H
2151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
2251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define IXHEAACD_DRC_DEC_H
2351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
2451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define DD_BLOCKSIZE (256)
2551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
2651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define ININTERBUF_SIZE 256
2751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
2851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define MAX_METADATA_SETS (32)
2951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
3051aa06e124ba688ca810b25ee0b5bb66678aac14Ray EssickVOID ixheaacd_drc_dec_create(ia_drc_dec_struct *pstr_hdrc_dec,
3151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                             WORD16 drc_ref_level, WORD16 drc_def_level);
3251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
3351aa06e124ba688ca810b25ee0b5bb66678aac14Ray EssickWORD32 ixheaacd_dec_drc_read_element(ia_drc_dec_struct *pstr_drc_dec,
3451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                     ia_drc_dec_struct *drc_dummy,
3551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                     ia_handle_bit_buf_struct bs);
3651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
3751aa06e124ba688ca810b25ee0b5bb66678aac14Ray EssickWORD32 ixheaacd_drc_map_channels(ia_drc_dec_struct *drc_dec, WORD32 num_ch,
3851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                                 WORD32 frame_size);
3951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
4051aa06e124ba688ca810b25ee0b5bb66678aac14Ray EssickVOID ixheaacd_drc_apply(ia_drc_dec_struct *pstr_drc_dec,
4151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                        WORD32 *ptr_spectral_coef, WORD32 win_seq,
4251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                        WORD32 channel, WORD32 frame_size);
4351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#endif
44