aenc-aac: Support get_parameter query for profile type

Add support for get_parameter query for profile type.

Change-Id: I94defa4346b49ee96037154818a5081cbb050704
diff --git a/mm-audio/aenc-aac/qdsp6/inc/omx_aac_aenc.h b/mm-audio/aenc-aac/qdsp6/inc/omx_aac_aenc.h
index 374611a..6041ffe 100644
--- a/mm-audio/aenc-aac/qdsp6/inc/omx_aac_aenc.h
+++ b/mm-audio/aenc-aac/qdsp6/inc/omx_aac_aenc.h
@@ -53,6 +53,7 @@
 #include "QOMX_AudioIndexExtensions.h"
 #include "OMX_Core.h"
 #include "OMX_Audio.h"
+#include "OMX_IndexExt.h"
 #include "aenc_svr.h"
 #include "qc_omx_component.h"
 #include "Map.h"
diff --git a/mm-audio/aenc-aac/qdsp6/src/omx_aac_aenc.cpp b/mm-audio/aenc-aac/qdsp6/src/omx_aac_aenc.cpp
index ca6bb6e..51b2056 100644
--- a/mm-audio/aenc-aac/qdsp6/src/omx_aac_aenc.cpp
+++ b/mm-audio/aenc-aac/qdsp6/src/omx_aac_aenc.cpp
@@ -45,6 +45,14 @@
 
 #define SLEEP_MS 100
 
+static const OMX_U32 supported_profiles[] = {
+    OMX_AUDIO_AACObjectLC,
+    OMX_AUDIO_AACObjectHE,
+    OMX_AUDIO_AACObjectHE_PS,
+};
+
+static const int num_profiles = sizeof(supported_profiles) / sizeof(supported_profiles[0]);
+
 // omx_cmd_queue destructor
 omx_aac_aenc::omx_cmd_queue::~omx_cmd_queue()
 {
@@ -2777,6 +2785,25 @@
                 break;
 
             }
+        case OMX_IndexParamAudioProfileQuerySupported:
+        {
+            DEBUG_PRINT("OMX_IndexParamAudioProfileQuerySupported");
+            OMX_AUDIO_PARAM_ANDROID_PROFILETYPE *profileParams =
+                    (OMX_AUDIO_PARAM_ANDROID_PROFILETYPE *)paramData;
+
+            if (profileParams->nPortIndex != 1) {
+                return OMX_ErrorUndefined;
+            }
+
+            if (profileParams->nProfileIndex >= num_profiles) {
+                return OMX_ErrorNoMore;
+            }
+
+            profileParams->eProfile =
+                    supported_profiles[profileParams->nProfileIndex];
+
+            return OMX_ErrorNone;
+        }
         default:
             {
                 DEBUG_PRINT_ERROR("unknown param %08x\n", paramIndex);