From 2ae5f6ff8a0a12ead1cb7bab53c110039d7c8884 Mon Sep 17 00:00:00 2001 From: Harish Mahendrakar Date: Fri, 2 Dec 2022 07:47:30 -0800 Subject: Update to v0.1.4 from upstream project This CL is a squashed commit of the following CLs from upstream/main 9d57cec9725da0a4246f31779629e68630ac005c 9d57cec Merge pull request #15 from ittiam-systems/fuzzer_fix 679e3e5 Fix for signed integer overflow 944203c Merge pull request #14 from ittiam-systems/drm_960_er_support 3accfa6 Error robustness tool addition for xHEAAC decoder 42a0d6d Transform length 960 support for xHEAAC decoder 28c50d3 Merge pull request #13 from ittiam-systems/drc_config_updates c6a238f Fix for heap buffer overflow c2f16ab Fix for read access memory violation for extension element pointer b7f88cb DRC configuration updates for xHEAAC decoder 1a352d8 Merge pull request #12 from ittiam-systems/eldv2 0e0d013 Fix for read access memory violation in LD MPS process call e1bb9ba Fix for OOB issue in MPS process call c26a26d Fix for write access memory violation in USAC process call 270720d ELDv2 support for EXHEAAC decoder 397bdac Merge pull request #11 from ittiam-systems/drc_updates 1fb7d08 Fix for OOB issue 70a89a0 Fix for signed integer overflow daf6b8a DRC feature updates 8d342b2 Merge pull request #10 from ittiam-systems/cmake_win 8f3b3a4 Updates in CMakeLists for windows build 3ace28c Merge pull request #9 from ittiam-systems/fuzzer_fixes fd6d06f Fix for OOB issue 22071e3 Fix for OOB issue in DRC 089e13f Fix for heap buffer overflow 8e37a35 Fix for heap buffer overflow 49b1b8f Fix for write access memory violation in USAC process call dbedfaf Fix for write access memory violation in AAC init call 0ce17e2 Fix for OOB issue Also, updated METADATA to point to upstream repository Bug: 231644435 Bug: 233231045 Bug: 241854997 Bug: 244518544 Test: xaac_dec_fuzzer with testcases in the bugs Change-Id: I747cd8a395465107b375ed0e3994233b6f2a7779 --- decoder/drc_src/impd_drc_api.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'decoder/drc_src/impd_drc_api.c') diff --git a/decoder/drc_src/impd_drc_api.c b/decoder/drc_src/impd_drc_api.c index 7121a71..d31c93f 100644 --- a/decoder/drc_src/impd_drc_api.c +++ b/decoder/drc_src/impd_drc_api.c @@ -222,32 +222,26 @@ IA_ERRORCODE ia_drc_dec_api(pVOID p_ia_drc_dec_obj, WORD32 i_cmd, WORD32 i_idx, break; } case IA_CMD_TYPE_INIT_CPY_IC_BSF_BUFF: { - memcpy(p_obj_drc->str_bit_handler.bitstream_drc_config + - p_obj_drc->str_bit_handler.num_bytes_bs_drc_config, + memcpy(p_obj_drc->str_bit_handler.bitstream_drc_config, p_obj_drc->pp_mem[2], p_obj_drc->str_bit_handler.num_byts_cur_ic); p_obj_drc->str_bit_handler.num_bytes_bs_drc_config = - p_obj_drc->str_bit_handler.num_bytes_bs_drc_config + p_obj_drc->str_bit_handler.num_byts_cur_ic; break; } case IA_CMD_TYPE_INIT_CPY_IL_BSF_BUFF: { - memcpy(p_obj_drc->str_bit_handler.bitstream_loudness_info + - p_obj_drc->str_bit_handler.num_bytes_bs_loudness_info, + memcpy(p_obj_drc->str_bit_handler.bitstream_loudness_info, p_obj_drc->pp_mem[2], p_obj_drc->str_bit_handler.num_byts_cur_il); p_obj_drc->str_bit_handler.num_bytes_bs_loudness_info = - p_obj_drc->str_bit_handler.num_bytes_bs_loudness_info + p_obj_drc->str_bit_handler.num_byts_cur_il; break; } case IA_CMD_TYPE_INIT_CPY_IN_BSF_BUFF: { - memcpy(p_obj_drc->str_bit_handler.bitstream_unidrc_interface + - p_obj_drc->str_bit_handler.num_bytes_bs_unidrc_interface, + memcpy(p_obj_drc->str_bit_handler.bitstream_unidrc_interface, p_obj_drc->pp_mem[2], p_obj_drc->str_bit_handler.num_byts_cur_in); p_obj_drc->str_bit_handler.num_bytes_bs_unidrc_interface = - p_obj_drc->str_bit_handler.num_bytes_bs_unidrc_interface + p_obj_drc->str_bit_handler.num_byts_cur_in; break; } @@ -271,7 +265,7 @@ IA_ERRORCODE ia_drc_dec_api(pVOID p_ia_drc_dec_obj, WORD32 i_cmd, WORD32 i_idx, break; } case IA_DRC_DEC_CONFIG_DRC_TARGET_LOUDNESS: { - *pi_value = p_obj_drc->str_payload.pstr_loudness_info->loudness_info + *pi_value = (WORD32)p_obj_drc->str_payload.pstr_loudness_info->loudness_info ->loudness_measure->method_val; if (*pi_value < -1) *pi_value = *pi_value * -4; @@ -291,6 +285,14 @@ IA_ERRORCODE ia_drc_dec_api(pVOID p_ia_drc_dec_obj, WORD32 i_cmd, WORD32 i_idx, p_obj_drc->str_config.sampling_rate = *pus_value; break; } + case IA_DRC_DEC_CONFIG_PARAM_APPLY_CROSSFADE: { + p_obj_drc->str_config.apply_crossfade = *pus_value; + break; + } + case IA_DRC_DEC_CONFIG_PARAM_CONFIG_CHANGED: { + p_obj_drc->str_config.is_config_changed = *pus_value; + break; + } case IA_DRC_DEC_CONFIG_PARAM_NUM_CHANNELS: { p_obj_drc->str_config.num_ch_in = *pus_value; if (*pus_value < 1 || *pus_value > MAX_CHANNEL_COUNT) { @@ -351,10 +353,12 @@ IA_ERRORCODE ia_drc_dec_api(pVOID p_ia_drc_dec_obj, WORD32 i_cmd, WORD32 i_idx, } case IA_DRC_DEC_CONFIG_DRC_BOOST: { p_obj_drc->str_config.boost = (*pf_value); + p_obj_drc->str_config.boost_set = 1; break; } case IA_DRC_DEC_CONFIG_DRC_COMPRESS: { p_obj_drc->str_config.compress = (*pf_value); + p_obj_drc->str_config.compress_set = 1; break; } default: { return -1; } -- cgit v1.2.3