diff options
author | Harish Mahendrakar <harish.mahendrakar@ittiam.com> | 2018-05-09 14:23:00 -0700 |
---|---|---|
committer | Ray Essick <essick@google.com> | 2018-06-05 13:04:22 -0700 |
commit | 8eb646f89b94cf6d0aa26e5bca39ba083a554965 (patch) | |
tree | 11bfb08fb1722b0b435c453aed777ab94687c31f /decoder/ixheaacd_sbr_dec.c | |
parent | 36ef96da451b4257b77e841b36d4dcbcb250500d (diff) | |
download | libxaac-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.c | 12 |
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, |