diff options
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__ |