Skip to content

Commit

Permalink
Decoder Enhancements (#77)
Browse files Browse the repository at this point in the history
[x] Aligned buffer access for persistent memory.
  • Loading branch information
ShashankPathmudi authored Jan 16, 2024
1 parent 63d6a41 commit e6fd278
Show file tree
Hide file tree
Showing 13 changed files with 706 additions and 396 deletions.
3 changes: 3 additions & 0 deletions common/ixheaac_constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,4 +83,7 @@
#define C76 (0.5339693427f) //(sin(u) - 2 * sin(2 * u) - sin(3 * u)) / 3;
#define C77 (-0.8748422265f) //(sin(u) + sin(2 * u) + 2 * sin(3 * u)) / 3;

#define BYTE_ALIGN_8 (8)
#define IXHEAAC_GET_SIZE_ALIGNED(size, alignment) ((size + (alignment - 1)) & ~(alignment - 1))

#endif /* IXHEAAC_CONSTANTS_H */
121 changes: 84 additions & 37 deletions decoder/drc_src/impd_drc_api.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

#include "impd_drc_bitbuffer.h"
#include "impd_drc_extr_delta_coded_info.h"
#include "ixheaac_constants.h"
#include "impd_drc_common.h"
#include "impd_drc_struct.h"
#include "impd_drc_interface.h"
Expand Down Expand Up @@ -61,41 +62,7 @@ IA_ERRORCODE impd_drc_set_default_config(ia_drc_api_struct *p_obj_drc);
IA_ERRORCODE impd_drc_set_struct_pointer(ia_drc_api_struct *p_obj_drc);
IA_ERRORCODE impd_process_time_domain(ia_drc_api_struct *p_obj_drc);

#define SUBBAND_BUF_SIZE \
NUM_ELE_IN_CPLX_NUM *MAX_CHANNEL_COUNT * sizeof(FLOAT32 *) + \
(MAX_SUBBAND_DELAY + MAX_DRC_FRAME_SIZE) * MAX_CHANNEL_COUNT * \
sizeof(FLOAT32) * NUM_ELE_IN_CPLX_NUM

#define NUM_DRC_TABLES 4
#define SCRATCH_MEM_SIZE \
(AUDIO_CODEC_FRAME_SIZE_MAX * MAX_CHANNEL_COUNT * sizeof(FLOAT32) * \
NUM_ELE_IN_CPLX_NUM)

#define PERSIST_MEM_SIZE \
(sizeof(ia_drc_state_struct) + sizeof(ia_drc_bits_dec_struct) + \
sizeof(ia_drc_gain_dec_struct) * 2 + \
sizeof(ia_drc_loudness_info_set_struct) + sizeof(ia_drc_gain_struct) + \
sizeof(ia_drc_interface_struct) + sizeof(ia_drc_config) + \
sizeof(ia_drc_sel_pro_struct) + sizeof(ia_drc_sel_proc_params_struct) + \
sizeof(ia_drc_sel_proc_output_struct) + \
sizeof(ia_drc_peak_limiter_struct) + sizeof(ia_drc_peak_limiter_struct) + \
sizeof(ia_drc_qmf_filt_struct) + ANALY_BUF_SIZE + SYNTH_BUF_SIZE + \
PEAK_LIM_BUF_SIZE + MAX_DRC_BS_BUF_SIZE + \
MAX_DRC_CONFG_BUF_SIZE + /*DRC Config Bitstream*/ \
MAX_LOUD_INFO_BUF_SIZE + /*DRC loudness info Bitstream*/ \
MAX_INTERFACE_BUF_SIZE + /*DRC interface Bitstream*/ \
NUM_GAIN_DEC_INSTANCES * \
(SEL_DRC_COUNT * sizeof(ia_interp_buf_struct) * MAX_GAIN_ELE_COUNT + \
sizeof(ia_eq_set_struct) + /*non_interleaved_audio*/ \
MAX_CHANNEL_COUNT * sizeof(FLOAT32 *) + \
MAX_DRC_FRAME_SIZE * sizeof(FLOAT32) * \
MAX_CHANNEL_COUNT + /*audio_in_out_buf ptr*/ \
MAX_CHANNEL_COUNT * sizeof(FLOAT32 *) + /*audio_io_buffer_delayed*/ \
MAX_CHANNEL_COUNT * sizeof(FLOAT32 *) + \
MAX_DRC_FRAME_SIZE * sizeof(FLOAT32) * \
MAX_CHANNEL_COUNT + /*subband band buffer ptr*/ \
NUM_ELE_IN_CPLX_NUM * MAX_CHANNEL_COUNT * sizeof(FLOAT32 *) + \
SUBBAND_BUF_SIZE + (PARAM_DRC_MAX_BUF_SZ * MAX_CHANNEL_COUNT)))

IA_ERRORCODE ia_drc_dec_api(pVOID p_ia_drc_dec_obj, WORD32 i_cmd, WORD32 i_idx,
pVOID pv_value) {
Expand Down Expand Up @@ -152,7 +119,7 @@ IA_ERRORCODE ia_drc_dec_api(pVOID p_ia_drc_dec_obj, WORD32 i_cmd, WORD32 i_idx,
case IA_CMD_TYPE_INIT_SET_BUFF_PTR: {
p_obj_drc->p_state->persistent_ptr =
(UWORD8 *)p_obj_drc->pp_mem[IA_DRC_PERSIST_IDX] +
sizeof(ia_drc_state_struct);
IXHEAAC_GET_SIZE_ALIGNED(sizeof(ia_drc_state_struct), BYTE_ALIGN_8);
error_code = impd_drc_set_struct_pointer(p_obj_drc);
if (error_code) return error_code;

Expand Down Expand Up @@ -507,12 +474,92 @@ IA_ERRORCODE impd_drc_mem_api(ia_drc_api_struct *p_obj_drc, WORD32 i_cmd,
return IA_NO_ERROR;
}

static WORD32 impd_calc_scratch_size() {
return IXHEAAC_GET_SIZE_ALIGNED(
AUDIO_CODEC_FRAME_SIZE_MAX * MAX_CHANNEL_COUNT * NUM_ELE_IN_CPLX_NUM * sizeof(FLOAT32),
BYTE_ALIGN_8);
}

static WORD32 impd_calc_pers_size() {
WORD32 size = 0;

WORD32 analysis_buf_size = IXHEAAC_GET_SIZE_ALIGNED(
AUDIO_CODEC_FRAME_SIZE_MAX * MAX_CHANNEL_COUNT * sizeof(FLOAT32) * NUM_ELE_IN_CPLX_NUM,
BYTE_ALIGN_8);
WORD32 synth_buf_size = IXHEAAC_GET_SIZE_ALIGNED(
AUDIO_CODEC_FRAME_SIZE_MAX * MAX_CHANNEL_COUNT * sizeof(FLOAT32) * NUM_ELE_IN_CPLX_NUM,
BYTE_ALIGN_8);
WORD32 peak_lim_buf_size = IXHEAAC_GET_SIZE_ALIGNED(
AUDIO_CODEC_FRAME_SIZE_MAX * MAX_CHANNEL_COUNT * sizeof(FLOAT32) * NUM_ELE_IN_CPLX_NUM,
BYTE_ALIGN_8);
WORD32 subband_buf_size =
NUM_ELE_IN_CPLX_NUM *
IXHEAAC_GET_SIZE_ALIGNED(MAX_CHANNEL_COUNT * sizeof(FLOAT32 *), BYTE_ALIGN_8) +
NUM_ELE_IN_CPLX_NUM * MAX_CHANNEL_COUNT *
IXHEAAC_GET_SIZE_ALIGNED((MAX_SUBBAND_DELAY + MAX_DRC_FRAME_SIZE) * sizeof(FLOAT32),
BYTE_ALIGN_8);

size += IXHEAAC_GET_SIZE_ALIGNED(sizeof(ia_drc_state_struct), BYTE_ALIGN_8);
size += IXHEAAC_GET_SIZE_ALIGNED(sizeof(ia_drc_bits_dec_struct), BYTE_ALIGN_8);
size += 2 * IXHEAAC_GET_SIZE_ALIGNED(sizeof(ia_drc_gain_dec_struct), BYTE_ALIGN_8);
size += IXHEAAC_GET_SIZE_ALIGNED(sizeof(ia_drc_loudness_info_set_struct), BYTE_ALIGN_8);
size += IXHEAAC_GET_SIZE_ALIGNED(sizeof(ia_drc_gain_struct), BYTE_ALIGN_8);
size += IXHEAAC_GET_SIZE_ALIGNED(sizeof(ia_drc_interface_struct), BYTE_ALIGN_8);
size += IXHEAAC_GET_SIZE_ALIGNED(sizeof(ia_drc_config), BYTE_ALIGN_8);
size += IXHEAAC_GET_SIZE_ALIGNED(sizeof(ia_drc_sel_pro_struct), BYTE_ALIGN_8);
size += IXHEAAC_GET_SIZE_ALIGNED(sizeof(ia_drc_sel_proc_params_struct), BYTE_ALIGN_8);
size += IXHEAAC_GET_SIZE_ALIGNED(sizeof(ia_drc_sel_proc_output_struct), BYTE_ALIGN_8);
size += IXHEAAC_GET_SIZE_ALIGNED(sizeof(ia_drc_peak_limiter_struct), BYTE_ALIGN_8);
size += IXHEAAC_GET_SIZE_ALIGNED(sizeof(ia_drc_qmf_filt_struct), BYTE_ALIGN_8);
size += analysis_buf_size;
size += synth_buf_size;
size += peak_lim_buf_size;

size += IXHEAAC_GET_SIZE_ALIGNED(MAX_DRC_BS_BUF_SIZE, BYTE_ALIGN_8);
size += IXHEAAC_GET_SIZE_ALIGNED(MAX_DRC_CONFG_BUF_SIZE, BYTE_ALIGN_8); /*DRC Config Bitstream*/
size += IXHEAAC_GET_SIZE_ALIGNED(MAX_LOUD_INFO_BUF_SIZE,
BYTE_ALIGN_8); /*DRC loudness info Bitstream*/
size +=
IXHEAAC_GET_SIZE_ALIGNED(MAX_INTERFACE_BUF_SIZE, BYTE_ALIGN_8); /*DRC interface Bitstream*/

size += NUM_GAIN_DEC_INSTANCES * SEL_DRC_COUNT *
IXHEAAC_GET_SIZE_ALIGNED((sizeof(ia_interp_buf_struct) * MAX_GAIN_ELE_COUNT),
BYTE_ALIGN_8); /*ia_interp_buf_struct*/
size += NUM_GAIN_DEC_INSTANCES *
IXHEAAC_GET_SIZE_ALIGNED((sizeof(ia_eq_set_struct)), BYTE_ALIGN_8); /*ia_eq_set_struct*/

/*non_interleaved_audio*/
size += NUM_GAIN_DEC_INSTANCES *
IXHEAAC_GET_SIZE_ALIGNED((MAX_CHANNEL_COUNT * sizeof(FLOAT32 *)), BYTE_ALIGN_8);
size += NUM_GAIN_DEC_INSTANCES * MAX_CHANNEL_COUNT *
IXHEAAC_GET_SIZE_ALIGNED((MAX_DRC_FRAME_SIZE * sizeof(FLOAT32)), BYTE_ALIGN_8);

/*audio_in_out_buf ptr*/
size += NUM_GAIN_DEC_INSTANCES *
IXHEAAC_GET_SIZE_ALIGNED((MAX_CHANNEL_COUNT * sizeof(FLOAT32 *)), BYTE_ALIGN_8);
/*audio_io_buffer_delayed*/
size += NUM_GAIN_DEC_INSTANCES *
IXHEAAC_GET_SIZE_ALIGNED((MAX_CHANNEL_COUNT * sizeof(FLOAT32 *)), BYTE_ALIGN_8);
size += NUM_GAIN_DEC_INSTANCES * MAX_CHANNEL_COUNT *
IXHEAAC_GET_SIZE_ALIGNED((MAX_DRC_FRAME_SIZE * sizeof(FLOAT32)), BYTE_ALIGN_8);

/*subband band buffer ptr*/
size += NUM_GAIN_DEC_INSTANCES * NUM_ELE_IN_CPLX_NUM *
IXHEAAC_GET_SIZE_ALIGNED(MAX_CHANNEL_COUNT * sizeof(FLOAT32 *), BYTE_ALIGN_8);
size += NUM_GAIN_DEC_INSTANCES * subband_buf_size;

size += NUM_GAIN_DEC_INSTANCES * MAX_CHANNEL_COUNT *
IXHEAAC_GET_SIZE_ALIGNED((PARAM_DRC_MAX_BUF_SZ * sizeof(FLOAT32)), BYTE_ALIGN_8);

return size;
}

IA_ERRORCODE impd_drc_fill_mem_tables(ia_drc_api_struct *p_obj_drc) {
ia_mem_info_struct *p_mem_info;
{
p_mem_info = &p_obj_drc->p_mem_info[IA_DRC_PERSIST_IDX];
memset(p_mem_info, 0, sizeof(*p_mem_info));
p_mem_info->ui_size = PERSIST_MEM_SIZE;
p_mem_info->ui_size = impd_calc_pers_size();
p_mem_info->ui_alignment = 8;
p_mem_info->ui_type = IA_MEMTYPE_PERSIST;
p_mem_info->ui_placement[0] = 0;
Expand Down Expand Up @@ -552,7 +599,7 @@ IA_ERRORCODE impd_drc_fill_mem_tables(ia_drc_api_struct *p_obj_drc) {
{
p_mem_info = &p_obj_drc->p_mem_info[IA_DRC_SCRATCH_IDX];
memset(p_mem_info, 0, sizeof(*p_mem_info));
p_mem_info->ui_size = SCRATCH_MEM_SIZE;
p_mem_info->ui_size = impd_calc_scratch_size();
p_mem_info->ui_alignment = 8;
p_mem_info->ui_type = IA_MEMTYPE_SCRATCH;
p_mem_info->ui_placement[0] = 0;
Expand Down
15 changes: 6 additions & 9 deletions decoder/drc_src/impd_drc_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,15 +63,12 @@ extern "C" {
#define NUM_GAIN_DEC_INSTANCES 2

#define MAX_DRC_FRAME_SIZE AUDIO_CODEC_FRAME_SIZE_MAX
#define ANALY_BUF_SIZE \
(AUDIO_CODEC_FRAME_SIZE_MAX * MAX_CHANNEL_COUNT * sizeof(FLOAT32) * \
NUM_ELE_IN_CPLX_NUM)
#define SYNTH_BUF_SIZE \
(AUDIO_CODEC_FRAME_SIZE_MAX * MAX_CHANNEL_COUNT * sizeof(FLOAT32) * \
NUM_ELE_IN_CPLX_NUM)
#define PEAK_LIM_BUF_SIZE \
(AUDIO_CODEC_FRAME_SIZE_MAX * MAX_CHANNEL_COUNT * sizeof(FLOAT32) * \
NUM_ELE_IN_CPLX_NUM)
#define ANALY_BUF_SIZE \
(AUDIO_CODEC_FRAME_SIZE_MAX * MAX_CHANNEL_COUNT * sizeof(FLOAT32) * NUM_ELE_IN_CPLX_NUM)
#define SYNTH_BUF_SIZE \
(AUDIO_CODEC_FRAME_SIZE_MAX * MAX_CHANNEL_COUNT * sizeof(FLOAT32) * NUM_ELE_IN_CPLX_NUM)
#define PEAK_LIM_BUF_SIZE \
(AUDIO_CODEC_FRAME_SIZE_MAX * MAX_CHANNEL_COUNT * sizeof(FLOAT32) * NUM_ELE_IN_CPLX_NUM)

/*7 bits read from the bitstream*/
#define MAX_PARAM_DRC_LOOK_AHEAD_VAL 127
Expand Down
85 changes: 58 additions & 27 deletions decoder/drc_src/impd_drc_gain_decoder.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include "impd_type_def.h"
#include "impd_error_standards.h"
#include "impd_drc_extr_delta_coded_info.h"
#include "ixheaac_constants.h"
#include "impd_drc_common.h"
#include "impd_drc_struct.h"
#include "impd_parametric_drc_dec.h"
Expand Down Expand Up @@ -142,9 +143,9 @@ IA_ERRORCODE impd_init_drc_decode_post_config(
p_drc_gain_dec_structs->drc_gain_buffers.pstr_gain_buf[k]
.buf_interpolation = (ia_interp_buf_struct*)*mem_ptr;
*mem_ptr = (pVOID)((SIZE_T)*mem_ptr +
drc_instruction_str->gain_element_count *
sizeof(ia_interp_buf_struct) +
32);
IXHEAAC_GET_SIZE_ALIGNED(drc_instruction_str->gain_element_count *
sizeof(ia_interp_buf_struct),
BYTE_ALIGN_8));
p_drc_gain_dec_structs->drc_gain_buffers.pstr_gain_buf[k]
.buf_interpolation_count = drc_instruction_str->gain_element_count;
for (i = 0;
Expand Down Expand Up @@ -187,7 +188,8 @@ IA_ERRORCODE impd_init_drc_decode_post_config(
}

p_drc_gain_dec_structs->eq_set = (ia_eq_set_struct*)*mem_ptr;
*mem_ptr = (pVOID)((SIZE_T)*mem_ptr + sizeof(ia_eq_set_struct));
*mem_ptr = (pVOID)((SIZE_T)*mem_ptr +
IXHEAAC_GET_SIZE_ALIGNED(sizeof(ia_eq_set_struct), BYTE_ALIGN_8));

if (err_code) return (err_code);

Expand Down Expand Up @@ -216,14 +218,23 @@ IA_ERRORCODE impd_init_drc_decode_post_config(
}

p_drc_gain_dec_structs->audio_band_buffer.non_interleaved_audio = *mem_ptr;
*mem_ptr = (pVOID)((SIZE_T)*mem_ptr +
(maxMultibandAudioSignalCount * sizeof(FLOAT32*)));
*mem_ptr =
(pVOID)((SIZE_T)*mem_ptr +
IXHEAAC_GET_SIZE_ALIGNED(
(maxMultibandAudioSignalCount *
sizeof(p_drc_gain_dec_structs->audio_band_buffer.non_interleaved_audio[0])),
BYTE_ALIGN_8));

for (i = 0; i < maxMultibandAudioSignalCount; i++) {
p_drc_gain_dec_structs->audio_band_buffer.non_interleaved_audio[i] =
*mem_ptr;
*mem_ptr = (pVOID)((SIZE_T)*mem_ptr +
(p_drc_params_struct->drc_frame_size * sizeof(FLOAT32)));
*mem_ptr =
(pVOID)((SIZE_T)*mem_ptr +
IXHEAAC_GET_SIZE_ALIGNED(
(p_drc_params_struct->drc_frame_size *
sizeof(
p_drc_gain_dec_structs->audio_band_buffer.non_interleaved_audio[i][0])),
BYTE_ALIGN_8));
}
p_drc_gain_dec_structs->audio_band_buffer.multiband_audio_sig_count =
maxMultibandAudioSignalCount;
Expand All @@ -234,18 +245,25 @@ IA_ERRORCODE impd_init_drc_decode_post_config(
if (p_drc_params_struct->sub_band_domain_mode == SUBBAND_DOMAIN_MODE_OFF &&
p_audio_in_out_buf->audio_delay_samples) {
p_audio_in_out_buf->audio_io_buffer_delayed = *mem_ptr;
*mem_ptr = (pVOID)((SIZE_T)*mem_ptr +
(p_audio_in_out_buf->audio_num_chan * sizeof(FLOAT32*)));
*mem_ptr =
(pVOID)((SIZE_T)*mem_ptr +
IXHEAAC_GET_SIZE_ALIGNED((p_audio_in_out_buf->audio_num_chan *
sizeof(p_audio_in_out_buf->audio_io_buffer_delayed[0])),
BYTE_ALIGN_8));
p_audio_in_out_buf->audio_in_out_buf = *mem_ptr;
*mem_ptr = (pVOID)((SIZE_T)*mem_ptr +
(p_audio_in_out_buf->audio_num_chan * sizeof(FLOAT32*)));
IXHEAAC_GET_SIZE_ALIGNED((p_audio_in_out_buf->audio_num_chan *
sizeof(p_audio_in_out_buf->audio_in_out_buf[0])),
BYTE_ALIGN_8));

for (i = 0; i < p_audio_in_out_buf->audio_num_chan; i++) {
p_audio_in_out_buf->audio_io_buffer_delayed[i] = *mem_ptr;
*mem_ptr = (pVOID)((SIZE_T)*mem_ptr +
((p_audio_in_out_buf->frame_size +
p_audio_in_out_buf->audio_delay_samples) *
sizeof(FLOAT32*)));
IXHEAAC_GET_SIZE_ALIGNED(
((p_audio_in_out_buf->frame_size +
p_audio_in_out_buf->audio_delay_samples) *
sizeof(p_audio_in_out_buf->audio_io_buffer_delayed[i][0])),
BYTE_ALIGN_8));
p_audio_in_out_buf->audio_in_out_buf[i] =
&p_audio_in_out_buf->audio_io_buffer_delayed
[i][p_audio_in_out_buf->audio_delay_samples];
Expand All @@ -254,29 +272,43 @@ IA_ERRORCODE impd_init_drc_decode_post_config(
if (p_drc_params_struct->sub_band_domain_mode != SUBBAND_DOMAIN_MODE_OFF &&
p_audio_in_out_buf->audio_delay_sub_band_samples) {
p_audio_in_out_buf->audio_buffer_delayed_real = *mem_ptr;
*mem_ptr = (pVOID)((SIZE_T)*mem_ptr +
(p_audio_in_out_buf->audio_num_chan * sizeof(FLOAT32*)));
*mem_ptr =
(pVOID)((SIZE_T)*mem_ptr + IXHEAAC_GET_SIZE_ALIGNED(
(p_audio_in_out_buf->audio_num_chan *
sizeof(p_audio_in_out_buf->audio_buffer_delayed_real[0])),
BYTE_ALIGN_8));
p_audio_in_out_buf->audio_buffer_delayed_imag = *mem_ptr;
*mem_ptr = (pVOID)((SIZE_T)*mem_ptr +
(p_audio_in_out_buf->audio_num_chan * sizeof(FLOAT32*)));
*mem_ptr =
(pVOID)((SIZE_T)*mem_ptr + IXHEAAC_GET_SIZE_ALIGNED(
(p_audio_in_out_buf->audio_num_chan *
sizeof(p_audio_in_out_buf->audio_buffer_delayed_imag[0])),
BYTE_ALIGN_8));
p_audio_in_out_buf->audio_real_buff = *mem_ptr;
*mem_ptr = (pVOID)((SIZE_T)*mem_ptr +
(p_audio_in_out_buf->audio_num_chan * sizeof(FLOAT32*)));
IXHEAAC_GET_SIZE_ALIGNED((p_audio_in_out_buf->audio_num_chan *
sizeof(p_audio_in_out_buf->audio_real_buff[0])),
BYTE_ALIGN_8));
p_audio_in_out_buf->audio_imag_buff = *mem_ptr;
*mem_ptr = (pVOID)((SIZE_T)*mem_ptr +
(p_audio_in_out_buf->audio_num_chan * sizeof(FLOAT32*)));
IXHEAAC_GET_SIZE_ALIGNED((p_audio_in_out_buf->audio_num_chan *
sizeof(p_audio_in_out_buf->audio_imag_buff[0])),
BYTE_ALIGN_8));

for (i = 0; i < p_audio_in_out_buf->audio_num_chan; i++) {
p_audio_in_out_buf->audio_buffer_delayed_real[i] = *mem_ptr;
*mem_ptr = (pVOID)((SIZE_T)*mem_ptr +
((p_audio_in_out_buf->audio_sub_band_frame_size +
p_audio_in_out_buf->audio_delay_sub_band_samples) *
sizeof(FLOAT32*)));
IXHEAAC_GET_SIZE_ALIGNED(
((p_audio_in_out_buf->audio_sub_band_frame_size +
p_audio_in_out_buf->audio_delay_sub_band_samples) *
sizeof(p_audio_in_out_buf->audio_buffer_delayed_real[i][0])),
BYTE_ALIGN_8));
p_audio_in_out_buf->audio_buffer_delayed_imag[i] = *mem_ptr;
*mem_ptr = (pVOID)((SIZE_T)*mem_ptr +
((p_audio_in_out_buf->audio_sub_band_frame_size +
p_audio_in_out_buf->audio_delay_sub_band_samples) *
sizeof(FLOAT32*)));
IXHEAAC_GET_SIZE_ALIGNED(
((p_audio_in_out_buf->audio_sub_band_frame_size +
p_audio_in_out_buf->audio_delay_sub_band_samples) *
sizeof(p_audio_in_out_buf->audio_buffer_delayed_imag[i][0])),
BYTE_ALIGN_8));

p_audio_in_out_buf->audio_real_buff[i] =
&p_audio_in_out_buf->audio_buffer_delayed_real
Expand Down Expand Up @@ -377,7 +409,6 @@ IA_ERRORCODE impd_drc_process_time_domain(
return err_code;
}


VOID impd_get_parametric_drc_delay(
ia_drc_gain_dec_struct* p_drc_gain_dec_structs,
ia_drc_config* pstr_drc_config, WORD32* parametric_drc_delay,
Expand Down
Loading

0 comments on commit e6fd278

Please sign in to comment.