Hi,
I'm using DM 8148 evm and sdk version is dvsdk_5_03_01_15. I want the o/p of the omx decoder component to give i/p to the scalar component. I'm successful in getting the omx handle, configure the i/p and o/p ports and enabling them.
since the o/p buffers are allocated by the decoder, i used the OMX_UseBuffer macro to give i/p to the scalar component. The first call to OMX_USEbuffer itself hangs the component and the macro does not return. I tried by using OMX_AllocBuffer. with this macro also, the component hangs. Then i tried by using OMX_SetupTunnel macro i,,e
/* Tunnel the o/p and i/p port of the components components */ if(OMX_ErrorNone != (eOmxRetVal = OMX_SetupTunnel(pSrcCompInfo->pComponentHandle, pSrcCompInfo->sOmxOutPortDef.nPortIndex, pCompInfo->pComponentHandle, pCompInfo->sOmxInPortDef.nPortIndex))) { LOG(LOG_ERR,"Failed to Tunnell the o/p and i/p ports of the components err: 0x%x",eOmxRetVal); return eOmxRetVal; }
The OMX_SetupTunnel macro also does not return and gets hung.
Observation:
I'm able to allocate buffers for the o/p port of the scalar component where as allocation of buffers results in hung for i/p port.
Question:
The OMX_SetupTunnel macro , OMX_Alloc or OMX_Usebuffer macros should gracefully return with an error. why should it get hung ?? When i went through the logs , i came to know that is is hanging in between
Before calling RcmClient_exec
and
After calling RcmClient_exec
[1321019476-DEBG src/OpenMAX_Render.c:480] -Tunnelling the o/p: 1 and i/p port: 10 of the components Entered: OMX_SetupTunnel (0x668800, 1, 0x66c838, 10)Module<ti.omx> Entering<DomxTunnelMgr_mapTunnelComponentPeerHandles> @line<943> Entered: DomxTunnelMgr_mapTunnelComponentPeerHandles (0x668800, 0x66c838, 0xbef0c0f8, 0xbef0c0f4)Module<ti.omx> Entering<domxtmgr_get_component_connection_info> @line<470> Module<ti.omx> Entering<domxtmgr_get_component_registry_index> @line<282> Module<ti.omx> Leaving<domxtmgr_get_component_registry_index> @line<293> with error<0:ErrorNone>Entered: omxproxy_get_config(0x668800, 2130706523, 0xbef0bfa0)Leaving: omxproxy_get_config, retVal: 0Module<ti.omx> Entering<domxtmgr_get_component_registry_index> @line<282> Module<ti.omx> Leaving<domxtmgr_get_component_registry_index> @line<293> with error<0:ErrorNone>Module<ti.omx> Leaving<domxtmgr_get_component_connection_info> @line<498> with error<0:ErrorNone>eOutCompCoreId: 1Module<ti.omx> Entering<domxtmgr_get_component_connection_info> @line<470> Module<ti.omx> Entering<domxtmgr_get_component_registry_index> @line<282> Module<ti.omx> Leaving<domxtmgr_get_component_registry_index> @line<293> with error<0:ErrorNone>Entered: omxproxy_get_config(0x66c838, 2130706523, 0xbef0be8c)Leaving: omxproxy_get_config, retVal: 0Module<ti.omx> Entering<domxtmgr_get_component_registry_index> @line<282> Module<ti.omx> Leaving<domxtmgr_get_component_registry_index> @line<293> with error<0:ErrorNone>Module<ti.omx> Leaving<domxtmgr_get_component_connection_info> @line<498> with error<0:ErrorNone>eInCompCoreId: 2Module<ti.omx> Entering<domxtmgr_map_connection_handle> @line<705> Entered: domxtmgr_map_connection_handle (0, 2, 0x66ccd8, 0xbef0c0f4, 0xbef0be4c)Module<ti.omx> Entering<domxtmgr_get_connection_handle> @line<516> Module<ti.omx> Leaving<domxtmgr_get_connection_handle> @line<529> with error<0:ErrorNone>Module<ti.omx> Entering<domxtmgr_create_connection> @line<623> Entered :domxtmgr_create_connection (0, 2, 0x66ccd8, 0xbef0be14, 0xbef0be4c)Module<ti.omx> Entering<OmxRpc_stubCreateProxyLite> @line<1941> Module<ti.omx> Entering<OmxRpc_rcmMsgAlloc> @line<113> Module<ti.omx> @<OmxRpc_rcmMsgAlloc> @line<117> msg<Before RcmClient_alloc>Module<ti.omx> @<OmxRpc_rcmMsgAlloc> @line<119> msg<After RcmClient_alloc>Module<ti.omx> Leaving<OmxRpc_rcmMsgAlloc> @line<124> with error<0:ErrorNone>Module<ti.omx> Entering<OmxRpc_msgMarshallCommonStub> @line<185> Module<ti.omx> Leaving<OmxRpc_msgMarshallCommonStub> @line<191> with error<0:ErrorNone>Module<ti.omx> Entering<OmxRpc_rcmExec> @line<141> Rcm_Exec for fxnId: 0x7fd01002Module<ti.omx> @<OmxRpc_rcmExec> @line<148> msg<Before calling RcmClient_exec>I could not further debug as there are no debugging logs in between
Before calling RcmClient_exec and After calling RcmClient_exec....
How to debug the problem ???
Pradeep,
Have a look at decode-scale-display example. It does exactly same you are looking for.
Regards
Vimal
i've looked at the example. It does not call OMX_Setuptunnel. it calls omx_usebuffer. There it succeeds and i double checked the parameters that i'm passing. I don't understand why it should hung. It should return error. how to enable more logs so that i can debug into rcmClient
SetupTunnel API is for proprietary mode tunneling in OMX. It is not supported in EZSDK, so It is not supposed to be used. please use APIs as given in examples.