2099264 [RIO-6100] Standard component role can be set , but not queried in omx components
diff --git a/codecs_v2/omx/omx_aac/src/omx_aac_component.cpp b/codecs_v2/omx/omx_aac/src/omx_aac_component.cpp
index 18c9af0..b37cf27 100644
--- a/codecs_v2/omx/omx_aac/src/omx_aac_component.cpp
+++ b/codecs_v2/omx/omx_aac/src/omx_aac_component.cpp
@@ -286,6 +286,8 @@
pOutPort->AudioParam.nIndex = 0;
pOutPort->AudioParam.eEncoding = OMX_AUDIO_CodingPCM;
+ oscl_strncpy((OMX_STRING)iComponentRole, (OMX_STRING)"audio_decoder.aac", OMX_MAX_STRINGNAME_SIZE);
+
iOutputFrameLength = OUTPUT_BUFFER_SIZE_AAC;
if (ipAacDec)
diff --git a/codecs_v2/omx/omx_amr/src/omx_amr_component.cpp b/codecs_v2/omx/omx_amr/src/omx_amr_component.cpp
index 04f4595..50e27de 100644
--- a/codecs_v2/omx/omx_amr/src/omx_amr_component.cpp
+++ b/codecs_v2/omx/omx_amr/src/omx_amr_component.cpp
@@ -280,6 +280,8 @@
iInputBufferRemainingBytes = 0;
+ oscl_strncpy((OMX_STRING)iComponentRole, (OMX_STRING)"audio_decoder.amrnb", OMX_MAX_STRINGNAME_SIZE);
+
if (ipAmrDec)
{
OSCL_DELETE(ipAmrDec);
diff --git a/codecs_v2/omx/omx_amrenc/src/omx_amrenc_component.cpp b/codecs_v2/omx/omx_amrenc/src/omx_amrenc_component.cpp
index 8888bc4..a1dd9ad 100644
--- a/codecs_v2/omx/omx_amrenc/src/omx_amrenc_component.cpp
+++ b/codecs_v2/omx/omx_amrenc/src/omx_amrenc_component.cpp
@@ -273,6 +273,8 @@
pOutPort->AudioParam.nIndex = 0;
pOutPort->AudioParam.eEncoding = OMX_AUDIO_CodingAMR;
+ oscl_strncpy((OMX_STRING)iComponentRole, (OMX_STRING)"audio_encoder.amrnb", OMX_MAX_STRINGNAME_SIZE);
+
iInputBufferRemainingBytes = 0;
if (ipAmrEnc)
diff --git a/codecs_v2/omx/omx_baseclass/src/pv_omxcomponent.cpp b/codecs_v2/omx/omx_baseclass/src/pv_omxcomponent.cpp
index cefd3bc..45fd4d2 100644
--- a/codecs_v2/omx/omx_baseclass/src/pv_omxcomponent.cpp
+++ b/codecs_v2/omx/omx_baseclass/src/pv_omxcomponent.cpp
@@ -3180,6 +3180,7 @@
OMX_PARAM_PORTDEFINITIONTYPE* pPortDef;
OMX_PORT_PARAM_TYPE* pPortDomains;
OMX_U32 PortIndex;
+ OMX_PARAM_COMPONENTROLETYPE* pCompRole;
OMX_AUDIO_PARAM_PORTFORMATTYPE* pAudioPortFormat;
OMX_AUDIO_PARAM_PCMMODETYPE* pAudioPcmMode;
@@ -3382,6 +3383,13 @@
}
break;
+ case OMX_IndexParamStandardComponentRole:
+ {
+ pCompRole = (OMX_PARAM_COMPONENTROLETYPE*) ComponentParameterStructure;
+ SetHeader(pCompRole, sizeof(OMX_PARAM_COMPONENTROLETYPE));
+ oscl_strncpy((OMX_STRING)pCompRole->cRole, (OMX_STRING)iComponentRole, OMX_MAX_STRINGNAME_SIZE);
+ }
+ break;
default:
{
@@ -3692,6 +3700,8 @@
OMX_PARAM_PORTDEFINITIONTYPE* pPortDef;
OMX_PORT_PARAM_TYPE* pPortDomains;
OMX_U32 PortIndex;
+ OMX_PARAM_COMPONENTROLETYPE* pCompRole;
+
OMX_VIDEO_PARAM_PORTFORMATTYPE* pVideoPortFormat;
OMX_VIDEO_PARAM_PROFILELEVELTYPE* pProfileLevel;
@@ -4003,7 +4013,13 @@
SetHeader(pVideoIntraRefresh, sizeof(OMX_VIDEO_PARAM_INTRAREFRESHTYPE));
}
break;
-
+ case OMX_IndexParamStandardComponentRole:
+ {
+ pCompRole = (OMX_PARAM_COMPONENTROLETYPE*) ComponentParameterStructure;
+ SetHeader(pCompRole, sizeof(OMX_PARAM_COMPONENTROLETYPE));
+ oscl_strncpy((OMX_STRING)pCompRole->cRole, (OMX_STRING)iComponentRole, OMX_MAX_STRINGNAME_SIZE);
+ }
+ break;
default:
{
PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLogger, PVLOGMSG_NOTICE, (0, "OmxComponentVideo : GetParameter error Unsupported Index"));
diff --git a/codecs_v2/omx/omx_h264/src/omx_avc_component.cpp b/codecs_v2/omx/omx_h264/src/omx_avc_component.cpp
index a4fe0de..88e953f 100644
--- a/codecs_v2/omx/omx_h264/src/omx_avc_component.cpp
+++ b/codecs_v2/omx/omx_h264/src/omx_avc_component.cpp
@@ -312,6 +312,8 @@
pOutPort->VideoParam[0].eCompressionFormat = OMX_VIDEO_CodingUnused;
pOutPort->VideoParam[0].eColorFormat = OMX_COLOR_FormatYUV420Planar;
+ oscl_strncpy((OMX_STRING)iComponentRole, (OMX_STRING)"video_decoder.avc", OMX_MAX_STRINGNAME_SIZE);
+
iDecodeReturn = OMX_FALSE;
if (ipAvcDec)
diff --git a/codecs_v2/omx/omx_h264enc/src/omx_avcenc_component.cpp b/codecs_v2/omx/omx_h264enc/src/omx_avcenc_component.cpp
index 8e914b2..7dbd825 100644
--- a/codecs_v2/omx/omx_h264enc/src/omx_avcenc_component.cpp
+++ b/codecs_v2/omx/omx_h264enc/src/omx_avcenc_component.cpp
@@ -445,6 +445,8 @@
pOutPort->VideoIFrame.nPortIndex = OMX_PORT_OUTPUTPORT_INDEX;
pOutPort->VideoIFrame.IntraRefreshVOP = OMX_FALSE;
+ oscl_strncpy((OMX_STRING)iComponentRole, (OMX_STRING)"video_encoder.avc", OMX_MAX_STRINGNAME_SIZE);
+
//Construct the encoder object
if (ipAvcEncoderObject)
diff --git a/codecs_v2/omx/omx_m4v/src/omx_mpeg4_component.cpp b/codecs_v2/omx/omx_m4v/src/omx_mpeg4_component.cpp
index c918bd6..1847d47 100644
--- a/codecs_v2/omx/omx_m4v/src/omx_mpeg4_component.cpp
+++ b/codecs_v2/omx/omx_m4v/src/omx_mpeg4_component.cpp
@@ -361,9 +361,11 @@
ipPorts[OMX_PORT_INPUTPORT_INDEX]->ProfileLevel.nProfileIndex = 0;
ipPorts[OMX_PORT_INPUTPORT_INDEX]->ProfileLevel.eProfile = OMX_VIDEO_MPEG4ProfileSimple;
ipPorts[OMX_PORT_INPUTPORT_INDEX]->ProfileLevel.eLevel = OMX_VIDEO_MPEG4Level1;
+ oscl_strncpy((OMX_STRING)iComponentRole, (OMX_STRING)"video_decoder.mpeg4", OMX_MAX_STRINGNAME_SIZE);
}
else if (iDecMode == MODE_H263)
{
+ oscl_strncpy((OMX_STRING)iComponentRole, (OMX_STRING)"video_decoder.h263", OMX_MAX_STRINGNAME_SIZE);
}
diff --git a/codecs_v2/omx/omx_mp3/src/omx_mp3_component.cpp b/codecs_v2/omx/omx_mp3/src/omx_mp3_component.cpp
index 04a9e2b..b7e026b 100644
--- a/codecs_v2/omx/omx_mp3/src/omx_mp3_component.cpp
+++ b/codecs_v2/omx/omx_mp3/src/omx_mp3_component.cpp
@@ -283,6 +283,8 @@
pOutPort->AudioParam.nIndex = 0;
pOutPort->AudioParam.eEncoding = OMX_AUDIO_CodingPCM;
+ oscl_strncpy((OMX_STRING)iComponentRole, (OMX_STRING)"audio_decoder.mp3", OMX_MAX_STRINGNAME_SIZE);
+
iOutputFrameLength = OUTPUT_BUFFER_SIZE_MP3;
if (ipMp3Dec)