56 if (omx_base_component_Private->
name) {
57 free(omx_base_component_Private->
name);
59 if (omx_base_component_Private->
bStateSem) {
61 free(omx_base_component_Private->
bStateSem);
63 if (omx_base_component_Private->
bMgmtSem) {
65 free(omx_base_component_Private->
bMgmtSem);
75 if (omx_base_component_Private) {
76 free(omx_base_component_Private);
106 if (!omx_base_component_Private) {
126 if (!omx_base_component_Private->
messageSem) {
136 if(!omx_base_component_Private->
bMgmtSem) {
138 if (!omx_base_component_Private->
bMgmtSem) {
149 if(!omx_base_component_Private->
bStateSem) {
151 if (!omx_base_component_Private->
bStateSem) {
191 if (!omx_base_component_Private->
name) {
195 strcpy(omx_base_component_Private->
name,cComponentName);
198 omx_base_component_Private->
callbacks = NULL;
201 omx_base_component_Private->
nGroupID = 0;
222 pthread_mutex_init(&omx_base_component_Private->
flush_mutex, NULL);
276 omx_base_component_Private->
callbacks=NULL;
296 if(omx_base_component_Private->
bMgmtSem){
298 free(omx_base_component_Private->
bMgmtSem);
299 omx_base_component_Private->
bMgmtSem=NULL;
309 if(omx_base_component_Private->
bStateSem){
311 free(omx_base_component_Private->
bStateSem);
312 omx_base_component_Private->
bStateSem=NULL;
315 if(omx_base_component_Private->
name){
316 free(omx_base_component_Private->
name);
317 omx_base_component_Private->
name=NULL;
320 pthread_mutex_destroy(&omx_base_component_Private->
flush_mutex);
352 omx_base_component_Private->
destructor(openmaxStandComp);
391 switch(omx_base_component_Private->
state){
407 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
410 pPort = omx_base_component_Private->
ports[i];
412 while(pPort->pBufferQueue->nelem > 0) {
414 __func__,(
int)pPort->pBufferQueue->nelem,(
int)i,omx_base_component_Private->
name);
418 err = pPort->Port_FreeTunnelBuffer(pPort,i);
424 DEBUG(
DEB_LEV_FULL_SEQ,
"In %s nPortIndex=%d pAllocSem Semval=%x\n", __func__,(
int)i,(
int)pPort->pAllocSem->semval);
431 pPort->sPortParam.bPopulated =
OMX_FALSE;
433 if(pPort->pInternalBufferStorage != NULL) {
434 free(pPort->pInternalBufferStorage);
435 pPort->pInternalBufferStorage=NULL;
438 if(pPort->bBufferStateAllocated != NULL) {
439 free(pPort->bBufferStateAllocated);
440 pPort->bBufferStateAllocated=NULL;
467 switch(omx_base_component_Private->
state){
488 switch(omx_base_component_Private->
state){
499 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
501 pPort = omx_base_component_Private->
ports[i];
505 err= pPort->Port_AllocateTunnelBuffer(pPort, i);
514 __func__, pPort->sPortParam.bEnabled,pPort->sPortParam.bPopulated);
515 if (pPort->sPortParam.nBufferCountActual > 0) {
517 pthread_mutex_lock(&pPort->exitMutex);
518 if (pPort->bIsDestroying) {
520 pthread_mutex_unlock(&pPort->exitMutex);
523 pthread_mutex_unlock(&pPort->exitMutex);
525 pPort->sPortParam.bPopulated =
OMX_TRUE;
556 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
559 pPort = omx_base_component_Private->
ports[i];
572 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
575 pPort = omx_base_component_Private->
ports[i];
595 switch(omx_base_component_Private->
state) {
617 switch(omx_base_component_Private->
state) {
628 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
630 pPort = omx_base_component_Private->
ports[i];
632 for(k=0;k<pPort->nNumTunnelBuffer;k++) {
650 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
653 pPort=omx_base_component_Private->
ports[i];
654 DEBUG(
DEB_LEV_PARAMS,
"In %s: state transition Paused 2 Executing, nelem=%d,semval=%d,Buf Count Actual=%d\n", __func__,
655 pPort->pBufferQueue->nelem,pPort->pBufferSem->semval,(
int)pPort->sPortParam.nBufferCountActual);
658 (pPort->pBufferQueue->nelem == (pPort->pBufferSem->semval + pPort->sPortParam.nBufferCountActual))) {
659 for(k=0; k < pPort->sPortParam.nBufferCountActual;k++) {
682 switch(omx_base_component_Private->
state) {
722 if (header == NULL) {
727 if(*((
OMX_U32*)header) != size) {
728 DEBUG(
DEB_LEV_ERR,
"In %s the header has a wrong size %i should be %i\n",__func__,(
int)*((
OMX_U32*)header),(
int)size);
774 if (nPortIndex >= nNumPorts) {
775 DEBUG(
DEB_LEV_ERR,
"Bad Port index %i when the component has %i ports\n", (
int)nPortIndex, (
int)nNumPorts);
779 pPort = omx_base_component_Private->
ports[nPortIndex];
783 DEBUG(
DEB_LEV_ERR,
"In %s Incorrect State=%x lineno=%d\n",__func__,omx_base_component_Private->
state,__LINE__);
814 strcpy(pComponentName, omx_base_component_Private->
name);
827 uuid[0] = (
OMX_U32)omx_component;
830 memcpy(*pComponentUUID, uuid,
sizeof(uuid));
848 strcat((
char*)cRole,
"\0");
868 omx_base_component_Private->
callbacks = pCallbacks;
874 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
876 pPort = omx_base_component_Private->
ports[i];
899 OMX_PTR ComponentParameterStructure) {
914 if (ComponentParameterStructure == NULL) {
917 switch((
int) nParamIndex) {
934 pPortDomains->nPorts = 0;
935 pPortDomains->nStartPortNumber = 0;
956 pPrioMgmt->nGroupPriority = omx_base_component_Private->
nGroupPriority;
957 pPrioMgmt->nGroupID = omx_base_component_Private->
nGroupID;
971 pPort = omx_base_component_Private->
ports[pBufferSupplier->nPortIndex];
999 DEBUG(
DEB_LEV_ERR,
"In %s OMX_IndexVendorCompPropTunnelFlags nPortIndex=%d Line=%d \n",
1000 __func__,(
int)pPropTunnelSetup->nPortIndex,__LINE__);
1005 pPort = omx_base_component_Private->
ports[pPropTunnelSetup->nPortIndex];
1007 pPropTunnelSetup->nTunnelSetup.
nTunnelFlags = pPort->nTunnelFlags;
1008 pPropTunnelSetup->nTunnelSetup.eSupplier = pPort->eBufferSupplier;
1029 OMX_PTR ComponentParameterStructure) {
1041 if (ComponentParameterStructure == NULL) {
1046 switch(nParamIndex) {
1070 OMX_U32 j,old_nBufferCountActual=0;
1108 DEBUG(
DEB_LEV_ERR,
"In %s wrong port domain. Out of OpenMAX scope\n",__func__);
1120 if(pPort->pInternalBufferStorage) {
1124 if(pPort->bBufferStateAllocated) {
1125 pPort->bBufferStateAllocated = realloc(pPort->bBufferStateAllocated,pPort->sPortParam.nBufferCountActual*
sizeof(
BUFFER_STATUS_FLAG));
1126 for(j=0; j < pPort->sPortParam.nBufferCountActual; j++) {
1148 DEBUG(
DEB_LEV_PARAMS,
"In %s Buf Sup Port index=%d\n", __func__,(
int)pBufferSupplier->nPortIndex);
1150 if(pBufferSupplier == NULL) {
1178 pPort = omx_base_component_Private->
ports[pBufferSupplier->nPortIndex];
1187 pBufferSupplier->nPortIndex = pPort->nTunneledPort;
1193 pBufferSupplier->nPortIndex = pPort->nTunneledPort;
1211 DEBUG(
DEB_LEV_PARAMS,
"In %s port %d Tunnel flag=%x \n", __func__,(
int)pBufferSupplier->nPortIndex, (
int)pPort->nTunnelFlags);
1231 OMX_PTR pComponentConfigStructure) {
1245 OMX_PTR pComponentConfigStructure) {
1260 if(strcmp(cParameterName,
"OMX.st.index.param.BellagioThreadsID") == 0) {
1279 *pState = omx_base_component_Private->
state;
1305 messageQueue = omx_base_component_Private->
messageQueue;
1306 messageSem = omx_base_component_Private->
messageSem;
1313 message->messageParam = nParam;
1314 message->pCmdData=pCmdData;
1324 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
1327 pPort = omx_base_component_Private->
ports[i];
1329 if(pPort->pInternalBufferStorage == NULL) {
1333 if(pPort->bBufferStateAllocated == NULL) {
1334 pPort->bBufferStateAllocated = calloc(pPort->sPortParam.nBufferCountActual,
sizeof(
BUFFER_STATUS_FLAG));
1337 for(k=0; k < pPort->sPortParam.nBufferCountActual; k++) {
1369 if(message->messageParam ==
OMX_ALL) {
1373 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
1390 if(message->messageParam ==
OMX_ALL) {
1394 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
1418 errQue =
queue(messageQueue, message);
1443 #
if defined(__linux__)
1451 if (omx_base_component_Private == NULL) {
1463 if(message == NULL){
1468 omx_base_component_Private->
messageHandler(openmaxStandComp, message);
1517 if (omx_base_component_Private->
callbacks) {
1536 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
1544 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
1546 pPort=omx_base_component_Private->
ports[i];
1568 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
1578 pPort=omx_base_component_Private->
ports[i];
1618 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
1620 pPort=omx_base_component_Private->
ports[i];
1628 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
1630 pPort=omx_base_component_Private->
ports[i];
1657 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
1686 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
1688 pPort=omx_base_component_Private->
ports[i];
1728 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
1744 i < omx_base_component_Private->sPortTypesParam[j].nStartPortNumber +
1746 pPort=omx_base_component_Private->
ports[i];
1792 pPort = omx_base_component_Private->
ports[nPortIndex];
1795 DEBUG(
DEB_LEV_ERR,
"Out of %s for component %p with err %i\n", __func__, hComponent, (
int)
err);
1821 pPort = omx_base_component_Private->
ports[nPortIndex];
1822 err = pPort->
Port_UseBuffer(pPort, ppBufferHdr, nPortIndex, pAppPrivate, nSizeBytes, pBuffer);
1824 DEBUG(
DEB_LEV_ERR,
"Out of %s for component %p with err %i\n", __func__, hComponent, (
int)
err);
1857 pPort = omx_base_component_Private->
ports[nPortIndex];
1860 DEBUG(
DEB_LEV_ERR,
"Out of %s for component %p with err %i\n", __func__, hComponent, (
int)
err);
1885 DEBUG(
DEB_LEV_ERR,
"In %s: wrong port direction in Component %s\n", __func__,omx_base_component_Private->
name);
1915 DEBUG(
DEB_LEV_ERR,
"In %s: wrong port(%d) direction(%x) pBuffer=%p in Component %s\n", __func__,
1947 pPort = omx_base_component_Private->
ports[nPort];
1950 DEBUG(
DEB_LEV_ERR,
"Out of %s for component %p with err %i\n", __func__, hComponent, (
int)
err);
1970 if ((nQualityLevel > 0) && (nQualityLevel <= omx_base_component_Private->nqualitylevels)) {