aboutsummaryrefslogtreecommitdiff
path: root/decoder/ixheaacd_sbr_dec.c
diff options
context:
space:
mode:
authorHarish Mahendrakar <harish.mahendrakar@ittiam.com>2018-05-09 14:23:00 -0700
committerRay Essick <essick@google.com>2018-06-05 13:04:22 -0700
commit8eb646f89b94cf6d0aa26e5bca39ba083a554965 (patch)
tree11bfb08fb1722b0b435c453aed777ab94687c31f /decoder/ixheaacd_sbr_dec.c
parent36ef96da451b4257b77e841b36d4dcbcb250500d (diff)
downloadlibxaac-8eb646f89b94cf6d0aa26e5bca39ba083a554965.tar.gz
Collected Cleanups from Ittiam
Test: CTS android.media.cts.DecoderTest{AacDrc,XheAac} Added __ARM_NEON__ check to generic function selector Bug: 80432407 Change-Id: I66c7879fda1369da88ccaea5f8792ea54657cdaf Added support to build for mips Bug: 80432286 Change-Id: I908029bbaddd3c1fbc39be1192926b56d981576e Add optimized versions for qmf_dec for armv7 and armv8 Separating common functions and platform specific functions in ixheaacd_qmf_dec.c. Platform specific functions are moved to qmf_dec in armv7, armv8 and generic folder. Bug: 80431870 Change-Id: I860cb79a1870e228d2108b7915418e1c003cefc5 Fixes for crashes reported by Fuzzer tool Bug: 109697676 Change-Id: I862fc054b99ee9d427d20596bc8d2e85522a7188
Diffstat (limited to 'decoder/ixheaacd_sbr_dec.c')
-rw-r--r--decoder/ixheaacd_sbr_dec.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/decoder/ixheaacd_sbr_dec.c b/decoder/ixheaacd_sbr_dec.c
index 571d955..31beb76 100644
--- a/decoder/ixheaacd_sbr_dec.c
+++ b/decoder/ixheaacd_sbr_dec.c
@@ -705,7 +705,7 @@ WORD32 ixheaacd_sbr_dec(ia_sbr_dec_struct *ptr_sbr_dec, WORD16 *ptr_time_data,
op_delay + codec_x_delay + SBR_HF_ADJ_OFFSET);
if (hbe_flag) {
- ixheaacd_qmf_hbe_apply(
+ WORD32 err_code = ixheaacd_qmf_hbe_apply(
ptr_sbr_dec->p_hbe_txposer,
ptr_sbr_dec->qmf_buf_real + (op_delay + SBR_HF_ADJ_OFFSET) +
ESBR_HBE_DELAY_OFFSET,
@@ -715,6 +715,8 @@ WORD32 ixheaacd_sbr_dec(ia_sbr_dec_struct *ptr_sbr_dec, WORD16 *ptr_time_data,
ptr_sbr_dec->ph_vocod_qmf_real + (op_delay + SBR_HF_ADJ_OFFSET),
ptr_sbr_dec->ph_vocod_qmf_imag + (op_delay + SBR_HF_ADJ_OFFSET),
ptr_frame_data->pitch_in_bins);
+ if(err_code)
+ return err_code;
if (upsample_ratio_idx == SBR_UPSAMPLE_IDX_4_1) {
ixheaacd_hbe_repl_spec(
@@ -1012,7 +1014,7 @@ WORD32 ixheaacd_sbr_dec(ia_sbr_dec_struct *ptr_sbr_dec, WORD16 *ptr_time_data,
return 0;
}
-void ixheaacd_esbr_dec(ia_sbr_dec_struct *ptr_sbr_dec,
+WORD32 ixheaacd_esbr_dec(ia_sbr_dec_struct *ptr_sbr_dec,
ia_sbr_header_data_struct *ptr_header_data,
ia_sbr_frame_info_data_struct *ptr_frame_data,
FLAG apply_processing, FLAG low_pow_flag,
@@ -1098,7 +1100,7 @@ void ixheaacd_esbr_dec(ia_sbr_dec_struct *ptr_sbr_dec,
op_delay + codec_x_delay + SBR_HF_ADJ_OFFSET);
if (hbe_flag) {
- ixheaacd_qmf_hbe_apply(
+ WORD32 err = ixheaacd_qmf_hbe_apply(
ptr_sbr_dec->p_hbe_txposer,
ptr_sbr_dec->qmf_buf_real + (op_delay + SBR_HF_ADJ_OFFSET) +
ESBR_HBE_DELAY_OFFSET,
@@ -1108,6 +1110,8 @@ void ixheaacd_esbr_dec(ia_sbr_dec_struct *ptr_sbr_dec,
ptr_sbr_dec->ph_vocod_qmf_real + (op_delay + SBR_HF_ADJ_OFFSET),
ptr_sbr_dec->ph_vocod_qmf_imag + (op_delay + SBR_HF_ADJ_OFFSET),
ptr_frame_data->pitch_in_bins);
+ if(err)
+ return err;
if (upsample_ratio_idx == SBR_UPSAMPLE_IDX_4_1) {
ixheaacd_hbe_repl_spec(
@@ -1131,7 +1135,7 @@ void ixheaacd_esbr_dec(ia_sbr_dec_struct *ptr_sbr_dec,
mps_sbr_flag, ch_fac);
ptr_frame_data->prev_sbr_mode = sbr_mode;
- return;
+ return 0;
}
WORD32 ixheaacd_sbr_dec_from_mps(FLOAT32 *p_mps_qmf_output, VOID *p_sbr_dec,