Tunneling
[OpenMAX IL coreOpenMAX IL component]


Data Structures

struct  OMX_PARAM_BUFFERSUPPLIERTYPE
struct  OMX_TUNNELSETUPTYPE

Functions

OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_SetupTunnel (OMX_IN OMX_HANDLETYPE hOutput, OMX_IN OMX_U32 nPortOutput, OMX_IN OMX_HANDLETYPE hInput, OMX_IN OMX_U32 nPortInput)
 the OMX_SetupTunnel standard function

Variables

OMX_ERRORTYPE(* OMX_COMPONENTTYPE::ComponentTunnelRequest )(OMX_IN OMX_HANDLETYPE hComp, OMX_IN OMX_U32 nPort, OMX_IN OMX_HANDLETYPE hTunneledComp, OMX_IN OMX_U32 nTunneledPort, OMX_INOUT OMX_TUNNELSETUPTYPE *pTunnelSetup)

Detailed Description

Structures and functions to manage tunnels among component ports

Function Documentation

OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_SetupTunnel ( OMX_IN OMX_HANDLETYPE  hOutput,
OMX_IN OMX_U32  nPortOutput,
OMX_IN OMX_HANDLETYPE  hInput,
OMX_IN OMX_U32  nPortInput 
)

the OMX_SetupTunnel standard function

The implementation of this function is described in the OpenMAX spec

Definition at line 248 of file omxcore.c.

References OMX_COMPONENTTYPE::ComponentTunnelRequest, DEB_LEV_ERR, DEB_LEV_FUNCTION_NAME, DEB_LEV_PARAMS, DEBUG, err, OMX_TUNNELSETUPTYPE::eSupplier, OMX_TUNNELSETUPTYPE::nTunnelFlags, OMX_BufferSupplyUnspecified, OMX_ErrorBadParameter, OMX_ErrorNone, OMX_ErrorPortsNotCompatible, and OMX_ErrorUndefined.

Referenced by main().


Variable Documentation

OMX_ERRORTYPE(* OMX_COMPONENTTYPE::ComponentTunnelRequest)(OMX_IN OMX_HANDLETYPE hComp, OMX_IN OMX_U32 nPort, OMX_IN OMX_HANDLETYPE hTunneledComp, OMX_IN OMX_U32 nTunneledPort, OMX_INOUT OMX_TUNNELSETUPTYPE *pTunnelSetup) [inherited]

The ComponentTunnelRequest method will interact with another OMX component to determine if tunneling is possible and to setup the tunneling. The return codes for this method can be used to determine if tunneling is not possible, or if tunneling is not supported.

Base profile components (i.e. non-interop) do not support this method and should return OMX_ErrorNotImplemented

The interop profile component MUST support tunneling to another interop profile component with a compatible port parameters. A component may also support proprietary communication.

If proprietary communication is supported the negotiation of proprietary communication is done outside of OMX in a vendor specific way. It is only required that the proper result be returned and the details of how the setup is done is left to the component implementation.

When this method is invoked when nPort in an output port, the component will: 1. Populate the pTunnelSetup structure with the output port's requirements and constraints for the tunnel.

When this method is invoked when nPort in an input port, the component will: 1. Query the necessary parameters from the output port to determine if the ports are compatible for tunneling 2. If the ports are compatible, the component should store the tunnel step provided by the output port 3. Determine which port (either input or output) is the buffer supplier, and call OMX_SetParameter on the output port to indicate this selection.

The component will return from this call within 5 msec.

Parameters:
[in] hComp Handle of the component to be accessed. This is the component handle returned by the call to the OMX_GetHandle method.
[in] nPort nPort is used to select the port on the component to be used for tunneling.
[in] hTunneledComp Handle of the component to tunnel with. This is the component handle returned by the call to the OMX_GetHandle method. When this parameter is 0x0 the component should setup the port for communication with the application / IL Client.
[in] nPortOutput nPortOutput is used indicate the port the component should tunnel with.
[in] pTunnelSetup Pointer to the tunnel setup structure. When nPort is an output port the component should populate the fields of this structure. When When nPort is an input port the component should review the setup provided by the component with the output port.
Returns:
OMX_ERRORTYPE If the command successfully executes, the return code will be OMX_NoError. Otherwise the appropriate OMX error will be returned.

Referenced by omx_base_component_Constructor(), and OMX_SetupTunnel().


Generated for OpenMAX Bellagio rel. 0.3.5-svn by  doxygen 1.5.1
SourceForge.net Logo