Commit graph

57 commits

Author SHA1 Message Date
Akshay Ragir
f4d4dc7a1a Fix for Heap-buffer-overflow in ixheaace_write_bits
Some checks are pending
CMake / build (push) Waiting to run
Significance:
==============
- Fixes max bit reservoir calculation based on framelength

Bug: ossFuzz: 471876985
Test: poc in bug

Testing:
========
- Smoke-tested on MSVS, Armv7, Armv8, x86_64, x86 and Mac
2026-01-14 10:33:55 +05:30
akshayragir833
c7df337f09
Fix for the Integer-overflow in impd_drc_quantize_and_encode_drc_gain (#111)
Some checks failed
CMake / build (push) Has been cancelled
Significance:
=============
- Refined the condition checks in impd_drc_quantize_and_encode_drc_gain
  to prevent overflow during subtraction.

Bug: ossFuzz: 449893770
Test: poc in bug

Testing:
========
- Smoke-tested on MSVS, Armv7, Armv8, x86_64, x86 and Mac.
2025-10-16 11:36:40 +05:30
akshayragir833
11b88af541
Added bound check for the noise floor scale factors (#110)
Some checks failed
CMake / build (push) Has been cancelled
Significance:
=============
- Added an upper bound check for the noise scale factors in SBR module.

Bug: ossFuzz: 444537265
Test: poc in bug

Testing:
========
- Smoke-tested on MSVS, Armv7, Armv8, x86_64, x86 and Mac
2025-09-30 10:43:56 +05:30
akshayragir833
fe4e685d4c
Encoder bug fixes and documentation updates (#106)
Significance:
=============
- Fixed an issue in the LPD encoding path related to 768-sample frame length
- Added error check for the standard sample rates in the USAC profile
- Modified impd_drc_config_params.txt file
- Updated documents

Testing:
=========
- smoke-tested on x86, x86_64, Mac, armv7, armv8 and MSVS
2025-09-03 12:50:07 +05:30
akshayragir833
60cae125cf
Encoder bug fixes in the USAC path (#103)
Some checks failed
CMake / build (push) Has been cancelled
* Encoder bug fixes in the USAC path

Significance:
==============
- Aligned STOP_WINDOW block window type selection in USAC with AAC
- Delay synchronization between USAC core coder and SBR encoder
- Minor bug fixes

Testing:
- smoke-tested on x86, x86_64, Mac, armv7, armv8 and MSVS

* Addressed a minor nit in the code

---------

Co-authored-by: Akshay Ragir <100833@ittiam.com>
2025-08-20 14:41:32 +05:30
akshayragir833
fb6a68848a
Enhancements to the uniDRCv1 user configuration through DRC (#101)
Significance:
==============
- Enhanced the support to uniDRCv1 user configuration through DRC
  configuration param file

Testing:
=========
- smoke-tested on x86, x86_64, Mac, armv7, armv8 and MSVS

Co-authored-by: Akshay Ragir <100833@ittiam.com>
2025-08-14 16:57:31 +05:30
akshayragir833
388435c8f8
Support to configure user preferred loudness configuration through DRC (#100)
* Support to configure user preferred loudness configuration through DRC

Significance:
=============
- Added support to configure User defined program loudness through DRC, which takes
  precedence over loudness measured by the encoder
- Minor bug fixes

Testing:
========
- smoke-tested on x86, x86_64, Mac, armv7, armv8 and MSVS

* Addressed minor nits in the documentation

---------

Co-authored-by: Akshay Ragir <100833@ittiam.com>
2025-08-07 15:19:36 +05:30
akshayragir833
3dfa708b6e
Loudness leveling support for encoder and decoder (#99)
* 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>
2025-07-28 17:40:45 +05:30
akshayragir833
7492f1f9ab
Enhancements for 4:1 eSBR configuration for USAC encoder (#94)
- 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>
2024-12-16 17:38:47 +05:30
akshayragir833
85cf44c90c
Added a fix in the FAC payload writing path (#91)
- 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
2024-05-24 17:15:08 +05:30
akshayragir833
141fde8854
Added a fix in the FAC payload writing path (#90)
- 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
2024-05-16 10:02:33 +02:00
Akshay Ragir
558d17493e Fix for the Use-of-uninitialized-value in iusace_fd_encode_fac
This change prevents the access of uninitialized variable in iusace_fd_encode_fac

Bug: ossFuzz: 68476
Test: poc in bug
2024-05-10 20:00:59 +05:30
Akshay Ragir
b9598d0c6c UniDrcv1 configuration support when DRC is enabled
Tests done: Smoke test
2024-05-07 13:20:31 +05:30
akshayragir833
da04d9de78
Encoder enhancements (#84)
Tests done: smoke test
2024-03-29 17:36:14 +05:30
Akshay Ragir
ed65992ff0 Fix for the Heap-buffer-overflow READ 1 in ixheaace_process
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
2024-03-15 17:24:52 +05:30
akshayragir833
58381f7993
Audio pre-roll and loudness measurement support for USAC (#79)
Tests done: Smoke test
2024-03-06 15:13:14 +05:30
akshayragir833
d0702a8795
Aligned encoder with the latest changes in common directory (#78)
[x] Tests done: Smoke test
2024-01-22 18:19:16 +05:30
akshayragir833
63d6a41982
USAC encoder enhancements and internal bug fixes (#76)
Tests done: Smoke test
2024-01-12 13:05:51 +05:30
akshayragir833
87f206b42d
Fix for the Use-of-uninitialized-value in ixheaace_frame_info_generator (#75)
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
2024-01-02 19:07:05 +05:30
akshayragir833
1ce177ea0e
Encoder enhancements and minor bug fixes (#73)
Test done: Smoke test
2023-12-28 17:47:33 +05:30
akshayragir833
b5c3233a7a
Sanitization of configuration parameters (#69) 2023-12-11 17:37:51 +05:30
Akshay Ragir
86eb72d8eb Fix for the Global-buffer-overflow READ 4 in iaace_estimate_scfs_chan
These changes handle the 960 frame length
support for SBR and PS profiles.

Bug: ossFuzz: 64532
Test: poc in bug
2023-11-27 20:00:46 +05:30
Akshay Ragir
695799b8b6 Fix for the Null-dereference READ in ixheaace_write_bits
This change handles the error reported while processing
individual bitstream element in case of multi-channel streams.

Bug: ossFuzz: 64022
Test: poc in bug
2023-11-16 09:24:49 +05:30
Akshay Ragir
f29c4480db Code refactoring and minor bug fixes 2023-10-12 19:24:54 +05:30
Akshay Ragir
fcf3e9af7d Fix for the Divide-by-zero in iaace_adapt_thr_to_pe
These changes handle the divide-by-zero runtime error
reported when the active lines become zero in
quantization. The issue is reported with AAC and the
same changes are extended to USAC.

Bug: ossFuzz: 62977
Test: poc in bug
2023-10-12 19:24:54 +05:30
Akshay Ragir
e8d026548e Fix for the Index-out-of-bounds in iusace_quantize_lines
These changes handle the index-out-of-bounds runtime error
reported when the bit consumption exceeds the bit reservoir
and global gain reaches the maximum value. The issue is
reported with USAC and the same changes are extended to AAC.

Bug: ossFuzz: 63019
Test: poc in bug
2023-10-12 19:24:54 +05:30
Akshay Ragir
aeaaaf4945 Minor bug fixes 2023-10-03 19:14:29 +05:30
Akshay Ragir
d8e8f980ae Fix for the Divide-by-zero in iaace_adjust_threshold
These changes handle the divide-by-zero runtime
error reported when the average bits become zero
in bit reservoir factor calculation.

Bug: ossFuzz: 62291
Test: poc in bug
2023-10-03 19:14:29 +05:30
Akshay Ragir
f247fa376e Fix for the Divide-by-zero in impd_drc_td_drc_gain_calc_init
These changes handle the divide-by-zero runtime error
reported when the successive drc gain coordinates
have same x coordinates.

Bug: ossFuzz:62237
Test: poc in bug
2023-10-03 19:14:29 +05:30
Akshay Ragir
56716426e2 Fix for the Global-buffer-overflow READ 4 in iusace_quantize_lines
These changes handle the global-buffer-overflow runtime error
reported when the tonal difference in the SBR module becomes
zero.

Bug: ossFuzz: 62261
Test: poc in bug
2023-10-03 19:14:29 +05:30
Akshay Ragir
c07f14410b Fix for build warnings on armv7 2023-09-14 18:12:59 +05:30
Akshay Ragir
1cc5b82096 Fix for the Floating-point-exception in ia_enhaacplus_enc_aac_core_encode
These changes handle the Floating-point-exception and
Null-dereference runtime errors reported when the
channel mask is zero. This is resolved by
initializing the channel mask with default value.

Bug: ossFuzz: 62238, 62235
Test: poc in bug
2023-09-14 18:12:59 +05:30
Akshay Ragir
ccdced7d6a Fix for Divide-by-zero in impd_drc_stft_drc_gain_calc_init
These changes handle the Divide-by-zero runtime error reported
when the drc gain coordinates are identical or slope is
perpendicular to the gain value.

Bug: ossFuzz:61683
Test: poc in bug
2023-09-09 20:32:12 +05:30
Akshay Ragir
f39922ae99 Fix for the Global-buffer-overflow READ 4 in iaace_quantize_lines
These changes handle the runtime error reported when the gain
value exceeds the maximum supported value because of zero
spectrum. This is resolved by exiting the rate distortion loop
when zero spectrum is detected. The issue is reported with AAC
and the same changes are extended to USAC.

Bug: ossFuzz:61699
Test: poc in bug
2023-09-09 20:32:12 +05:30
Akshay Ragir
62c8372f6b Fix for the Global-buffer-overflow READ 4 in iusace_estimate_scfs_chan
These changes handle the runtime error reported when the
value of scalefactor band form factor becomes zero. This
is resolved by adding bound checks for the gain value.
The issue is reported with USAC and the changes are
extended to AAC.

Bug: ossFuzz:61998
Test: poc in bug
2023-09-09 20:32:12 +05:30
Akshay Ragir
58acdb87a1 Fix for the Divide-by-zero in ixheaace_spectral_change
These changes handle the Divide-by-zero runtime error
reported when the energy value calculated is zero.
This is resolved by adding a non zero value to the
energy if it becomes zero.

Bug: ossFuzz: 61974
Test: poc in bug
2023-09-09 20:32:12 +05:30
Akshay Ragir
3428869827 Fix for the Null-dereference in ixheaace_extract_sbr_envelope
These changes handle the Null-dereference runtime error
reported for mono streams because of the inappropriate
access of uninitialized members from a structure.

Bug: ossFuzz: 61967
Test: poc in bug
2023-09-09 20:32:12 +05:30
Akshay Ragir
5ee1f8c848 Fix for the Divide-by-zero in ixheaace_sbr_missing_harmonics_detector_qmf
These chages handle the Divide-by-zero runtime error reported
when the value in tonal difference buffer becomes zero. This
is resolved by making it closer to zero instead of absolute
zero.

Bug: ossFuzz:61917
Test: poc in bug
2023-09-01 21:42:20 +05:30
Akshay Ragir
112fe0d0db Fix for the Global-buffer-overflow READ 4 in iusace_estimate_scfs_chan
These changes handle the Global-buffer-overflow runtime error
reported when the value of scalefactor band form factor
becomes zero. This is resolved by making it closer to zero
instead of absolute zero.

Bug: ossFuzz:61902
Test: poc in bug
2023-09-01 21:42:20 +05:30
Akshay Ragir
1ac90c8ac3 Fix for the Null-dereference in ixheaace_extract_sbr_envelope
These changes handle the Null-dereference runtime error
reported for mono streams because of inappropriate
access of uninitialized members from a structure.

Bug: ossFuzz:61903
Test: poc in bug
2023-09-01 21:42:20 +05:30
Akshay Ragir
a00a8d3c2c Fix for the Divide-by-zero in iusace_tcx_fac_encode
These changes handle the Divide-by-zero runtime error
reported by correcting the TCX pre-shaping and
shaping related parameters.

Bug: ossFuzz:61899
Test: poc in bug
2023-09-01 21:42:20 +05:30
Shreyas Talwekar
cd91e1af76 Fix for the Heap-buffer-overflow in ixheaace_process
This change handles the Heap-buffer-overflow by
considering the bits used by the SBR encoder for
USAC mono streams.

Bug: ossFuzz:61825
Test: poc in bug
2023-08-31 09:12:21 +05:30
Shreyas Talwekar
5285d1921d Fix for the Divide-by-zero in iusace_cplx_pred_proc
These changes handle the Divide-by-zero runtime
error when the residual energy becomes zero.
This is resolved by making the value of residual
energy closer to zero instead of absolute zero.

Bug: ossFuzz:61826
Test: poc in bug
2023-08-31 09:12:21 +05:30
Shreyas Talwekar
69a0983d7b Fix for the Null-dereference in ixheaace_extract_sbr_envelope
These changes handle the Null-dereference runtime error
reported because of the inappropriate usage of members
from an uninitialized structure when harmonic sbr is
disabled.

Bug: ossFuzz:61687
Test: poc in bug
2023-08-31 09:12:21 +05:30
Akshay Ragir
5b23cc288a Fix for the Divide-by-zero in ia_enhaacplus_enc_calc_weighted_spectrum
These changes handle the Divide-by-zero runtime error
when the value of scale factor band energy becomes
zero. This is resolved by making it closer to zero
instead of absolute zero.

Bug: ossFuzz:61709
Test: poc in bug
2023-08-31 09:12:21 +05:30
Akshay Ragir
5e7d72a065 Fix for the Divide-by-zero in iusace_fd_fac
These changes handle the Divide-by-zero runtime
error reported because of the inappropriate
usage of pstr_acelp->len_frame in Frequency
Domain coding.

Bug: ossFuzz:61669
Test: poc in bug
2023-08-31 09:12:21 +05:30
Akshay Ragir
e5650552a2 Fix for the Divide-by-zero in iaace_adjust_threshold
These changes handle the Divide-by-zero runtime
error if bit reservoir is not maintained. This
arises if the bit reservoir size value is set
to -1 using command line input.

Bug: ossFuzz:61711
Test: poc in bug
2023-08-31 09:12:21 +05:30
Nikhil Bhavikatti
1a62ab2e92
USAC Encoder enhancements (#45) 2023-08-21 10:54:50 +05:30
Nikhil Bhavikatti
79e7fec6db
Encoder updates (#42) 2023-08-07 11:59:48 +05:30
Nikhil Bhavikatti
d5a175920e
DRC API and testbench updates (#41) 2023-08-04 19:29:27 +05:30