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
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
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
Dan Willemsen
c203653dcb
Remove __DATE__/__TIME__
...
am: 2d435aa433
* commit '2d435aa43323935bd8ed293f4f12cddfdee81eb3':
Remove __DATE__/__TIME__
2015-11-03 19:44:47 +00: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
ca249e444b
Merge "Remove __DATE__/__TIME__"
...
am: a73b059815
* commit 'a73b059815fc35ba689e5a8235b567b2353eabad':
Remove __DATE__/__TIME__
2015-10-27 23:27:46 +00:00
Dan Willemsen
a73b059815
Merge "Remove __DATE__/__TIME__"
2015-10-27 23:16:31 +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
Marco Nelissen
106fb85b42
am 9f42dfb7: am b3c5a4bb: Fix crash on invalid channel config
...
* commit '9f42dfb7990a107da23454669459bb5e28d90726':
Fix crash on invalid channel config
2015-09-15 02:12:36 +00:00
Marco Nelissen
9f42dfb799
am b3c5a4bb: Fix crash on invalid channel config
...
* commit 'b3c5a4bb8442ab3158fa1f52b790fadc64546f46':
Fix crash on invalid channel config
2015-09-15 01:10:04 +00:00
Marco Nelissen
b3c5a4bb84
Fix crash on invalid channel config
...
Bug: 23876444
Change-Id: I90ad197811ebabceb5b5d74d6d3f20716fbe2d45
2015-09-08 15:50:08 +00:00
Dan Willemsen
8e8d920708
am 9f1b9bb7: (-s ours) am 5e7b21bb: Merge "build: wildcard isn\'t guaranteed to be sorted"
...
* commit '9f1b9bb71019b9a773d847cec6f10c198cd6c459':
2015-08-27 05:10:06 +00:00
Dan Willemsen
ba8b18e1e8
am 5e7b21bb: Merge "build: wildcard isn\'t guaranteed to be sorted"
...
* commit '5e7b21bb954dcf74533a1725be62cf6bffcb34ce':
build: wildcard isn't guaranteed to be sorted
2015-08-12 00:39:30 +00:00
Dan Willemsen
9f1b9bb710
am 5e7b21bb: Merge "build: wildcard isn\'t guaranteed to be sorted"
...
* commit '5e7b21bb954dcf74533a1725be62cf6bffcb34ce':
build: wildcard isn't guaranteed to be sorted
2015-08-12 00:39:04 +00:00
Dan Willemsen
5e7b21bb95
Merge "build: wildcard isn't guaranteed to be sorted"
2015-08-12 00:24:06 +00:00
Dan Willemsen
f170f89906
build: wildcard isn't guaranteed to be sorted
...
To prevent this from changing between builds, wrap in $(sort )
Change-Id: I0571d7d8787a40ca107c7c735d79692d27bed06e
2015-08-07 13:51:09 -07:00
Bill Yi
267940f5bd
am f2df045a: Merge commit \'10d211b84a5f0790b28fcc8b3db66884d5f9c729\' into HEAD
...
* commit 'f2df045ae92ee655481f73b19986084308ae684c':
2015-02-20 00:22:52 +00:00
Bill Yi
f2df045ae9
Merge commit '10d211b84a5f0790b28fcc8b3db66884d5f9c729' into HEAD
2015-02-19 14:30:49 -08:00
Chih-Hung Hsieh
bd8021bef1
am 2b6bf8dc: Merge "Do not include genericStds_linux.cpp."
...
* commit '2b6bf8dc0941f3a4531030b950cf24fd31248b0b':
Do not include genericStds_linux.cpp.
2015-02-18 02:53:59 +00:00
Chih-Hung Hsieh
2b6bf8dc09
Merge "Do not include genericStds_linux.cpp."
2015-02-18 02:41:47 +00:00
Chih-Hung Hsieh
09f1d04467
Do not include genericStds_linux.cpp.
...
The __aeabi_memcpy functions are already defined in Android libc.
Redefining them to call memcpy will become recursive when clang/llvm
converts the memcpy call to __aeabi_memcpy.
With this change, we can enable clang/llvm by removing LOCAL_CLANG from Android.mk.
BUG: 12216385
Change-Id: I8b8b4ba7f3ff1e66f8110fc3b6356865a582c1d8
2015-02-12 11:20:14 -08:00
Marco Nelissen
10d211b84a
am 1c6ab7db: Merge "Use gcc for the AAC decoder"
...
* commit '1c6ab7db30867f3eee0d550adb015b340fbbc668':
Use gcc for the AAC decoder
2015-02-11 01:51:25 +00:00
Marco Nelissen
1c6ab7db30
Merge "Use gcc for the AAC decoder"
2015-02-11 01:22:20 +00:00
Marco Nelissen
355baa79bf
Use gcc for the AAC decoder
...
clang generates crashing code for this.
Change-Id: I90355d6735403290e7c0d93ff4854520b7b80f4a
2015-02-10 15:39:28 -08:00
Chih-Hung Hsieh
28e448bb55
am 66091e46: Merge "Fix checks for {Front,Side,Back}ElementIsCpe"
...
* commit '66091e46d7aae1b45ed96f5f39274954a296db71':
Fix checks for {Front,Side,Back}ElementIsCpe
2014-12-01 19:45:05 +00:00
Chih-Hung Hsieh
66091e46d7
Merge "Fix checks for {Front,Side,Back}ElementIsCpe"
2014-12-01 19:31:58 +00:00
Dan Albert
57f76311ba
am 84851b23: Merge "Move back to C++98."
...
* commit '84851b23d6f65ce03da4fa8ef2348b4f46c0ed0f':
Move back to C++98.
2014-12-01 19:27:01 +00:00
Chih-Hung Hsieh
bb1e78a118
Fix checks for {Front,Side,Back}ElementIsCpe
...
{Front,Side,Back}ElementIsCpe is an array (per-channel). The check for
pPce->{Front,Side,Back}ElementIsCpe without an index checks the address
of the array, and will always evaluate to true. The elTagSce++
statements are unreachable.
Change-Id: If530371788a44038c500d6f9f7ac67681f77cc71
2014-12-01 11:26:03 -08:00
Dan Albert
84851b23d6
Merge "Move back to C++98."
2014-12-01 19:15:30 +00:00
Dan Albert
d52f374768
Move back to C++98.
...
This code depends on narrowing hex literals to a signed long, which
trips -Wc++11-narrowing (the fix would be to explicitly cast each
value to signed).
Change-Id: I581a02ef0eeee5a2d95ce0ff2ec6f7ff26f3a074
2014-11-28 13:56:59 -08:00
Chih-Hung Hsieh
1c7368d7c0
am d149516e: am 7e464956: Merge "Move Clang only flags into LOCAL_CLANG_CPPFLAGS."
...
* commit 'd149516e1a3a63549d2c654b1398544d5de46a3e':
2014-10-25 19:54:26 +00:00
Chih-Hung Hsieh
d149516e1a
am 7e464956: Merge "Move Clang only flags into LOCAL_CLANG_CPPFLAGS."
...
* commit '7e46495606bd66973a10565f932acee7bddcc003':
Move Clang only flags into LOCAL_CLANG_CPPFLAGS.
2014-09-23 16:54:56 +00:00
Chih-Hung Hsieh
ab33d4d394
am 7e464956: Merge "Move Clang only flags into LOCAL_CLANG_CPPFLAGS."
...
* commit '7e46495606bd66973a10565f932acee7bddcc003':
Move Clang only flags into LOCAL_CLANG_CPPFLAGS.
2014-09-23 16:54:34 +00:00
Chih-Hung Hsieh
7e46495606
Merge "Move Clang only flags into LOCAL_CLANG_CPPFLAGS."
2014-09-23 16:29:42 +00:00
Chih-Hung Hsieh
3c4c8d631f
Move Clang only flags into LOCAL_CLANG_CPPFLAGS.
...
Gcc does not recognize -Wno-pointer-bool-conversion.
Change-Id: Ib6ffa321fff1947b6a098244f7d67fdeb45c2b41
2014-09-22 22:59:03 -07:00
Glenn Kasten
57daefcbe1
am 4803bf75: Merge "Ignore Clang warning on checking address of arrays."
...
* commit '4803bf75f564e5c9304527a5b902711f78e9f621':
Ignore Clang warning on checking address of arrays.
2014-09-09 17:53:16 +00:00
Glenn Kasten
4803bf75f5
Merge "Ignore Clang warning on checking address of arrays."
2014-09-09 17:36:03 +00:00
Chih-Hung Hsieh
9428e080cc
Ignore Clang warning on checking address of arrays.
...
BUG: 17356808
Change-Id: I464ffcfb3fc4f44ac8115f9ae98a8c46189b41cd
2014-09-03 12:40:41 -07:00
Keun-young Park
8d8580c267
am 2decc778: Merge "[MIPSR6] Skip assembler code using MFHI/MFLO on mips32r6"
...
* commit '2decc77814e729df47464a504123f9b398ac7077':
[MIPSR6] Skip assembler code using MFHI/MFLO on mips32r6
2014-08-14 18:42:23 +00:00
Keun-young Park
2decc77814
Merge "[MIPSR6] Skip assembler code using MFHI/MFLO on mips32r6"
2014-08-14 16:10:21 +00:00
Duane Sand
5c51a5898e
[MIPSR6] Skip assembler code using MFHI/MFLO on mips32r6
...
Change-Id: I3dacd96cf9d5cf9c3d34d612ebb0456d64bc23bc
2014-07-31 15:40:38 -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
8e087bf394
AAC-Decoder: DRC metadata in stream info
...
Provide relevant DRC metadata information via API needed for DRC
presentation mode wrapper.
Bug 9428126
Change-Id: I827cd6bdfd2a8799c21935ae32af23739c90a9b6
2014-05-20 17:29:03 -07:00