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_HYBRID_H
2151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define IXHEAACD_HYBRID_H
2251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
2351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define HYBRID_FILTER_LENGTH 13
2451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define HYBRID_FILTER_DELAY 6
2551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define NO_QMF_CHANNELS_IN_HYBRID 3
2651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define NO_HYBRID_CHANNELS_LOW 2
2751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define NO_HYBRID_CHANNELS_HIGH 8
2851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
2951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essicktypedef struct {
3051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick  const WORD16 *ptr_resol;
3151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick  WORD8 ptr_qmf_buf;
3251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick  WORD32 *ptr_work_re;
3351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick  WORD32 *ptr_work_im;
3451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick  WORD32 *ptr_qmf_buf_re[NO_QMF_CHANNELS_IN_HYBRID];
3551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick  WORD32 *ptr_qmf_buf_im[NO_QMF_CHANNELS_IN_HYBRID];
3651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick  WORD32 *ptr_temp_re;
3751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick  WORD32 *ptr_temp_im;
3851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick} ia_hybrid_struct;
3951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
4051aa06e124ba688ca810b25ee0b5bb66678aac14Ray EssickVOID ixheaacd_hybrid_analysis(const WORD32 *ptr_qmf_real, WORD32 *ptr_hyb_real,
4151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                              WORD32 *ptr_hyb_imag,
4251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                              ia_hybrid_struct *ptr_hybrid, WORD16 scale,
4351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick                              ia_sbr_tables_struct *sbr_tables_ptr);
4451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
4551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#endif /* IXHEAACD_HYBRID_H */
46