Commit Graph

146 Commits

Author SHA1 Message Date
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 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 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 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 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 261fadc3a2 Remove outdated apply_normalization parameter from legacy DRC module.
Bug: 149514474
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I9b894007fc9d80da6aaee09d84c2b356f2c06ff7
2020-02-14 10:56:10 -08:00
Fraunhofer IIS FDK e016635f0d Avoid decoder internal clipping by converting the whole audio sample data path from 16 to 32 bit data width (FDKdec v3.2.0).
Bug: 149514474
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I8a504ab709e42e27a61fe29840212953742283a5
2020-02-14 10:53:51 -08:00
Fraunhofer IIS FDK 57c9355de0 Create new applyDrcLevelNormalization() function for subsequent usage.
Bug: 149514474
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I23cc3081ff71830bc96766a31131594499dbdd04
2020-02-14 10:47:19 -08:00
Fraunhofer IIS FDK 90c29e0808 Revise memory overlay usage and remove deprecated buffers and overlay tags.
Bug: 149514474
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I7aea2898a3c49e06209fae89d734939c100e1184
2020-02-14 10:44:10 -08:00
Fraunhofer IIS FDK 1d451971ca Revise and straighten out useless references from decoder documentation.
Bug: 149481606
Test: doc update in header, so just make
Change-Id: I656e76762ee336931d4f1938e5c39c8ad7f65954
2020-02-13 08:59:36 -08:00
Fraunhofer IIS FDK 31f66f6d3f Extend decoder API with audio output loudness info (FDKdec v3.1.3).
Bug: 148385721
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I68b09883def21baef259c9ab914922567ab8cee3
2020-02-11 16:02:32 -08:00
Fraunhofer IIS FDK 00285819a2 Fix AACDEC_INTR handling for USAC configuration with multiple pre-roll AUs
Bug: 148384920
Test: atest DecoderTestXheAac DecoderTestAacDrc
Change-Id: I88cd6da0b18c73f7b521ea58ba8b8f364278b64f
2020-01-27 09:21:21 -08:00
Fraunhofer IIS FDK 7388c0732d Reject HE-AAC SBR with a ratio greater than 2:1 and reject USAC streams containing legacy DRC info.
Bug: 146937553
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I1a23d986160c1de07a7159ac026f57d821d3ff1d
2020-01-22 14:13:51 -08:00
Fraunhofer IIS FDK cee316ab3e Fix too large shift exponent in CConcealment_InterpolateBuffer().
Bug: 146938361
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: Idb0a4e2c87962e453a991f0a573155ace6e9bf40
2020-01-16 12:15:04 -08:00
Fraunhofer IIS FDK 9ab63ce151 Prevent negation of INT_MIN in CConcealment_ApplyRandomSign().
Bug: 146937601
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I9747110eca96b37604df996ef5e86ea58e2d8932
2020-01-14 14:53:43 -08:00
Fraunhofer IIS FDK 2334454bc8 Add sanity check for huffman escape sequences in HCR tool.
Bug: 145669389
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: Iaa624f3040269b5c84883bc3ee38cad7cd88e54d
2019-12-27 10:22:23 -08:00
Fraunhofer IIS FDK 089d368ddb Prevent signed integer overflows in ELD filterbank, multE2_DinvF_fdk().
Bug: 145669388
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: Iaba69b58666833c90e05b296c502ba6509a087a9
2019-12-27 09:01:22 -08:00
Fraunhofer IIS FDK 07b5fd9941 Use one additional bit headroom to prevent signed integer overflow in BuildAdaptiveExcitation().
Bug: 145666984
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I5c881238562c3d9f7cd8d77a8c52f7231126587f
2019-12-27 08:51:59 -08:00
Jean-Michel Trivi fc8faa38d9 FDK: USAC CLpd_Reset uses rate constants
Use constants defined in libAACdec/src/usacdec_const.h

Test: atest DecoderTestXheAac
Change-Id: Idf1aa9fefb92b1abf64f50b044b2490b0d31b426
2019-10-21 15:20:42 -07:00
Fraunhofer IIS FDK ade11a1d6f Prevent signed integer overflows in CLpd_FAC_Mdct2Acelp().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I348fe4be577ac39f961352902d138a8e07982096
2019-10-18 10:58:26 -07:00
Fraunhofer IIS FDK 920ecc7487 Prevent signed integer overflows in CLpd_FAC_Acelp2Mdct().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I216f97b0c75a9076f3963036b098af37b390c5bb
2019-10-18 10:58:01 -07:00
Fraunhofer IIS FDK 3634955ca5 Fix integer overflow in complex multiplication called from CLpd_FAC_Acelp2Mdct().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I7cd234698821cf13b163d323cfd90fdccaaec3c1
2019-10-18 10:57:37 -07:00
Fraunhofer IIS FDK f22eb9c1fa Avoid signed integer overflow in bass_pf_1sf_delay().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I67bfab71987b31601a4666c8cf292f71bcb6799a
2019-10-18 10:57:23 -07:00
Fraunhofer IIS FDK ea9d3a049b Prevent signed integer overflow in filtLP().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I8da32f4794274e2955936ccd42c009485fbe1972
2019-10-18 10:57:05 -07:00
Fraunhofer IIS FDK 2152ae1a5e Suppress integer overflow in lsf_weight_2st() by using 64 bit multiplication with explicit 32 bit integer result.
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I82ce4858688e90abee0c44c4ada34a9a7b08342f
2019-10-15 15:50:10 -07:00
Fraunhofer IIS FDK 3c377e3305 Prevent signed integer overflow in RE8_PPV().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: Ic66ac4742d8e466431c5cf09d02b0d9c7f842df2
2019-10-15 15:49:37 -07:00
Fraunhofer IIS FDK 4db9f39f6d Avoid signed integer overflow in E_LPC_f_lsp_a_conversion().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: If2110ad246bb5b57ef76c9cd251874ecd4b05109
2019-10-15 15:49:23 -07:00
Fraunhofer IIS FDK 2d292e9b2d Use SATURATE_LEFT_SHIFT in get_lsppol() to prevent integer overflow.
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: Ie9ec52485a52b076a900b111b035289110c004f8
2019-10-15 15:49:00 -07:00
Fraunhofer IIS FDK 4c839c6a90 Fix integer overflow in E_UTIL_preemph().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: Iaaa0630e59d8e83e58b25168a3db04304485429b
2019-10-15 15:48:46 -07:00
Fraunhofer IIS FDK 1b4a3bedbb Overcome potential integer overflows in M/S module for complex prediction.
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: Ic0648203b6a61ebff8bcc93c4b1099e033bc6860
2019-10-15 15:48:32 -07:00
Fraunhofer IIS FDK 40d2a1d8b0 Avoid integer overflows with pseudoLR in CAacDecoder_DecodeFrame().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I5c83d72b5c0f4cd1569b648f102c8c549a7a6ac2
2019-10-15 15:47:53 -07:00
Fraunhofer IIS FDK da5b0dcb3c Restrict size of huffman escape sequence to prevent shift with too large exponent in DecodeEscapeSequence().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: Ibcd182e313e9ef480e92619023bf424762b92e23
2019-10-14 15:19:19 -07:00
Fraunhofer IIS FDK 15965e3feb Limit too large shift exponent in CJointStereo_ApplyMS()
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: Ia6ab654654e899368ba207a66eddf22b6b855635
2019-10-14 15:14:28 -07:00
Fraunhofer IIS FDK f26eb8af7c Fix CpePersistentData memory leak.
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: Iee5c93d61088bbda2328099ad20413adae3fa09b
2019-10-10 12:45:54 -07:00
Fraunhofer IIS FDK 128abf6b1a Validate aacSampleRate after applying ELD downscale factor. Avoid division by zero.
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I3f7ece9451121d40fab2c97571c695c1ac62bd00
2019-10-10 12:42:13 -07:00
Fraunhofer IIS FDK e970ac4c95 Fix HE-AAC using MPEG-D DRC with implicit SBR signaling.
Bug: 132641988
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I97c5d3972528092f627153ad3127c7db977a0e5d
2019-05-13 15:24:51 -07:00
Fraunhofer IIS FDK 14f7e13693 MPEG-4/D DRC unification, loudness norm default at -24
Unify API parameter of MPEG-4/D DRC and introduce rounding to boost/compress setParam function (FDKdec v3.1.1).

Enable Loudness Normalization with target loudness -24 by default (FDKdec v3.1.2).

Bug: 131255165
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I249a36b4861d0c8d4a0ed2df4dc1f444576bac6b
2019-04-25 09:35:00 -07:00
Fraunhofer IIS FDK 37972d5a1f Add support for Album Mode (FDKdec v3.1.0).
Bug: 131255165
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I6b4b176ec497587238537bddd89889341733d4e2
2019-04-24 22:56:19 +00:00
Fraunhofer IIS FDK 856e3d339e Trigger config change after a change in SBR activity has been recognized.
Change-Id: I7715e61fdfcd16dfae6029171888aef9c6f0738e
2019-03-15 10:32:59 -07:00
Jean-Michel Trivi 169e4207a3 Merge "Add QMF analysis band sanity check" am: b30e02cfd3 am: db4a1deb28
am: 6ff2d3cf8e

Change-Id: I12bc58a0ed01daba0295a4a8feab853b6cc3f0f0
2019-02-01 07:54:00 -08:00
Jean-Michel Trivi 6ff2d3cf8e Merge "Add QMF analysis band sanity check" am: b30e02cfd3
am: db4a1deb28

Change-Id: I0b4b5de02becd0a105e9958231ef2e58000d2cc8
2019-02-01 07:49:57 -08:00
Jean-Michel Trivi b30e02cfd3 Merge "Add QMF analysis band sanity check" 2019-02-01 15:34:03 +00:00
Jean-Michel Trivi 2a2c62fbed Merge "Do not support channel configuration change within PCE" am: ed56e77acb am: a82589476a
am: 7ca245e21e

Change-Id: Ic339d07a62ddbecdc6c2efcd5834e5758c90f70f
2019-01-15 11:29:03 -08:00
Jean-Michel Trivi 7ca245e21e Merge "Do not support channel configuration change within PCE" am: ed56e77acb
am: a82589476a

Change-Id: Ie9de704ba4aee6954e9ca82df8c56bc81a482c32
2019-01-15 11:19:49 -08:00
Jean-Michel Trivi ed56e77acb Merge "Do not support channel configuration change within PCE" 2019-01-15 18:46:27 +00:00
Fraunhofer IIS FDK c47066df27 Add QMF analysis band sanity check
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc

Change-Id: I0001e0996a970e91a21bfe8ba051fdba0c06c219
2019-01-15 12:19:05 -05:00