Sophie

Sophie

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>IncomingRTPPkt class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.10 -->
<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>IncomingRTPPkt  Class Reference</h1>A representation for RTP packets received from other participants. 
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="rtpext_8h-source.html">cc++/rtpext.h</a>&gt;</code>
<p>
<p>Inheritance diagram for IncomingRTPPkt::
<p><center><img src="class_incoming_r_t_p_pkt.gif" usemap="#IncomingRTPPkt_map" border="0"></center>
<map name="IncomingRTPPkt_map">
<area href="class_r_t_p_packet.html" alt="RTPPacket" shape="rect" coords="0,0,102,24">
</map>
<a href="class_incoming_r_t_p_pkt-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>&nbsp;</td><td valign=bottom><a class="el" href="class_incoming_r_t_p_pkt.html#a0">IncomingRTPPkt</a> (<a class="el" href="class_r_t_p_queue.html">RTPQueue</a> &amp;queue, const unsigned char *block, size_t len, struct timeval recvtime)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Build an RTP packet, given the queue it is going to be inserted, its content, length and reception time.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="class_incoming_r_t_p_pkt.html#a1">~IncomingRTPPkt</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Destructor.</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="class_incoming_r_t_p_pkt.html#a2">isHeaderValid</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get validity of this packet.</em> <a href="#a2">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="class_incoming_r_t_p_pkt.html#a3">operator==</a> (const IncomingRTPPkt &amp;p) const</td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="class_incoming_r_t_p_pkt.html#a4">operator!=</a> (const IncomingRTPPkt &amp;p) const</td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_incoming_r_t_p_pkt.html#a5">getSSRC</a> () const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get synchronization source numeric identifier.</em> <a href="#a5">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="class_r_t_p_source.html">RTPSource</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="class_incoming_r_t_p_pkt.html#a6">getSource</a> () const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get an object that provides information about the source of this packet.</em> <a href="#a6">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_incoming_r_t_p_pkt.html#a7">getTimestamp</a> () const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get timestamp of this packet.</em> <a href="#a7">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_incoming_r_t_p_pkt.html#a8">setRecvTimestamp</a> (const timeval &amp;t)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Set the time this packet was received at.</em> <a href="#a8">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>timeval&nbsp;</td><td valign=bottom><a class="el" href="class_incoming_r_t_p_pkt.html#a9">getRecvTimestamp</a> () const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get the time this packet was received at.</em> <a href="#a9">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>uint16&nbsp;</td><td valign=bottom><a class="el" href="class_incoming_r_t_p_pkt.html#a10">getExtUndefined</a> () const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get the first 16 bits (in network order) of the header of the RTP header extension.</em> <a href="#a10">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>uint32&nbsp;</td><td valign=bottom><a class="el" href="class_incoming_r_t_p_pkt.html#a11">getExtSize</a> () const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get the length (in octets) of the data contained in the header extension.</em> <a href="#a11">More...</a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Friends</h2></td></tr>
<tr><td nowrap align=right valign=top>class&nbsp;</td><td valign=bottom><a class="el" href="class_incoming_r_t_p_pkt.html#l0">RTPQueue</a></td></tr>
<tr><td nowrap align=right valign=top>class&nbsp;</td><td valign=bottom><a class="el" href="class_incoming_r_t_p_pkt.html#l1">RTPSource</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A representation for RTP packets received from other participants.
<p>
This class is intented to construct packet objects just after every packet is received by the scheduled queue, so that they will be processed in an understandable and format independent manner inside the stack.
<p>
<dl compact><dt><b>
Author: </b><dd>
Federico Montesino Pouzols &lt;<a href="mailto:p5087@quintero.fie.us.es">p5087@quintero.fie.us.es</a>&gt; </dl>
<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a0" doxytag="IncomingRTPPkt::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 class="md" nowrap valign="top"> IncomingRTPPkt::IncomingRTPPkt </td>
          <td class="md">(&nbsp;</td>
          <td class="md"><a class="el" href="class_r_t_p_queue.html">RTPQueue</a> &amp;</td>
          <td class="mdname">&nbsp; <em>queue</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md">const unsigned char *</td>
          <td class="mdname">&nbsp; <em>block</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md">size_t</td>
          <td class="mdname">&nbsp; <em>len</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md">struct timeval</td>
          <td class="mdname">&nbsp; <em>recvtime</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

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

<p>
Build an RTP packet, given the queue it is going to be inserted, its content, length and reception time.
<p>
This constructor links the packet to its source and records the reception of the packet in the correponding source object. However, this constructor does not assume that the packet will be inserted in the queue. Header check, whose result can be consulted via <a class="el" href="class_incoming_r_t_p_pkt.html#a2">isHeaderValid</a>(), is also  performed.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>queue
</em>&nbsp;</td><td>
queue the packet would be inserted </td></tr>
<tr><td valign=top><em>block
</em>&nbsp;</td><td>
pointer to the buffer the whole packet is stored in </td></tr>
<tr><td valign=top><em>len
</em>&nbsp;</td><td>
length of the whole packet, expressed in octets </td></tr>
<tr><td valign=top><em>recvtime
</em>&nbsp;</td><td>
time the packet has been received at</td></tr>
</table>
</dl><dl compact><dt><b>
Note: </b><dd>
If check fails, the packet is not properly constructed. checking <a class="el" href="class_incoming_r_t_p_pkt.html#a2">isHeaderValid</a>() is recommended  before using a new <a class="el" href="class_r_t_p_packet.html">RTPPacket</a> object. </dl>    </td>
  </tr>
</table>
<a name="a1" doxytag="IncomingRTPPkt::~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 class="md" nowrap valign="top"> IncomingRTPPkt::~IncomingRTPPkt </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"></td>
        </tr>

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

<p>
Destructor.
<p>
    </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="a11" doxytag="IncomingRTPPkt::getExtSize"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> uint32 IncomingRTPPkt::getExtSize </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"> const<code> [inline]</code></td>
        </tr>

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

<p>
Get the length (in octets) of the data contained in the header extension.
<p>
Note that this length does not include the four octets at the beginning of the header extension.
<p>
<dl compact><dt><b>
Returns: </b><dd>
0 if the packet has no header extension, otherwise the length.</dl><dl compact><dt><b>
Note: </b><dd>
0 is a valid value for this field, so <a class="el" href="class_r_t_p_packet.html#a13">RTPPacket::isExtended</a>() should be use. </dl>    </td>
  </tr>
</table>
<a name="a10" doxytag="IncomingRTPPkt::getExtUndefined"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> uint16 IncomingRTPPkt::getExtUndefined </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"> const<code> [inline]</code></td>
        </tr>

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

<p>
Get the first 16 bits (in network order) of the header of the RTP header extension.
<p>
Its meaning is undefined at this level.
<p>
<dl compact><dt><b>
Returns: </b><dd>
0 if the packet has no header extension, otherwise the first 16 bits of the header extension, in network order.</dl><dl compact><dt><b>
Note: </b><dd>
0 could be a valid value for the first 16 bits, in that case <a class="el" href="class_r_t_p_packet.html#a13">RTPPacket::isExtended</a>() should be use. </dl>    </td>
  </tr>
</table>
<a name="a9" doxytag="IncomingRTPPkt::getRecvTimestamp"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> timeval IncomingRTPPkt::getRecvTimestamp </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"> const<code> [inline]</code></td>
        </tr>

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

<p>
Get the time this packet was received at.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>t
</em>&nbsp;</td><td>
structure where to get the time of reception. </td></tr>
</table>
</dl><dl compact><dt><b>
Note: </b><dd>
this has almost nothing to do with the 32-bit timestamp  contained in the packet header. </dl>    </td>
  </tr>
</table>
<a name="a5" doxytag="IncomingRTPPkt::getSSRC"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> uint32 IncomingRTPPkt::getSSRC </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"> const<code> [inline]</code></td>
        </tr>

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

<p>
Get synchronization source numeric identifier.
<p>
<dl compact><dt><b>
Returns: </b><dd>
32-bits Synchronization SouRCe numeric identifier in network order </dl>    </td>
  </tr>
</table>
<a name="a6" doxytag="IncomingRTPPkt::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 class="md" nowrap valign="top"> <a class="el" href="class_r_t_p_source.html">RTPSource</a>&amp; IncomingRTPPkt::getSource </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"> const<code> [inline]</code></td>
        </tr>

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

<p>
Get an object that provides information about the source of this packet.
<p>
<dl compact><dt><b>
Returns: </b><dd>
object representing the source of the packet </dl>    </td>
  </tr>
</table>
<a name="a7" doxytag="IncomingRTPPkt::getTimestamp"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> uint32 IncomingRTPPkt::getTimestamp </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"> const<code> [inline]</code></td>
        </tr>

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

<p>
Get timestamp of this packet.
<p>
The timestamp of incoming packets is filtered so that the timestamp this method provides for the first packet received from every source starts from 0.
<p>
<dl compact><dt><b>
Returns: </b><dd>
32 bit timestamp starting from 0 for each source. </dl>    </td>
  </tr>
</table>
<a name="a2" doxytag="IncomingRTPPkt::isHeaderValid"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> bool IncomingRTPPkt::isHeaderValid </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [inline]</code></td>
        </tr>

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

<p>
Get validity of this packet.
<p>
<dl compact><dt><b>
Returns: </b><dd>
whether the header check performed at construction time ended successfully. </dl>    </td>
  </tr>
</table>
<a name="a4" doxytag="IncomingRTPPkt::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 class="md" nowrap valign="top"> bool IncomingRTPPkt::operator!= </td>
          <td class="md">(&nbsp;</td>
          <td class="md">const IncomingRTPPkt &amp;</td>
          <td class="mdname1">&nbsp; <em>p</em>          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"> const<code> [inline]</code></td>
        </tr>

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

<p>
    </td>
  </tr>
</table>
<a name="a3" doxytag="IncomingRTPPkt::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 class="md" nowrap valign="top"> bool IncomingRTPPkt::operator== </td>
          <td class="md">(&nbsp;</td>
          <td class="md">const IncomingRTPPkt &amp;</td>
          <td class="mdname1">&nbsp; <em>p</em>          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"> const<code> [inline]</code></td>
        </tr>

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

<p>
    </td>
  </tr>
</table>
<a name="a8" doxytag="IncomingRTPPkt::setRecvTimestamp"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void IncomingRTPPkt::setRecvTimestamp </td>
          <td class="md">(&nbsp;</td>
          <td class="md">const timeval &amp;</td>
          <td class="mdname1">&nbsp; <em>t</em>          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [inline]</code></td>
        </tr>

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

<p>
Set the time this packet was received at.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>t
</em>&nbsp;</td><td>
time of reception. </td></tr>
</table>
</dl><dl compact><dt><b>
Note: </b><dd>
this has almost nothing to do with the 32-bit timestamp  contained in the packet header. </dl>    </td>
  </tr>
</table>
<hr><h2>Friends And Related Function Documentation</h2>
<a name="l0" doxytag="IncomingRTPPkt::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 class="md" nowrap valign="top"> friend class RTPQueue<code> [friend]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a name="l1" doxytag="IncomingRTPPkt::RTPSource"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> friend class RTPSource<code> [friend]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="rtpext_8h-source.html">rtpext.h</a></ul>
<hr><address><small>Generated at Sat Jan 5 09:08:54 2002 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.10 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
 &copy;&nbsp;1997-2001</small></address>
</body>
</html>