* Fix for UBSAN issue observed with libxaac decoder
Significance:
- This change propogates the error returned from ixheaacd_heaac_mps_apply
to ixheaacd_dec_execute.
Testing:
- All previous fuzzer crashes are tested. No crash observed.
- CTS and Conformance for x86, x86_64, armv7 and armv8 are passing.
* Fix for UBSAN issue observed with libxaac Decoder
Significance:
- Comparison is made against IA_NO_ERROR using 'not equal to', instead of checking for equality with IA_FATAL_ERROR
Testing:
- All previous fuzzer crashes are tested. No crash observed.
- CTS and Conformance for x86, x86_64, armv7 and armv8 are passing.
* Loudness leveling support for encoder and decoder
- Addition of loudness leveling support to encoder and
decoder as per ISO/IEC 23003-4:2020/Amd.2:2023(E)
Testing:
Encoder: Smoke-test
Decoder: CTS and Conformance for x86, x86_64, armv7 and armv8 are
passing
* Addressed review comments
* Addressed minor nits in documentation
---------
Co-authored-by: Akshay Ragir <100833@ittiam.com>
- Fix for the spectral misalignment issue observed between HF and LF for 4:1 eSBR
- Delay synchronization between SBR encoder and the core coder
- Delay handling for the decoded files using pre-roll frames on encoder
- Bug fixes
Testing: Smoke-test
Co-authored-by: Akshay Ragir <100833@ittiam.com>
Significance:
--------------
- Fixes all the the warnings observed for libxaac decoder library when compiled with clang-16 (x86_64).
- Adjusts the conditional check to validate the 4:1 system's SBR range start frequency border.
Testing:
---------
- All previous fuzzer crashes are tested. No crash observed.
- CTS and Conformance for x86, x86_64, armv7 and armv8 are passing.
- The bit-writing logic had to be skipped when no bits were to be written. Updated the existing check for the same.
- This change also resolves an issue identified by oss-fuzz.
Bug: ossFuzz: 69103
Test: poc in bug
- The bit-writing logic had to be skipped when no bits were to be written. Added the missing check for the same.
- This change also resolves an issue identified by oss-fuzz
Bug: ossFuzz: 68476
Test: poc in bug
Significance:
--------------
- Possibility of accessing uninitialized access to structure members of a local scratch structure uncovered with fuzzer testing.
- The changes in this commit handle such cases.
Bug: ossFuzz:68464
Test: poc in bug
These changes fix the Use-of-uninitialized-value in ixheaacd_aacdec_decodeframe runtime error
caused due to uninitialized structure members of aac scratch structure.
Bug: ossFuzz:68464
Test: poc in bug
These changes fix the Heap-buffer-overflow in Codec__decodeXAACStream runtime error
caused due to unsupported frame length type configuration for LATM streams.
Bug: ossFuzz:67767
Test: poc in bug
Significance:
========
[x] Aligned buffer access for scratch memory and scratch memory optimization.
Testing:
=====
[x] MSVS Conformance and CTS are passing.
[x] All previous fuzzer crashes are tested. No crash observed.
[x] For platforms, Conformance tested with different combinations.
[x] Tested Conformance with gcc builds for x86, x86_64, armv7 and armv8.
[x] Tested Conformance with clang builds with address and memory sanitizer flags for x86_64 and armv8.
There hasn't been a non-neon platform build in years. Even the NDK hasn't supported non-neon for two years now.
Change-Id: I1d892e8bd97371a87771183655c1e5803a7e4400
These changes handle the heap buffer overflow runtime error
by reducing the maximum number of loudnessInfo blocks supported.
Bug: ossFuzz: 67273
Test: poc in bug
These changes handle the runtime error reported by preventing the
inappropriate access of uninitialized member from a structure.
Bug: ossFuzz: 65422
Test: poc in bug