diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2013-08-29 12:29:46 -0700 |
---|---|---|
committer | Jean-Michel Trivi <jmtrivi@google.com> | 2013-09-03 11:31:55 -0700 |
commit | dbf96806482b2c48de4ba1da9a03e2bb7516b8c2 (patch) | |
tree | 102531985954bb98d15bbf7dfe8495f33e8ed4ca /libMpegTPEnc/src | |
parent | 3aec97e388e29a1d03f0197b27b893bc6aaf8ac3 (diff) | |
download | fdk-aac-dbf96806482b2c48de4ba1da9a03e2bb7516b8c2.tar.gz fdk-aac-dbf96806482b2c48de4ba1da9a03e2bb7516b8c2.tar.bz2 fdk-aac-dbf96806482b2c48de4ba1da9a03e2bb7516b8c2.zip |
Encoder explicit signaling
* AAC-Encoder
- Revise explicit signaling method which is required for downsampled SBR.
The parameter is optional and default configuration is implicit signaling
for dualrate SBR as before. In case of downsampled SBR and HE-AAC explicit
signaling is configured as default.
Modified file(s):
documentation\aacEncoder.pdf
libAACenc\include\aacenc_lib.h
libAACenc\src\aacenc_lib.cpp
libMpegTPEnc\src\tpenc_asc.cpp
libMpegTPEnc\src\version
libSYS\include\FDK_audio.h
libSYS\src\genericStds.cpp
Bug 9428126
Change-Id: I35138140346f17384d109ee5829be9ea5bab80fc
Diffstat (limited to 'libMpegTPEnc/src')
-rw-r--r-- | libMpegTPEnc/src/tpenc_asc.cpp | 24 | ||||
-rw-r--r-- | libMpegTPEnc/src/version | 2 |
2 files changed, 23 insertions, 3 deletions
diff --git a/libMpegTPEnc/src/tpenc_asc.cpp b/libMpegTPEnc/src/tpenc_asc.cpp index 5ba71c8..3f10ca4 100644 --- a/libMpegTPEnc/src/tpenc_asc.cpp +++ b/libMpegTPEnc/src/tpenc_asc.cpp @@ -474,7 +474,7 @@ int transportEnc_writeASC ( break; } - if (config->extAOT == AOT_SBR || config->extAOT == AOT_PS) + if (config->sbrSignaling==SIG_EXPLICIT_HIERARCHICAL && config->sbrPresent) writeAot(asc, config->extAOT); else writeAot(asc, config->aot); @@ -492,7 +492,7 @@ int transportEnc_writeASC ( FDKwriteBits( asc, getChannelConfig(config->channelMode), 4 ); - if (config->extAOT == AOT_SBR || config->extAOT == AOT_PS) { + if (config->sbrSignaling==SIG_EXPLICIT_HIERARCHICAL && config->sbrPresent) { writeSampleRate(asc, config->extSamplingRate); writeAot(asc, config->aot); } @@ -545,6 +545,26 @@ int transportEnc_writeASC ( break; } + /* backward compatible explicit signaling of extension AOT */ + if (config->sbrSignaling==SIG_EXPLICIT_BW_COMPATIBLE) + { + TP_ASC_EXTENSION_ID ascExtId = ASCEXT_UNKOWN; + + if (config->sbrPresent) { + ascExtId=ASCEXT_SBR; + FDKwriteBits( asc, ascExtId, 11 ); + writeAot(asc, config->extAOT); + FDKwriteBits( asc, 1, 1 ); /* sbrPresentFlag=1 */ + writeSampleRate(asc, config->extSamplingRate); + if (config->psPresent) { + ascExtId=ASCEXT_PS; + FDKwriteBits( asc, ascExtId, 11 ); + FDKwriteBits( asc, 1, 1 ); /* psPresentFlag=1 */ + } + } + + } + /* Make sure all bits are sync'ed */ FDKsyncCache( asc ); diff --git a/libMpegTPEnc/src/version b/libMpegTPEnc/src/version index d998903..91c4c67 100644 --- a/libMpegTPEnc/src/version +++ b/libMpegTPEnc/src/version @@ -2,7 +2,7 @@ /* library info */ #define TP_LIB_VL0 2 #define TP_LIB_VL1 3 -#define TP_LIB_VL2 1 +#define TP_LIB_VL2 2 #define TP_LIB_TITLE "MPEG Transport" #define TP_LIB_BUILD_DATE __DATE__ #define TP_LIB_BUILD_TIME __TIME__ |