ENS_API_EXPORT OMX_ERRORTYPE NmfMpc_ProcessingComponent::destroy(void) { OMX_ERRORTYPE error; // delete ExtraZone if needed error = mENSComponent.getTraceBuilder()->deleteExtraZone(); if (error != OMX_ErrorNone) return error; error = stopLibraries(); if (error != OMX_ErrorNone) return error; error = stop(); if (error != OMX_ErrorNone) return error; for (OMX_U32 i = 0; i < mENSComponent.getPortCount(); i++) { if (mENSComponent.getPort(i)->useProprietaryCommunication() == OMX_FALSE && mENSComponent.getPort(i)->isEnabled() == OMX_TRUE && mENSComponent.getPort(i)->getDomain() != OMX_PortDomainOther) { //Stop Nmf shared buffer components error = stopNmfSharedBuf(i); if (error != OMX_ErrorNone) return error; } } error = deInstantiate(); if (error != OMX_ErrorNone) return error; error = deInstantiateLibraries(); if (error != OMX_ErrorNone) return error; for (OMX_U32 i = 0; i < mENSComponent.getPortCount(); i++) { if (mENSComponent.getPort(i)->useProprietaryCommunication() == OMX_FALSE && mENSComponent.getPort(i)->isEnabled() == OMX_TRUE && mENSComponent.getPort(i)->getDomain() != OMX_PortDomainOther) { //deInstantiate Nmf shared buffer components error = deInstantiateNmfSharedBuffers(mENSComponent.getPort(i)); if (error != OMX_ErrorNone) return error; } } CM_UNREGISTER_STUBS_SKELS(ens_cpp); freeInterfaces(); return OMX_ErrorNone; }
ENS_API_EXPORT OMX_ERRORTYPE NmfHostMpc_ProcessingComponent::destroy() { OMX_ERRORTYPE error; // delete ExtraZone if needed error = mENSComponent.getTraceBuilder()->deleteExtraZone(); if (error != OMX_ErrorNone) return error; error = stop(); if (error != OMX_ErrorNone) return error; for (OMX_U32 i = 0; i < mENSComponent.getPortCount(); i++) { ENS_Port * port = static_cast<ENS_Port *>(mENSComponent.getPort(i)); if (port->useProprietaryCommunication() == OMX_FALSE && port->isEnabled() == OMX_TRUE && port->getDomain() != OMX_PortDomainOther && port->isMpc()) { error = stopNmfSharedBuf(i); if (error != OMX_ErrorNone) return error; } } error = deInstantiate(); if (error != OMX_ErrorNone) return error; for (OMX_U32 i = 0; i < mENSComponent.getPortCount(); i++) { ENS_Port * port = static_cast<ENS_Port *>(mENSComponent.getPort(i)); if (port->useProprietaryCommunication() == OMX_FALSE && ((port->isEnabled() == OMX_TRUE) || mNmfSharedBuf[i]) && port->getDomain() != OMX_PortDomainOther && port->isMpc()) { error = deInstantiateNmfSharedBuffers(mENSComponent.getPort(i)); if (error != OMX_ErrorNone) return error; } } CM_UNREGISTER_STUBS_SKELS(ens_cpp); return OMX_ErrorNone; }
ENS_API_EXPORT OMX_ERRORTYPE NmfHost_ProcessingComponent::destroy() { OMX_ERRORTYPE error; error = stop(); if (error != OMX_ErrorNone) return error; error = deInstantiate(); if (error != OMX_ErrorNone) return error; // delete ExtraZone if needed error = mENSComponent.getTraceBuilder()->deleteExtraZone(); if (error != OMX_ErrorNone) return error; #ifndef HOST_ONLY CM_UNREGISTER_STUBS_SKELS(ens_cpp); #endif //#ifndef HOST_ONLY return OMX_ErrorNone; }
plugMainUnion plugMain( DWORD functionCode, LPVOID pParam, LPVOID instanceID ) #endif { plugMainUnion retval; // declare pPlugObj - pointer to this instance WhorldPlug *pPlugObj; // typecast LPVOID into pointer to a WhorldPlug pPlugObj = (WhorldPlug*) instanceID; switch(functionCode) { case FF_GETINFO: retval.PISvalue = getInfo(); break; case FF_INITIALISE: retval.ivalue = initialise(); break; case FF_DEINITIALISE: retval.ivalue = deInitialise(); // todo: pass on instance IDs etc break; case FF_GETNUMPARAMETERS: retval.ivalue = getNumParameters(); break; case FF_GETPARAMETERNAME: retval.svalue = getParameterName( (DWORD) pParam ); break; case FF_GETPARAMETERDEFAULT: retval.fvalue = getParameterDefault( (DWORD) pParam ); break; case FF_GETPARAMETERDISPLAY: retval.svalue = pPlugObj->getParameterDisplay( (DWORD) pParam ); break; // parameters are passed in here as a packed struct of two DWORDS: // index and value case FF_SETPARAMETER: retval.ivalue= pPlugObj->setParameter( (SetParameterStruct*) pParam ); break; case FF_PROCESSFRAME: retval.ivalue = pPlugObj->processFrame(pParam); break; case FF_GETPARAMETER: retval.fvalue = pPlugObj->getParameter((DWORD) pParam); break; case FF_GETPLUGINCAPS: retval.ivalue = getPluginCaps( (DWORD) pParam); break; // Russell - FF 1.0 upgrade in progress ... case FF_INSTANTIATE: retval.ivalue = (DWORD) instantiate( (VideoInfoStruct*) pParam); break; case FF_DEINSTANTIATE: retval.ivalue = deInstantiate(pPlugObj); break; case FF_GETEXTENDEDINFO: retval.ivalue = (DWORD) getExtendedInfo(); break; case FF_PROCESSFRAMECOPY: retval.ivalue = pPlugObj->processFrameCopy((ProcessFrameCopyStruct*)pParam); break; case FF_GETPARAMETERTYPE: // not implemented yet retval.ivalue = FF_FAIL; break; // .................................... default: retval.ivalue = FF_FAIL; break; } return retval; }