Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > contrib > by-pkgid > 56ebf73a8cc21535297a85df4640d63b > files > 86

libccrtp0.7-0.7.2-1mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta name="robots" content="noindex">
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>RTPQueue class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.5 on Fri Oct 5 10:28:26 2001 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; <a class="qindex" href="examples.html">Examples</a> &nbsp; </center>
<hr><h1>RTPQueue  Class Reference</h1>RTP protocol queue handler. 
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="rtp_h-source.html">cc++/rtp.h</a>&gt;</code>
<p>
<p>Inheritance diagram for RTPQueue:
<p><center><img src="class_RTPQueue.gif" usemap="#RTPQueue_map" border="0"></center>
<map name="RTPQueue_map">
<area href="class_Thread.html" alt="Thread" shape="rect" coords="0,56,133,80">
<area href="class_MembershipControl.html" alt="MembershipControl" shape="rect" coords="143,56,276,80">
<area href="class_Members.html" alt="Members" shape="rect" coords="143,0,276,24">
<area href="class_QueueRTCPManager.html" alt="QueueRTCPManager" shape="rect" coords="0,168,133,192">
<area href="class_RTPDuplex.html" alt="RTPDuplex" shape="rect" coords="143,168,276,192">
</map>
<a href="class_RTPQueue-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="class_RTPSource.html">RTPSource</a>&amp;&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a0">getLocalInfo</a> () const</td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a1">isWaiting</a> (const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp;src=<a class="el" href="class_MembershipControl.html#q0">dummysource</a>) const</td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a2">isCookedWaiting</a> (void) const</td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a3">isSending</a> (void) const</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a4">putPacket</a> (uint32 stamp, <a class="el" href="rtp_h.html#a67">rtp_payload_t</a> payload, unsigned char *data=NULL, size_t len=0, bool mark=false)</td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="class_RTPData.html">RTPData</a>&amp;&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a5">getCookedPacket</a> (const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp;src=<a class="el" href="class_MembershipControl.html#q0">dummysource</a>)</td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a6">getFirstTimestamp</a> (const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp;src=<a class="el" href="class_MembershipControl.html#q0">dummysource</a>)</td></tr>
<tr><td nowrap align=right valign=top>uint16&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a7">getFirstSequence</a> (const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp;src=<a class="el" href="class_MembershipControl.html#q0">dummysource</a>)</td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="class_RTPData.html">RTPData</a>&amp;&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a8">getPacket</a> (uint32 stamp, const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp;src=<a class="el" href="class_MembershipControl.html#q0">dummysource</a>)</td></tr>
<tr><td nowrap align=right valign=top>size_t&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a9">getPacket</a> (uint32 stamp, unsigned char *data, size_t max, const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp;src=<a class="el" href="class_MembershipControl.html#q0">dummysource</a>)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="rtp_h.html#a67">rtp_payload_t</a>&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a10">getPayloadType</a> (uint32 timestamp, const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp;src=<a class="el" href="class_MembershipControl.html#q0">dummysource</a>)</td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a11">getCurrentTimestamp</a> (<a class="el" href="rtp_h.html#a67">rtp_payload_t</a> pt) const</td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a12">getTimestampIncrement</a> (size_t packet_size) const</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a13">setSessionBandwidth</a> (uint32 bw)</td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a14">getRate</a> (<a class="el" href="rtp_h.html#a67">rtp_payload_t</a> pt=RTP_PAYLOAD_EMPTY) const</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="rtp_h.html#a67">rtp_payload_t</a>&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a15">getPayloadType</a> (const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp;src) const</td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="class_RTPSource.html">RTPSource</a>&amp;&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a16">getSource</a> (uint32 ssrc) const</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a17">setTypeOfService</a> (<a class="el" href="rtp_h.html#a70">type_of_service_t</a> tos)</td></tr>
<tr><td nowrap align=right valign=top>size_t&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a18">setPartial</a> (uint32 timestamp, unsigned char *data, size_t offset, size_t max)</td></tr>
<tr><td nowrap align=right valign=top>size_t&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a19">getPartial</a> (uint32 timestamp, unsigned char *data, size_t offset, size_t max)</td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a20">isActive</a> (void) const</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a21">setTimeout</a> (<a class="el" href="rtp_h.html#a1">microtimeout_t</a> t)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a22">setExpired</a> (<a class="el" href="rtp_h.html#a1">microtimeout_t</a> t)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a23">setGlobalKitchenDuration</a> (<a class="el" href="rtp_h.html#a1">microtimeout_t</a> t)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a24">setGlobalKitchenSize</a> (uint32 s)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="rtp_h.html#a1">microtimeout_t</a>&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a25">getGlobalKitchenDuration</a> () const</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a26">setEndToEndDelay</a> (<a class="el" href="rtp_h.html#a1">microtimeout_t</a> t)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a27">setSegmentSize</a> (size_t size)</td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a28">isComplete</a> (void)</td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a29">isMarked</a> (void)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a30">setTimeclock</a> (void)</td></tr>
<tr><td nowrap align=right valign=top>timeout_t&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a31">getTimeclock</a> (void)</td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a32">RTPSendCount</a> () const</td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#a33">RTPOctetCount</a> () const</td></tr>
<tr><td colspan=2><br><h2>Protected Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b0">RTPQueue</a> (int pri, uint32 size=7)</td></tr>
<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b1">RTPQueue</a> (uint32 ssrc, int pri, uint32 size=7)</td></tr>
<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b2">~RTPQueue</a> ()</td></tr>
<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b3">RTCPService</a> (<a class="el" href="rtp_h.html#a1">microtimeout_t</a> &amp;wait)</td></tr>
<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b4">Bye</a> (const char *const reason)</td></tr>
<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b5">timerTick</a> (void)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="rtp_h.html#a1">microtimeout_t</a>&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b6">getTimeout</a> (void)</td></tr>
<tr><td nowrap align=right valign=top>virtual bool&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b7">isPendingData</a> (<a class="el" href="rtp_h.html#a1">microtimeout_t</a> <a class="el" href="class_RTPQueue.html#o20">timeout</a>)=0</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b8">Purge</a> (<a class="el" href="rtp_h.html#a71">rtp_purge_t</a> flag)</td></tr>
<tr><td nowrap align=right valign=top>size_t&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b9">sendPacket</a> (void)</td></tr>
<tr><td nowrap align=right valign=top>virtual size_t&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b10">writeData</a> (const unsigned char *const packet, size_t len)=0</td></tr>
<tr><td nowrap align=right valign=top>size_t&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b11">recvPacket</a> (void)</td></tr>
<tr><td nowrap align=right valign=top>virtual size_t&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b12">readData</a> (unsigned char *buffer, size_t len)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual bool&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b13">gotPacket</a> (<a class="el" href="class_IncomingRTPPkt.html">IncomingRTPPkt</a> *packet)</td></tr>
<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b14">expireSend</a> (<a class="el" href="class_OutgoingRTPPkt.html">OutgoingRTPPkt</a> *packet)</td></tr>
<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b15">expireRecv</a> (<a class="el" href="class_IncomingRTPPkt.html">IncomingRTPPkt</a> *packet)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="class_IncomingRTPPkt.html">IncomingRTPPkt</a>*&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b16">getWaiting</a> (uint32 timestamp, const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp;src=<a class="el" href="class_MembershipControl.html#q0">dummysource</a>)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b17">endQueue</a> ()</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#b18">Final</a> ()</td></tr>
<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
<tr><td nowrap align=right valign=top>volatile bool&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#n0">active</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="class_RTPSource.html">RTPSource</a>*&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#n1">localsrc</a></td></tr>
<tr><td nowrap align=right valign=top>struct timeval&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#n2">initial_time</a></td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#n3">current_rate</a></td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#n4">initial_timestamp</a></td></tr>
<tr><td colspan=2><br><h2>Private Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#c0">RTPQueue</a> (const RTPQueue &amp;o)</td></tr>
<tr><td nowrap align=right valign=top>RTPQueue&amp;&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#c1">operator=</a> (const RTPQueue &amp;o)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#c2">initQueue</a> (uint32 localssrc)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#c3">Run</a> (void)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#c4">RTPService</a> (<a class="el" href="rtp_h.html#a1">microtimeout_t</a> &amp;wait)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#c5">insertRecvPacket</a> (<a class="el" href="class_IncomingRTPPkt.html">IncomingRTPPkt</a> *packet)</td></tr>
<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
<tr><td nowrap align=right valign=top>friend&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o0">IncomingRTPPkt</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="rtp_h.html#a70">type_of_service_t</a>&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o1">type_of_service</a></td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o2">sessionbw</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="rtp_h.html#a72">rtp_cast_t</a>&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o3">sessioncast</a></td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o4">sendcount</a></td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o5">octetcount</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="class_OutgoingRTPPkt.html">OutgoingRTPPkt</a>*&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o6">sendfirst</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="class_OutgoingRTPPkt.html">OutgoingRTPPkt</a> *&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o7">sendlast</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="class_IncomingRTPPkt.html">IncomingRTPPkt</a>*&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o8">recvfirst</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="class_IncomingRTPPkt.html">IncomingRTPPkt</a> *&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o9">recvlast</a></td></tr>
<tr><td nowrap align=right valign=top>Mutex&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o10">sendlock</a></td></tr>
<tr><td nowrap align=right valign=top>Mutex&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o11">recvlock</a></td></tr>
<tr><td nowrap align=right valign=top>uint16&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o12">sendseq</a></td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o13">sendsources</a> [16]</td></tr>
<tr><td nowrap align=right valign=top>unsigned&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o14">sendcc</a></td></tr>
<tr><td nowrap align=right valign=top>unsigned&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o15">segment</a></td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o16">marked</a></td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o17">complete</a></td></tr>
<tr><td nowrap align=right valign=top>TimerPort&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o18">timeclock</a></td></tr>
<tr><td nowrap align=right valign=top>struct timeval&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o19">overflow_time</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="rtp_h.html#a1">microtimeout_t</a>&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o20">timeout</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="rtp_h.html#a1">microtimeout_t</a>&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o21">expired</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="rtp_h.html#a1">microtimeout_t</a>&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o22">e2edelay</a></td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#o23">kitchensize</a></td></tr>
<tr><td colspan=2><br><h2>Static Private Attributes</h2></td></tr>
<tr><td nowrap align=right valign=top>const size_t&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#r0">RECVBUFFER_SIZE</a> = 8192</td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_RTPQueue.html#r1">payload_rate</a> [96]</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
RTP protocol queue handler.
<p>
A thread serviced packet queue handler for building different kinds of RTP protocol systems. The queue manages both incoming and outgoing RTP packets, as well as synchronization and transmission/reception timers. By making the queue handler a seperate base class it becomes possible to define RTP classes for RTP profiles and sessions of different types.
<p>
Outgoing packets are sent via the <a class="el" href="class_RTPQueue.html#a4">RTPQueue::putPacket</a> method.
<p>
Incoming packets can be retrieved via:  <ul>
 <li>the <a class="el" href="class_RTPQueue.html#a8">RTPQueue::getPacket</a> methods, that provide "raw" access to  the packets in the queue.  <li>the <a class="el" href="class_RTPQueue.html#a5">RTPQueue::getCookedPacket</a> method, that provides "cooked" access.  </ul>

<p>
<dl compact><dt>
<b>Author(s): </b><dd>
 David Sugar &lt;<a href="mailto:dyfet@ostel.com">dyfet@ostel.com</a>&gt; </dl>
<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l00805">805</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="b0" doxytag="RTPQueue::RTPQueue"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
RTPQueue::RTPQueue (
          </b></td>
          <td valign="bottom"><b>
int <em>pri</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
uint32 <em>size</em> = 7&nbsp;)<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Constructor. This will generate a random application SSRC identifier.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>pri</em>
&nbsp;</td><td>
 service thread base priority relative to its parent </td></tr>
<tr><td valign=top><em>size</em>
&nbsp;</td><td>
 an estimation of the number of participants in the  session </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="b1" doxytag="RTPQueue::RTPQueue"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
RTPQueue::RTPQueue (
          </b></td>
          <td valign="bottom"><b>
uint32 <em>ssrc</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
int <em>pri</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
uint32 <em>size</em> = 7&nbsp;)<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Using this constructor you can start a session with the given ssrc, instead of the usual randomly generated one. This is necessary when you need to initiate several sessions having the same SSRC identifier, for instance, to implement layered encoding, in which case each layer is managed through a different session but all sessions share the same SSRC identifier.
<p>
<dl compact><dt>
<b>Warning: </b><dd>
 This doesn't seem to be a good solution</dl><dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>ssrc</em>
&nbsp;</td><td>
 Synchronization SouRCe identifier for this session </td></tr>
<tr><td valign=top><em>pri</em>
&nbsp;</td><td>
 service thread base priority relative to it's parent </td></tr>
<tr><td valign=top><em>size</em>
&nbsp;</td><td>
 an estimation of the number of participants in the  session </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="b2" doxytag="RTPQueue::~RTPQueue"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
RTPQueue::~RTPQueue (
          </b></td>
          <td valign="bottom"><b>
)<code> [protected, virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
The queue destructor flush the queue and stop all services.     </td>
  </tr>
</table>
<a name="c0" doxytag="RTPQueue::RTPQueue"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
RTPQueue::RTPQueue (
          </b></td>
          <td valign="bottom"><b>
const RTPQueue &amp; <em>o</em>&nbsp;)<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="b4" doxytag="RTPQueue::Bye"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::Bye (
          </b></td>
          <td valign="bottom"><b>
const char *const <em>reason</em>&nbsp;)<code> [inline, protected, virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
A plugin point for posting of BYE messages. 
<p>
Reimplemented in <a class="el" href="class_QueueRTCPManager.html#b4">QueueRTCPManager</a>.
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01350">1350</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="b18" doxytag="RTPQueue::Final"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::Final (
          </b></td>
          <td valign="bottom"><b>
)<code> [inline, protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
The queue removes itself when the service thread is detached 
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01481">1481</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="b8" doxytag="RTPQueue::Purge"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::Purge (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="rtp_h.html#a71">rtp_purge_t</a> <em>flag</em>&nbsp;)<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This function is used to purge the queue(s). Depending on the flag value, it purges the packets waiting to be sent, waiting to be picked up from the reception queue, or both.     </td>
  </tr>
</table>
<a name="b3" doxytag="RTPQueue::RTCPService"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::RTCPService (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="rtp_h.html#a1">microtimeout_t</a> &amp; <em>wait</em>&nbsp;)<code> [inline, protected, virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
A plugin point for a scheduler of RTCP packets. The default implementation in RTPQueue is to do nothing.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>wait</em>
&nbsp;</td><td>
 queue scheduling timeout </td></tr>
</table>
</dl>
<p>
Reimplemented in <a class="el" href="class_QueueRTCPManager.html#b3">QueueRTCPManager</a>.
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01343">1343</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="a33" doxytag="RTPQueue::RTPOctetCount"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint32 RTPQueue::RTPOctetCount (
          </b></td>
          <td valign="bottom"><b>
) const<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the total number of octets (payload only) sent so far.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 total number of octets sent as payload in RTP packets. </dl>
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01298">1298</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="a32" doxytag="RTPQueue::RTPSendCount"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint32 RTPQueue::RTPSendCount (
          </b></td>
          <td valign="bottom"><b>
) const<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the total number of packets sent so far
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 total number of packets sent </dl>
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01288">1288</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="c4" doxytag="RTPQueue::RTPService"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::RTPService (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="rtp_h.html#a1">microtimeout_t</a> &amp; <em>wait</em>&nbsp;)<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Transmission and reception of RTP packets.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>wait</em>
&nbsp;</td><td>
 scheduling timeout </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="c3" doxytag="RTPQueue::Run"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::Run (
          </b></td>
          <td valign="bottom"><b>
void&nbsp;)<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Runnable method for the service thread.     </td>
  </tr>
</table>
<a name="b17" doxytag="RTPQueue::endQueue"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::endQueue (
          </b></td>
          <td valign="bottom"><b>
)<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This method ends the queue and service threads.     </td>
  </tr>
</table>
<a name="b15" doxytag="RTPQueue::expireRecv"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::expireRecv (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="class_IncomingRTPPkt.html">IncomingRTPPkt</a> * <em>packet</em>&nbsp;)<code> [inline, protected, virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
A hook to filter packets in the receive queue that are being expired.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>packet</em>
&nbsp;</td><td>
 expired from the recv queue. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01457">1457</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="b14" doxytag="RTPQueue::expireSend"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::expireSend (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="class_OutgoingRTPPkt.html">OutgoingRTPPkt</a> * <em>packet</em>&nbsp;)<code> [inline, protected, virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
A hook to filter packets being sent that have been expired.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>packet</em>
&nbsp;</td><td>
 expired from the send queue. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01448">1448</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="a5" doxytag="RTPQueue::getCookedPacket"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const <a class="el" href="class_RTPData.html">RTPData</a> &amp; RTPQueue::getCookedPacket (
          </b></td>
          <td valign="bottom"><b>
const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp; <em>src</em> = <a class="el" href="class_MembershipControl.html#q0">dummysource</a>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Attempt to get a cooked packet. If available, thid method will retrieve the first cooked packet. A packet is said to be cooked if: <ol>
 <li>There is no disorder or lost between the last retrieved  packet an the current packet.  <li>There is disorder or lost, but the queue has reached its  maximun size.  </ol>

<p>
Therefore, cooking means recomposing a corrupted stream -waiting for the disordered packet, regenerating it (if FEC is enabled) or asking for retransmission- whenever it is possible.
<p>
If the queue has not yet reached its maximun size (that can be set with RTPQueue::setKitchenSize), ccRTP will try to cook the packets before allowing the application to pick them up. Note that if there are more packets than the maximun, they will not be thrown away.
<p>
In order to accomplish this task, at the beginning no packet will be released until the queue reaches the kitchen size (this will provide a buffer to ccRTP where to cook the packets). Then, provided that there is no disorder, ccRTP will release every packet when asked (note that usual applications will try to retrieve packets, broadly speaking, at the same rate they are received, so the kitchen will remain the same (maximun) size if there is no lost).
<p>
If the newest packet (the one with the minor timestamp) in the queue is disordered, ccRTP will not release it until the kitchen reaches at least it maximun size. When the maximun size is reached, if disorder could not be fixed, ccRTP will then release the packet. Thus, unrepairable disorder implies the queue will stop providing packets for a while and then provide a disordered packet.
<p>
If a lost packet arrives after newer packets have been retrieved, it will be silently discarded.
<p>
Summary:
<p>
If the next packet is ordered, it will be released wheter or not the kitchen is full.
<p>
If the next packet is disordered, it will be released only when the kitchen has at least its maximun size.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>src</em>
&nbsp;</td><td>
 optional source selector. </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 the block of data contained in the first "cooked" packet. </dl><dl compact><dt>
<b>See also: </b><dd>
 RTPQueue::setKitchenSize ,  <a class="el" href="class_RTPQueue.html#a2">RTPQueue::isCookedWaiting</a> </dl>    </td>
  </tr>
</table>
<a name="a11" doxytag="RTPQueue::getCurrentTimestamp"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint32 RTPQueue::getCurrentTimestamp (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="rtp_h.html#a67">rtp_payload_t</a> <em>pt</em>&nbsp;) const
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the timestamp for a packet whose payload sampling instant corresponds to the current system time.
<p>
The timestamp applications should provide for each packet represents the sampling instant of its payload and should not be a reading of the system clock. Nevertheless, the internal operation of the RTP stack relies on the accuracy of the provided timestamp, since several computations assume that there is a certain degree of correspondence between the timestamp and the system clock.
<p>
It is recommended that applications use this method in order to <em>periodically adjust the RTP timestamp</em>.
<p>
In particular, it is advisable getting the timestamp corresponding to the first sampling instant or any instant after a period of inactivity through a call to this method.
<p>
Applications should use the nominal sampling or any other value provided by the coder in order to compute the next timestamps with minimum computational requirement.
<p>
For instance, an application using an RTP profile that specifies a fixed sampling rate of 8 Khz with eight bits per sample, continuously transmitting audio blocks 80 octets long, would transmit 100 packets every second. Every packet would carry a timestamp 80 units greater than the previous one. So, the first timestamp would be obtained from this method, whereas the following ones would be computed adding 80 every time. Also the timestamp should be increased for every block whether it is put in the queue or dropped.
<p>
The aforementioned increment can be obtained from the <a class="el" href="class_RTPQueue.html#a12">RTPQueue::getTimestampIncrement</a>() method rather than computing it by hand in the application.
<p>
<dl compact><dt>
<b>Note: </b><dd>
 Frame based applications must follow a specific timestamping method, probably specified in a profile.
<p>
</dl><dl compact><dt>
<b>Note: </b><dd>
 You should take into account that by default ccRTP assumes that the application begins sampling at the queue creation time. Moreover, the first sampling instant is assigned a "user visible" timestamp of 0, although the RTP stack will then add internally a ramdom offset unknown to the application. That is to say, the application may count samples from 0 in order to get the timestamp for the next packet, provided that the first sampling instant is the same as the queue creation time. Nevertheless, this simpler way of starting will not be as accurate as it would be if the application got at least the first timestamp through getCurrentTimestamp. <em>We provide this option since ccRTP interface is evolving, but we admit that it is ugly, we could remove this option or even replace uint32 timestamps with a restrictively regulated object; suggestions are gladly welcomed</em></dl><dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>pt</em>
&nbsp;</td><td>
 payload type of the packets sent. Determines the timestamp increasing rate. </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="a7" doxytag="RTPQueue::getFirstSequence"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint16 RTPQueue::getFirstSequence (
          </b></td>
          <td valign="bottom"><b>
const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp; <em>src</em> = <a class="el" href="class_MembershipControl.html#q0">dummysource</a>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the sequence id of the first packet waiting.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 sequence id of first packet. </dl><dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>src</em>
&nbsp;</td><td>
 optional source selector. </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="a6" doxytag="RTPQueue::getFirstTimestamp"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint32 RTPQueue::getFirstTimestamp (
          </b></td>
          <td valign="bottom"><b>
const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp; <em>src</em> = <a class="el" href="class_MembershipControl.html#q0">dummysource</a>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get timestamp of first packet waiting in the queue.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>src</em>
&nbsp;</td><td>
 optional source selector. </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 timestamp of first arrival packet. </dl><dl compact><dt>
<b>Examples: </b><dd>
<a class="el" href="rtpduphello_cpp-example.html#a8">rtpduphello.cpp</a>.</dl>    </td>
  </tr>
</table>
<a name="a25" doxytag="RTPQueue::getGlobalKitchenDuration"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="rtp_h.html#a1">microtimeout_t</a> RTPQueue::getGlobalKitchenDuration (
          </b></td>
          <td valign="bottom"><b>
) const<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the current global kitchen size. Note that the kitchen size can be modified individually for every source, so it is not guaranteed that this is the current kitchen for all sources.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 global kitchen size, in microseconds </dl>
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01210">1210</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="a0" doxytag="RTPQueue::getLocalInfo"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp; RTPQueue::getLocalInfo (
          </b></td>
          <td valign="bottom"><b>
) const<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the application description.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 The <a class="el" href="class_RTPSource.html">RTPSource</a> object describing the local application </dl>
<p>
Definition at line <a class="el" href="rtp_h-source.html#l00814">814</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="a9" doxytag="RTPQueue::getPacket"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
size_t RTPQueue::getPacket (
          </b></td>
          <td valign="bottom"><b>
uint32 <em>stamp</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
unsigned char * <em>data</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
size_t <em>max</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp; <em>src</em> = <a class="el" href="class_MembershipControl.html#q0">dummysource</a>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Retreive data from a specific timestamped packet if such a packet is currently available in the receive buffer.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>timestamp</em>
&nbsp;</td><td>
 of packet desired. </td></tr>
<tr><td valign=top><em>data</em>
&nbsp;</td><td>
 buffer to copy into. </td></tr>
<tr><td valign=top><em>maximum</em>
&nbsp;</td><td>
 data size. </td></tr>
<tr><td valign=top><em>src</em>
&nbsp;</td><td>
 optional source selector </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 number of packet data bytes retrieved. </dl><dl compact><dt>
<b>Return values: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>0</em>
&nbsp;</td><td>
 if there is no such packet. </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="a8" doxytag="RTPQueue::getPacket"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const <a class="el" href="class_RTPData.html">RTPData</a> &amp; RTPQueue::getPacket (
          </b></td>
          <td valign="bottom"><b>
uint32 <em>stamp</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp; <em>src</em> = <a class="el" href="class_MembershipControl.html#q0">dummysource</a>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Retreive data from a specific timestamped packet if such a packet is currently available in the receive buffer.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>src</em>
&nbsp;</td><td>
 optional source selector. </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 data retrieved from the reception buffer. </dl><dl compact><dt>
<b>Examples: </b><dd>
<a class="el" href="rtpduphello_cpp-example.html#a7">rtpduphello.cpp</a>.</dl>    </td>
  </tr>
</table>
<a name="a19" doxytag="RTPQueue::getPartial"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
size_t RTPQueue::getPartial (
          </b></td>
          <td valign="bottom"><b>
uint32 <em>timestamp</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
unsigned char * <em>data</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
size_t <em>offset</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
size_t <em>max</em>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get partial data from a packet. This is often used to support oddball hardware that has unusual or non-standard codec buffering intervals.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 number of packet data bytes retrieved. </dl><dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>timestamp</em>
&nbsp;</td><td>
 of packet desired. </td></tr>
<tr><td valign=top><em>data</em>
&nbsp;</td><td>
 buffer to copy into. </td></tr>
<tr><td valign=top><em>offset</em>
&nbsp;</td><td>
 to copy from. </td></tr>
<tr><td valign=top><em>maximum</em>
&nbsp;</td><td>
 data size. </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="a15" doxytag="RTPQueue::getPayloadType"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="rtp_h.html#a67">rtp_payload_t</a> RTPQueue::getPayloadType (
          </b></td>
          <td valign="bottom"><b>
const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp; <em>src</em>&nbsp;) const
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the payload type of the first available packet<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>optional</em>
&nbsp;</td><td>
 source selector </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 payload type of the first available packet </dl>    </td>
  </tr>
</table>
<a name="a10" doxytag="RTPQueue::getPayloadType"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="rtp_h.html#a67">rtp_payload_t</a> RTPQueue::getPayloadType (
          </b></td>
          <td valign="bottom"><b>
uint32 <em>timestamp</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp; <em>src</em> = <a class="el" href="class_MembershipControl.html#q0">dummysource</a>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the payload type of a specific packet by timestamp.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>timestamp</em>
&nbsp;</td><td>
 to find. </td></tr>
<tr><td valign=top><em>src</em>
&nbsp;</td><td>
 optional source selector </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 payload of specified packet if found. </dl>    </td>
  </tr>
</table>
<a name="a14" doxytag="RTPQueue::getRate"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint32 RTPQueue::getRate (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="rtp_h.html#a67">rtp_payload_t</a> <em>pt</em> = RTP_PAYLOAD_EMPTY&nbsp;) const
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the transmission rate for a payload type. Note that for some payload types, the transmission rate corresponds to the timestamp rate, but this is not true for all payload types.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 transmission rate corresponding to the specified payload type. If no payload type is specified, returns the timestamp rate corresponding to the first available packet. </dl><dl compact><dt>
<b><a class="el" href="todo.html#_todo000005">Todo: </a></b><dd>
 complete implementation </dl> 
<p>
Referenced by <a class="el" href="rtp_h-source.html#l01210">getGlobalKitchenDuration</a>().    </td>
  </tr>
</table>
<a name="a16" doxytag="RTPQueue::getSource"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp; RTPQueue::getSource (
          </b></td>
          <td valign="bottom"><b>
uint32 <em>ssrc</em>&nbsp;) const<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the representation of a session participant by its Synchronization SouRCe identifier.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>ssrc</em>
&nbsp;</td><td>
 an SSRC identifier
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 a description of the source identified by ssrc </dl>
<p>
Reimplemented from <a class="el" href="class_MembershipControl.html#a0">MembershipControl</a>.
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01095">1095</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="a31" doxytag="RTPQueue::getTimeclock"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
timeout_t RTPQueue::getTimeclock (
          </b></td>
          <td valign="bottom"><b>
void&nbsp;)<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the packet timeclock for synchronizing timestamps.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 runtime in milliseconds since last set. </dl>
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01279">1279</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="b6" doxytag="RTPQueue::getTimeout"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="rtp_h.html#a1">microtimeout_t</a> RTPQueue::getTimeout (
          </b></td>
          <td valign="bottom"><b>
void&nbsp;)<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This computes the timeout period for scheduling transmission of the next packet at the "head" of the send buffer. If no packets are waiting, a default timeout is used. This actually forms the "isPending()" timeout of the rtp receiver in the service thread.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 timeout until next packet is scheduled to send. </dl>    </td>
  </tr>
</table>
<a name="a12" doxytag="RTPQueue::getTimestampIncrement"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint32 RTPQueue::getTimestampIncrement (
          </b></td>
          <td valign="bottom"><b>
size_t <em>packet_size</em>&nbsp;) const
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
If your application uses a fixed sampling rate and a fixed payload format, given the size of the next packet to be sent, this method provides the timestamp increment for the next packet.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>packet_size</em>
&nbsp;</td><td>
 the size of the next packet to be sent </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 the timestamp increment for the next packet </dl>    </td>
  </tr>
</table>
<a name="b16" doxytag="RTPQueue::getWaiting"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="class_IncomingRTPPkt.html">IncomingRTPPkt</a> * RTPQueue::getWaiting (
          </b></td>
          <td valign="bottom"><b>
uint32 <em>timestamp</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp; <em>src</em> = <a class="el" href="class_MembershipControl.html#q0">dummysource</a>&nbsp;)<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This is used to fetch a packet in the receive queue and to expire packets older than the current timestamp.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 packet buffer object for current timestamp if found. </dl><dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>timestamp</em>
&nbsp;</td><td>
 timestamp requested. </td></tr>
<tr><td valign=top><em>src</em>
&nbsp;</td><td>
 optional source selector </td></tr>
</table>
</dl><dl compact><dt>
<b>Note: </b><dd>
 if found, the packet is removed from the reception queue </dl>    </td>
  </tr>
</table>
<a name="b13" doxytag="RTPQueue::gotPacket"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
bool RTPQueue::gotPacket (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="class_IncomingRTPPkt.html">IncomingRTPPkt</a> * <em>packet</em>&nbsp;)<code> [inline, protected, virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
A virtual function to support parsing of arriving packets to determine if they should be kept in the queue and to dispatch events.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 true if packet is kept. </dl><dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>packet</em>
&nbsp;</td><td>
 returned. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01440">1440</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="c2" doxytag="RTPQueue::initQueue"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::initQueue (
          </b></td>
          <td valign="bottom"><b>
uint32 <em>localssrc</em>&nbsp;)<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Global queue initialization.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>localssrc</em>
&nbsp;</td><td>
 local 32-bit SSRC identifier </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="c5" doxytag="RTPQueue::insertRecvPacket"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::insertRecvPacket (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="class_IncomingRTPPkt.html">IncomingRTPPkt</a> * <em>packet</em>&nbsp;)<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Insert a just received packet in the queue (both general and source specific queues). If the packet was already in the queue (same SSRC and sequence number), it is not inserted but deleted.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>pkt</em>
&nbsp;</td><td>
 a packet just received and validated </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="a20" doxytag="RTPQueue::isActive"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
bool RTPQueue::isActive (
          </b></td>
          <td valign="bottom"><b>
void&nbsp;) const<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get active connection state flag.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 true if connection "active". </dl><dl compact><dt>
<b>Examples: </b><dd>
<a class="el" href="audiorx_cpp-example.html#a4">audiorx.cpp</a>, <a class="el" href="audiotx_cpp-example.html#a4">audiotx.cpp</a>, <a class="el" href="rtpduphello_cpp-example.html#a5">rtpduphello.cpp</a>, and <a class="el" href="rtphello_cpp-example.html#a4">rtphello.cpp</a>.</dl>
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01147">1147</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="a28" doxytag="RTPQueue::isComplete"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
bool RTPQueue::isComplete (
          </b></td>
          <td valign="bottom"><b>
void&nbsp;)<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Is last packet processed "complete" or are sequences missing?
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 true if complete.
<p>
</dl><dl compact><dt>
<b><a class="el" href="todo.html#_todo000007">Todo: </a></b><dd>
 maybe, with the new <a class="el" href="class_RTPData.html">RTPData</a>, this is unnecessary. Could be useful for an application that is trying to figure out wheter to start processing data or wait for misordered packets. </dl> 
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01251">1251</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="a2" doxytag="RTPQueue::isCookedWaiting"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
bool RTPQueue::isCookedWaiting (
          </b></td>
          <td valign="bottom"><b>
void&nbsp;) const
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Determine if cooked packets are waiting in the reception queue. Note that <a class="el" href="class_RTPQueue.html#a2">isCookedWaiting</a>() == true implies <a class="el" href="class_RTPQueue.html#a1">isWaiting</a>() == true.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 true if there are cooked packets waiting. </dl><dl compact><dt>
<b><a class="el" href="todo.html#_todo000004">Todo: </a></b><dd>
 implement it </dl>     </td>
  </tr>
</table>
<a name="a29" doxytag="RTPQueue::isMarked"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
bool RTPQueue::isMarked (
          </b></td>
          <td valign="bottom"><b>
void&nbsp;)<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Is last packet processed "marked" (used to signal end on multi-sequence sends).
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 true if marked.
<p>
</dl><dl compact><dt>
<b><a class="el" href="todo.html#_todo000008">Todo: </a></b><dd>
 maybe, with the new <a class="el" href="class_RTPData.html">RTPData</a>, this is unnecessary. </dl> 
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01263">1263</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="b7" doxytag="RTPQueue::isPendingData"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
bool RTPQueue::isPendingData (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="rtp_h.html#a1">microtimeout_t</a> <em>timeout</em>&nbsp;)<code> [protected, pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This function is used to check for and schedule against arriving packets based on the derived connection type.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 true if packet waiting for processing. </dl><dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>number</em>
&nbsp;</td><td>
 of microseconds to wait. </td></tr>
</table>
</dl>
<p>
Reimplemented in <a class="el" href="class_RTPDuplex.html#b0">RTPDuplex</a>.    </td>
  </tr>
</table>
<a name="a3" doxytag="RTPQueue::isSending"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
bool RTPQueue::isSending (
          </b></td>
          <td valign="bottom"><b>
void&nbsp;) const
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Determine if outgoing packets are waiting to send.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 true if there are packets waiting to be send. </dl>    </td>
  </tr>
</table>
<a name="a1" doxytag="RTPQueue::isWaiting"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
bool RTPQueue::isWaiting (
          </b></td>
          <td valign="bottom"><b>
const <a class="el" href="class_RTPSource.html">RTPSource</a> &amp; <em>src</em> = <a class="el" href="class_MembershipControl.html#q0">dummysource</a>&nbsp;) const
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Determine if packets are waiting in the reception queue.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>src</em>
&nbsp;</td><td>
 optional source selector. </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
 true if packets are waiting. </dl>    </td>
  </tr>
</table>
<a name="c1" doxytag="RTPQueue::operator="></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
RTPQueue&amp; RTPQueue::operator= (
          </b></td>
          <td valign="bottom"><b>
const RTPQueue &amp; <em>o</em>&nbsp;)<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a name="a4" doxytag="RTPQueue::putPacket"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::putPacket (
          </b></td>
          <td valign="bottom"><b>
uint32 <em>stamp</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
<a class="el" href="rtp_h.html#a67">rtp_payload_t</a> <em>payload</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
unsigned char * <em>data</em> = NULL, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
size_t <em>len</em> = 0, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
bool <em>mark</em> = false&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This is used to create a data packet in the send queue.  Sometimes a "NULL" or empty packet will be used instead, and these are known as "silent" packets. "Silent" packets are used simply to "push" the scheduler along more accurately by giving the appearence that a next packet is waiting to be sent and to provide a valid timestamp for that packet.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>stamp</em>
&nbsp;</td><td>
 timestamp for expected send time of packet. </td></tr>
<tr><td valign=top><em>payload</em>
&nbsp;</td><td>
 format of this packet. </td></tr>
<tr><td valign=top><em>data</em>
&nbsp;</td><td>
 value or NULL if special "silent" packet. </td></tr>
<tr><td valign=top><em>length</em>
&nbsp;</td><td>
 may be 0 to indicate a default by payload type. </td></tr>
<tr><td valign=top><em>mark</em>
&nbsp;</td><td>
 mark field in the RTP header </td></tr>
</table>
</dl><dl compact><dt>
<b>Examples: </b><dd>
<a class="el" href="rtpduphello_cpp-example.html#a6">rtpduphello.cpp</a>.</dl>    </td>
  </tr>
</table>
<a name="b12" doxytag="RTPQueue::readData"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
size_t RTPQueue::readData (
          </b></td>
          <td valign="bottom"><b>
unsigned char * <em>buffer</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
size_t <em>len</em>&nbsp;)<code> [protected, pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This function performs the physical I/O for reading a packet from the source. It is a virtual that is overriden in the derived class.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 number of bytes read. </dl><dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>packet</em>
&nbsp;</td><td>
 read buffer. </td></tr>
<tr><td valign=top><em>length</em>
&nbsp;</td><td>
 of data to read. </td></tr>
</table>
</dl>
<p>
Reimplemented in <a class="el" href="class_RTPDuplex.html#b2">RTPDuplex</a>.    </td>
  </tr>
</table>
<a name="b11" doxytag="RTPQueue::recvPacket"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
size_t RTPQueue::recvPacket (
          </b></td>
          <td valign="bottom"><b>
void&nbsp;)<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This function is used by the service thread to process the next incoming packet and place it in the receive list.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 number of payload bytes received. &lt;0 if error. </dl>    </td>
  </tr>
</table>
<a name="b9" doxytag="RTPQueue::sendPacket"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
size_t RTPQueue::sendPacket (
          </b></td>
          <td valign="bottom"><b>
void&nbsp;)<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This function is used by the service thread to process the next outgoing packet pending in the sending queue.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 number of bytes sent. 0 if silent, &lt;0 if error. </dl>    </td>
  </tr>
</table>
<a name="a26" doxytag="RTPQueue::setEndToEndDelay"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::setEndToEndDelay (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="rtp_h.html#a1">microtimeout_t</a> <em>t</em>&nbsp;)<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This method sets the maximun end to end delay allowed. If the processing delay plus the trip time for a packet is greater than the end to end delay, the packet is discarded, and the application cannot get it.
<p>
This is a way of setting an upper bound to the end to end delay, computed as the elapsed time between the packet timestamping at the sender side, and the picking of the packet at the receiver side.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>t</em>
&nbsp;</td><td>
 maximum end to end delay allowed. A value of 0 implies there is no limit and is the default </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01228">1228</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="a22" doxytag="RTPQueue::setExpired"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::setExpired (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="rtp_h.html#a1">microtimeout_t</a> <em>t</em>&nbsp;)<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set the "expired" timer for expiring packets pending in the send queue which have gone unsent and are already "too late" to be sent now.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>timeout</em>
&nbsp;</td><td>
 to expire unsent packets in milliseconds. </td></tr>
</table>
</dl><dl compact><dt>
<b>Examples: </b><dd>
<a class="el" href="rtpduphello_cpp-example.html#a3">rtpduphello.cpp</a>.</dl>
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01169">1169</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="a23" doxytag="RTPQueue::setGlobalKitchenDuration"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::setGlobalKitchenDuration (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="rtp_h.html#a1">microtimeout_t</a> <em>t</em>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Specify how much time the incoming packets will be buffered for each and every source. Note that the size is specified in temporal units, thus the internal queue will usually hold as many packets as necessary to fill the specified amount of time. The default size is 0 us.
<p>
If using only the "high level" method for retrieving packets, <a class="el" href="class_RTPQueue.html#a5">RTPQueue::getCookedPacket</a>(), before providing disordered packets to the application, ccRTP will try to cook them. The bigger the specified time, the higher the probability of reordering and recomposing the stream in case of corruption is.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>t</em>
&nbsp;</td><td>
 amount of time the reception buffer fills. 0 means there is no buffer/kitchen and <a class="el" href="class_RTPQueue.html#a5">RTPQueue::getCookedPacket</a> behaves as <a class="el" href="class_RTPQueue.html#a8">RTPQueue::getPacket</a> does.
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>See also: </b><dd>
 <a class="el" href="class_RTPSource.html#a2">RTPSource::setKitchenSize</a>() ,  <a class="el" href="class_RTPQueue.html#a5">RTPQueue::getCookedPacket</a>() ,  <a class="el" href="class_RTPQueue.html#a2">RTPQueue::isCookedWaiting</a>() </dl>    </td>
  </tr>
</table>
<a name="a24" doxytag="RTPQueue::setGlobalKitchenSize"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::setGlobalKitchenSize (
          </b></td>
          <td valign="bottom"><b>
uint32 <em>s</em>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a name="a18" doxytag="RTPQueue::setPartial"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
size_t RTPQueue::setPartial (
          </b></td>
          <td valign="bottom"><b>
uint32 <em>timestamp</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
unsigned char * <em>data</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
size_t <em>offset</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
size_t <em>max</em>&nbsp;)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set partial data for an already queued packet. This is often used for multichannel data.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 number of packet data bytes set. </dl><dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>timestamp</em>
&nbsp;</td><td>
 of packet desired. </td></tr>
<tr><td valign=top><em>data</em>
&nbsp;</td><td>
 buffer to copy from. </td></tr>
<tr><td valign=top><em>offset</em>
&nbsp;</td><td>
 to copy from. </td></tr>
<tr><td valign=top><em>maximum</em>
&nbsp;</td><td>
 data size. </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="a27" doxytag="RTPQueue::setSegmentSize"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::setSegmentSize (
          </b></td>
          <td valign="bottom"><b>
size_t <em>size</em>&nbsp;)<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set maximum packet segment size before fragmenting sends.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>maximum</em>
&nbsp;</td><td>
 packet size. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01237">1237</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="a13" doxytag="RTPQueue::setSessionBandwidth"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::setSessionBandwidth (
          </b></td>
          <td valign="bottom"><b>
uint32 <em>bw</em>&nbsp;)<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Specify the bandwidth of the current session.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>bw</em>
&nbsp;</td><td>
 bandwidth of the current session, in bits/s.
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>See also: </b><dd>
 <a class="el" href="class_QueueRTCPManager.html#a0">QueueRTCPManager::setControlBandwidth</a> </dl>
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01059">1059</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="a30" doxytag="RTPQueue::setTimeclock"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::setTimeclock (
          </b></td>
          <td valign="bottom"><b>
void&nbsp;)<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set the packet timeclock for synchronizing timestamps. 
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01270">1270</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="a21" doxytag="RTPQueue::setTimeout"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::setTimeout (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="rtp_h.html#a1">microtimeout_t</a> <em>t</em>&nbsp;)<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set the default scheduling timeout to use when no data packets are waiting to be sent.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>timeout</em>
&nbsp;</td><td>
 in milliseconds. </td></tr>
</table>
</dl><dl compact><dt>
<b>Examples: </b><dd>
<a class="el" href="rtpduphello_cpp-example.html#a2">rtpduphello.cpp</a>.</dl>
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01157">1157</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="a17" doxytag="RTPQueue::setTypeOfService"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::setTypeOfService (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="rtp_h.html#a70">type_of_service_t</a> <em>tos</em>&nbsp;)<code> [inline]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Specify the kind of service the application expects to use.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>tos</em>
&nbsp;</td><td>
 type of service the application expects to use
<p>
</td></tr>
</table>
</dl><dl compact><dt>
<b>Note: </b><dd>
 If enhanced service is specified but packet loss is high (the requested service does not appear to actually be delivered) ccRTP defaults to best-effort suitable behaviour: guarantee fair competition with TCP.
<p>
</dl><dl compact><dt>
<b><a class="el" href="todo.html#_todo000006">Todo: </a></b><dd>
 Implement fair competition with tcp </dl> 
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01111">1111</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="b5" doxytag="RTPQueue::timerTick"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void RTPQueue::timerTick (
          </b></td>
          <td valign="bottom"><b>
void&nbsp;)<code> [inline, protected, virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
A plugin point for timer tick driven events. 
<p>
Definition at line <a class="el" href="rtp_h-source.html#l01356">1356</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="b10" doxytag="RTPQueue::writeData"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
size_t RTPQueue::writeData (
          </b></td>
          <td valign="bottom"><b>
const unsigned char *const <em>buffer</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
size_t <em>len</em>&nbsp;)<code> [protected, pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This function performs the physical I/O for writing a packet to the destination. It is a virtual that is overriden in the derived class.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
 number of bytes sent. </dl><dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>packet</em>
&nbsp;</td><td>
 to write. </td></tr>
<tr><td valign=top><em>length</em>
&nbsp;</td><td>
 of data to write. </td></tr>
</table>
</dl>
<p>
Reimplemented in <a class="el" href="class_RTPDuplex.html#b1">RTPDuplex</a>.    </td>
  </tr>
</table>
<hr><h2>Member Data Documentation</h2>
<a name="o0" doxytag="RTPQueue::IncomingRTPPkt"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
IncomingRTPPkt<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01495">1495</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="r0" doxytag="RTPQueue::RECVBUFFER_SIZE"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const size_t RTPQueue::RECVBUFFER_SIZE = 8192<code> [static, private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01541">1541</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="n0" doxytag="RTPQueue::active"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
volatile bool RTPQueue::active<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01485">1485</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o17" doxytag="RTPQueue::complete"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
bool RTPQueue::complete<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01562">1562</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="n3" doxytag="RTPQueue::current_rate"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint32 RTPQueue::current_rate<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01490">1490</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o22" doxytag="RTPQueue::e2edelay"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="rtp_h.html#a1">microtimeout_t</a> RTPQueue::e2edelay<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01577">1577</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o21" doxytag="RTPQueue::expired"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="rtp_h.html#a1">microtimeout_t</a> RTPQueue::expired<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01573">1573</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="n2" doxytag="RTPQueue::initial_time"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
struct timeval RTPQueue::initial_time<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01489">1489</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="n4" doxytag="RTPQueue::initial_timestamp"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint32 RTPQueue::initial_timestamp<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01492">1492</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o23" doxytag="RTPQueue::kitchensize"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint32 RTPQueue::kitchensize<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01580">1580</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="n1" doxytag="RTPQueue::localsrc"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="class_RTPSource.html">RTPSource</a> * RTPQueue::localsrc<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01487">1487</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o16" doxytag="RTPQueue::marked"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
bool RTPQueue::marked<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01560">1560</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o5" doxytag="RTPQueue::octetcount"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint32 RTPQueue::octetcount<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01545">1545</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o19" doxytag="RTPQueue::overflow_time"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
struct timeval RTPQueue::overflow_time<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01568">1568</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="r1" doxytag="RTPQueue::payload_rate"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint32 RTPQueue::payload_rate[96]<code> [static, private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01585">1585</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o8" doxytag="RTPQueue::recvfirst"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="class_IncomingRTPPkt.html">IncomingRTPPkt</a> * RTPQueue::recvfirst<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01549">1549</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o9" doxytag="RTPQueue::recvlast"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="class_IncomingRTPPkt.html">IncomingRTPPkt</a> * RTPQueue::recvlast<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01549">1549</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o11" doxytag="RTPQueue::recvlock"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
Mutex RTPQueue::recvlock<code> [mutable, private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01550">1550</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o15" doxytag="RTPQueue::segment"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
unsigned RTPQueue::segment<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01558">1558</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o14" doxytag="RTPQueue::sendcc"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
unsigned RTPQueue::sendcc<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01556">1556</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o4" doxytag="RTPQueue::sendcount"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint32 RTPQueue::sendcount<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01543">1543</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o6" doxytag="RTPQueue::sendfirst"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="class_OutgoingRTPPkt.html">OutgoingRTPPkt</a> * RTPQueue::sendfirst<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01548">1548</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o7" doxytag="RTPQueue::sendlast"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="class_OutgoingRTPPkt.html">OutgoingRTPPkt</a> * RTPQueue::sendlast<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01548">1548</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o10" doxytag="RTPQueue::sendlock"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
Mutex RTPQueue::sendlock<code> [mutable, private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01550">1550</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o12" doxytag="RTPQueue::sendseq"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint16 RTPQueue::sendseq<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01552">1552</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o13" doxytag="RTPQueue::sendsources"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint32 RTPQueue::sendsources[16]<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01554">1554</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o2" doxytag="RTPQueue::sessionbw"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
uint32 RTPQueue::sessionbw<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01537">1537</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o3" doxytag="RTPQueue::sessioncast"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="rtp_h.html#a72">rtp_cast_t</a> RTPQueue::sessioncast<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01538">1538</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o18" doxytag="RTPQueue::timeclock"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
TimerPort RTPQueue::timeclock<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01564">1564</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o20" doxytag="RTPQueue::timeout"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="rtp_h.html#a1">microtimeout_t</a> RTPQueue::timeout<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01571">1571</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<a name="o1" doxytag="RTPQueue::type_of_service"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="rtp_h.html#a70">type_of_service_t</a> RTPQueue::type_of_service<code> [private]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="rtp_h-source.html#l01536">1536</a> of file <a class="el" href="rtp_h-source.html">rtp.h</a>.    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="rtp_h-source.html">rtp.h</a></ul>
<hr><address><small>Generated at Fri Oct 5 10:28:27 2001 for ccRTP by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.5 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
 &copy;&nbsp;1997-2001</small></address>
</body>
</html>