aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix stack buffer overflow in Pred_lt4().Fraunhofer IIS FDK2021-04-301-2/+2
| | | | | | | Bug: 186706541 Bug: 160187491 Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc Change-Id: I3b8d9326319cca21145cc246588b01c5bf29a9a0
* Avoid signed integer overflow in pcmLimiter_Apply().Fraunhofer IIS FDK2021-04-291-2/+3
| | | | | | Bug: 186706541 Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc Change-Id: I89f5206053926cb2f8726e4bc1ffb9fc88371edb
* Stop using __DATE__/__TIME__ on all builds am: edbf93589bAnuj Joshi2021-03-190-0/+0
|\ | | | | | | | | | | Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893670 Change-Id: Iaef3e0e1066e8e352b9ce3849bbce9fdc79d9d6d
| * Stop using __DATE__/__TIME__ on all buildsAnuj Joshi2021-02-1412-11/+12
| | | | | | | | | | | | | | Test: mmma external/libaac Bug: 151595970 Change-Id: Icd937cad3e4e2f70a5486cca424544eb410be26f
* | Solve issue regarding config changes between Loudness-only vs. Loudness+DRC. ↵Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | | | | | am: a4695298d6 Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893669 Change-Id: Iacec8ed463772b387d576bbd00efe9c110ee775a
| * Solve issue regarding config changes between Loudness-only vs. Loudness+DRC.Fraunhofer IIS FDK2021-02-142-4/+58
| | | | | | | | | | | | | | | | Fix config changes from Loudness+DRC to Loudness-only configurations by clearing the DRC configuration Bug: 176246647 Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc Change-Id: I7afef848308478c29a82b13f24ba8c2a9760fd45
* | Overcome SBR encoder coupling quality issue in ELD. am: edab3e30d6Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893668 Change-Id: Ifb69e3d270de293c728bdc01b1e813bcc0209e3f
| * Overcome SBR encoder coupling quality issue in ELD.Fraunhofer IIS FDK2021-02-142-10/+17
| | | | | | | | | | | | | | Bug 177604812 Test: see SBR/PS encoder Change-Id: Ie7b9f8d1dec3708557d1e1189d45bc0e3bf5444c
* | Fix input buffer flushing for PS encoder. am: 4fbc97cc47Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893667 Change-Id: Ib70ddabdd291ac167f1150c1d9b3038499268b01
| * Fix input buffer flushing for PS encoder.Fraunhofer IIS FDK2021-02-141-5/+6
| | | | | | | | | | | | | | Bug 177604812 Test: see PS/SBR encoder Change-Id: I3152bd7db5e039ecc54885e5b58c1cf6cb598b28
* | Fix wrong input buffer feed for PS encoder at less input samples than ↵Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | | | | | framesize. am: bd021e7fb4 Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893666 Change-Id: Ibd0e9ca582177906d113b536a5c9851aa9c0c8c4
| * Fix wrong input buffer feed for PS encoder at less input samples than framesize.Fraunhofer IIS FDK2021-02-141-2/+2
| | | | | | | | | | | | | | Bug 177604812 Test: see PS/SBR encoder Change-Id: I08a20209bcb83784fda5c14584b6e99c65672545
* | Read uniDrcGainExtension element only if all DRC gain sequences are parsed ↵Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | | | | | correctly. am: 0c2c08aef6 Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893665 Change-Id: I998dd24e53e8a17f41301b44576fa91d5d9f5a40
| * Read uniDrcGainExtension element only if all DRC gain sequences are parsed ↵Fraunhofer IIS FDK2021-02-141-5/+8
| | | | | | | | | | | | | | | | | | | | 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
* | Consider TNS headroom for complex prediction. am: 5e031b67baFraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893584 Change-Id: I8882d378afec8b7d2e683346c271c062aac21791
| * Consider TNS headroom for complex prediction.Fraunhofer IIS FDK2021-02-141-2/+4
| | | | | | | | | | | | Bug: 176246647 Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc Change-Id: I8261106b98d7e7c5a8a2af38585c726285ea8623
* | Fix USAC time domain limiter latency at config change. am: 09e7c40a3aFraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893583 Change-Id: I3d4c661ab94d6b1783e33b01d1c3573578b91b15
| * Fix USAC time domain limiter latency at config change.Fraunhofer IIS FDK2021-02-145-141/+156
| | | | | | | | | | | | | | | | | | | | 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
* | Introduce additional sanity checks to validate program config element. am: ↵Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | | | | | 82f6f3dac6 Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893582 Change-Id: If93b7326cc0418a1e649989b91298c65b53c2c48
| * Introduce additional sanity checks to validate program config element.Fraunhofer IIS FDK2021-02-141-11/+156
| | | | | | | | | | | | Bug: 176246647 Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc Change-Id: I3e04480ab5a74da1a9d09af5da95afb2000b3117
* | Validate DRC compression factor and DRC boost factor value range in ↵Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | | | | | aacDecoder_SetParam(). am: baa3203971 Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893581 Change-Id: I02c726264c22ec1f7e1169d457ac0848c77e89ca
| * Validate DRC compression factor and DRC boost factor value range in ↵Fraunhofer IIS FDK2021-02-141-0/+6
| | | | | | | | | | | | | | | | aacDecoder_SetParam(). Bug: 176246647 Test: atest DecoderTestXheAac DecoderTestAacDrc Change-Id: I1d8534145bcf400c5da58d64d3b7e73a87cb43be
* | Fix unsigned integer overflow in Hcr_State_BODY_SIGN_ESC__ESC_WORD(). am: ↵Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | | | | | a7c64ff42f Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893580 Change-Id: Iee18084b10e8063c77d7cd18180dd68b62cd5124
| * Fix unsigned integer overflow in Hcr_State_BODY_SIGN_ESC__ESC_WORD().Fraunhofer IIS FDK2021-02-141-1/+3
| | | | | | | | | | | | Bug: 176246647 Test: atest DecoderTestXheAac DecoderTestAacDrc Change-Id: I5eb0f88a55e856c427f9e4647332070f66e673c5
* | Make sure that alphaValue is correctly initialized in ↵Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | | | | | sbrDecoder_drcApplySlot(). am: 150febcc65 Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893579 Change-Id: Ibc4b1a850bd68399610ccf4984b7423f119258f8
| * Make sure that alphaValue is correctly initialized in sbrDecoder_drcApplySlot().Fraunhofer IIS FDK2021-02-141-19/+34
| | | | | | | | | | | | Bug: 176246647 Test: atest DecoderTestXheAac DecoderTestAacDrc Change-Id: I5bded2e3d29278bb5df561eaa2a46d963ee21df8
* | Introduce aacDecoder_drcDisable() and always disable legacy DRC for USAC. ↵Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | | | | | am: 3ebe6ffe95 Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893578 Change-Id: Ibe9ac12e3339569f502ba29cff3ae2828543405b
| * Introduce aacDecoder_drcDisable() and always disable legacy DRC for USAC.Fraunhofer IIS FDK2021-02-143-8/+24
| | | | | | | | | | | | Bug: 176246647 Test: atest DecoderTestXheAac DecoderTestAacDrc Change-Id: I75edf24b18e1f5392b6eb179d5574cb93fcbc7c2
* | Evaluate and return StoreConfigAsBitstream() error state. am: 702d914e1aFraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893577 Change-Id: I4c50ac58579ba0ab0efa1efec8cd84579003cb45
| * Evaluate and return StoreConfigAsBitstream() error state.Fraunhofer IIS FDK2021-02-141-6/+10
| | | | | | | | | | | | Bug: 176246647 Test: atest DecoderTestXheAac DecoderTestAacDrc Change-Id: I025e943e91f9be1a5259a761a8ff88defd8babea
* | Check transportDec_OutOfBandConfig() input buffer size parameter. am: ef5f44c760Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893576 Change-Id: I3774fc7e9af8e3ae2df9533625a82ae5072f3494
| * Check transportDec_OutOfBandConfig() input buffer size parameter.Fraunhofer IIS FDK2021-02-141-2/+4
| | | | | | | | | | | | Bug: 176246647 Test: atest DecoderTestXheAac DecoderTestAacDrc Change-Id: I60ac86f09a5652c820d60dfdc12212637f888164
* | ELD downscale factor 3 is only allowed for framesize 480. am: 18758b9fe1Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893575 Change-Id: I7ad315dd40ec894650808503136b1e223df38fc6
| * ELD downscale factor 3 is only allowed for framesize 480.Fraunhofer IIS FDK2021-02-141-2/+10
| | | | | | | | | | | | Bug: 176246647 Test: atest DecoderTestXheAac DecoderTestAacDrc Change-Id: I9681942ba39761e4f1d66236ad80c2420ca5abe9
* | Improve decoder robustness by storing flags and elFlags temporarily. am: ↵Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | | | | | b93f896f37 Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893574 Change-Id: Id0cce2d6202fa4aca32bfab283317793a84195e4
| * Improve decoder robustness by storing flags and elFlags temporarily.Fraunhofer IIS FDK2021-02-141-53/+82
| | | | | | | | | | | | Bug: 176246647 Test: atest DecoderTestXheAac DecoderTestAacDrc Change-Id: I6aaeef87e1f2ce5d5031f088b8c57e6f5806929d
* | Revise bypass mode in SpatialDecApplyParameterSets() to prevent an assert in ↵Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | | | | | fDivNorm(). am: a1a8f69b14 Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893573 Change-Id: I9bba810c814f2d68710a1d94df680e714241dbc4
| * Revise bypass mode in SpatialDecApplyParameterSets() to prevent an assert in ↵Fraunhofer IIS FDK2021-02-141-17/+44
| | | | | | | | | | | | | | | | fDivNorm(). Bug: 176246647 Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc Change-Id: I198747688f1677b82f27a17a2fcf40229c92b1da
* | Check number of core channels and SAC decoder input channels to avoid a ↵Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | | | | | channel mismatch. am: 87e01ef1e7 Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893572 Change-Id: I307d428eb2801a8a10b8aa4519979db550f1d688
| * Check number of core channels and SAC decoder input channels to avoid a ↵Fraunhofer IIS FDK2021-02-149-32/+51
| | | | | | | | | | | | | | | | channel mismatch. Bug: 176246647 Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc Change-Id: Ib8b6973e9c29e13b8ef33d7736be2b977928face
* | Prevent integer overflow in subbandTPApply() energy update. am: e916be37f2Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893571 Change-Id: I738274cd97a1c24d635d5c7f6a8efee8efc62e5c
| * Prevent integer overflow in subbandTPApply() energy update.Fraunhofer IIS FDK2021-02-141-4/+4
| | | | | | | | | | | | Bug: 176246647 Test: atest DecoderTestXheAac DecoderTestAacDrc Change-Id: I9ed8b33414907706808956cffad252052928c799
* | Limit smoothedNoise values to avoid integer overflows in adjustTimeSlotHQ() ↵Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | | | | | and adjustTimeSlotHQ_GainAndNoise(). am: ba54a5c040 Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893570 Change-Id: I84f177df0aaa55929682b56a7bf2902c4f5fb9e7
| * Limit smoothedNoise values to avoid integer overflows in adjustTimeSlotHQ() ↵Fraunhofer IIS FDK2021-02-141-1/+18
| | | | | | | | | | | | | | | | and adjustTimeSlotHQ_GainAndNoise(). Bug: 176246647 Test: atest DecoderTestXheAac DecoderTestAacDrc Change-Id: Ib630d56a626ddd59a9155df38cda2011c3165346
* | Avoid integer overflow in dct_II(). am: 19c8cc495eFraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893569 Change-Id: I806a23071a940dbdb74d0e921c2b7312ae7c856b
| * Avoid integer overflow in dct_II().Fraunhofer IIS FDK2021-02-141-15/+13
| | | | | | | | | | | | Bug: 176246647 Test: atest DecoderTestXheAac DecoderTestAacDrc Change-Id: I6c30c4dec3f85410c2748eb42d38f5eb72521ec5
* | Prevent integer overflows in dualChannelFiltering() and ↵Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | | | | | eightChannelFiltering(). am: 614b9f005a Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893568 Change-Id: Ibcb7694e41a6836f5c46901cce534ea3d8813ab2
| * Prevent integer overflows in dualChannelFiltering() and eightChannelFiltering().Fraunhofer IIS FDK2021-02-141-13/+13
| | | | | | | | | | | | Bug: 176246647 Test: atest DecoderTestXheAac DecoderTestAacDrc Change-Id: Ic9217bbb3980807036ae6ae121e6ddb7cc1bce35
* | Adjust VBR mode depending on given peak bitrate and fix crash recovery ↵Fraunhofer IIS FDK2021-03-190-0/+0
|\| | | | | | | | | | | | | | | usage. am: f89d1d0a4e Original change: https://googleplex-android-review.googlesource.com/c/platform/external/aac/+/13893567 Change-Id: I45a95e5562b8e7b8fef1e27d5e1aa28df1f1325f
| * Adjust VBR mode depending on given peak bitrate and fix crash recovery usage.Fraunhofer IIS FDK2021-02-144-36/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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