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 | |
| 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')
| -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__ | 
