Fraunhofer IIS FDK
d3ade3d525
Read uniDrcGainExtension element only if all DRC gain sequences are parsed correctly. am: 0c2c08aef6
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893665
Change-Id: I998dd24e53e8a17f41301b44576fa91d5d9f5a40
2021-03-19 02:51:28 +00:00
Fraunhofer IIS FDK
dd435f98de
Consider TNS headroom for complex prediction. am: 5e031b67ba
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893584
Change-Id: I8882d378afec8b7d2e683346c271c062aac21791
2021-03-19 02:51:25 +00:00
Fraunhofer IIS FDK
0b8dc7f5ac
Fix USAC time domain limiter latency at config change. am: 09e7c40a3a
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893583
Change-Id: I3d4c661ab94d6b1783e33b01d1c3573578b91b15
2021-03-19 02:51:23 +00:00
Fraunhofer IIS FDK
ac4a9990b8
Introduce additional sanity checks to validate program config element. am: 82f6f3dac6
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893582
Change-Id: If93b7326cc0418a1e649989b91298c65b53c2c48
2021-03-19 02:51:21 +00:00
Fraunhofer IIS FDK
d6b2fee1a4
Validate DRC compression factor and DRC boost factor value range in aacDecoder_SetParam(). am: baa3203971
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893581
Change-Id: I02c726264c22ec1f7e1169d457ac0848c77e89ca
2021-03-19 02:51:19 +00:00
Fraunhofer IIS FDK
8d150d51be
Fix unsigned integer overflow in Hcr_State_BODY_SIGN_ESC__ESC_WORD(). am: a7c64ff42f
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893580
Change-Id: Iee18084b10e8063c77d7cd18180dd68b62cd5124
2021-03-19 02:51:17 +00:00
Fraunhofer IIS FDK
3634d2026c
Make sure that alphaValue is correctly initialized in sbrDecoder_drcApplySlot(). am: 150febcc65
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893579
Change-Id: Ibc4b1a850bd68399610ccf4984b7423f119258f8
2021-03-19 02:51:15 +00:00
Fraunhofer IIS FDK
b29e70b86c
Introduce aacDecoder_drcDisable() and always disable legacy DRC for USAC. am: 3ebe6ffe95
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893578
Change-Id: Ibe9ac12e3339569f502ba29cff3ae2828543405b
2021-03-19 02:51:13 +00:00
Fraunhofer IIS FDK
87ec9dc4b9
Evaluate and return StoreConfigAsBitstream() error state. am: 702d914e1a
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893577
Change-Id: I4c50ac58579ba0ab0efa1efec8cd84579003cb45
2021-03-19 02:51:11 +00:00
Fraunhofer IIS FDK
4ee3d5e502
Check transportDec_OutOfBandConfig() input buffer size parameter. am: ef5f44c760
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893576
Change-Id: I3774fc7e9af8e3ae2df9533625a82ae5072f3494
2021-03-19 02:51:09 +00:00
Fraunhofer IIS FDK
a98b84dad0
ELD downscale factor 3 is only allowed for framesize 480. am: 18758b9fe1
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893575
Change-Id: I7ad315dd40ec894650808503136b1e223df38fc6
2021-03-19 02:51:07 +00:00
Fraunhofer IIS FDK
bdf161824b
Improve decoder robustness by storing flags and elFlags temporarily. am: b93f896f37
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893574
Change-Id: Id0cce2d6202fa4aca32bfab283317793a84195e4
2021-03-19 02:51:05 +00:00
Fraunhofer IIS FDK
1e1d714dd1
Revise bypass mode in SpatialDecApplyParameterSets() to prevent an assert in fDivNorm(). am: a1a8f69b14
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893573
Change-Id: I9bba810c814f2d68710a1d94df680e714241dbc4
2021-03-19 02:51:03 +00:00
Fraunhofer IIS FDK
c7f9c11adf
Check number of core channels and SAC decoder input channels to avoid a channel mismatch. am: 87e01ef1e7
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893572
Change-Id: I307d428eb2801a8a10b8aa4519979db550f1d688
2021-03-19 02:51:01 +00:00
Fraunhofer IIS FDK
1f9f6958c3
Prevent integer overflow in subbandTPApply() energy update. am: e916be37f2
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893571
Change-Id: I738274cd97a1c24d635d5c7f6a8efee8efc62e5c
2021-03-19 02:50:59 +00:00
Fraunhofer IIS FDK
d40cec83ed
Limit smoothedNoise values to avoid integer overflows in adjustTimeSlotHQ() and adjustTimeSlotHQ_GainAndNoise(). am: ba54a5c040
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893570
Change-Id: I84f177df0aaa55929682b56a7bf2902c4f5fb9e7
2021-03-19 02:50:57 +00:00
Fraunhofer IIS FDK
7f707f8057
Avoid integer overflow in dct_II(). am: 19c8cc495e
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893569
Change-Id: I806a23071a940dbdb74d0e921c2b7312ae7c856b
2021-03-19 02:50:55 +00:00
Fraunhofer IIS FDK
a948ff1cd4
Prevent integer overflows in dualChannelFiltering() and eightChannelFiltering(). am: 614b9f005a
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893568
Change-Id: Ibcb7694e41a6836f5c46901cce534ea3d8813ab2
2021-03-19 02:50:53 +00:00
Fraunhofer IIS FDK
f04901b42a
Adjust VBR mode depending on given peak bitrate and fix crash recovery usage. am: f89d1d0a4e
...
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893567
Change-Id: I45a95e5562b8e7b8fef1e27d5e1aa28df1f1325f
2021-03-19 02:50:51 +00:00
Xin Li
c726622078
[automerger skipped] Mark ab/7061308 as merged in stage. am: 6d10f91a77
-s ours am: 10a3289cdd
-s ours
...
am skip reason: Change-Id Id04d2590c249cad13da8dd8975d0a12ce96a9597 with SHA-1 a5f0e4af6d
is in history
Original change: undetermined
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I351222fa379905cfb22d3d4a5c9022dda52a07cd
2021-02-20 15:36:48 +00:00
Xin Li
10a3289cdd
[automerger skipped] Mark ab/7061308 as merged in stage. am: 6d10f91a77
-s ours
...
am skip reason: Change-Id Id04d2590c249cad13da8dd8975d0a12ce96a9597 with SHA-1 a5f0e4af6d
is in history
Original change: undetermined
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: Ia658697341d335415b30e7c47015c78cbc308c34
2021-02-20 14:53:59 +00:00
Xin Li
6d10f91a77
Mark ab/7061308 as merged in stage.
...
Bug: 180401296
Merged-In: Id04d2590c249cad13da8dd8975d0a12ce96a9597
Change-Id: I4da99b78b01817308d8572d3c0d5b224b7d36a73
2021-02-20 00:24:02 -08:00
Bob Badour
24a33f559c
Merge "[LSC] Add LOCAL_LICENSE_KINDS to external/aac" am: 9f1be9d06f
am: 7ad87e81d7
am: 2020366ce7
...
Original change: https://android-review.googlesource.com/c/platform/external/aac/+/1588770
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I889815ab215531c3f2cd8a166c257ab9d00dbe8f
2021-02-17 19:43:57 +00:00
Bob Badour
2020366ce7
Merge "[LSC] Add LOCAL_LICENSE_KINDS to external/aac" am: 9f1be9d06f
am: 7ad87e81d7
...
Original change: https://android-review.googlesource.com/c/platform/external/aac/+/1588770
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I12c397ed7120bed1014941d0b1413d2bf9c29bb5
2021-02-17 18:48:56 +00:00
Bob Badour
7ad87e81d7
Merge "[LSC] Add LOCAL_LICENSE_KINDS to external/aac" am: 9f1be9d06f
...
Original change: https://android-review.googlesource.com/c/platform/external/aac/+/1588770
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I37a9304f439a0ed700126de649a37378d03ce6bc
2021-02-17 18:07:22 +00:00
Treehugger Robot
80ec04f39f
Merge "Fix improper assignment in aac_enc_fuzzer" am: dde78303e8
am: b3ae2fd27f
am: 80ccc5df59
...
Original change: https://android-review.googlesource.com/c/platform/external/aac/+/1592151
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I95a53a55339caf67184bb3c8fc8c562c634bb159
2021-02-17 17:37:17 +00:00
Bob Badour
9f1be9d06f
Merge "[LSC] Add LOCAL_LICENSE_KINDS to external/aac"
2021-02-17 17:32:45 +00:00
Treehugger Robot
80ccc5df59
Merge "Fix improper assignment in aac_enc_fuzzer" am: dde78303e8
am: b3ae2fd27f
...
Original change: https://android-review.googlesource.com/c/platform/external/aac/+/1592151
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I5758ea2841ee0323b20459e0a2dabacd509c14ca
2021-02-17 17:01:02 +00:00
Treehugger Robot
b3ae2fd27f
Merge "Fix improper assignment in aac_enc_fuzzer" am: dde78303e8
...
Original change: https://android-review.googlesource.com/c/platform/external/aac/+/1592151
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: Ib28a2522296895dec1d6a5cc465a7427e19ab93a
2021-02-17 16:22:30 +00:00
Treehugger Robot
dde78303e8
Merge "Fix improper assignment in aac_enc_fuzzer"
2021-02-17 15:54:03 +00:00
Anuj Joshi
b50bd1751d
Fix improper assignment in aac_enc_fuzzer
...
This commit updates the fuzzer to use correct value of
kSignalingModesSize and prevent OOB access on kSignalingModes
Test: ./aac_enc_fuzzer
Bug: 180220144
Change-Id: Ic9d01c5c166f2291d8d8ffacaa7813fb1560322b
2021-02-17 17:01:03 +05:30
Fraunhofer IIS FDK
0c2c08aef6
Read uniDrcGainExtension element only if all DRC gain sequences are parsed correctly.
...
Prevent error return during parsing of incomplete uniDrcGain() element. This fixes unnecessary concealment of frames for AAC in case a uniDrcGain() is provided, but the uniDrcConfig() element is not available.
Bug: 176246647
Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc
Change-Id: I5ae343eaea481774c53240dbce4da0f4ff06cd1d
2021-02-14 12:23:12 -08:00
Fraunhofer IIS FDK
5e031b67ba
Consider TNS headroom for complex prediction.
...
Bug: 176246647
Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc
Change-Id: I8261106b98d7e7c5a8a2af38585c726285ea8623
2021-02-14 12:23:02 -08:00
Fraunhofer IIS FDK
09e7c40a3a
Fix USAC time domain limiter latency at config change.
...
We have observed quality problems regarding config switching for USAC streams. Crossfading did not consider the USAC time domain limiter latency correctly. The limiter memory still contained the last part of the frame before the config change.
With this patch we were able to improve the quality by moving the limiter processing to the end of the processing chain (crossfade -> DRC -> limiter). By that we don't have to consider the limiter latency at the crossfader anymore and can resolve the quality issue.
Bug: 176246647
Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc
Change-Id: I0dfd3b76ff2b0daf495ad406283f56a39982ad8f
Change-Id: I26f5da65ef8344602007e180e837820c6a25f173
2021-02-14 12:22:54 -08:00
Fraunhofer IIS FDK
82f6f3dac6
Introduce additional sanity checks to validate program config element.
...
Bug: 176246647
Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc
Change-Id: I3e04480ab5a74da1a9d09af5da95afb2000b3117
2021-02-14 12:22:46 -08:00
Fraunhofer IIS FDK
baa3203971
Validate DRC compression factor and DRC boost factor value range in aacDecoder_SetParam().
...
Bug: 176246647
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I1d8534145bcf400c5da58d64d3b7e73a87cb43be
2021-02-14 12:22:34 -08:00
Fraunhofer IIS FDK
a7c64ff42f
Fix unsigned integer overflow in Hcr_State_BODY_SIGN_ESC__ESC_WORD().
...
Bug: 176246647
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I5eb0f88a55e856c427f9e4647332070f66e673c5
2021-02-14 12:22:15 -08:00
Fraunhofer IIS FDK
150febcc65
Make sure that alphaValue is correctly initialized in sbrDecoder_drcApplySlot().
...
Bug: 176246647
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I5bded2e3d29278bb5df561eaa2a46d963ee21df8
2021-02-14 12:22:09 -08:00
Fraunhofer IIS FDK
3ebe6ffe95
Introduce aacDecoder_drcDisable() and always disable legacy DRC for USAC.
...
Bug: 176246647
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I75edf24b18e1f5392b6eb179d5574cb93fcbc7c2
2021-02-14 12:22:00 -08:00
Fraunhofer IIS FDK
702d914e1a
Evaluate and return StoreConfigAsBitstream() error state.
...
Bug: 176246647
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I025e943e91f9be1a5259a761a8ff88defd8babea
2021-02-14 12:21:52 -08:00
Fraunhofer IIS FDK
ef5f44c760
Check transportDec_OutOfBandConfig() input buffer size parameter.
...
Bug: 176246647
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I60ac86f09a5652c820d60dfdc12212637f888164
2021-02-14 12:21:44 -08:00
Fraunhofer IIS FDK
18758b9fe1
ELD downscale factor 3 is only allowed for framesize 480.
...
Bug: 176246647
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I9681942ba39761e4f1d66236ad80c2420ca5abe9
2021-02-14 12:21:33 -08:00
Fraunhofer IIS FDK
b93f896f37
Improve decoder robustness by storing flags and elFlags temporarily.
...
Bug: 176246647
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I6aaeef87e1f2ce5d5031f088b8c57e6f5806929d
2021-02-14 12:21:24 -08:00
Fraunhofer IIS FDK
a1a8f69b14
Revise bypass mode in SpatialDecApplyParameterSets() to prevent an assert in fDivNorm().
...
Bug: 176246647
Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc
Change-Id: I198747688f1677b82f27a17a2fcf40229c92b1da
2021-02-14 12:21:14 -08:00
Fraunhofer IIS FDK
87e01ef1e7
Check number of core channels and SAC decoder input channels to avoid a channel mismatch.
...
Bug: 176246647
Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc
Change-Id: Ib8b6973e9c29e13b8ef33d7736be2b977928face
2021-02-14 12:21:04 -08:00
Fraunhofer IIS FDK
e916be37f2
Prevent integer overflow in subbandTPApply() energy update.
...
Bug: 176246647
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I9ed8b33414907706808956cffad252052928c799
2021-02-14 12:20:56 -08:00
Fraunhofer IIS FDK
ba54a5c040
Limit smoothedNoise values to avoid integer overflows in adjustTimeSlotHQ() and adjustTimeSlotHQ_GainAndNoise().
...
Bug: 176246647
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: Ib630d56a626ddd59a9155df38cda2011c3165346
2021-02-14 12:20:35 -08:00
Fraunhofer IIS FDK
19c8cc495e
Avoid integer overflow in dct_II().
...
Bug: 176246647
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I6c30c4dec3f85410c2748eb42d38f5eb72521ec5
2021-02-14 12:20:21 -08:00
Fraunhofer IIS FDK
614b9f005a
Prevent integer overflows in dualChannelFiltering() and eightChannelFiltering().
...
Bug: 176246647
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: Ic9217bbb3980807036ae6ae121e6ddb7cc1bce35
2021-02-14 12:20:13 -08:00
Fraunhofer IIS FDK
f89d1d0a4e
Adjust VBR mode depending on given peak bitrate and fix crash recovery usage.
...
Operating the FDK encoder in A2DP with variable bitrate mode
configuration resulted in unexpected encoder return value AACENC_ENCODE_ERROR.
Due to peak bitrate restriction the encoder quite often runs into requantization.
In case the bitrate constraint is not fulfilled, the so-called crash recovery is
used as final emergency step. The crash recovery reduces the overall bit
consumption considering the given number of bits to be saved. The bit difference
is extracted from audio element structures. In VBR mode the element wise bit
consumption state was not updated since there is typically no bitrate limitation
required.
The patch solves the choppy audio problems and increases audio quality for
AAC VBR encoding.
The changes in FDKaacEnc_QCMain() ensure that audio element bit info is always
updated. This is achieved by always calling FDKaacEnc_BitResRedistribution()
and FDKaacEnc_prepareBitDistribution() with maxBitsPerFrame variable as total
bits parameter.
Furthermore, VBR assumes a certain target bitrate which is used for internal
configuration and limitations. In case the peak bitrate parameter is less than
the VBR mode target bitrate the maximum of both bitrate configurations was used.
The function FDKaacEnc_AdjustVBRBitrateMode() is added to adjust the encoder
internal VBR mode to a desired target bitrate less than given peak bitrate.
It is possible that the peak bitrate is very close to the desired target bitrate.
The virtual available bitreservoir is quite low and the encoder would run quite
often into requantization with needless audio quality reduction. In such a
configuration, it is a better choice to use the CBR targeted threshold adaption
to avoid audio quality reduction.
In FDKaacEnc_Initialize(), there was already a bitResMode selection depending
on available bitreservoir for CBR. This selection will now also be used for VBR.
In case the bitResMode is AACENC_BR_MODE_FULL and VBR mode is selected, the VBR
threshold adaption is used. Otherwise, CBR threshold adaption strategy is used
and therefore, no unnecessary fill bits are written.
Bug: 161400526
Test: see bug
Change-Id: I1865f817180150da6add2623a64f1a102622784a
2021-02-14 12:20:02 -08:00