Commit Graph

224 Commits

Author SHA1 Message Date
Martin Storsjo f9d0f65e65 Merge remote-tracking branch 'aosp/master' 2016-08-25 22:12:15 +03:00
Martin Storsjo 15b128dd82 Explicitly force building in C++98 mode
GCC 6 defaults to C++14 (or more precisely, gnu++14) instead of C++98
(or gnu++98).

The fdk-aac source doesn't support being built in this mode at the
moment, since it relies on narrowing conversion from unsigned 32 bit
integers to FIXP_DBL (which is a signed data type of the same size).

The same approach is used upstream in Android as well, since
d52f374768.

This fixes buliding with GCC 6.
2016-05-18 10:13:31 +03:00
Martin Storsjo 8fe6faf261 Merge remote-tracking branch 'aosp/master' 2016-05-18 09:36:12 +03:00
Guillaume Smaha f132ac5f3d Invert inline and void to be compatible with gcc 3.3.4 2016-05-18 08:07:32 +02:00
Guillaume Smaha 112fe2c68d Fix issue with gcc 3.4.3 which doesn't support always_inline without inline 2016-05-17 15:39:10 +02:00
Glenn Kasten 00fc1c66d5 Merge "Disable warnings that are not easily fixable" am: 8192b1a
am: 2a923c9

* commit '2a923c92869efb277ca7d67ab6c27617ec26c128':
  Disable warnings that are not easily fixable

Change-Id: I920b16bdaa1ce7a00c91e129b950f0d486a1fa37
2016-04-20 23:40:45 +00: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 e34e2b9d54 Merge "Left shift of negative int is undefined" am: 6ae5480
am: 2b2e97b

* commit '2b2e97b893b16b69c7728d16e8653b9c94944294':
  Left shift of negative int is undefined

Change-Id: Ie90b850b7adf787dfb47f8b7c43a22744c3a7fa0
2016-04-20 23:40:45 +00:00
Glenn Kasten 28099687b7 resolve merge conflicts of ad1e898 to nyc-dev-plus-aosp
Change-Id: If143807a233d47fb7fd269fd263a8a898109b060
2016-04-20 16:28:31 -07:00
Glenn Kasten 2a923c9286 Merge "Disable warnings that are not easily fixable"
am: 8192b1a

* commit '8192b1a98f60cc39253c658ba1ca70a70c2e0dfa':
  Disable warnings that are not easily fixable

Change-Id: I5dc1fabd29cfb7024f8362359a796efd1764032d
2016-04-20 19:00:07 +00:00
Glenn Kasten 27625f2706 Merge "Add default case for undefined pointer initialization"
am: 9d0179c

* commit '9d0179c8a85f2b50bafdf6715fc266bc92771756':
  Add default case for undefined pointer initialization

Change-Id: I311521adebb1949747f0cb34bee19a57d8199558
2016-04-20 19:00:06 +00:00
Glenn Kasten 2b2e97b893 Merge "Left shift of negative int is undefined"
am: 6ae5480

* commit '6ae54806ab88efd76e884447680fd30b340936fd':
  Left shift of negative int is undefined

Change-Id: If6a4abe686d3ab6b7f825058255b03aa46055484
2016-04-20 19:00:06 +00:00
Glenn Kasten ad1e8985d9 Merge "Remove redundant parentheses around == comparison operator"
am: 34fb053

* commit '34fb05353bbabe1ba04362f26b3ae507fbb687d4':
  Remove redundant parentheses around == comparison operator

Change-Id: I7a37ef8293371cc0287a0e0b9f0115f82f294b31
2016-04-20 19:00:06 +00:00
Glenn Kasten 8192b1a98f Merge "Disable warnings that are not easily fixable" 2016-04-20 18:45:30 +00:00
Glenn Kasten 9d0179c8a8 Merge "Add default case for undefined pointer initialization" 2016-04-20 18:45:18 +00:00
Glenn Kasten 6ae54806ab Merge "Left shift of negative int is undefined" 2016-04-20 18:45:09 +00:00
Glenn Kasten 34fb05353b Merge "Remove redundant parentheses around == comparison operator" 2016-04-20 18:44:59 +00:00
Jean-Michel Trivi be845a7fc2 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638 am: 78653b30e9 am: 0a20959871 am: 6318d60241 am: 7147e71a75 am: 1de50b286f am: d110691d01 am: 0cf3a7671a
am: 9d4702f2d9

* commit '9d4702f2d9ecec00c4e28de638b1f79afb5d696c':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I0a57275a4ebc04cc3acafc6a0325b7fefe8e5ef0
2016-04-19 01:34:40 +00:00
Jean-Michel Trivi 9d4702f2d9 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638 am: 78653b30e9 am: 0a20959871 am: 6318d60241 am: 7147e71a75 am: 1de50b286f am: d110691d01
am: 0cf3a7671a

* commit '0cf3a7671ad40c1036387d55462f1710a44eec31':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I7ca67acba7d69472865efa84a63a49c7768487c5
2016-04-19 01:32:26 +00:00
Jean-Michel Trivi 0cf3a7671a Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638 am: 78653b30e9 am: 0a20959871 am: 6318d60241 am: 7147e71a75 am: 1de50b286f
am: d110691d01

* commit 'd110691d01e15a555d84fcd98e4b275dd38b37ba':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I6c009e94d626cc1dd6ec1510fd2e07c1b3a4031a
2016-04-19 01:30:15 +00:00
Jean-Michel Trivi d110691d01 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638 am: 78653b30e9 am: 0a20959871 am: 6318d60241 am: 7147e71a75
am: 1de50b286f

* commit '1de50b286fdadc07f94e0d8fae69a564796ab12a':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: Ib1dce026d6ddc9fdfa68cc5b4213a2685dc1ac17
2016-04-19 01:27:53 +00:00
Jean-Michel Trivi 1de50b286f Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638 am: 78653b30e9 am: 0a20959871 am: 6318d60241
am: 7147e71a75

* commit '7147e71a75a48009e6d2b835422767cf466813d8':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I7f677fae038640739834d4c44309680b78748acf
2016-04-19 01:25:09 +00:00
Jean-Michel Trivi 7147e71a75 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638 am: 78653b30e9 am: 0a20959871
am: 6318d60241

* commit '6318d6024194f89d809f4e22266105f27389f41b':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I1a836bd8b024948f18b2d2c0e912601722f887bc
2016-04-19 01:00:01 +00:00
Jean-Michel Trivi 6318d60241 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638 am: 78653b30e9
am: 0a20959871

* commit '0a209598713cccc4f10e9c0036df487bea5af312':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: If2339aad0e0e825302773f2f04f0dd43cc754ac6
2016-04-19 00:57:44 +00:00
Jean-Michel Trivi 0a20959871 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f am: 1a54e8f638
am: 78653b30e9

* commit '78653b30e9c1907d4c6eefa30ff954e0c4398447':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I53cabb3bab17e8754a03648ffac356e4a3a05e28
2016-04-19 00:55:30 +00:00
Jean-Michel Trivi 78653b30e9 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425 am: b762ff3e4f
am: 1a54e8f638

* commit '1a54e8f6385f9cbb8d950f0ff003bb71daa62caf':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I3c992ce7d3a60685f75a944d8d588fb9ff0d050c
2016-04-19 00:53:17 +00:00
Jean-Michel Trivi 1a54e8f638 Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d am: be3ff35425
am: b762ff3e4f

* commit 'b762ff3e4fdc29ce517824e19d187ba667e80623':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I29eaf51574e1834f223a9755a353abd90fcf912b
2016-04-19 00:50:57 +00:00
Jean-Michel Trivi b762ff3e4f Fix aacDecoder_drcExtractAndMap() am: 97a1b8140d
am: be3ff35425

* commit 'be3ff35425f026fb3714f1bd45c40aee6737fe05':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I82060408eab9a8990c511af4c6be8a588d2a1b49
2016-04-19 00:48:42 +00:00
Jean-Michel Trivi be3ff35425 Fix aacDecoder_drcExtractAndMap()
am: 97a1b8140d

* commit '97a1b8140d410ed3942006aa22b40ccb322f747b':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I1bf523e635139d71ef124462bd61e0da06191d35
2016-04-19 00:46:26 +00:00
Glenn Kasten 32db3a45df Disable warnings that are not easily fixable
Bug: 28026175
Change-Id: I6e9cfcd9efeb853caee01b54b241f24e64cf1e94
2016-04-18 16:11:27 -07:00
Glenn Kasten 1dd7649666 Add default case for undefined pointer initialization
Bug: 28026175
Change-Id: I1b149bf1573296df18abbe44f737bd87ab3913f9
2016-04-18 16:11:16 -07:00
Glenn Kasten 4bd4510b19 Left shift of negative int is undefined
Bug: 28026175
Change-Id: I9dc851b818262e95711033bdc03b7b7f30cff133
2016-04-18 16:11:01 -07:00
Glenn Kasten 76b428d4b4 Remove redundant parentheses around == comparison operator
Bug: 28026175
Change-Id: I8ff9d8d1dd73933dc181f2745292a0a3398a2479
2016-04-18 16:10:57 -07:00
Jean-Michel Trivi 97a1b8140d Fix aacDecoder_drcExtractAndMap()
Parse DVB DRC data only when numThreads is below
 MAX_DRC_THREADS. The post-increment is necessary as
 it is used in fill element DRC data section.
This solution parses as many DRC payloads as allowed by
 MAX_DRC_THREADS and skips all remaining DRC elements in the stream.

Bug 27792766
Bug 26751339

Change-Id: Ie1641888bac1757c4d1491119f977fc5d436eaea
2016-04-15 08:14:50 -07:00
Jean-Michel Trivi 3fbcee8020 AAC/SBR decoder improvements and bugfixes
am: 203e3f2

* commit '203e3f28fbebec7011342017fafc2a0bda0ce530':
  AAC/SBR decoder improvements and bugfixes

Change-Id: I2f7f5bb7f4c486347a1fdbd7c481cde33037441e
2016-04-09 00:36:07 +00:00
Jean-Michel Trivi 125815b0ed AAC/SBR encoder improvements
am: 46ba367

* commit '46ba3676b854acbc69a4c7845f578d4c2886377b':
  AAC/SBR encoder improvements

Change-Id: Id839c5ba8b79eddb7e239b7ec1b26fb5079b7d81
2016-04-09 00:36:07 +00: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 46ba3676b8 AAC/SBR encoder improvements
* AAC-Encoder

  - AAC-ELD core encoder audio quality tuning. Update tuning tables, configure
    bitreservoir size and adapt afterburner iteration value.
     Modified file(s):
        libAACenc/src/aacenc.h
        libAACenc/src/aacenc_lib.cpp
        libAACenc/src/adj_thr.cpp
        libAACenc/src/adj_thr.h
        libAACenc/src/adj_thr_data.h
        libAACenc/src/bandwidth.cpp
        libAACenc/src/pnsparam.cpp
        libAACenc/src/qc_main.cpp

   - Introduze dead zone quantizer for ELD to improve audio quality at certain
     configurations.
     Modified file(s):
        libAACenc/src/aacenc_lib.cpp
        libAACenc/src/adj_thr.cpp
        libAACenc/src/adj_thr.h
        libAACenc/src/qc_data.h
        libAACenc/src/qc_main.cpp
        libAACenc/src/quantize.cpp
        libAACenc/src/quantize.h
        libAACenc/src/sf_estim.cpp
        libAACenc/src/sf_estim.h

   - Revise TNS module to improve ELD audio quality.
   - Use new window function and separate prediction gain according TNS filters.
   - Add missing memory initilization to TNS configuration.
     Modified file(s):
        libAACenc/src/aacenc_lib.cpp
        libAACenc/src/aacenc_tns.cpp
        libAACenc/src/aacenc_tns.h
        libAACenc/src/psy_main.cpp
        libAACenc/src/tns_func.h

* SBR-Encoder

   - Revise frequency resolution calculation and handle differently depending
     on number of envelopes and split frames decision.
   - Add and adjust ELD SBR tuning tables.
     Modified file(s):
        libSBRenc/include/sbr_encoder.h
        libSBRenc/src/bit_sbr.h
        libSBRenc/src/env_est.cpp
        libSBRenc/src/fram_gen.cpp
        libSBRenc/src/fram_gen.h
        libSBRenc/src/mh_det.cpp
        libSBRenc/src/sbr_def.h
        libSBRenc/src/sbr_encoder.cpp
        libSBRenc/src/sbr_rom.cpp
        libSBRenc/src/tran_det.cpp

   - Replace ELD transient detector with fast implementation.
     Modified file(s):
        libSBRenc/src/env_est.cpp
        libSBRenc/src/env_est.h
        libSBRenc/src/fram_gen.cpp
        libSBRenc/src/sbr_def.h
        libSBRenc/src/sbr_encoder.cpp
        libSBRenc/src/tran_det.cpp
        libSBRenc/src/tran_det.h

* FDK-Library
   - Introduce generic compare function in tools library.
     Modified file(s):
        libFDK/include/fixpoint_math.h
        libFDK/src/FDK_core.cpp

* SBR-Encoder

  -  Revise ELD frame splitter to improve bit distribution.
     Modified file(s):
        libSBRenc/include/sbr_encoder.h
        libSBRenc/src/bit_sbr.h
        libSBRenc/src/env_est.cpp
        libSBRenc/src/fram_gen.cpp
        libSBRenc/src/fram_gen.h
        libSBRenc/src/sbr_encoder.cpp
        libSBRenc/src/tran_det.cpp
        libSBRenc/src/tran_det.h

   - Configure amplitude resolution according the tonality of the audio signal.
     Modified file(s):
        libSBRenc/include/sbr_encoder.h
        libSBRenc/src/bit_sbr.h
        libSBRenc/src/env_est.cpp
        libSBRenc/src/nf_est.cpp
        libSBRenc/src/nf_est.h
        libSBRenc/src/sbr_def.h
        libSBRenc/src/sbr_encoder.cpp
        libSBRenc/src/ton_corr.cpp
        libSBRenc/src/ton_corr.h
        libSBRenc/src/tran_det.cpp
        libSBRenc/src/tran_det.h

Change-Id: Ie0672b989a06ee63b50240616b8d1d4b790b6cb2
2016-04-08 10:52:42 -07:00
Jean-Michel Trivi d75233c2da Fix aacDecoder_drcExtractAndMap()
am: 4834f01

* commit '4834f01bdf9b9f371fcbb0b9cf4f7297fdf1fd55':
  Fix aacDecoder_drcExtractAndMap()

Change-Id: I4f9994a4d4e858b6193b006d6971536c391e0478
2016-04-05 21:08:27 +00:00
Jean-Michel Trivi 4834f01bdf Fix aacDecoder_drcExtractAndMap()
Parse DVB DRC data only when numThreads is below
 MAX_DRC_THREADS. The post-increment is necessary as
 it is used in fill element DRC data section.
This solution parses as many DRC payloads as allowed by
 MAX_DRC_THREADS and skips all remaining DRC elements in the stream.

Bug 27792766
Bug 26751339

Change-Id: Ie1641888bac1757c4d1491119f977fc5d436eaea
2016-04-05 20:50:05 +00:00
Jean-Michel Trivi 65750eae65 SBR/AAC encoder updates, code clean up
am: e1c78ed

* commit 'e1c78ed73faa51f2c7fcb0c4a17a92be9cc747f5':
  SBR/AAC encoder updates, code clean up

Change-Id: I908adc47823de593c3e258c67f360da9321780f5
2016-04-05 17:43:33 +00:00
Jean-Michel Trivi 0713b4acff Remove compiler warnings, revised ARM QMF encoder
am: ef30836

* commit 'ef30836651bf059c3120c03dd11e08b6aafdae13':
  Remove compiler warnings, revised ARM QMF encoder

Change-Id: I07babb4dc36b6ad7aebeb62c303a8380e99d691e
2016-04-05 16:11:23 +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
Jean-Michel Trivi ef30836651 Remove compiler warnings, revised ARM QMF encoder
Bug 8493170

Change-Id: I64d19a8a8059c5a96386b1eaac297fd2469515f8
2016-04-04 15:03:26 -07:00
Jean-Michel Trivi f86e64f5c7 Fix stack corruption happening in aacDecoder_drcExtractAndMap() am: a06d1c2 am: 47739cd am: 118fc75
am: 7657556

* commit '7657556633262752ad2db9e3914a04128bd64e1b':
  Fix stack corruption happening in aacDecoder_drcExtractAndMap()
2016-03-22 02:57:52 +00:00
Jean-Michel Trivi 7657556633 Fix stack corruption happening in aacDecoder_drcExtractAndMap() am: a06d1c2 am: 47739cd
am: 118fc75

* commit '118fc75eee6cc763a3105d6e963b77d76d114a2e':
  Fix stack corruption happening in aacDecoder_drcExtractAndMap()
2016-03-22 02:49:48 +00:00
Jean-Michel Trivi 118fc75eee Fix stack corruption happening in aacDecoder_drcExtractAndMap() am: a06d1c2
am: 47739cd

* commit '47739cd9d8d7842436b90ef14207c935b0a799fe':
  Fix stack corruption happening in aacDecoder_drcExtractAndMap()
2016-03-22 02:44:32 +00:00
Jean-Michel Trivi 47739cd9d8 Fix stack corruption happening in aacDecoder_drcExtractAndMap()
am: a06d1c2

* commit 'a06d1c2b9af1621037b48557aac42b5ecbdb03b3':
  Fix stack corruption happening in aacDecoder_drcExtractAndMap()
2016-03-22 02:36:16 +00:00
Jean-Michel Trivi a06d1c2b9a Fix stack corruption happening in aacDecoder_drcExtractAndMap()
In the aacDecoder_drcExtractAndMap() function, self->numThreads
  can be used after having exceeded its intended max value,
  MAX_DRC_THREADS, causing memory to be cleared after the
  threadBs[MAX_DRC_THREADS] array.
The crash is prevented by never using self->numThreads with
  a value equal to or greater than MAX_DRC_THREADS.
A proper fix will be required as there seems to be an issue as
  to which entry in the threadBs array is meant to be initialized
  and used.

Bug 26751339

Change-Id: I655cc40c35d4206ab72e83b2bdb751be2fe52b5a
2016-03-21 21:59:22 +00:00
Jean-Michel Trivi e46ff0f7f9 Fix stack corruption happening in aacDecoder_drcExtractAndMap()
In the aacDecoder_drcExtractAndMap() function, self->numThreads
  can be used after having exceeded its intended max value,
  MAX_DRC_THREADS, causing memory to be cleared after the
  threadBs[MAX_DRC_THREADS] array.
The crash is prevented by never using self->numThreads with
  a value equal to or greater than MAX_DRC_THREADS.
A proper fix will be required as there seems to be an issue as
  to which entry in the threadBs array is meant to be initialized
  and used.

Bug 26751339

Change-Id: I655cc40c35d4206ab72e83b2bdb751be2fe52b5a
2016-03-21 21:58:57 +00:00