|typedef struct |
|typedef struct OMX_TUNNELSETUPTYPE||OMX_TUNNELSETUPTYPE|
|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)|
|OMX_ERRORTYPE(*||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)|
Structures and functions to manage tunnels among component ports
buffer supplier parameter indicates that buffers received by an input port of a tunnel may not modify the data in the buffers
The OMX_TUNNELSETUPTYPE structure is used to pass data from an output port to an input port as part the two ComponentTunnelRequest calls resulting from a OMX_SetupTunnel call from the IL Client.
|OMX_API OMX_ERRORTYPE OMX_APIENTRY OMX_SetupTunnel||(||OMX_IN OMX_HANDLETYPE||hOutput,|
The OMX_SetupTunnel method will handle the necessary calls to the components to setup the specified tunnel the two components. NOTE: This is an actual method (not a define macro). This method will make calls into the component ComponentTunnelRequest method to do the actual tunnel connection.
The ComponentTunnelRequest method on both components will be called. This method shall not be called unless the component is in the OMX_StateLoaded state except when the ports used for the tunnel are disabled. In this case, the component may be in the OMX_StateExecuting, OMX_StatePause, or OMX_StateIdle states.
The core should return from this call within 20 msec.
|[in]||hOutput||Handle of the component to be accessed. Also this is the handle of the component whose port, specified in the nPortOutput parameter will be used the source for the tunnel. This is the component handle returned by the call to the OMX_GetHandle function. There is a requirement that hOutput be the source for the data when tunelling (i.e. nPortOutput is an output port). If 0x0, the component specified in hInput will have it's port specified in nPortInput setup for communication with the application / IL client.|
|[in]||nPortOutput||nPortOutput is used to select the source port on component to be used in the tunnel.|
|[in]||hInput||This is the component to setup the tunnel with. This is the handle of the component whose port, specified in the nPortInput parameter will be used the destination for the tunnel. This is the component handle returned by the call to the OMX_GetHandle function. There is a requirement that hInput be the destination for the data when tunelling (i.e. nPortInut is an input port). If 0x0, the component specified in hOutput will have it's port specified in nPortPOutput setup for communication with the application / IL client.|
|[in]||nPortInput||nPortInput is used to select the destination port on component to be used in the tunnel.|
On failure, the ports of both components are setup for communication with the application / IL Client.
|OMX_ERRORTYPE(* 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)
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.
|[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.|