Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 7c0c66d6521a2c8efa0ef6bf03291d7f > files > 123

jrtplib-devel-3.7.1-7.fc12.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>jrtplib: RTCPScheduler Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="jrtplib.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>RTCPScheduler Class Reference</h1><!-- doxytag: class="RTCPScheduler" -->This class determines when RTCP compound packets should be sent.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="rtcpscheduler_8h_source.html">rtcpscheduler.h</a>&gt;</code>
<p>
<div class="dynheader">
Collaboration diagram for RTCPScheduler:</div>
<div class="dynsection">
<p><center><img src="classRTCPScheduler__coll__graph.png" border="0" usemap="#RTCPScheduler__coll__map" alt="Collaboration graph"></center>
<map name="RTCPScheduler__coll__map">
<area shape="rect" href="classRTPRandom.html" title="The RTPRandom class can be used to generate random numbers." alt="" coords="5,105,101,132"><area shape="rect" href="classRTPTime.html" title="This class is used to specify wallclock time, delay intervals etc." alt="" coords="165,7,243,33"><area shape="rect" href="classRTCPSchedulerParams.html" title="Describes parameters used by the RTCPScheduler class." alt="" coords="245,105,405,132"><area shape="rect" href="classRTPSources.html" title="Represents a table in which information about the participating sources is kept." alt="" coords="429,105,525,132"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classRTCPScheduler-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTCPScheduler.html#a043589cc9eb6e889ce5d450a6378195">RTCPScheduler</a> (<a class="el" href="classRTPSources.html">RTPSources</a> &amp;sources)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an instance which will use the source table <a class="el" href="classRTPSources.html" title="Represents a table in which information about the participating sources is kept.">RTPSources</a> to determine when RTCP compound packets should be scheduled.  <a href="#a043589cc9eb6e889ce5d450a6378195"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTCPScheduler.html#4bc3352ff8c8ad089739433af2c8c631">Reset</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resets the scheduler.  <a href="#4bc3352ff8c8ad089739433af2c8c631"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTCPScheduler.html#1bd1b3c1a984f3fa9c6d56970525172d">SetParameters</a> (const <a class="el" href="classRTCPSchedulerParams.html">RTCPSchedulerParams</a> &amp;params)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the scheduler parameters to be used to <code>params</code>.  <a href="#1bd1b3c1a984f3fa9c6d56970525172d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classRTCPSchedulerParams.html">RTCPSchedulerParams</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTCPScheduler.html#521ce5931976fba69b1f8575b12bbccb">GetParameters</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the currently used scheduler parameters.  <a href="#521ce5931976fba69b1f8575b12bbccb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTCPScheduler.html#cad51d5aef1e874aeff6c35f9519ea32">SetHeaderOverhead</a> (size_t numbytes)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the header overhead from underlying protocols (for example UDP and IP) to <code>numbytes</code>.  <a href="#cad51d5aef1e874aeff6c35f9519ea32"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTCPScheduler.html#a89299362650951f36840e1d98492552">GetHeaderOverhead</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the currently used header overhead.  <a href="#a89299362650951f36840e1d98492552"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTCPScheduler.html#972f3ae5dc574ec9d607c749b229afff">AnalyseIncoming</a> (<a class="el" href="classRTCPCompoundPacket.html">RTCPCompoundPacket</a> &amp;rtcpcomppack)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For each incoming RTCP compound packet, this function has to be called for the scheduler to work correctly.  <a href="#972f3ae5dc574ec9d607c749b229afff"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTCPScheduler.html#d7f99c9279c8086987b56cd85047ad3f">AnalyseOutgoing</a> (<a class="el" href="classRTCPCompoundPacket.html">RTCPCompoundPacket</a> &amp;rtcpcomppack)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For each outgoing RTCP compound packet, this function has to be called for the scheduler to work correctly.  <a href="#d7f99c9279c8086987b56cd85047ad3f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTCPScheduler.html#db2ee8d5e26b7c4e403d5ad55990b11b">ActiveMemberDecrease</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function has to be called each time a member times out or sends a BYE packet.  <a href="#db2ee8d5e26b7c4e403d5ad55990b11b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a93178bc21ffc203a37e52b2fdbf4f28"></a><!-- doxytag: member="RTCPScheduler::ScheduleBYEPacket" ref="a93178bc21ffc203a37e52b2fdbf4f28" args="(size_t packetsize)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTCPScheduler.html#a93178bc21ffc203a37e52b2fdbf4f28">ScheduleBYEPacket</a> (size_t packetsize)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Asks the scheduler to schedule an RTCP compound packet containing a BYE packetl; the compound packet has size <code>packetsize</code>. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classRTPTime.html">RTPTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTCPScheduler.html#f97cf4a688de5e09bb0c9056b38b184d">GetTransmissionDelay</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the delay after which an RTCP compound will possibly have to be sent.  <a href="#f97cf4a688de5e09bb0c9056b38b184d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTCPScheduler.html#5324517c0d360fbc1f12296fcad85d67">IsTime</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function returns <code>true</code> if it's time to send an RTCP compound packet and <code>false</code> otherwise.  <a href="#5324517c0d360fbc1f12296fcad85d67"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classRTPTime.html">RTPTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTCPScheduler.html#4cd698dcf809ed1df989b105e2350520">CalculateDeterministicInterval</a> (bool sender=false)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates the deterministic interval at this time.  <a href="#4cd698dcf809ed1df989b105e2350520"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="a043589cc9eb6e889ce5d450a6378195"></a><!-- doxytag: member="RTCPScheduler::RTCPScheduler" ref="a043589cc9eb6e889ce5d450a6378195" args="(RTPSources &amp;sources)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RTCPScheduler::RTCPScheduler           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPSources.html">RTPSources</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>sources</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates an instance which will use the source table <a class="el" href="classRTPSources.html" title="Represents a table in which information about the participating sources is kept.">RTPSources</a> to determine when RTCP compound packets should be scheduled. Note that for correct operation the <code>sources</code> instance should have information about the own SSRC (added by <a class="el" href="classRTPSources.html#ef1f2d477d997cef4ee714906739d954" title="Creates an entry for our own SSRC identifier.">RTPSources::CreateOwnSSRC</a>). 
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="db2ee8d5e26b7c4e403d5ad55990b11b"></a><!-- doxytag: member="RTCPScheduler::ActiveMemberDecrease" ref="db2ee8d5e26b7c4e403d5ad55990b11b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTCPScheduler::ActiveMemberDecrease           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="972f3ae5dc574ec9d607c749b229afff"></a><!-- doxytag: member="RTCPScheduler::AnalyseIncoming" ref="972f3ae5dc574ec9d607c749b229afff" args="(RTCPCompoundPacket &amp;rtcpcomppack)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTCPScheduler::AnalyseIncoming           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTCPCompoundPacket.html">RTCPCompoundPacket</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rtcpcomppack</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="d7f99c9279c8086987b56cd85047ad3f"></a><!-- doxytag: member="RTCPScheduler::AnalyseOutgoing" ref="d7f99c9279c8086987b56cd85047ad3f" args="(RTCPCompoundPacket &amp;rtcpcomppack)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTCPScheduler::AnalyseOutgoing           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTCPCompoundPacket.html">RTCPCompoundPacket</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rtcpcomppack</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="4cd698dcf809ed1df989b105e2350520"></a><!-- doxytag: member="RTCPScheduler::CalculateDeterministicInterval" ref="4cd698dcf809ed1df989b105e2350520" args="(bool sender=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classRTPTime.html">RTPTime</a> RTCPScheduler::CalculateDeterministicInterval           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>sender</em> = <code>false</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Calculates the deterministic interval at this time. This is used - in combination with a certain multiplier - to time out members, senders etc. 
</div>
</div><p>
<a class="anchor" name="a89299362650951f36840e1d98492552"></a><!-- doxytag: member="RTCPScheduler::GetHeaderOverhead" ref="a89299362650951f36840e1d98492552" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t RTCPScheduler::GetHeaderOverhead           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="521ce5931976fba69b1f8575b12bbccb"></a><!-- doxytag: member="RTCPScheduler::GetParameters" ref="521ce5931976fba69b1f8575b12bbccb" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classRTCPSchedulerParams.html">RTCPSchedulerParams</a> RTCPScheduler::GetParameters           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="f97cf4a688de5e09bb0c9056b38b184d"></a><!-- doxytag: member="RTCPScheduler::GetTransmissionDelay" ref="f97cf4a688de5e09bb0c9056b38b184d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classRTPTime.html">RTPTime</a> RTCPScheduler::GetTransmissionDelay           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the delay after which an RTCP compound will possibly have to be sent. The IsTime member function should be called afterwards to make sure that it actually is time to send an RTCP compound packet. 
</div>
</div><p>
<a class="anchor" name="5324517c0d360fbc1f12296fcad85d67"></a><!-- doxytag: member="RTCPScheduler::IsTime" ref="5324517c0d360fbc1f12296fcad85d67" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool RTCPScheduler::IsTime           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function returns <code>true</code> if it's time to send an RTCP compound packet and <code>false</code> otherwise. If the function returns <code>true</code>, it will also have calculated the next time at which a packet should be sent, so if it is called again right away, it will return <code>false</code>. 
</div>
</div><p>
<a class="anchor" name="4bc3352ff8c8ad089739433af2c8c631"></a><!-- doxytag: member="RTCPScheduler::Reset" ref="4bc3352ff8c8ad089739433af2c8c631" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTCPScheduler::Reset           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="cad51d5aef1e874aeff6c35f9519ea32"></a><!-- doxytag: member="RTCPScheduler::SetHeaderOverhead" ref="cad51d5aef1e874aeff6c35f9519ea32" args="(size_t numbytes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTCPScheduler::SetHeaderOverhead           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>numbytes</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="1bd1b3c1a984f3fa9c6d56970525172d"></a><!-- doxytag: member="RTCPScheduler::SetParameters" ref="1bd1b3c1a984f3fa9c6d56970525172d" args="(const RTCPSchedulerParams &amp;params)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTCPScheduler::SetParameters           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRTCPSchedulerParams.html">RTCPSchedulerParams</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>params</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>src/<a class="el" href="rtcpscheduler_8h_source.html">rtcpscheduler.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Jul 26 09:42:14 2009 for jrtplib by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>