Commit Graph

55 Commits

Author SHA1 Message Date
Fraunhofer IIS FDK 5d09563196 Avoid too large shift exponent in apply_inter_tes() by using fIsLessThan.
Bug: 146936613
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I8414072929ec8f786e0c003f18ab453dbacb9e5e
2020-01-16 12:15:04 -08:00
Fraunhofer IIS FDK 801b45ffab Adjust scaling in lppTransposerHBE() to prevent signed integer overflow in autocorrelation.
Bug: 145669291
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: Ia32b081b982d6886f51642a7ed1ca73acb40dac9
2019-12-27 10:20:36 -08:00
Fraunhofer IIS FDK 68cdcfc6b8 Avoid signed integer overflows in multiple adjustTimeSlot*() functions.
Bug: 145669628
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: Id0f3ee9d3413e534505c0c7eea379ce42880ca79
2019-12-27 08:59:49 -08:00
Fraunhofer IIS FDK 2ce3e76d0f Improve robustness of limiter band table calculation in ResetLimiterBands().
Bug: 145668973
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: Ic076cf5b44c0618734064b670de61f9da532a13e
2019-12-27 08:58:46 -08:00
Fraunhofer IIS FDK 5838a313ae Fix signed integer overflow in pvcDecodeTimeSlot().
Bug: 145668022
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I0a165330cf174f24310f8d705523d310a3522e7a
2019-12-27 08:54:50 -08:00
Fraunhofer IIS FDK b2f2a109d3 Limit too large shift value in apply_inter_tes().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I38cc7053e671f6e20a1a9ba4f1645d1cf8be77e2
2019-10-18 10:58:52 -07:00
Fraunhofer IIS FDK 54cd15bd80 Fix nrgGain_e update in equalizeFiltBufferExp(). Prevents negative shift exponents in calculateSbrEnvelope().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I66ad54dae0fa1d414d8b2b9a9e0b6145cce4042d
2019-10-18 10:58:40 -07:00
Fraunhofer IIS FDK 9ba6f8b6a2 Fix signed integer overflow in calcFactorPerBand() calculation.
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I9f18f675112651be8dec5c0474601ca6531fbf15
2019-10-18 10:56:10 -07:00
Fraunhofer IIS FDK a7029823f4 Prevent integer overflow in sbrDecoder_calculateGainVec().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I359f7f976a5ad5459be7d7b786145988a175e305
2019-10-18 10:54:57 -07:00
Fraunhofer IIS FDK 6f98eab350 Saturate shift value in calculateSbrEnvelope(). Prevents too large shift values.
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I3331ac9bc267cd3fa4c1178bc445998869f0d99b
2019-10-14 15:08:34 -07:00
Fraunhofer IIS FDK a65911cd2e Limit shift exponent in adjustTimeSlot_EldGrid().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I4000972d63d74e871d47f2db031308cd7ea285d6
2019-10-14 15:06:23 -07:00
Fraunhofer IIS FDK bedfd82356 Fix shift value assignment in addHighBandPart().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I69457c1b551e33e3ee9ef39b457b0f83de2e370e
2019-10-14 15:01:17 -07:00
Fraunhofer IIS FDK b1b306443a Replace obsolete SBR CRC with superior FDK CRC implementation. Fixes ELD SBR CRC decoding and prevents negative shift exponents in calcCRC().
Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I0c40609975de5854560643f3ce2c9fecf5973f73
2019-10-11 10:14:53 -07:00
Fraunhofer IIS FDK 818743f718 Improve random phase table accuracy.
Bug: 132641988
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc

Change-Id: Ifca82aec87c0d21871d1f181b1be635c419433ee
2019-05-14 14:13:38 -07:00
Fraunhofer IIS FDK 2ef020c93a Increase scale factor gain in TES tool.
Bug: 132641988
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I498be80902da32944ab456436689ca4aba42d3f6
2019-05-14 14:10:18 -07:00
Fraunhofer IIS FDK 69a5c189ad Improve accuracy of division in calcSubbandGain().
Bug: 132641988
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc

Change-Id: I3beeda23355ae1200d9f55c9e8cd1cc6bc899153
2019-05-14 09:53:45 -07:00
Fraunhofer IIS FDK e51063ca54 Avoid -1.0 autocorrelation input data.
Bug: 132641988
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc

Change-Id: I2d4ccf9ee666a5533417ea98302de4a01b74c5ce
2019-05-14 09:47:32 -07:00
Fraunhofer IIS FDK 273a43f61f Discard SBR data in case of unsuccessful SBR header update.
Change-Id: I31ab01476d5a9de273c7adce14a1c29fa0023682
2019-03-15 18:10:11 +00:00
Jean-Michel Trivi 8972e93edd libSBRdec: prevent OOB access
In generateFixFixOnly() check validity of  index before accessing
  SBR decoder envolope tables.

Bug: 112052062
Test: see bug
Change-Id: Icd7ec3807eea9ef8417dba7383f361101becc4f2
2019-03-07 14:16:05 -08:00
Fraunhofer IIS FDK 55d2c9582a Extend PS concealment/error treatment
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc

Change-Id: I19b87d33b1d0ed8b43b4ea57992f1c6df500d9f4
2018-12-27 17:31:46 -05:00
Fraunhofer IIS FDK 82383e3212 Fix potential invalid memory access for concealment in decodeEnvelope()
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc

Change-Id: I916a24c000ef792aa3d5befa02a6b6f673161844
2018-12-27 17:28:39 -05:00
Fraunhofer IIS FDK 5cb1030d72 Reset all noisefloor levels in leanSbrConcealment()
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc

Change-Id: I6d25e8c8844bdf8e15d1aab695cb5d19d6b232e2
2018-12-27 17:25:13 -05:00
Fraunhofer IIS FDK 0cebd077b6 Apply sbrDecoder_Parse() function for all explict SBR elements
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc

Change-Id: I97471c4db309307a21100f1d5d88d3c4e24d2670
2018-12-27 14:51:52 -05:00
Fraunhofer IIS FDK 0271d6a6f3 Call QMF transposer initialization only with successful SBR processing
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc

Change-Id: I8a8626a83e1bd87b2c14fad7c90174e4172c01b6
2018-12-27 14:48:15 -05:00
Fraunhofer IIS FDK 804f41ac64 Add error path to generateFixFixOnly()
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I1f1767403068a9eafd7b20edb96669b71b0110fc
2018-12-27 14:45:29 -05:00
Jean-Michel Trivi f828d3e16a Merge "Limit too large shift exponent in apply_inter_tes()" 2018-12-27 19:14:22 +00:00
Fraunhofer IIS FDK 29b81acd78 Limit too large shift exponent in apply_inter_tes()
Bug: 112892200
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I74e349ecb796343b475b825ac7d97497560a1e7a
2018-12-27 12:45:31 -05:00
Fraunhofer IIS FDK e93cd75ea4 Limit too large scale_change exponent used in adjustTimeSlot
Bug: 112892953
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I4fe66defb40a36612850582cb0f1da7fb07a8bed
2018-12-27 12:29:27 -05:00
Fraunhofer IIS FDK 5e57019525 Prevent out of bounds accesses in lppTransposer() and lppTransposerHBE()
Bug: 112160868
Test: see poc in bug
Change-Id: I6a2161865d9cb9b51dc37c09d6e3a4a8e5d11f86
(cherry picked from commit 4dad829df0)
2018-10-20 00:17:02 +00:00
Fraunhofer IIS FDK a4d1f0ad52 FDKv2 ubsan patches
Bug: 80053205
Test: see bug for repro with FB "wow"
   atest DecoderTestAacDrc

Fix signed integer overflows in CLpc_SynthesisLattice()

Change-Id: Icbddfcc8c5fc73382ae5bf8c2a7703802c688e06

Fix signed integer overflows in imlt

Change-Id: I687834fca2f1aab6210ed9862576b4f38fcdeb24

Fix overflow in addLowbandEnergies()

Change-Id: Iaa9fdf9deb49c33ec6ca7ed3081c4ddaa920e9aa

Concealment fix for audio frames containing acelp components

Change-Id: Ibe5e83a6efa75a48f729984a161a76b826878f4e

Fix out-of-bounds access in PS concealment

Change-Id: I08809a03a40d1feaf00e41278db314d67e1efe88

Fix potential memory leak in setup of qmf domain

Change-Id: Id9fc2448354dc7f1b439469128407305efa3def2

Reject channel config 13

Change-Id: Idf5236f6cd054df994e69c9c972c97f6768cf9e5

Fix unsigned integer overflow in configExtension()

Change-Id: I8a1668810b85e6237c3892891444ff08f04b019b

Fix unsigned integer overflow in CAacDecoder_DecodeFrame()

Change-Id: I79678c571690178e6c37680f70a9b94dd3cbc439

Fix unsigned integer overflow in aacDecoder_UpdateBitStreamCounters()

Change-Id: I3bff959da9f53fabb18cd0ae6c260e6256194526

Fix unsigned integer overflow in transportDec_readStream()

Change-Id: I6a6f9f4acaa32fae0b5de9641f8787bbc7f8286b
2018-05-23 12:19:40 -07:00
Fraunhofer IIS FDK 44ac411683 FDK patches: fix overflows in decoder out-of-band config
Bug: 71430241
Bug: 79220129
Test: cts-tradefed run commandAndExit cts-dev -m CtsMediaTestCases -t android.media.cts.DecoderTestXheAac
      cts-tradefed run commandAndExit cts-dev -m CtsMediaTestCases -t android.media.cts.DecoderTestAacDrc

Unsigned Integer Overflows in CDataStreamElement_Read()

Change-Id: Ic2f5b3ae111bf984d4d0db664823798957b0a979

Unsigned Integer Overflow in CProgramConfig_ReadHeightExt()

Change-Id: Iaebc458bb59504203e604a28ed6d5cecaa875c42

Unsigned Integer Overflow in transportDec_OutOfBandConfig()

Change-Id: I24a4b32d736f28c55147f0e2ca06fe5537da19c2

Unsigned Integer Overflows in CDKcrcEndReg() & crcCalc()

Change-Id: I6ebbe541a4d3b6bacbd5ace17264972951de7ca8

Unsigned Integer Overflows in ReadPsData()

Change-Id: Id36576fe545236860a06f17971494ecd4484c494

Unsigned Integer Overflow in SpatialDecParseSpecificConfig()

Change-Id: Ib468f129a951c69776b88468407f008ab4cfd2c7

Unsigned Integer Overflows in _readUniDrcConfigExtension() & _readLoudnessInfoSetExtension()

Change-Id: Ibcf7c6a23af49239206ea9301c58adac36e3ceba
2018-05-09 15:15:28 -07:00
Fraunhofer IIS FDK 6cfabd3536 Upgrade to FDKv2
Bug: 71430241
Test: CTS DecoderTest and DecoderTestAacDrc

original-Change-Id: Iaa20f749b8a04d553b20247cfe1a8930ebbabe30

Apply clang-format also on header files.

original-Change-Id: I14de1ef16bbc79ec0283e745f98356a10efeb2e4

Fixes for MPEG-D DRC

original-Change-Id: If1de2d74bbbac84b3f67de3b88b83f6a23b8a15c

Catch unsupported tw_mdct at an early stage

original-Change-Id: Ied9dd00d754162a0e3ca1ae3e6b854315d818afe

Fixing PVC transition frames

original-Change-Id: Ib75725abe39252806c32d71176308f2c03547a4e

Move qmf bands sanity check

original-Change-Id: Iab540c3013c174d9490d2ae100a4576f51d8dbc4

Initialize scaling variable

original-Change-Id: I3c4087101b70e998c71c1689b122b0d7762e0f9e

Add 16 qmf band configuration to getSlotNrgHQ()

original-Change-Id: I49a5d30f703a1b126ff163df9656db2540df21f1

Always apply byte alignment at the end of the AudioMuxElement

original-Change-Id: I42d560287506d65d4c3de8bfe3eb9a4ebeb4efc7

Setup SBR element only if no parse error exists

original-Change-Id: I1915b73704bc80ab882b9173d6bec59cbd073676

Additional array index check in HCR

original-Change-Id: I18cc6e501ea683b5009f1bbee26de8ddd04d8267

Fix fade-in index selection in concealment module

original-Change-Id: Ibf802ed6ed8c05e9257e1f3b6d0ac1162e9b81c1

Enable explicit backward compatible parser for AAC_LD

original-Change-Id: I27e9c678dcb5d40ed760a6d1e06609563d02482d

Skip spatial specific config in explicit backward compatible ASC

original-Change-Id: Iff7cc365561319e886090cedf30533f562ea4d6e

Update flags description in decoder API

original-Change-Id: I9a5b4f8da76bb652f5580cbd3ba9760425c43830

Add QMF domain reset function

original-Change-Id: I4f89a8a2c0277d18103380134e4ed86996e9d8d6

DRC upgrade v2.1.0

original-Change-Id: I5731c0540139dab220094cd978ef42099fc45b74

Fix integer overflow in sqrtFixp_lookup()

original-Change-Id: I429a6f0d19aa2cc957e0f181066f0ca73968c914

Fix integer overflow in invSqrtNorm2()

original-Change-Id: I84de5cbf9fb3adeb611db203fe492fabf4eb6155

Fix integer overflow in GenerateRandomVector()

original-Change-Id: I3118a641008bd9484d479e5b0b1ee2b5d7d44d74

Fix integer overflow in adjustTimeSlot_EldGrid()

original-Change-Id: I29d503c247c5c8282349b79df940416a512fb9d5

Fix integer overflow in FDKsbrEnc_codeEnvelope()

original-Change-Id: I6b34b61ebb9d525b0c651ed08de2befc1f801449

Follow-up on: Fix integer overflow in adjustTimeSlot_EldGrid()

original-Change-Id: I6f8f578cc7089e5eb7c7b93e580b72ca35ad689a

Fix integer overflow in get_pk_v2()

original-Change-Id: I63375bed40d45867f6eeaa72b20b1f33e815938c

Fix integer overflow in Syn_filt_zero()

original-Change-Id: Ie0c02fdfbe03988f9d3b20d10cd9fe4c002d1279

Fix integer overflow in CFac_CalcFacSignal()

original-Change-Id: Id2d767c40066c591b51768e978eb8af3b803f0c5

Fix integer overflow in FDKaacEnc_FDKaacEnc_calcPeNoAH()

original-Change-Id: Idcbd0f4a51ae2550ed106aa6f3d678d1f9724841

Fix integer overflow in sbrDecoder_calculateGainVec()

original-Change-Id: I7081bcbe29c5cede9821b38d93de07c7add2d507

Fix integer overflow in CLpc_SynthesisLattice()

original-Change-Id: I4a95ddc18de150102352d4a1845f06094764c881

Fix integer overflow in Pred_Lt4()

original-Change-Id: I4dbd012b2de7d07c3e70a47b92e3bfae8dbc750a

Fix integer overflow in FDKsbrEnc_InitSbrFastTransientDetector()

original-Change-Id: I788cbec1a4a00f44c2f3a72ad7a4afa219807d04

Fix unsigned integer overflow in FDKaacEnc_WriteBitstream()

original-Change-Id: I68fc75166e7d2cd5cd45b18dbe3d8c2a92f1822a

Fix unsigned integer overflow in FDK_MetadataEnc_Init()

original-Change-Id: Ie8d025f9bcdb2442c704bd196e61065c03c10af4

Fix overflow in pseudo random number generators

original-Change-Id: I3e2551ee01356297ca14e3788436ede80bd5513c

Fix unsigned integer overflow in sbrDecoder_Parse()

original-Change-Id: I3f231b2f437e9c37db4d5b964164686710eee971

Fix unsigned integer overflow in longsub()

original-Change-Id: I73c2bc50415cac26f1f5a29e125bbe75f9180a6e

Fix unsigned integer overflow in CAacDecoder_DecodeFrame()

original-Change-Id: Ifce2db4b1454b46fa5f887e9d383f1cc43b291e4

Fix overflow at CLpdChannelStream_Read()

original-Change-Id: Idb9d822ce3a4272e4794b643644f5434e2d4bf3f

Fix unsigned integer overflow in Hcr_State_BODY_SIGN_ESC__ESC_WORD()

original-Change-Id: I1ccf77c0015684b85534c5eb97162740a870b71c

Fix unsigned integer overflow in UsacConfig_Parse()

original-Change-Id: Ie6d27f84b6ae7eef092ecbff4447941c77864d9f

Fix unsigned integer overflow in aacDecoder_drcParse()

original-Change-Id: I713f28e883eea3d70b6fa56a7b8f8c22bcf66ca0

Fix unsigned integer overflow in aacDecoder_drcReadCompression()

original-Change-Id: Ia34dfeb88c4705c558bce34314f584965cafcf7a

Fix unsigned integer overflow in CDataStreamElement_Read()

original-Change-Id: Iae896cc1d11f0a893d21be6aa90bd3e60a2c25f0

Fix unsigned integer overflow in transportDec_AdjustEndOfAccessUnit()

original-Change-Id: I64cf29a153ee784bb4a16fdc088baabebc0007dc

Fix unsigned integer overflow in transportDec_GetAuBitsRemaining()

original-Change-Id: I975b3420faa9c16a041874ba0db82e92035962e4

Fix unsigned integer overflow in extractExtendedData()

original-Change-Id: I2a59eb09e2053cfb58dfb75fcecfad6b85a80a8f

Fix signed integer overflow in CAacDecoder_ExtPayloadParse()

original-Change-Id: I4ad5ca4e3b83b5d964f1c2f8c5e7b17c477c7929

Fix unsigned integer overflow in CAacDecoder_DecodeFrame()

original-Change-Id: I29a39df77d45c52a0c9c5c83c1ba81f8d0f25090

Follow-up on: Fix integer overflow in CLpc_SynthesisLattice()

original-Change-Id: I8fb194ffc073a3432a380845be71036a272d388f

Fix signed integer overflow in _interpolateDrcGain()

original-Change-Id: I879ec9ab14005069a7c47faf80e8bc6e03d22e60

Fix unsigned integer overflow in FDKreadBits()

original-Change-Id: I1f47a6a8037ff70375aa8844947d5681bb4287ad

Fix unsigned integer overflow in FDKbyteAlign()

original-Change-Id: Id5f3a11a0c9e50fc6f76ed6c572dbd4e9f2af766

Fix unsigned integer overflow in FDK_get32()

original-Change-Id: I9d33b8e97e3d38cbb80629cb859266ca0acdce96

Fix unsigned integer overflow in FDK_pushBack()

original-Change-Id: Ic87f899bc8c6acf7a377a8ca7f3ba74c3a1e1c19

Fix unsigned integer overflow in FDK_pushForward()

original-Change-Id: I3b754382f6776a34be1602e66694ede8e0b8effc

Fix unsigned integer overflow in ReadPsData()

original-Change-Id: I25361664ba8139e32bbbef2ca8c106a606ce9c37

Fix signed integer overflow in E_UTIL_residu()

original-Change-Id: I8c3abd1f437ee869caa8fb5903ce7d3d641b6aad

REVERT: Follow-up on: Integer overflow in CLpc_SynthesisLattice().

original-Change-Id: I3d340099acb0414795c8dfbe6362bc0a8f045f9b

Follow-up on: Fix integer overflow in CLpc_SynthesisLattice()

original-Change-Id: I4aedb8b3a187064e9f4d985175aa55bb99cc7590

Follow-up on: Fix unsigned integer overflow in aacDecoder_drcParse()

original-Change-Id: I2aa2e13916213bf52a67e8b0518e7bf7e57fb37d

Fix integer overflow in acelp

original-Change-Id: Ie6390c136d84055f8b728aefbe4ebef6e029dc77

Fix unsigned integer overflow in aacDecoder_UpdateBitStreamCounters()

original-Change-Id: I391ffd97ddb0b2c184cba76139bfb356a3b4d2e2

Adjust concealment default settings

original-Change-Id: I6a95db935a327c47df348030bcceafcb29f54b21

Saturate estimatedStartPos

original-Change-Id: I27be2085e0ae83ec9501409f65e003f6bcba1ab6

Negative shift exponent in _interpolateDrcGain()

original-Change-Id: I18edb26b26d002aafd5e633d4914960f7a359c29

Negative shift exponent in calculateICC()

original-Change-Id: I3dcd2ae98d2eb70ee0d59750863cbb2a6f4f8aba

Too large shift exponent in FDK_put()

original-Change-Id: Ib7d9aaa434d2d8de4a13b720ca0464b31ca9b671

Too large shift exponent in CalcInvLdData()

original-Change-Id: I43e6e78d4cd12daeb1dcd5d82d1798bdc2550262

Member access within null pointer of type SBR_CHANNEL

original-Change-Id: Idc5e4ea8997810376d2f36bbdf628923b135b097

Member access within null pointer of type CpePersistentData

original-Change-Id: Ib6c91cb0d37882768e5baf63324e429589de0d9d

Member access within null pointer FDKaacEnc_psyMain()

original-Change-Id: I7729b7f4479970531d9dc823abff63ca52e01997

Member access within null pointer FDKaacEnc_GetPnsParam()

original-Change-Id: I9aa3b9f3456ae2e0f7483dbd5b3dde95fc62da39

Member access within null pointer FDKsbrEnc_EnvEncodeFrame()

original-Change-Id: I67936f90ea714e90b3e81bc0dd1472cc713eb23a

Add HCR sanity check

original-Change-Id: I6c1d9732ebcf6af12f50b7641400752f74be39f7

Fix memory issue for HBE edge case with 8:3 SBR

original-Change-Id: I11ea58a61e69fbe8bf75034b640baee3011e63e9

Additional SBR parametrization sanity check for ELD

original-Change-Id: Ie26026fbfe174c2c7b3691f6218b5ce63e322140

Add MPEG-D DRC channel layout check

original-Change-Id: Iea70a74f171b227cce636a9eac4ba662777a2f72

Additional out-of-bounds checks in MPEG-D DRC

original-Change-Id: Ife4a8c3452c6fde8a0a09e941154a39a769777d4

Change-Id: Ic63cb2f628720f54fe9b572b0cb528e2599c624e
2018-04-19 11:21:15 -07:00
Jean-Michel Trivi 117691fe59 Fix out of bound memory access in lppTransposer am: 6d3dd40e20 am: 2a7b438754 am: fca1027937 am: d8e897ae9e am: 6e15baff97 am: 06c27a9feb am: e6b649a380 am: 902decfc99 am: 77aac03fb6
am: 5a2ae5cc27

Change-Id: Id4cceec7b64a1281bb922b76471f1bad7f283497
2017-11-03 19:36:01 +00:00
Jean-Michel Trivi 06c27a9feb Fix out of bound memory access in lppTransposer am: 6d3dd40e20 am: 2a7b438754 am: fca1027937 am: d8e897ae9e
am: 6e15baff97

Change-Id: Ic11d63d594dabfb8359d19eb36f9bdcc56abd2ac
2017-11-03 19:19:22 +00:00
Jean-Michel Trivi fca1027937 Fix out of bound memory access in lppTransposer am: 6d3dd40e20
am: 2a7b438754

Change-Id: If16bd906722b4a639be890fcc98bd21db253f404
2017-11-03 19:10:25 +00:00
Jean-Michel Trivi 6d3dd40e20 Fix out of bound memory access in lppTransposer
In TRANSPOSER_SETTINGS, initialize the whole bwBorders array to a
  reasonable value to guarantee correct termination in while loop
  in lppTransposer function. This fixes the reported bug.
For completeness:
  - clear the whole bwIndex array instead of noOfPatches entries only.
  - abort criterion in while loop to prevent potential
    infinite loop, and limit bwIndex[patch] to a valid range.

Test: see bug for malicious content, decoded with "stagefright -s -a"
Bug: 65280786

Change-Id: I16ed2e1c0f1601926239a652ca20a91284151843
2017-10-31 21:40:14 +00:00
Martin Storsjo 6ec082c6c3 Remove redundant register storage class specifiers
Clang warns about this being deprecated, when building without specifying
-std=c++98.

This doesn't give any measurable encoding speed impact on ARM or AArch64,
on neither GCC nor Clang.

Change-Id: I63a0bbd1dccb97547522da188ee585d4d8127c29
2016-10-18 09:22:55 +03:00
Martin Storsjo 6d7d5013ea Add casts to avoid errors due to narrowing
This fixes building in C++11 mode, which normally errors out
on narrowing hex literals to signed long.

This is similar to what was done in git commit ef30836651
(change id I64d19a8a8059c5a96386b1eaac297fd2469515f8), completing
the fix for that category of issues.

Change-Id: I1907bc947d43bf44910fb2b34bf2b31c0e53aa53
2016-10-17 10:32:24 +03:00
Glenn Kasten c3f7cf7f1b Merge "Add default case for undefined pointer initialization" am: 9d0179c
am: 27625f2

* commit '27625f27066421ce38250272f4bb751cf6f58c17':
  Add default case for undefined pointer initialization

Change-Id: I601dc2afdfa8db2008628e05068d277a617c022d
2016-04-20 23:40:45 +00:00
Glenn Kasten 1dd7649666 Add default case for undefined pointer initialization
Bug: 28026175
Change-Id: I1b149bf1573296df18abbe44f737bd87ab3913f9
2016-04-18 16:11:16 -07:00
Jean-Michel Trivi 203e3f28fb AAC/SBR decoder improvements and bugfixes
* AAC-Decoder

   - Add support for AOT 20 (ER-AAC scalable) (base layer only)
   - Add support for AAC as used in Digital Radio Mondiale (DRM30/DRM+)
     Modified file(s):
        libAACdec/src/aacdecoder.cpp
        libAACdec/src/aacdecoder_lib.cpp
        libFDK/src/FDK_core.cpp
        libFDK/src/FDK_tools_rom.cpp
        libMpegTPDec/src/tpdec_asc.cpp
        libMpegTPDec/src/tpdec_lib.cpp
        libMpegTPDec/src/version
        libSBRdec/include/sbrdecoder.h
        libSBRdec/src/env_extr.h
        libSBRdec/src/sbrdecoder.cpp
     Added file(s):
        libMpegTPDec/src/tpdec_drm.cpp
        libMpegTPDec/src/tpdec_drm.h

   - Fix sanity check in HCR module that was performed at the wrong point in time.
     Modified file(s):
        libAACdec/src/aacdecoder_lib.cpp
        libAACdec/src/block.cpp

   - Extend core sampling rate support up to 96 kHz.
     Modified file(s):
        libAACdec/src/aac_rom.cpp
        libAACdec/src/aacdecoder.cpp
        libAACdec/src/aacdecoder_lib.cpp

   - Return correct audio output channel description according number of output
     channels.
     Modified file(s):
        libAACdec/src/aacdecoder_lib.cpp

   - Indroduce decoder intern output buffer. This change allows to use framework
     output buffer with the actual size of the deocder output channels.
     Modified file(s):
        libAACdec/include/aacdecoder_lib.h
        libAACdec/src/aacdecoder.h
        libAACdec/src/aacdecoder_lib.cpp

* SBR-Decoder

   - Increase robustness for erroneous input data.
   - Improve error concealment performance.
   - Fix handling of lowest sub-band for LD-SBR
     Modified file(s):
        libAACdec/src/aacdecoder.cpp
        libAACdec/src/aacdecoder_lib.cpp
        libSBRdec/src/env_calc.cpp
        libSBRdec/src/env_dec.cpp
        libSBRdec/src/env_extr.cpp
        libSBRdec/src/env_extr.h
        libSBRdec/src/sbr_dec.cpp
        libSBRdec/src/sbr_rom.cpp
        libSBRdec/src/sbr_rom.h
        libSBRdec/src/sbrdecoder.cpp

   - Add QMF delay compensation for ELD v2 streams decoded with the complex
     low delay filter-bank.
     Modified file(s):
        libSBRdec/src/sbr_dec.cpp
        libSBRdec/src/sbr_dec.h
        libSBRdec/src/sbrdecoder.cpp

   - Introduce a different handling of frames to be flushed
     dependent on whether there are delayed frames available or not.
     Modified file(s):
        libSBRdec/src/sbr_ram.h
        libSBRdec/src/sbrdecoder.cpp

   - Calculate the correct number of samples for dual-mono copy in case of no
     available PS data.
     Modified file(s):
        libSBRdec/src/sbrdecoder.cpp

* SYS-Library

   - Change include order of genericStds.h to prevent conflict with definitions
     which are also used in math.h.
     Modified file(s):
        libSYS/src/genericStds.cpp

Change-Id: I3ecffbad85f39b056213107955cfadbeb3f4b6e1
2016-04-08 19:10:30 +00:00
Jean-Michel Trivi e1c78ed73f SBR/AAC encoder updates, code clean up
* SBR-Encoder

   - Prevent noise level overflow in noise floor detection.
   - Saturate threshold calculation in transient detection.
     Modified file(s):
        libSBRenc/src/nf_est.cpp
        libSBRenc/src/sbr_encoder.cpp
        libSBRenc/src/tran_det.cpp

* AAC-Encoder

   - Expand input data range of GetInvInt() function. There was an encoder
     assert observed in non-default bitrate configuration.
     Modified file(s):
        libAACenc/src/aacenc_lib.cpp
        libAACenc/src/intensity.cpp
        libFDK/include/fixpoint_math.h
        libFDK/src/FDK_core.cpp
        libFDK/src/FDK_tools_rom.cpp

   - Make sure that the encoder is stable with regard to very low audio bandwidth
     confguration parameter value.
   - Fix lowdelay blending for low audio bandwidth.
     Modified file(s):
        libAACenc/src/aacenc.cpp
        libAACenc/src/aacenc_lib.cpp
        libAACenc/src/adj_thr.cpp
        libAACenc/src/psy_configuration.cpp
        libAACenc/src/psy_main.cpp

   - Disable pseudo surround flag in case metadata matrix mixdown index is
     present in program config element.
     Modified file(s):
        libAACenc/src/aacenc_lib.cpp

   - Enable variable bitrate mode in encoder api.
   - Add AACENC_PEAK_BITRATE parameter to encoder api.
   - Add AACENC_AUDIOMUXVER parameter to encoder api.
     Modified file(s):
        libAACenc/include/aacenc_lib.h
        libAACenc/src/aacenc.cpp
        libAACenc/src/aacenc.h
        libAACenc/src/aacenc_lib.cpp
        libAACenc/src/qc_main.cpp
        libMpegTPEnc/src/tpenc_latm.cpp
        libMpegTPEnc/src/version

* FDK-Sources

   - Code clean up. Remove unneeded pseudo audio object types and transport types.
     Modified file(s):
        libAACdec/src/aacdecoder.cpp
        libAACdec/src/aacdecoder_lib.cpp
        libAACenc/include/aacenc_lib.h
        libAACenc/src/aacenc.cpp
        libAACenc/src/aacenc_lib.cpp
        libFDK/src/FDK_tools_rom.cpp
        libMpegTPDec/src/tpdec_lib.cpp
        libMpegTPDec/src/version
        libMpegTPEnc/src/tpenc_latm.cpp
        libMpegTPEnc/src/version
        libSBRdec/src/sbrdecoder.cpp
        libSBRenc/src/sbr_encoder.cpp
        libSYS/include/FDK_audio.h
        libSYS/src/genericStds.cpp

Change-Id: I807a53cb7f48c9ee7563cb8da1d0c52221576ca6
2016-04-04 17:25:36 -07:00
Dan Willemsen 2d435aa433 Remove __DATE__/__TIME__
Building __DATE__/__TIME__ into the binaries means that every build will
create different binaries, even if all the sources are identical. This
also means that any libraries including this one will need to be patched
during every OTA.

Nothing appears to use the build_date/build_time fields, so just replace
them with empty strings.

Bug: 24204119
Change-Id: I9543eb388a1e8ab9284df9035a62fc8942cdc082
(cherry picked from commit 6e8330732f)
2015-10-30 21:53:59 +00:00
Dan Willemsen 6e8330732f Remove __DATE__/__TIME__
Building __DATE__/__TIME__ into the binaries means that every build will
create different binaries, even if all the sources are identical. This
also means that any libraries including this one will need to be patched
during every OTA.

Nothing appears to use the build_date/build_time fields, so just replace
them with empty strings.

Bug: 24204119
Change-Id: I9543eb388a1e8ab9284df9035a62fc8942cdc082
2015-10-23 09:48:27 -07:00
Jean-Michel Trivi 6792cf6361 AAC-Decoder: SBR delay for gapless
Revise decoder output delay determination. The output delay consisted of
  concealment and limiter delay. SBR delay was not covered but must be
  considered for gapless playback delay compensation.

Bug 9428126

Change-Id: I67483712c284de9b5378694f9db7acbed2547dd7
2014-05-20 17:39:03 -07:00
Jean-Michel Trivi af967fcc55 AAC Decoder: flush/seek improvements
Improve flushing and seeking.
Add field to the API stream info structure signaling the additional output
 delay for flushing and delay compensation.

Bug 9428126

Change-Id: I808412905563ea3de50a2e77a9b5dfee829cd2ed
2014-05-20 17:24:06 -07:00
Jean-Michel Trivi 47c680c622 AAC Decoder: support 6.1/7.1 decoded as 5.1
- Add 6.1 and 7.1 channel support including downmixer. Per default the
     decoder creates a 5.1 channel output for all streams with more than six
     encoded channels.
     Modified file(s):
        libPCMutils/include/pcmutils_lib.h
        libPCMutils/src/pcmutils_lib.cpp
        libAACdec/include/aacdecoder_lib.h
        libAACdec/src/aac_rom.h
        libAACdec/src/aacdecoder.cpp
        libAACdec/src/aac_ram.cpp
        libAACdec/src/aacdec_drc.cpp
        libAACdec/src/aacdecoder_lib.cpp
        libAACdec/src/aac_rom.cpp
        libAACdec/src/aacdecoder.h
        libSBRdec/include/sbrdecoder.h
        libSBRdec/src/sbrdec_drc.h
        libSBRdec/src/sbrdecoder.cpp
        libSBRdec/src/sbr_ram.cpp
        libSBRdec/src/sbr_ram.h
        libMpegTPDec/include/tp_data.h
        libMpegTPDec/include/tpdec_lib.h
        libMpegTPDec/src/version
        libMpegTPDec/src/tpdec_asc.cpp
        libMpegTPEnc/include/tp_data.h
        libMpegTPEnc/src/version
        libSYS/include/FDK_audio.h
        libSYS/src/genericStds.cpp

   - Fix error concealment modules fade-out/in mechanism.
     Modified file(s):
        libAACdec/src/conceal.cpp

Bug 9428126

Change-Id: I3230bd2072314b730911cd7ec1740e290cb1d254
2013-12-30 09:40:08 -08:00
Jean-Michel Trivi 5016eb7f65 Decoder stability, sanity checks improvements
* AAC-Decoder

   - Improved PCE handling for saver (re-)configuration and metadata processing.
     Modified file(s):
        libAACdec/src/aacdecoder.cpp
        libAACdec/src/aacdecoder_lib.cpp

   - Transport layer changes (config found) -> to be evaluated.
     Modified file(s):
        libMpegTPDec/include/tpdec_lib.h
        libMpegTPDec/src/tpdec_latm.h
        libMpegTPDec/src/version
        libMpegTPDec/src/tpdec_asc.cpp
        libMpegTPDec/src/tpdec_lib.cpp
        libMpegTPDec/src/tpdec_adts.cpp
        libMpegTPDec/src/tpdec_latm.cpp
        libSYS/include/FDK_audio.h
        libSYS/src/genericStds.cpp

   - Enable concealment state machine to skip states if the corresponding
     parameter is set to zero.
     Modified file(s):
        libAACdec/src/conceal.cpp

   - Add some more sanity checks to avoid segmentation faults especially when
     setting dynamic API params.
     Modified file(s):
        libAACdec/src/aacdecoder_lib.cpp

   - Fix to do a fail-safe initialization of IMDCT for all channels even with
     corrupt streams.
     Modified file(s):
        libAACdec/src/aacdecoder.cpp

   - HCR decoder fix (remove warnings).
     Modified file(s):
        libAACdec/src/block.cpp

   - Fix border calculation in SBR decoder's LPP transposer patch determination.
     Modified file(s):
        libSBRdec/src/env_dec.cpp
        libSBRdec/src/sbrdecoder.cpp
        libSBRdec/src/lpp_tran.cpp

Bug 9428126

Change-Id: Ib415b702b88a7ec8e9a55789d79cafb39296d26b
2013-08-27 16:28:09 -07:00
Jean-Michel Trivi b9774f9065 Decode dynamic range control improvements
* AAC-Decoder

   - Only set the program reference level if it has changed compared to the
     previous value. This allows setting it on a frame-by-frame basis without
     limitations.
     Modified file(s):
        libAACdec/src/aacdec_drc.cpp
        libAACdec/src/aacdec_drc.h

   - Add expiry counter for the program reference level.
     Modified file(s):
        libAACdec/src/aacdec_drc.cpp
        libAACdec/src/aacdec_drc_types.h

   - Disable scaling of light compression gain values when heavy compression
     mode is enabled to have the full light compression as fallback if no heavy
     values are available.
     Modified file(s):
        libAACdec/src/aacdec_drc.cpp
        libAACdec/src/aacdecoder_lib.cpp
        libAACdec/src/aacdec_drc_types.h

   - Change initialization and channel disabling to improve start-up behavior in
     SBR decoder.
     Modified file(s):
        libSBRdec/src/sbrdecoder.cpp
        libSBRdec/src/sbrdec_drc.cpp

Bug 9428126

Change-Id: Ie1d3949c53910506da2547d32fe3bf6ee7606eb4
2013-08-27 16:20:46 -07:00
Jean-Michel Trivi 3a0a695565 FDK update for downsampled SBR
Add missing support for downsampled SBR in libFDK

Bug 9428126

Change-Id: Idb732f8d31a115d36dd4b22916599db7fab98cae
2013-08-27 15:57:28 -07:00