| /****************************************************************************** |
| * * |
| * 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_BIT_EXTRACT_H |
| #define IXHEAACD_BIT_EXTRACT_H |
| |
| typedef struct { |
| WORD32 core_mode[2]; |
| WORD32 common_tw; |
| WORD32 common_window; |
| WORD32 tns_data_present[2]; |
| WORD32 tns_active; |
| WORD32 common_tns; |
| WORD32 tns_on_lr; |
| WORD32 tns_present_both; |
| WORD32 common_max_sfb; |
| UWORD8 max_sfb[2]; |
| WORD32 max_sfb_ste; |
| WORD32 pred_dir; |
| WORD32 complex_coef; |
| WORD32 use_prev_frame; |
| UWORD8 ms_mask_present[2]; |
| |
| } ia_usac_tmp_core_coder_struct; |
| |
| WORD32 ixheaacd_ics_info(ia_usac_data_struct *usac_data, WORD32 widx, |
| UWORD8 *max_sfb, ia_bit_buf_struct *it_bit_buff, |
| WORD32 window_sequence_last); |
| |
| VOID ixheaacd_calc_grp_offset(ia_sfb_info_struct *pstr_sfb_info, UWORD8 *group); |
| |
| VOID ixheaacd_read_tns_u(ia_sfb_info_struct *pstr_sfb_info, |
| ia_tns_frame_info_struct *pstr_tns_frame_info, |
| ia_bit_buf_struct *it_bit_buff); |
| |
| WORD32 ixheaacd_core_coder_data(WORD32 id, ia_usac_data_struct *usac_data, |
| WORD32 elem_idx, WORD32 chan_offset, |
| ia_bit_buf_struct *it_bit_buff, |
| WORD32 nr_core_coder_channels); |
| |
| VOID usac_past_tw(ia_usac_data_struct *usac_data, WORD32 mod0, WORD32 i, |
| ia_usac_lpd_decoder_handle st); |
| |
| VOID usac_td2buffer(FLOAT32 p_in_data[], ia_usac_data_struct *usac_data, |
| WORD32 k, WORD32 mod0); |
| |
| WORD32 ixheaacd_lpd_channel_stream(ia_usac_data_struct *usac_data, |
| ia_td_frame_data_struct *pstr_td_frame_data, |
| ia_bit_buf_struct *it_bit_buff, |
| FLOAT32 *synth); |
| |
| VOID ixheaacd_acelp_decoding(WORD32 k, ia_usac_data_struct *usac_data, |
| ia_td_frame_data_struct *pstr_td_frame_data, |
| ia_bit_buf_struct *it_bit_buff, WORD32 chan); |
| |
| IA_ERRORCODE ixheaacd_tcx_coding(ia_usac_data_struct *usac_data, WORD32 *quant, |
| WORD32 k, WORD32 first_tcx_flag, |
| ia_td_frame_data_struct *pstr_td_frame_data, |
| ia_bit_buf_struct *it_bit_buff); |
| |
| WORD32 ixheaacd_win_seq_select(WORD32 window_sequence_curr, |
| WORD32 window_sequence_last); |
| |
| WORD32 ixheaacd_fd_channel_stream( |
| ia_usac_data_struct *usac_data, |
| ia_usac_tmp_core_coder_struct *pstr_core_coder, UWORD8 *max_sfb, |
| WORD32 window_sequence_last, WORD32 chn, WORD32 noise_filling_config, |
| WORD32 ch, ia_bit_buf_struct *it_bit_buff); |
| |
| VOID ixheaacd_read_fac_data(WORD32 lfac, WORD32 *fac_data, |
| ia_bit_buf_struct *it_bit_buff); |
| |
| #endif /* IXHEAACD_BIT_EXTRACT_H */ |