/****************************************************************************** * * 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 IMPD_DRC_PROCESS_AUDIO_H #define IMPD_DRC_PROCESS_AUDIO_H #ifdef __cplusplus extern "C" { #endif typedef struct { WORD32 multiband_audio_sig_count; WORD32 frame_size; FLOAT32** non_interleaved_audio; } ia_audio_band_buffer_struct; typedef struct { WORD32 audio_num_chan; WORD32 frame_size; WORD32 audio_sub_band_count; WORD32 audio_sub_band_frame_size; WORD32 audio_delay_samples; WORD32 audio_delay_sub_band_samples; FLOAT32** audio_io_buffer_delayed; FLOAT32** audio_buffer_delayed_real; FLOAT32** audio_buffer_delayed_imag; FLOAT32** audio_in_out_buf; FLOAT32** audio_real_buff; FLOAT32** audio_imag_buff; } ia_audio_in_out_buf; WORD32 impd_filter_banks_process(ia_drc_instructions_struct* pstr_drc_instruction_arr, const WORD32 drc_instructions_index, ia_drc_params_struct* ia_drc_params_struct, FLOAT32* audio_io_buf[], ia_audio_band_buffer_struct* audio_band_buffer, ia_filter_banks_struct* ia_filter_banks_struct, const WORD32 passThru); WORD32 impd_store_audio_io_buffer_time(FLOAT32* audio_in_out_buf[], ia_audio_in_out_buf* audio_io_buf_internal); WORD32 impd_store_audio_io_buffer_freq(FLOAT32* audio_real_buff[], FLOAT32* audio_imag_buff[], ia_audio_in_out_buf* audio_io_buf_internal); WORD32 impd_retrieve_audio_io_buffer_time(FLOAT32* audio_in_out_buf[], ia_audio_in_out_buf* audio_io_buf_internal); WORD32 impd_advance_audio_io_buffer_time(ia_audio_in_out_buf* audio_io_buf_internal); #ifdef __cplusplus } #endif #endif