Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-release > by-pkgid > 87aded5420321e37af1000cab6d33378 > files > 269

libomxil-bellagio-doc-0.9.3-6.mga5.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>OpenMAXBellagio: Tunneling</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenMAXBellagio
   &#160;<span id="projectnumber">0.9.3</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__tun.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">Tunneling<div class="ingroups"><a class="el" href="group__core.html">OpenMAX IL core</a> &#124; <a class="el" href="group__comp.html">OpenMAX IL component</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_o_m_x___p_a_r_a_m___b_u_f_f_e_r_s_u_p_p_l_i_e_r_t_y_p_e.html">OMX_PARAM_BUFFERSUPPLIERTYPE</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_o_m_x___t_u_n_n_e_l_s_e_t_u_p_t_y_p_e.html">OMX_TUNNELSETUPTYPE</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gab73b8fc1b49b1e81eb108cb11256bb37"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak" />
<a class="el" href="struct_o_m_x___p_a_r_a_m___b_u_f_f_e_r_s_u_p_p_l_i_e_r_t_y_p_e.html">OMX_PARAM_BUFFERSUPPLIERTYPE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tun.html#gab73b8fc1b49b1e81eb108cb11256bb37">OMX_PARAM_BUFFERSUPPLIERTYPE</a></td></tr>
<tr class="separator:gab73b8fc1b49b1e81eb108cb11256bb37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa8cef2b317ffae62e408b54e8b5a6146"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_o_m_x___t_u_n_n_e_l_s_e_t_u_p_t_y_p_e.html">OMX_TUNNELSETUPTYPE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tun.html#gaa8cef2b317ffae62e408b54e8b5a6146">OMX_TUNNELSETUPTYPE</a></td></tr>
<tr class="separator:gaa8cef2b317ffae62e408b54e8b5a6146"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga8fa43caacbb2ede24ba0d35f03ce6dbe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_o_m_x___types_8h.html#aa904bc42411fc5979c164cef96e90400">OMX_API</a> <a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> <a class="el" href="_o_m_x___types_8h.html#a9b7491ee0c559eaba7416fe922882f65">OMX_APIENTRY</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tun.html#ga8fa43caacbb2ede24ba0d35f03ce6dbe">OMX_SetupTunnel</a> (<a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a7b426d7bc825bf8a56ee39dc3c217af7">OMX_HANDLETYPE</a> hOutput, <a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a04983f4ca9c7876035dffc578597eae3">OMX_U32</a> nPortOutput, <a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a7b426d7bc825bf8a56ee39dc3c217af7">OMX_HANDLETYPE</a> hInput, <a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a04983f4ca9c7876035dffc578597eae3">OMX_U32</a> nPortInput)</td></tr>
<tr class="separator:ga8fa43caacbb2ede24ba0d35f03ce6dbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:gaeaf4019ea6edc13870951cb43fe9f56a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tun.html#gaeaf4019ea6edc13870951cb43fe9f56a">OMX_COMPONENTTYPE::ComponentTunnelRequest</a> )(<a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a7b426d7bc825bf8a56ee39dc3c217af7">OMX_HANDLETYPE</a> hComp, <a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a04983f4ca9c7876035dffc578597eae3">OMX_U32</a> nPort, <a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a7b426d7bc825bf8a56ee39dc3c217af7">OMX_HANDLETYPE</a> hTunneledComp, <a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a04983f4ca9c7876035dffc578597eae3">OMX_U32</a> nTunneledPort, <a class="el" href="_o_m_x___types_8h.html#ae2413e67d24fdfc2c077685e84c53741">OMX_INOUT</a> <a class="el" href="struct_o_m_x___t_u_n_n_e_l_s_e_t_u_p_t_y_p_e.html">OMX_TUNNELSETUPTYPE</a> *pTunnelSetup)</td></tr>
<tr class="separator:gaeaf4019ea6edc13870951cb43fe9f56a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Structures and functions to manage tunnels among component ports </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gab73b8fc1b49b1e81eb108cb11256bb37"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="struct_o_m_x___p_a_r_a_m___b_u_f_f_e_r_s_u_p_p_l_i_e_r_t_y_p_e.html">OMX_PARAM_BUFFERSUPPLIERTYPE</a>  <a class="el" href="struct_o_m_x___p_a_r_a_m___b_u_f_f_e_r_s_u_p_p_l_i_e_r_t_y_p_e.html">OMX_PARAM_BUFFERSUPPLIERTYPE</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>buffer supplier parameter indicates that buffers received by an input port of a tunnel may not modify the data in the buffers </p>

</div>
</div>
<a class="anchor" id="gaa8cef2b317ffae62e408b54e8b5a6146"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="struct_o_m_x___t_u_n_n_e_l_s_e_t_u_p_t_y_p_e.html">OMX_TUNNELSETUPTYPE</a>  <a class="el" href="struct_o_m_x___t_u_n_n_e_l_s_e_t_u_p_t_y_p_e.html">OMX_TUNNELSETUPTYPE</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The <a class="el" href="struct_o_m_x___t_u_n_n_e_l_s_e_t_u_p_t_y_p_e.html">OMX_TUNNELSETUPTYPE</a> 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. </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga8fa43caacbb2ede24ba0d35f03ce6dbe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_o_m_x___types_8h.html#aa904bc42411fc5979c164cef96e90400">OMX_API</a> <a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a> <a class="el" href="_o_m_x___types_8h.html#a9b7491ee0c559eaba7416fe922882f65">OMX_APIENTRY</a> OMX_SetupTunnel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a7b426d7bc825bf8a56ee39dc3c217af7">OMX_HANDLETYPE</a>&#160;</td>
          <td class="paramname"><em>hOutput</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a04983f4ca9c7876035dffc578597eae3">OMX_U32</a>&#160;</td>
          <td class="paramname"><em>nPortOutput</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a7b426d7bc825bf8a56ee39dc3c217af7">OMX_HANDLETYPE</a>&#160;</td>
          <td class="paramname"><em>hInput</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a04983f4ca9c7876035dffc578597eae3">OMX_U32</a>&#160;</td>
          <td class="paramname"><em>nPortInput</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>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.</p>
<p>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.</p>
<p>The core should return from this call within 20 msec.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hOutput</td><td>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. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nPortOutput</td><td>nPortOutput is used to select the source port on component to be used in the tunnel. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">hInput</td><td>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. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nPortInput</td><td>nPortInput is used to select the destination port on component to be used in the tunnel. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>OMX_ERRORTYPE If the command successfully executes, the return code will be OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. When OMX_ErrorNotImplemented is returned, one or both components is a non-interop component and does not support tunneling.</dd></dl>
<p>On failure, the ports of both components are setup for communication with the application / IL Client. </p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="gaeaf4019ea6edc13870951cb43fe9f56a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="_o_m_x___core_8h.html#a4e2923ea92fd56f5bd9783a6dac7629a">OMX_ERRORTYPE</a>(* OMX_COMPONENTTYPE::ComponentTunnelRequest)(<a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a7b426d7bc825bf8a56ee39dc3c217af7">OMX_HANDLETYPE</a> hComp, <a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a04983f4ca9c7876035dffc578597eae3">OMX_U32</a> nPort, <a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a7b426d7bc825bf8a56ee39dc3c217af7">OMX_HANDLETYPE</a> hTunneledComp, <a class="el" href="_o_m_x___types_8h.html#a9f94ed9e467960d51f3b1da3a4ebf55c">OMX_IN</a> <a class="el" href="_o_m_x___types_8h.html#a04983f4ca9c7876035dffc578597eae3">OMX_U32</a> nTunneledPort, <a class="el" href="_o_m_x___types_8h.html#ae2413e67d24fdfc2c077685e84c53741">OMX_INOUT</a> <a class="el" href="struct_o_m_x___t_u_n_n_e_l_s_e_t_u_p_t_y_p_e.html">OMX_TUNNELSETUPTYPE</a> *pTunnelSetup)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>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.</p>
<p>Base profile components (i.e. non-interop) do not support this method and should return OMX_ErrorNotImplemented</p>
<p>The interop profile component MUST support tunneling to another interop profile component with a compatible port parameters. A component may also support proprietary communication.</p>
<p>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.</p>
<p>When this method is invoked when nPort in an output port, the component will:</p><ol type="1">
<li>Populate the pTunnelSetup structure with the output port's requirements and constraints for the tunnel.</li>
</ol>
<p>When this method is invoked when nPort in an input port, the component will:</p><ol type="1">
<li>Query the necessary parameters from the output port to determine if the ports are compatible for tunneling</li>
<li>If the ports are compatible, the component should store the tunnel step provided by the output port</li>
<li>Determine which port (either input or output) is the buffer supplier, and call OMX_SetParameter on the output port to indicate this selection.</li>
</ol>
<p>The component will return from this call within 5 msec.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">hComp</td><td>Handle of the component to be accessed. This is the component handle returned by the call to the OMX_GetHandle method. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nPort</td><td>nPort is used to select the port on the component to be used for tunneling. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">hTunneledComp</td><td>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. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nPortOutput</td><td>nPortOutput is used indicate the port the component should tunnel with. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">pTunnelSetup</td><td>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. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>OMX_ERRORTYPE If the command successfully executes, the return code will be OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. </dd></dl>

<p>Definition at line <a class="el" href="_o_m_x___component_8h_source.html#l00467">467</a> of file <a class="el" href="_o_m_x___component_8h_source.html">OMX_Component.h</a>.</p>

<p>Referenced by <a class="el" href="omx__base__component_8c_source.html#l00095">omx_base_component_Constructor()</a>, and <a class="el" href="omxcore_8c_source.html#l00262">OMX_SetupTunnel()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<html>
<body>
<hr size="1"><small>Generated for OpenMAX Bellagio rel. 0.9.3 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small>
<br>
<a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=160680&amp;type=4" width="125" height="37" border="0" alt="SourceForge.net Logo" /></a>
</body>
</html>