Commit graph

476 commits

Author SHA1 Message Date
Nikhil Bhavikatti
f52e960424 Fixes for OOB error and signed integer overflows in MPS module 2023-02-01 17:00:29 +05:30
Shashank Pathmudi
b9e8ada604 MPS support for xHEAAC decoder 2023-01-23 14:46:59 +05:30
Nikhil Bhavikatti
adf57641aa Fix for Read access memory violation 2022-12-28 16:20:58 +05:30
Shashank Pathmudi
1a52942898 ESBR support for xHEAAC decoder 2022-12-27 09:59:42 +05:30
Nikhil Bhavikatti
be3d58490b Fix for global buffer overflow 2022-12-08 17:56:08 +05:30
Nikhil Bhavikatti
679e3e5749 Fix for signed integer overflow 2022-12-02 17:55:32 +05:30
Nikhil Bhavikatti
3accfa6001 Error robustness tool addition for xHEAAC decoder 2022-11-29 11:48:54 +05:30
Nikhil Bhavikatti
42a0d6d68c Transform length 960 support for xHEAAC decoder 2022-11-29 11:47:23 +05:30
Nikhil Bhavikatti
c2f16ab1d5 Fix for read access memory violation for extension element pointer 2022-11-02 14:36:33 +05:30
Shashank Pathmudi
b7f88cbb46 DRC configuration updates for xHEAAC decoder 2022-11-02 14:35:50 +05:30
Nikhil Bhavikatti
0e0d0131d2 Fix for read access memory violation in LD MPS process call
Flag added to prevent entering LD MPS process call until MPS
initialization is complete
2022-10-10 10:20:01 +05:30
Nikhil Bhavikatti
e1bb9ba2b1 Fix for OOB issue in MPS process call 2022-10-10 10:19:03 +05:30
Nikhil Bhavikatti
c26a26d247 Fix for write access memory violation in USAC process call
Sanity check added to prevent reinitialization when initialization was
complete in previous call
2022-10-10 10:18:27 +05:30
Sowmya Sree Reddy G
270720de5e ELDv2 support for EXHEAAC decoder 2022-10-10 10:15:43 +05:30
Nikhil Bhavikatti
1fb7d08581 Fix for OOB issue
Frame length was not getting updated before DRC processing. Moved the
update to appropriate location.
2022-09-27 15:46:51 +05:30
Nikhil Bhavikatti
70a89a07e9 Fix for signed integer overflow
Saturation check introduced to prevent the overflow
2022-09-27 15:44:05 +05:30
Nikhil Bhavikatti
daf6b8a35c DRC feature updates 2022-09-27 15:39:18 +05:30
Nikhil Bhavikatti
fd6d06ff11 Fix for OOB issue
Sanity check added to prevent number of samples exceeding the timeslot
buffer size to prevent overflow.
2022-09-09 13:42:46 +05:30
Nikhil Bhavikatti
22071e3e10 Fix for OOB issue in DRC
Frame length was not getting updated before DRC processing. Moved the
update to appropriate location.
2022-09-09 13:33:34 +05:30
Nikhil Bhavikatti
089e13f285 Fix for heap buffer overflow
Updated bitbuffer read next to bitbuffer end when it exceeds bitbuffer
end to prevent bytes consumed to be updated incorrectly.
2022-09-09 13:27:44 +05:30
Nikhil Bhavikatti
8e37a351fc Fix for heap buffer overflow
Sanity check added to prevent count bits getting updated to negative
value.
2022-09-09 13:24:14 +05:30
Nikhil Bhavikatti
49b1b8f081 Fix for write access memory violation in USAC process call
When there is failure during the init call, decoder_create_done flag
should be reset before calling initialization again.
2022-09-09 13:17:27 +05:30
Nikhil Bhavikatti
dbedfafd12 Fix for write access memory violation in AAC init call
When there is failure during the init call, header_decode_done flag
should be reset before calling initialization again.
2022-09-09 13:12:00 +05:30
Nikhil Bhavikatti
0ce17e271d Fix for OOB issue
Sanity check added on maximum number of elements to prevent OOB access.
2022-09-09 13:04:47 +05:30
Nikhil Bhavikatti
a857637600 Fix for Out of bound access issue reported by fuzzer 2022-07-29 17:24:54 +05:30
Rajat Kumar
c9614b8df9 Fix for write null dereferencing in AAC frame decode
Audio Object type(AOT) should be same across init and
execute calls. This check was missing when AOT is
not SBR and PS and hence added as fix for this bug.
For AOTs, SBR and PS since this value is re-read at
a later point, check already present would be fine.

Bug: 196308693
Test: poc in bug
2022-07-27 14:26:18 +05:30
Sushanth Patil
3551482d1d Optimisation changes in mps dec module
Added changes to reduce processing loops in cases of
residual bands, pre mix req and phase coding in mps
module.
2022-07-24 11:44:37 +05:30
Sushanth Patil
ec016c95b1 Optimisation changes in ixheaacd_mps_temp_process
ixheaacd_mps_subbandtp() was not required for all mps
configurations. Hence, added checks so its called only
when required.
Also, reduced loop counts when res_bands are present.
2022-07-24 11:34:29 +05:30
Sushanth Patil
acab7bd76a Optimisation changes in ixheaacd_generate_hf
Updated loop count based on number of
qmf channels when MPS is present.
2022-07-24 11:15:54 +05:30
Sushanth Patil
8330107b30 Optimisation changes in mps synt calc module
Converted the mps synt calc module to float module and
reimplemented mps synthesis function.
2022-07-24 11:10:54 +05:30
Sushanth Patil
2aebc58a73 Optimisation changes in ixheaacd_samples_sat
Changed 64-bit operations used for saturating the
output pcm to 32 bit operations targeted towards
32-bit/armv7 architecture.
2022-07-24 11:09:13 +05:30
Sushanth Patil
4d002366a8 Optimisation changes in mps apply pre-matrix and mix-matrix modules
Converted all the computations in these modules to float and
removed all float to int conversion overheads.
2022-07-24 11:05:23 +05:30
Sushanth Patil
1b703a5eea Optimisation changes in mps apply function
Added changes to remove redundant computation
loops in ixheaacd_mps_synt_calc,mps hybrid
analysis & synthesis functions based on number
of non-zero qmf bands.
2022-07-23 21:15:48 +05:30
Sushanth Patil
e73da2db71 Optimisation changes in ixheaacd_mps_upmix_interp
Removed float conversion overheads for
ixheaacd_mps_upmix_interp() function.
2022-07-23 21:01:51 +05:30
Sushanth Patil
7cf8017dd2 Optimisation changes in mps angle & phase interpolation functions
Reduced multiplications using mathematical rearrangement.
2022-07-23 20:59:49 +05:30
Sushanth Patil
d9c6a98804 Optimisation changes in mps hybrid filter functions
Converted the mps hybrid filt module to float
and reduced the number of multiplications in
ixheaacd_mps_hybrid_filt_type1 & type2 functions
using mathematical rearrangement and look-up table
symmetries.
2022-07-23 20:58:14 +05:30
Sachin
4c72471cdb Changes to move output sample path from 16bit to 32 bit
AAC Core coder changes to take the output samples as 32 bit
and subject to peak limiter to avoid any clipping , at the
same time maintaining precision.

Bug: 175435457
Test: atest CtsMediaTestCases:DecoderTest
Test: atest CtsMediaTestCases:DecoderTestAacDrc
Test: atest CtsMediaTestCases:DecoderTestXheAac
Test: atest CtsMediaTestCases:DecoderTestAacFormat
Test: atest CtsMediaV2TestCases:CodecDecoderTest
2022-01-20 11:54:35 +05:30
Sachin
8701172d14 Select Expert and Anchor Loudness measurement.
Changes to switch to  Expert Panel as  measurement system
and Anchor Loudness as measurement method depending on stream.

Bug: 175435457
Test: atest CtsMediaTestCases:DecoderTest
Test: atest CtsMediaTestCases:DecoderTestAacDrc
Test: atest CtsMediaTestCases:DecoderTestXheAac
Test: atest CtsMediaTestCases:DecoderTestAacFormat
Test: atest CtsMediaV2TestCases:CodecDecoderTest
2022-01-20 11:53:40 +05:30
Sachin
e8771b7d14 Update configuration parameter's based on change in values.
Check configuration data obtained after audio Pre-Roll
parsing against current configuration. Update only when
configurations are different.

Bug: 175435457
Test: atest CtsMediaTestCases:DecoderTest
Test: atest CtsMediaTestCases:DecoderTestAacDrc
Test: atest CtsMediaTestCases:DecoderTestXheAac
Test: atest CtsMediaTestCases:DecoderTestAacFormat
Test: atest CtsMediaV2TestCases:CodecDecoderTest
2022-01-20 11:53:05 +05:30
Sachin
a281ecf0cd Update Boost and attenuation values for MPEG-D DRC
Extend API Support to change MPEG-D DRC values for boost
and attenuation from plugin.

Bug: 175435457
Test: atest CtsMediaTestCases:DecoderTest
Test: atest CtsMediaTestCases:DecoderTestAacDrc
Test: atest CtsMediaTestCases:DecoderTestXheAac
Test: atest CtsMediaTestCases:DecoderTestAacFormat
Test: atest CtsMediaV2TestCases:CodecDecoderTest
2022-01-20 11:52:31 +05:30
Sachin
ebe61f8ba1 Extend API support for Album Mode.
To extend API support to handle album
mode configuration.

Bug: 175435457
Test: atest CtsMediaTestCases:DecoderTest
Test: atest CtsMediaTestCases:DecoderTestAacDrc
Test: atest CtsMediaTestCases:DecoderTestXheAac
Test: atest CtsMediaTestCases:DecoderTestAacFormat
Test: atest CtsMediaV2TestCases:CodecDecoderTest
2022-01-20 11:51:19 +05:30
Sachin
f7ec92a2c9 Obtain Loudness Info from MPEG-4/MPEG-D DRC stream
Extend API support to query loudness Info
obtained from MPEG-4/MPEG-D DRC stream.

Bug: 175435457
Test: atest CtsMediaTestCases:DecoderTest
Test: atest CtsMediaTestCases:DecoderTestAacDrc
Test: atest CtsMediaTestCases:DecoderTestXheAac
Test: atest CtsMediaTestCases:DecoderTestAacFormat
Test: atest CtsMediaV2TestCases:CodecDecoderTest
2022-01-20 11:50:10 +05:30
Rajat Kumar
117d5bda52 Removal of pointer arithmetic code sections.
Code changes to replace  sections that work on pointer
arithmetic logic to avoid undefined behavior.

Bug:Based on manual review
Test:xaacdec

Change-Id: I02bcb356d76b11cd2912478c4263d5918c37e1a6
2020-10-08 20:31:21 +05:30
Rajat Kumar
6398ab8de5 Fix for infinite loop in drc selection process
DRC should not permit the configurations that
exceed the total supported complexity.

Bug: 167279883
Test: poc in bug

Change-Id: Icffa42cdcd9184d434b7a0bfa1b11ebd5ec4af71
2020-10-05 22:57:31 +05:30
Ray Essick
e5c5475c98 Merge "Fix to handle segv in impd_filter_banks_process" 2020-09-30 16:54:42 +00:00
Treehugger Robot
bf603c488f Merge "Fix for integer overflow in ixheaacd_cplx_synt_qmffilt" 2020-09-30 02:15:07 +00:00
Treehugger Robot
d5111468cd Merge "Fix for NPD in ixheaacd_init_sbr" 2020-09-30 02:11:08 +00:00
Ray Essick
7d0fd974c9 Merge "Fix for array out of bound access in impd_drc_get_gain" 2020-09-30 01:57:47 +00:00
Rajat Kumar
2f905017d6 Fix for NPD in ixheaacd_init_sbr
Added check for AOT(read from bit stream) mismatch,
between two consecutive execute calls while decoding
LATM header.

Bug: 168429291
Test: poc in bug

Change-Id: I64b3e38c97499b1103c9cc5594742b804e0a3965
2020-09-29 18:11:57 +05:30
Rajat kumar
f2d380ca2e Fix to handle segv in impd_filter_banks_process
Added check to ensure array size of
buf_interpolation->lpcm_gains does not
exceed allotted size.

Bug: 161819862
Test: poc in bug

Change-Id: I7e554d70ada8d92ee3496c0fbdfc78cee55e4697
2020-09-12 01:21:42 +05:30