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)