From acbe346dd9546ecd4623103ea14c6a6abbf2ea3f Mon Sep 17 00:00:00 2001 From: Satya Krishna Pindiproli Date: Wed, 29 Jun 2016 15:57:56 +0530 Subject: external/aac: enable MP2 encoding for WFD Enable MP2 encoding for WFD. Change-Id: I4cc08c15494422dc20d970dc3a6c2c63eb0c761a --- libAACenc/src/aacenc.cpp | 9 ++++++++- libAACenc/src/aacenc_lib.cpp | 23 ++++++++++++++++++++--- libSYS/include/FDK_audio.h | 1 + 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/libAACenc/src/aacenc.cpp b/libAACenc/src/aacenc.cpp index 5e8c08d..35cb675 100644 --- a/libAACenc/src/aacenc.cpp +++ b/libAACenc/src/aacenc.cpp @@ -690,7 +690,14 @@ AAC_ENCODER_ERROR FDKaacEnc_Initialize(HANDLE_AAC_ENC hAacEnc, if (ErrorStatus != AAC_ENC_OK) goto bail; - hAacEnc->aot = hAacEnc->config->audioObjectType; + /* Map virtual aot's to intern aot used in bitstream writer. */ + switch (hAacEnc->config->audioObjectType) { + case AOT_MP2_AAC_LC: + hAacEnc->aot = AOT_AAC_LC; + break; + default: + hAacEnc->aot = hAacEnc->config->audioObjectType; + } /* common things */ diff --git a/libAACenc/src/aacenc_lib.cpp b/libAACenc/src/aacenc_lib.cpp index 2845177..662ff3b 100644 --- a/libAACenc/src/aacenc_lib.cpp +++ b/libAACenc/src/aacenc_lib.cpp @@ -368,7 +368,8 @@ static SBR_PS_SIGNALING getSbrSignalingMode( sbrSignaling = SIG_IMPLICIT; /* default: implicit signaling */ } - if ( (audioObjectType==AOT_AAC_LC) || (audioObjectType==AOT_SBR) || (audioObjectType==AOT_PS) ) { + if ( (audioObjectType==AOT_AAC_LC) || (audioObjectType==AOT_SBR) || + (audioObjectType==AOT_PS) || (audioObjectType==AOT_MP2_AAC_LC) ) { switch (transportType) { case TT_MP4_ADIF: case TT_MP4_ADTS: @@ -424,7 +425,13 @@ static void FDKaacEnc_MapConfig( cc->flags = 0; - transport_AOT = hAacConfig->audioObjectType; + switch (hAacConfig->audioObjectType) { + case AOT_MP2_AAC_LC: + transport_AOT = AOT_AAC_LC; + break; + default : + transport_AOT = hAacConfig->audioObjectType; + } if (hAacConfig->audioObjectType == AOT_ER_AAC_ELD) { cc->flags |= (hAacConfig->syntaxFlags & AC_SBR_PRESENT) ? CC_SBR : 0; @@ -490,7 +497,14 @@ static void FDKaacEnc_MapConfig( cc->samplingRate = hAacConfig->sampleRate; /* Mpeg-4 signaling for transport library. */ - cc->flags |= CC_MPEG_ID; + switch ( hAacConfig->audioObjectType ) { + case AOT_MP2_AAC_LC: + cc->flags &= ~CC_MPEG_ID; /* Required for ADTS. */ + cc->extAOT = AOT_NULL_OBJECT; + break; + default: + cc->flags |= CC_MPEG_ID; + } /* ER-tools signaling. */ cc->flags |= (hAacConfig->syntaxFlags & AC_ER_VCB11) ? CC_VCB11 : 0; @@ -772,6 +786,8 @@ AACENC_ERROR FDKaacEnc_AdjustEncSettings(HANDLE_AACENCODER hAacEncoder, /* Adapt internal AOT when necessary. */ switch ( hAacConfig->audioObjectType ) { + case AOT_MP2_AAC_LC: + hAacConfig->usePns = 0; case AOT_AAC_LC: case AOT_SBR: case AOT_PS: @@ -1786,6 +1802,7 @@ AACENC_ERROR aacEncoder_SetParam( goto bail; } case AOT_AAC_LC: + case AOT_MP2_AAC_LC: case AOT_ER_AAC_LD: case AOT_ER_AAC_ELD: if (!(hAacEncoder->encoder_modis & (ENC_MODE_FLAG_AAC))) { diff --git a/libSYS/include/FDK_audio.h b/libSYS/include/FDK_audio.h index 98ded3b..3b39024 100644 --- a/libSYS/include/FDK_audio.h +++ b/libSYS/include/FDK_audio.h @@ -198,6 +198,7 @@ typedef enum AOT_LD_MPEGS = 44, /**< Low Delay MPEG Surround */ /* Pseudo AOTs */ + AOT_MP2_AAC_LC = 129, /**< Virtual AOT MP2 Low Complexity profile */ AOT_DRM_AAC = 143, /**< Virtual AOT for DRM (ER-AAC-SCAL without SBR) */ AOT_DRM_SBR = 144, /**< Virtual AOT for DRM (ER-AAC-SCAL with SBR) */ AOT_DRM_MPEG_PS = 145 /**< Virtual AOT for DRM (ER-AAC-SCAL with SBR and MPEG-PS) */ -- cgit v1.2.3