Merge "Fix for array out of bound access in envelop calc func."
This commit is contained in:
commit
8d515ccd85
3 changed files with 9 additions and 4 deletions
|
|
@ -664,7 +664,7 @@ VOID ixheaacd_calc_subband_gains(ia_freq_band_data_struct *pstr_freq_band_data,
|
|||
|
||||
#define ALIGN_SIZE64(x) ((((x) + 7) >> 3) << 3)
|
||||
|
||||
VOID ixheaacd_calc_sbrenvelope(
|
||||
IA_ERRORCODE ixheaacd_calc_sbrenvelope(
|
||||
ia_sbr_scale_fact_struct *ptr_sbr_scale_fac,
|
||||
ia_sbr_calc_env_struct *ptr_sbr_calc_env,
|
||||
ia_sbr_header_data_struct *ptr_header_data,
|
||||
|
|
@ -681,7 +681,7 @@ VOID ixheaacd_calc_sbrenvelope(
|
|||
WORD32 freq_res;
|
||||
WORD32 num_env = ptr_frame_data->str_frame_info_details.num_env;
|
||||
WORD16 *ptr_border_vec = ptr_frame_data->str_frame_info_details.border_vec;
|
||||
|
||||
IA_ERRORCODE err_code = IA_NO_ERROR;
|
||||
WORD16 *ptr_noise_floor;
|
||||
ia_freq_band_data_struct *pstr_freq_band_data =
|
||||
ptr_header_data->pstr_freq_band_data;
|
||||
|
|
@ -811,6 +811,8 @@ VOID ixheaacd_calc_sbrenvelope(
|
|||
}
|
||||
freq_res = ptr_frame_data->str_frame_info_details.freq_res[i];
|
||||
|
||||
if (noise_floor_idx >= MAX_NOISE_ENVELOPES) return IA_FATAL_ERROR;
|
||||
|
||||
if (ptr_border_vec[i] ==
|
||||
ptr_frame_data->str_frame_info_details
|
||||
.noise_border_vec[noise_floor_idx + 1]) {
|
||||
|
|
@ -944,6 +946,7 @@ VOID ixheaacd_calc_sbrenvelope(
|
|||
} else {
|
||||
ptr_sbr_calc_env->tansient_env_prev = -1;
|
||||
}
|
||||
return err_code;
|
||||
}
|
||||
|
||||
VOID ixheaacd_equalize_filt_buff_exp(WORD16 *ptr_filt_buf, WORD16 *nrg_gain,
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ typedef struct {
|
|||
WORD16 harm_index;
|
||||
} ia_sbr_calc_env_struct;
|
||||
|
||||
VOID ixheaacd_calc_sbrenvelope(
|
||||
IA_ERRORCODE ixheaacd_calc_sbrenvelope(
|
||||
ia_sbr_scale_fact_struct *sbr_scale_factor,
|
||||
ia_sbr_calc_env_struct *ptr_sbr_calc_env,
|
||||
ia_sbr_header_data_struct *ptr_header_data,
|
||||
|
|
|
|||
|
|
@ -883,6 +883,7 @@ WORD32 ixheaacd_sbr_dec(ia_sbr_dec_struct *ptr_sbr_dec, WORD16 *ptr_time_data,
|
|||
if (apply_processing) {
|
||||
WORD16 degree_alias[NO_SYNTHESIS_CHANNELS];
|
||||
WORD16 *border_vec = ptr_frame_data->str_frame_info_details.border_vec;
|
||||
IA_ERRORCODE error_code = IA_NO_ERROR;
|
||||
|
||||
if (low_pow_flag) {
|
||||
memset(degree_alias, 0, NO_SYNTHESIS_CHANNELS * sizeof(WORD16));
|
||||
|
|
@ -922,13 +923,14 @@ WORD32 ixheaacd_sbr_dec(ia_sbr_dec_struct *ptr_sbr_dec, WORD16 *ptr_time_data,
|
|||
audio_object_type);
|
||||
}
|
||||
|
||||
ixheaacd_calc_sbrenvelope(
|
||||
error_code = ixheaacd_calc_sbrenvelope(
|
||||
&ptr_sbr_dec->str_sbr_scale_fact, &ptr_sbr_dec->str_sbr_calc_env,
|
||||
ptr_header_data, ptr_frame_data, ptr_frame_data_prev,
|
||||
p_arr_qmf_buf_real, p_arr_qmf_buf_imag, degree_alias, low_pow_flag,
|
||||
sbr_tables_ptr, pstr_common_tables,
|
||||
ptr_work_buf_core + (LPC_ORDER << (6 + !low_pow_flag)),
|
||||
audio_object_type);
|
||||
if (error_code) return error_code;
|
||||
|
||||
memcpy(ptr_frame_data_prev->sbr_invf_mode, ptr_frame_data->sbr_invf_mode,
|
||||
ptr_header_data->pstr_freq_band_data->num_if_bands * sizeof(WORD32));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue