Sophie

Sophie

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>jrtplib: RTPPacketBuilder Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="jrtplib.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>RTPPacketBuilder Class Reference</h1><!-- doxytag: class="RTPPacketBuilder" --><!-- doxytag: inherits="RTPMemoryObject" -->This class can be used to build RTP packets and is a bit more high-level than the <a class="el" href="classRTPPacket.html" title="Represents an RTP Packet.">RTPPacket</a> class: it generates an SSRC identifier, keeps track of timestamp and sequence number etc.  

<p>
<code>#include &lt;<a class="el" href="rtppacketbuilder_8h_source.html">rtppacketbuilder.h</a>&gt;</code>
<p>
Inherits RTPMemoryObject.
<p>
<div class="dynheader">
Collaboration diagram for RTPPacketBuilder:</div>
<div class="dynsection">
<p><center><img src="classRTPPacketBuilder__coll__graph.png" border="0" usemap="#RTPPacketBuilder__coll__map" alt="Collaboration graph"></center>
<map name="RTPPacketBuilder__coll__map">
<area shape="rect" href="classRTPRandom.html" title="The RTPRandom class can be used to generate random numbers." alt="" coords="5,7,101,33"><area shape="rect" href="classRTPTime.html" title="This class is used to specify wallclock time, delay intervals etc." alt="" coords="125,7,203,33"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classRTPPacketBuilder-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#1cca304b7b33c856451df793d6a256d8">RTPPacketBuilder</a> (<a class="el" href="classRTPMemoryManager.html">RTPMemoryManager</a> *mgr=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs an instance, optionally installing a memory manager.  <a href="#1cca304b7b33c856451df793d6a256d8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#35ef7e6902a2989ea703fd5e6ab24d20">Init</a> (size_t maxpacksize)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes the builder to only allow packets with a size below <code>maxpacksize</code>.  <a href="#35ef7e6902a2989ea703fd5e6ab24d20"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#d632d172cb70292482dce76606e05a63">Destroy</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cleans up the builder.  <a href="#d632d172cb70292482dce76606e05a63"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#a09733d471778f9c5c1bbc996a2da3e6">GetPacketCount</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of packets which have been created with the current SSRC identifier.  <a href="#a09733d471778f9c5c1bbc996a2da3e6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#d6562f0c7d552fcdba3717cb5c33cda3">GetPayloadOctetCount</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of payload octets which have been generated with this SSRC identifier.  <a href="#d6562f0c7d552fcdba3717cb5c33cda3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#dca5aa0b7fb9b2b2a4438700125f3dbc">SetMaximumPacketSize</a> (size_t maxpacksize)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the maximum allowed packet size to <code>maxpacksize</code>.  <a href="#dca5aa0b7fb9b2b2a4438700125f3dbc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#40bd89aa2e7f81dabfa180ac6df9078a">AddCSRC</a> (uint32_t csrc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a CSRC to the CSRC list which will be stored in the RTP packets.  <a href="#40bd89aa2e7f81dabfa180ac6df9078a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#e3c25ffb6177a9ec47c8841926c29123">DeleteCSRC</a> (uint32_t csrc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deletes a CSRC from the list which will be stored in the RTP packets.  <a href="#e3c25ffb6177a9ec47c8841926c29123"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#b6e3deea05e79a38326f667b5203b8d9">ClearCSRCList</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the CSRC list.  <a href="#b6e3deea05e79a38326f667b5203b8d9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#b9d6358047aa6f672934b9970203abe7">BuildPacket</a> (const void *data, size_t len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a packet with payload <code>data</code> and payload length <code>len</code>.  <a href="#b9d6358047aa6f672934b9970203abe7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#30584390b0bd4d09292d1ff6a07a4a9b">BuildPacket</a> (const void *data, size_t len, uint8_t pt, bool mark, uint32_t timestampinc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a packet with payload <code>data</code> and payload length <code>len</code>.  <a href="#30584390b0bd4d09292d1ff6a07a4a9b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#28eee3947cda6e77443af2a1451a0598">BuildPacketEx</a> (const void *data, size_t len, uint16_t hdrextID, const void *hdrextdata, size_t numhdrextwords)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a packet with payload <code>data</code> and payload length <code>len</code>.  <a href="#28eee3947cda6e77443af2a1451a0598"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#c88eb9cfaed02b67cd877e64cdda1e43">BuildPacketEx</a> (const void *data, size_t len, uint8_t pt, bool mark, uint32_t timestampinc, uint16_t hdrextID, const void *hdrextdata, size_t numhdrextwords)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds a packet with payload <code>data</code> and payload length <code>len</code>.  <a href="#c88eb9cfaed02b67cd877e64cdda1e43"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#630309a0e2c31a445fa3b471773406e0">GetPacket</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a pointer to the last built RTP packet data.  <a href="#630309a0e2c31a445fa3b471773406e0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#d8fa2dfd0720c903ac95956675d5cc50">GetPacketLength</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the size of the last built RTP packet.  <a href="#d8fa2dfd0720c903ac95956675d5cc50"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#a713acfe5447ffd0f2a539a062fbeb27">SetDefaultPayloadType</a> (uint8_t pt)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the default payload type to <code>pt</code>.  <a href="#a713acfe5447ffd0f2a539a062fbeb27"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#5da6e98e894a905b9e66b89c304490ea">SetDefaultMark</a> (bool m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the default marker bit to <code>m</code>.  <a href="#5da6e98e894a905b9e66b89c304490ea"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#6381a48da1ebd92908398441838b0149">SetDefaultTimestampIncrement</a> (uint32_t timestampinc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the default timestamp increment to <code>timestampinc</code>.  <a href="#6381a48da1ebd92908398441838b0149"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#1996ad636555cbc0ace3fb4f9e537daa">IncrementTimestamp</a> (uint32_t inc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function increments the timestamp with the amount given by <code>inc</code>.  <a href="#1996ad636555cbc0ace3fb4f9e537daa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#c17fe90b7139934d21c5eff152ec01df">IncrementTimestampDefault</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function increments the timestamp with the amount given set by the SetDefaultTimestampIncrement member function.  <a href="#c17fe90b7139934d21c5eff152ec01df"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#056c60ac517578510294568fa80469b8">CreateNewSSRC</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new SSRC to be used in generated packets.  <a href="#056c60ac517578510294568fa80469b8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#1f0e56b9638d081127eb1080ba1528cc">CreateNewSSRC</a> (<a class="el" href="classRTPSources.html">RTPSources</a> &amp;sources)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new SSRC to be used in generated packets.  <a href="#1f0e56b9638d081127eb1080ba1528cc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#64d1dcc63d2350004854b7847fea5570">GetSSRC</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the current SSRC identifier.  <a href="#64d1dcc63d2350004854b7847fea5570"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#80aea7e439452d0c96611e0ed56fdbd8">GetTimestamp</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the current RTP timestamp.  <a href="#80aea7e439452d0c96611e0ed56fdbd8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#53851e2b60dc7bc492be9f74ba009671">GetSequenceNumber</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the current sequence number.  <a href="#53851e2b60dc7bc492be9f74ba009671"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classRTPTime.html">RTPTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#e903f218a55b42dcccb81e6ef62b825c">GetPacketTime</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the time at which a packet was generated.  <a href="#e903f218a55b42dcccb81e6ef62b825c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPPacketBuilder.html#1319671f989a7b5947ec9b3978f274bb">GetPacketTimestamp</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the RTP timestamp which corresponds to the time returned by the previous function.  <a href="#1319671f989a7b5947ec9b3978f274bb"></a><br></td></tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="1cca304b7b33c856451df793d6a256d8"></a><!-- doxytag: member="RTPPacketBuilder::RTPPacketBuilder" ref="1cca304b7b33c856451df793d6a256d8" args="(RTPMemoryManager *mgr=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RTPPacketBuilder::RTPPacketBuilder           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPMemoryManager.html">RTPMemoryManager</a> *&nbsp;</td>
          <td class="paramname"> <em>mgr</em> = <code>0</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="40bd89aa2e7f81dabfa180ac6df9078a"></a><!-- doxytag: member="RTPPacketBuilder::AddCSRC" ref="40bd89aa2e7f81dabfa180ac6df9078a" args="(uint32_t csrc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPPacketBuilder::AddCSRC           </td>
          <td>(</td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>csrc</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="30584390b0bd4d09292d1ff6a07a4a9b"></a><!-- doxytag: member="RTPPacketBuilder::BuildPacket" ref="30584390b0bd4d09292d1ff6a07a4a9b" args="(const void *data, size_t len, uint8_t pt, bool mark, uint32_t timestampinc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPPacketBuilder::BuildPacket           </td>
          <td>(</td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&nbsp;</td>
          <td class="paramname"> <em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>mark</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>timestampinc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a packet with payload <code>data</code> and payload length <code>len</code>. The payload type will be set to <code>pt</code>, the marker bit to <code>mark</code> and after building this packet, the timestamp will be incremented with <code>timestamp</code>. 
</div>
</div><p>
<a class="anchor" name="b9d6358047aa6f672934b9970203abe7"></a><!-- doxytag: member="RTPPacketBuilder::BuildPacket" ref="b9d6358047aa6f672934b9970203abe7" args="(const void *data, size_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPPacketBuilder::BuildPacket           </td>
          <td>(</td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a packet with payload <code>data</code> and payload length <code>len</code>. The payload type, marker and timestamp increment used will be those that have been set using the <code>SetDefault</code> functions below. 
</div>
</div><p>
<a class="anchor" name="c88eb9cfaed02b67cd877e64cdda1e43"></a><!-- doxytag: member="RTPPacketBuilder::BuildPacketEx" ref="c88eb9cfaed02b67cd877e64cdda1e43" args="(const void *data, size_t len, uint8_t pt, bool mark, uint32_t timestampinc, uint16_t hdrextID, const void *hdrextdata, size_t numhdrextwords)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPPacketBuilder::BuildPacketEx           </td>
          <td>(</td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&nbsp;</td>
          <td class="paramname"> <em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>mark</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>timestampinc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>hdrextID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>hdrextdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>numhdrextwords</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a packet with payload <code>data</code> and payload length <code>len</code>. The payload type will be set to <code>pt</code>, the marker bit to <code>mark</code> and after building this packet, the timestamp will be incremented with <code>timestamp</code>. This packet will also contain an RTP header extension with identifier <code>hdrextID</code> and data <code>hdrextdata</code>. The length of the header extension data is given by <code>numhdrextwords</code> which expresses the length in a number of 32-bit words. 
</div>
</div><p>
<a class="anchor" name="28eee3947cda6e77443af2a1451a0598"></a><!-- doxytag: member="RTPPacketBuilder::BuildPacketEx" ref="28eee3947cda6e77443af2a1451a0598" args="(const void *data, size_t len, uint16_t hdrextID, const void *hdrextdata, size_t numhdrextwords)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPPacketBuilder::BuildPacketEx           </td>
          <td>(</td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>hdrextID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>hdrextdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>numhdrextwords</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Builds a packet with payload <code>data</code> and payload length <code>len</code>. The payload type, marker and timestamp increment used will be those that have been set using the <code>SetDefault</code> functions below. This packet will also contain an RTP header extension with identifier <code>hdrextID</code> and data <code>hdrextdata</code>. The length of the header extension data is given by <code>numhdrextwords</code> which expresses the length in a number of 32-bit words. 
</div>
</div><p>
<a class="anchor" name="b6e3deea05e79a38326f667b5203b8d9"></a><!-- doxytag: member="RTPPacketBuilder::ClearCSRCList" ref="b6e3deea05e79a38326f667b5203b8d9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPPacketBuilder::ClearCSRCList           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="1f0e56b9638d081127eb1080ba1528cc"></a><!-- doxytag: member="RTPPacketBuilder::CreateNewSSRC" ref="1f0e56b9638d081127eb1080ba1528cc" args="(RTPSources &amp;sources)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t RTPPacketBuilder::CreateNewSSRC           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPSources.html">RTPSources</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>sources</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a new SSRC to be used in generated packets. This will also generate new timestamp and sequence number offsets. The source table <code>sources</code> is used to make sure that the chosen SSRC isn't used by another participant yet. 
</div>
</div><p>
<a class="anchor" name="056c60ac517578510294568fa80469b8"></a><!-- doxytag: member="RTPPacketBuilder::CreateNewSSRC" ref="056c60ac517578510294568fa80469b8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t RTPPacketBuilder::CreateNewSSRC           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a new SSRC to be used in generated packets. This will also generate new timestamp and sequence number offsets. 
</div>
</div><p>
<a class="anchor" name="e3c25ffb6177a9ec47c8841926c29123"></a><!-- doxytag: member="RTPPacketBuilder::DeleteCSRC" ref="e3c25ffb6177a9ec47c8841926c29123" args="(uint32_t csrc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPPacketBuilder::DeleteCSRC           </td>
          <td>(</td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>csrc</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="d632d172cb70292482dce76606e05a63"></a><!-- doxytag: member="RTPPacketBuilder::Destroy" ref="d632d172cb70292482dce76606e05a63" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPPacketBuilder::Destroy           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="630309a0e2c31a445fa3b471773406e0"></a><!-- doxytag: member="RTPPacketBuilder::GetPacket" ref="630309a0e2c31a445fa3b471773406e0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* RTPPacketBuilder::GetPacket           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="a09733d471778f9c5c1bbc996a2da3e6"></a><!-- doxytag: member="RTPPacketBuilder::GetPacketCount" ref="a09733d471778f9c5c1bbc996a2da3e6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t RTPPacketBuilder::GetPacketCount           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="d8fa2dfd0720c903ac95956675d5cc50"></a><!-- doxytag: member="RTPPacketBuilder::GetPacketLength" ref="d8fa2dfd0720c903ac95956675d5cc50" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t RTPPacketBuilder::GetPacketLength           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="e903f218a55b42dcccb81e6ef62b825c"></a><!-- doxytag: member="RTPPacketBuilder::GetPacketTime" ref="e903f218a55b42dcccb81e6ef62b825c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classRTPTime.html">RTPTime</a> RTPPacketBuilder::GetPacketTime           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the time at which a packet was generated. This is not necessarily the time at which the last RTP packet was generated: if the timestamp increment was zero, the time is not updated. 
</div>
</div><p>
<a class="anchor" name="1319671f989a7b5947ec9b3978f274bb"></a><!-- doxytag: member="RTPPacketBuilder::GetPacketTimestamp" ref="1319671f989a7b5947ec9b3978f274bb" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t RTPPacketBuilder::GetPacketTimestamp           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="d6562f0c7d552fcdba3717cb5c33cda3"></a><!-- doxytag: member="RTPPacketBuilder::GetPayloadOctetCount" ref="d6562f0c7d552fcdba3717cb5c33cda3" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t RTPPacketBuilder::GetPayloadOctetCount           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="53851e2b60dc7bc492be9f74ba009671"></a><!-- doxytag: member="RTPPacketBuilder::GetSequenceNumber" ref="53851e2b60dc7bc492be9f74ba009671" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t RTPPacketBuilder::GetSequenceNumber           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="64d1dcc63d2350004854b7847fea5570"></a><!-- doxytag: member="RTPPacketBuilder::GetSSRC" ref="64d1dcc63d2350004854b7847fea5570" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t RTPPacketBuilder::GetSSRC           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="80aea7e439452d0c96611e0ed56fdbd8"></a><!-- doxytag: member="RTPPacketBuilder::GetTimestamp" ref="80aea7e439452d0c96611e0ed56fdbd8" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t RTPPacketBuilder::GetTimestamp           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="1996ad636555cbc0ace3fb4f9e537daa"></a><!-- doxytag: member="RTPPacketBuilder::IncrementTimestamp" ref="1996ad636555cbc0ace3fb4f9e537daa" args="(uint32_t inc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPPacketBuilder::IncrementTimestamp           </td>
          <td>(</td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>inc</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function increments the timestamp with the amount given by <code>inc</code>. This can be useful if, for example, a packet was not sent because it contained only silence. Then, this function should be called to increment the timestamp with the appropriate amount so that the next packets will still be played at the correct time at other hosts. 
</div>
</div><p>
<a class="anchor" name="c17fe90b7139934d21c5eff152ec01df"></a><!-- doxytag: member="RTPPacketBuilder::IncrementTimestampDefault" ref="c17fe90b7139934d21c5eff152ec01df" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPPacketBuilder::IncrementTimestampDefault           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function increments the timestamp with the amount given set by the SetDefaultTimestampIncrement member function. This can be useful if, for example, a packet was not sent because it contained only silence. Then, this function should be called to increment the timestamp with the appropriate amount so that the next packets will still be played at the correct time at other hosts. 
</div>
</div><p>
<a class="anchor" name="35ef7e6902a2989ea703fd5e6ab24d20"></a><!-- doxytag: member="RTPPacketBuilder::Init" ref="35ef7e6902a2989ea703fd5e6ab24d20" args="(size_t maxpacksize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPPacketBuilder::Init           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>maxpacksize</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="5da6e98e894a905b9e66b89c304490ea"></a><!-- doxytag: member="RTPPacketBuilder::SetDefaultMark" ref="5da6e98e894a905b9e66b89c304490ea" args="(bool m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPPacketBuilder::SetDefaultMark           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="a713acfe5447ffd0f2a539a062fbeb27"></a><!-- doxytag: member="RTPPacketBuilder::SetDefaultPayloadType" ref="a713acfe5447ffd0f2a539a062fbeb27" args="(uint8_t pt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPPacketBuilder::SetDefaultPayloadType           </td>
          <td>(</td>
          <td class="paramtype">uint8_t&nbsp;</td>
          <td class="paramname"> <em>pt</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="6381a48da1ebd92908398441838b0149"></a><!-- doxytag: member="RTPPacketBuilder::SetDefaultTimestampIncrement" ref="6381a48da1ebd92908398441838b0149" args="(uint32_t timestampinc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPPacketBuilder::SetDefaultTimestampIncrement           </td>
          <td>(</td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>timestampinc</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="dca5aa0b7fb9b2b2a4438700125f3dbc"></a><!-- doxytag: member="RTPPacketBuilder::SetMaximumPacketSize" ref="dca5aa0b7fb9b2b2a4438700125f3dbc" args="(size_t maxpacksize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPPacketBuilder::SetMaximumPacketSize           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>maxpacksize</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

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