Merge tag 'LA.UM.5.8.r1-02900-8x98.0' into int/n/fp2

"LA.UM.5.8.r1-02900-8x98.0"

* tag 'LA.UM.5.8.r1-02900-8x98.0':
  external/aac: enable MP2 encoding for WFD

Issue: FP2N-105
Change-Id: Id8599f4c7e939e138b7935896c51ee2bbe998d7c
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 @@
   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 @@
     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 @@
 
   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 @@
   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 @@
 
     /* 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 @@
                   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 @@
   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) */