OSCL_EXPORT_REF CPVInterfaceProxy * CPVInterfaceProxy::NewL( PVProxiedEngine& app , Oscl_DefAlloc *alloc , int32 stacksize , uint32 nreserve1 , uint32 nreserve2 , int32 handlerPri , int32 notifierPri) //called under app thread context { OsclMemAllocator defallocL; OsclAny *ptr = NULL; if (alloc) { ptr = alloc->ALLOCATE(sizeof(CPVInterfaceProxy)); OsclError::LeaveIfNull(ptr); } else { ptr = defallocL.ALLOCATE(sizeof(CPVInterfaceProxy)); } CPVInterfaceProxy *self = OSCL_PLACEMENT_NEW(ptr, CPVInterfaceProxy(app, alloc, stacksize)); int32 err; err = self->CPVIConstructL(nreserve1, nreserve2, handlerPri, notifierPri); if (err != OSCL_ERR_NONE) { self->Delete(); return NULL; } return self; }
bool PVMFOMXEncPort::pvmiSetPortFormatSpecificInfoSync(OsclRefCounterMemFrag& aMemFrag) { if ((iConnectedPort) && (iTag == PVMF_OMX_ENC_NODE_PORT_TYPE_OUTPUT)) { OsclAny* temp = NULL; iConnectedPort->QueryInterface(PVMI_CAPABILITY_AND_CONFIG_PVUUID, temp); PvmiCapabilityAndConfig *config = (PvmiCapabilityAndConfig*) temp; /* * Create PvmiKvp for capability settings */ if ((config) && (aMemFrag.getMemFragSize() > 0)) { OsclMemAllocator alloc; PvmiKvp kvp; kvp.key = NULL; kvp.length = oscl_strlen(PVMF_FORMAT_SPECIFIC_INFO_KEY) + 1; // +1 for \0 kvp.key = (PvmiKeyType)alloc.ALLOCATE(kvp.length); if (kvp.key == NULL) { return false; } oscl_strncpy(kvp.key, PVMF_FORMAT_SPECIFIC_INFO_KEY, kvp.length); kvp.value.key_specific_value = (OsclAny*)(aMemFrag.getMemFragPtr()); kvp.capacity = aMemFrag.getMemFragSize(); kvp.length = aMemFrag.getMemFragSize(); PvmiKvp* retKvp = NULL; // for return value int32 err; OSCL_TRY(err, config->setParametersSync(NULL, &kvp, 1, retKvp););