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);