78 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.6 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 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);
 | |
| 
 | |
| VOID impd_store_audio_io_buffer_time(
 | |
|     FLOAT32* audio_in_out_buf[], ia_audio_in_out_buf* audio_io_buf_internal);
 | |
| 
 | |
| VOID impd_store_audio_io_buffer_freq(
 | |
|     FLOAT32* audio_real_buff[], FLOAT32* audio_imag_buff[],
 | |
|     ia_audio_in_out_buf* audio_io_buf_internal);
 | |
| 
 | |
| VOID impd_retrieve_audio_io_buffer_time(
 | |
|     FLOAT32* audio_in_out_buf[], ia_audio_in_out_buf* audio_io_buf_internal);
 | |
| 
 | |
| VOID impd_retrieve_audio_buffer_freq(
 | |
|     FLOAT32* audio_real_buff[], FLOAT32* audio_imag_buff[],
 | |
|     ia_audio_in_out_buf* audio_io_buf_internal);
 | |
| 
 | |
| VOID impd_advance_audio_io_buffer_time(
 | |
|     ia_audio_in_out_buf* audio_io_buf_internal);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| #endif
 |