Sophie

Sophie

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

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: RTPSession 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>RTPSession Class Reference</h1><!-- doxytag: class="RTPSession" --><!-- doxytag: inherits="RTPMemoryObject" -->High level class for using RTP.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="rtpsession_8h_source.html">rtpsession.h</a>&gt;</code>
<p>
Inherits RTPMemoryObject.
<p>
<div class="dynheader">
Collaboration diagram for RTPSession:</div>
<div class="dynsection">
<p><center><img src="classRTPSession__coll__graph.png" border="0" usemap="#RTPSession__coll__map" alt="Collaboration graph"></center>
<map name="RTPSession__coll__map">
<area shape="rect" href="classRTPPacketBuilder.html" title="This class can be used to build RTP packets and is a bit more high&#45;level than the..." alt="" coords="635,105,763,132"><area shape="rect" href="classRTCPPacketBuilder.html" title="This class can be used to build RTCP compound packets, on a higher level than the..." alt="" coords="455,204,593,231"><area shape="rect" href="classRTPRandom.html" title="The RTPRandom class can be used to generate random numbers." alt="" coords="267,7,363,33"><area shape="rect" href="classRTCPScheduler.html" title="This class determines when RTCP compound packets should be sent." alt="" coords="240,204,355,231"><area shape="rect" href="classRTPTime.html" title="This class is used to specify wallclock time, delay intervals etc." alt="" coords="157,7,235,33"><area shape="rect" href="classRTCPSchedulerParams.html" title="Describes parameters used by the RTCPScheduler class." alt="" coords="89,105,249,132"><area shape="rect" href="classRTPSources.html" title="Represents a table in which information about the participating sources is kept." alt="" coords="361,105,457,132"><area shape="rect" href="classRTPCollisionList.html" title="This class represents a list of addresses from which SSRC collisions were detected..." alt="" coords="763,204,883,231"><area shape="rect" href="classRTPTransmitter.html" title="Abstract class from which actual transmission components should be derived." alt="" coords="907,204,1021,231"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classRTPSession-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="classRTPSession.html#d71d9a59e30404ac6a989ffb2fb1ca6a">RTPSession</a> (<a class="el" href="classRTPMemoryManager.html">RTPMemoryManager</a> *mgr=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs an <a class="el" href="classRTPSession.html" title="High level class for using RTP.">RTPSession</a> instance, optionally installing a memory manager.  <a href="#d71d9a59e30404ac6a989ffb2fb1ca6a"></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="classRTPSession.html#34bc0beffb09c81b94f39758dfd13826">Create</a> (const <a class="el" href="classRTPSessionParams.html">RTPSessionParams</a> &amp;sessparams, const <a class="el" href="classRTPTransmissionParams.html">RTPTransmissionParams</a> *transparams=0, <a class="el" href="classRTPTransmitter.html#00529bcf331e3d3dc57c4ebb476f1fd2">RTPTransmitter::TransmissionProtocol</a> proto=RTPTransmitter::IPv4UDPProto)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an RTP session.  <a href="#34bc0beffb09c81b94f39758dfd13826"></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="classRTPSession.html#78baa48bc40841796392a251651fb8d1">Create</a> (const <a class="el" href="classRTPSessionParams.html">RTPSessionParams</a> &amp;sessparams, <a class="el" href="classRTPTransmitter.html">RTPTransmitter</a> *transmitter)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an RTP session using <code>transmitter</code> as transmission component.  <a href="#78baa48bc40841796392a251651fb8d1"></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="classRTPSession.html#80f35b1857bcd684c14f5a0ea76cb997">Destroy</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Leaves the session without sending a BYE packet.  <a href="#80f35b1857bcd684c14f5a0ea76cb997"></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="classRTPSession.html#d682c2b85413413b20341a7e3ef0b668">BYEDestroy</a> (const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;maxwaittime, const void *reason, size_t reasonlength)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sends a BYE packet and leaves the session.  <a href="#d682c2b85413413b20341a7e3ef0b668"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#69bbd39f600f84a89b1c5b7a3dc483c3">IsActive</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns whether the session has been created or not.  <a href="#69bbd39f600f84a89b1c5b7a3dc483c3"></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="classRTPSession.html#0ae38da1e1d17d1b8b70af9312b0fde3">GetLocalSSRC</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns our own SSRC.  <a href="#0ae38da1e1d17d1b8b70af9312b0fde3"></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="classRTPSession.html#11ebaa614e8b8500d8de4fe64885d36d">AddDestination</a> (const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;addr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds <code>addr</code> to the list of destinations.  <a href="#11ebaa614e8b8500d8de4fe64885d36d"></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="classRTPSession.html#e2c8e90defbc25f32361e0b617222f56">DeleteDestination</a> (const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;addr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deletes <code>addr</code> from the list of destinations.  <a href="#e2c8e90defbc25f32361e0b617222f56"></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="classRTPSession.html#bdbd1df8f9b2ea4f9fc8c12cfb0d8ec7">ClearDestinations</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the list of destinations.  <a href="#bdbd1df8f9b2ea4f9fc8c12cfb0d8ec7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#398fd69051d8b7fd00b9bd8a60a359da">SupportsMulticasting</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns <code>true</code> if multicasting is supported.  <a href="#398fd69051d8b7fd00b9bd8a60a359da"></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="classRTPSession.html#2c8ddd6259652c3b8a4a4b276c6f790b">JoinMulticastGroup</a> (const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;addr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Joins the multicast group specified by <code>addr</code>.  <a href="#2c8ddd6259652c3b8a4a4b276c6f790b"></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="classRTPSession.html#e09486f4e4836cbf542d28a413bcf056">LeaveMulticastGroup</a> (const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;addr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Leaves the multicast group specified by <code>addr</code>.  <a href="#e09486f4e4836cbf542d28a413bcf056"></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="classRTPSession.html#5955cf1030956ce37a76c8f42aa260eb">LeaveAllMulticastGroups</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Leaves all multicast groups.  <a href="#5955cf1030956ce37a76c8f42aa260eb"></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="classRTPSession.html#a9095e0c8bd08a5a46c42feac4ea079f">SendPacket</a> (const void *data, size_t len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sends the RTP packet with payload <code>data</code> which has length <code>len</code>.  <a href="#a9095e0c8bd08a5a46c42feac4ea079f"></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="classRTPSession.html#c966fef711d9818d66ca66ba4270f9d8">SendPacket</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">Sends the RTP packet with payload <code>data</code> which has length <code>len</code>.  <a href="#c966fef711d9818d66ca66ba4270f9d8"></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="classRTPSession.html#10c127b94e2340905d9c0b1aba7afd88">SendPacketEx</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">Sends the RTP packet with payload <code>data</code> which has length <code>len</code>.  <a href="#10c127b94e2340905d9c0b1aba7afd88"></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="classRTPSession.html#10c787931d3f71fa356148239079c5a1">SendPacketEx</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">Sends the RTP packet with payload <code>data</code> which has length <code>len</code>.  <a href="#10c787931d3f71fa356148239079c5a1"></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="classRTPSession.html#658e12aba572466b4a9a4bb30672506c">SendRTCPAPPPacket</a> (uint8_t subtype, const uint8_t name[4], const void *appdata, size_t appdatalen)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If sending of RTCP APP packets was enabled at compile time, this function creates a compound packet containing an RTCP APP packet and sends it immediately.  <a href="#658e12aba572466b4a9a4bb30672506c"></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="classRTPSession.html#79ff535fbd4031d81ec28ad05b1b5439">SetDefaultPayloadType</a> (uint8_t pt)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the default payload type for RTP packets to <code>pt</code>.  <a href="#79ff535fbd4031d81ec28ad05b1b5439"></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="classRTPSession.html#37172f082df1a452c2e9d3b86d5dc773">SetDefaultMark</a> (bool m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the default marker for RTP packets to <code>m</code>.  <a href="#37172f082df1a452c2e9d3b86d5dc773"></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="classRTPSession.html#97f5a1eef424452e4975aec7bd9f112d">SetDefaultTimestampIncrement</a> (uint32_t timestampinc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the default value to increment the timestamp with to <code>timestampinc</code>.  <a href="#97f5a1eef424452e4975aec7bd9f112d"></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="classRTPSession.html#87edd732574fcb4adc242fa962024c3b">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="#87edd732574fcb4adc242fa962024c3b"></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="classRTPSession.html#e6c833a8b7f9a5802ebff5d0273fee7c">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="#e6c833a8b7f9a5802ebff5d0273fee7c"></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="classRTPSession.html#783020a198c4a69d602d28aacb932527">SetPreTransmissionDelay</a> (const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;delay)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function allows you to inform the library about the delay between sampling the first sample of a packet and sending the packet.  <a href="#783020a198c4a69d602d28aacb932527"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classRTPTransmissionInfo.html">RTPTransmissionInfo</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#42e30d1254a69b9f561d886750a890a1">GetTransmissionInfo</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function returns an instance of a subclass of <a class="el" href="classRTPTransmissionInfo.html" title="Base class for additional information about the transmitter.">RTPTransmissionInfo</a> which will give some additional information about the transmitter (a list of local IP addresses for example).  <a href="#42e30d1254a69b9f561d886750a890a1"></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="classRTPSession.html#3c3fb0ac122ace411d6c22704ca6365d">DeleteTransmissionInfo</a> (<a class="el" href="classRTPTransmissionInfo.html">RTPTransmissionInfo</a> *inf)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees the memory used by the transmission information <code>inf</code>.  <a href="#3c3fb0ac122ace411d6c22704ca6365d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2a7bfeadf6a5ad9e675184ec8d66daf1"></a><!-- doxytag: member="RTPSession::Poll" ref="2a7bfeadf6a5ad9e675184ec8d66daf1" args="()" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#2a7bfeadf6a5ad9e675184ec8d66daf1">Poll</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If you're not using the poll thread, this function must be called regularly to process incoming data and to send RTCP data when necessary. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#c61c637ab1e7eed342bdc099ecbe6fb0">WaitForIncomingData</a> (const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;delay, bool *dataavailable=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Waits at most a time <code>delay</code> until incoming data has been detected.  <a href="#c61c637ab1e7eed342bdc099ecbe6fb0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0fb1d5808b256faadcd5b5234a38772f"></a><!-- doxytag: member="RTPSession::AbortWait" ref="0fb1d5808b256faadcd5b5234a38772f" args="()" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#0fb1d5808b256faadcd5b5234a38772f">AbortWait</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the previous function has been called, this one aborts the waiting (only works when you're not using the poll thread). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6f9ec28f7df3a43575aa91e882d5fdab"></a><!-- doxytag: member="RTPSession::GetRTCPDelay" ref="6f9ec28f7df3a43575aa91e882d5fdab" args="()" -->
<a class="el" href="classRTPTime.html">RTPTime</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#6f9ec28f7df3a43575aa91e882d5fdab">GetRTCPDelay</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the time interval after which an RTCP compound packet may have to be sent (only works when you're not using the poll thread. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#262d1afa20aaa5dde8a798dbc4056ae4">BeginDataAccess</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The following member functions (till EndDataAccess}) need to be accessed between a call to BeginDataAccess and EndDataAccess.  <a href="#262d1afa20aaa5dde8a798dbc4056ae4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#adce56dd9a5e345a0cce2674135c135d">GotoFirstSource</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Starts the iteration over the participants by going to the first member in the table.  <a href="#adce56dd9a5e345a0cce2674135c135d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#0652c466c930403ee51dc842396ce9a6">GotoNextSource</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the current source to be the next source in the table.  <a href="#0652c466c930403ee51dc842396ce9a6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#88750a16d52ba5899c86ccce32ca32a0">GotoPreviousSource</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the current source to be the previous source in the table.  <a href="#88750a16d52ba5899c86ccce32ca32a0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#c8b85f5c2f1f080a5adac1d4a9c69fc4">GotoFirstSourceWithData</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the current source to be the first source in the table which has <a class="el" href="classRTPPacket.html" title="Represents an RTP Packet.">RTPPacket</a> instances that we haven't extracted yet.  <a href="#c8b85f5c2f1f080a5adac1d4a9c69fc4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#dbfc946dbe9a9dae73685abc4347741e">GotoNextSourceWithData</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the current source to be the next source in the table which has <a class="el" href="classRTPPacket.html" title="Represents an RTP Packet.">RTPPacket</a> instances that we haven't extracted yet.  <a href="#dbfc946dbe9a9dae73685abc4347741e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#7b06f56a8bc8b12e49847228303184ce">GotoPreviousSourceWithData</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the current source to be the previous source in the table which has <a class="el" href="classRTPPacket.html" title="Represents an RTP Packet.">RTPPacket</a> instances that we haven't extracted yet.  <a href="#7b06f56a8bc8b12e49847228303184ce"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classRTPSourceData.html">RTPSourceData</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#ff7844d88538b8380ba2a358f212e72e">GetCurrentSourceInfo</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the <code><a class="el" href="classRTPSourceData.html" title="Describes an entry in the RTPSources source table.">RTPSourceData</a></code> instance for the currently selected participant.  <a href="#ff7844d88538b8380ba2a358f212e72e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d3aa10bd2d40843c3a25c1fd4e8dbd0f"></a><!-- doxytag: member="RTPSession::GetSourceInfo" ref="d3aa10bd2d40843c3a25c1fd4e8dbd0f" args="(uint32_t ssrc)" -->
<a class="el" href="classRTPSourceData.html">RTPSourceData</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#d3aa10bd2d40843c3a25c1fd4e8dbd0f">GetSourceInfo</a> (uint32_t ssrc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the <code><a class="el" href="classRTPSourceData.html" title="Describes an entry in the RTPSources source table.">RTPSourceData</a></code> instance for the participant identified by <code>ssrc</code>, or NULL if no such entry exists. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classRTPPacket.html">RTPPacket</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#267350e7f289192fa13683b2bf5ee3b5">GetNextPacket</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Extracts the next packet from the received packets queue of the current participant, or NULL if no more packets are available.  <a href="#267350e7f289192fa13683b2bf5ee3b5"></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="classRTPSession.html#58850b96177ed858747070f9e03c4cd6">DeletePacket</a> (<a class="el" href="classRTPPacket.html">RTPPacket</a> *p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees the memory used by <code>p</code>.  <a href="#58850b96177ed858747070f9e03c4cd6"></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="classRTPSession.html#e2b77e9c6ff090eeb8b7d2d9074df87e">EndDataAccess</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See BeginDataAccess.  <a href="#e2b77e9c6ff090eeb8b7d2d9074df87e"></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="classRTPSession.html#ee898b16c7303606c8e346c28a909052">SetReceiveMode</a> (<a class="el" href="classRTPTransmitter.html#bae77e9adf52db77f5ea29757dfa6386">RTPTransmitter::ReceiveMode</a> m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the receive mode to <code>m</code>.  <a href="#ee898b16c7303606c8e346c28a909052"></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="classRTPSession.html#0835dadbdca449c18d5addc991bcaef6">AddToIgnoreList</a> (const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;addr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds <code>addr</code> to the list of addresses to ignore.  <a href="#0835dadbdca449c18d5addc991bcaef6"></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="classRTPSession.html#e648254068290515b56442ae02226601">DeleteFromIgnoreList</a> (const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;addr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deletes <code>addr</code> from the list of addresses to ignore.  <a href="#e648254068290515b56442ae02226601"></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="classRTPSession.html#51ccc9093b5243c608216fc7ac3b0821">ClearIgnoreList</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the list of addresses to ignore.  <a href="#51ccc9093b5243c608216fc7ac3b0821"></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="classRTPSession.html#b2ddc5addac2b811d71d2c0f5a1056d3">AddToAcceptList</a> (const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;addr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds <code>addr</code> to the list of addresses to accept.  <a href="#b2ddc5addac2b811d71d2c0f5a1056d3"></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="classRTPSession.html#6b377efd7538a7c127936ee5b75b952a">DeleteFromAcceptList</a> (const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;addr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deletes <code>addr</code> from the list of addresses to accept.  <a href="#6b377efd7538a7c127936ee5b75b952a"></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="classRTPSession.html#9aca6068653abacb9eeea806653dd321">ClearAcceptList</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the list of addresses to accept.  <a href="#9aca6068653abacb9eeea806653dd321"></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="classRTPSession.html#ba7ac22f4076ee92a32282795ac238e1">SetMaximumPacketSize</a> (size_t s)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the maximum allowed packet size to <code>s</code>.  <a href="#ba7ac22f4076ee92a32282795ac238e1"></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="classRTPSession.html#799d140c38a8781c3f5c476b1bfe04db">SetSessionBandwidth</a> (double bw)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the session bandwidth to <code>bw</code>, which is specified in bytes per second.  <a href="#799d140c38a8781c3f5c476b1bfe04db"></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="classRTPSession.html#3e983f539df6be96567629aa4885ba4d">SetTimestampUnit</a> (double u)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the timestamp unit for our own data.  <a href="#3e983f539df6be96567629aa4885ba4d"></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="classRTPSession.html#2216dc90089596a1d13bd767d1d1ddbc">SetNameInterval</a> (int count)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the RTCP interval for the SDES name item.  <a href="#2216dc90089596a1d13bd767d1d1ddbc"></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="classRTPSession.html#0885530d0a460fede91734fb06342138">SetEMailInterval</a> (int count)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the RTCP interval for the SDES e-mail item.  <a href="#0885530d0a460fede91734fb06342138"></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="classRTPSession.html#51aebf313f651d599d8d5ea73847ba9e">SetLocationInterval</a> (int count)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the RTCP interval for the SDES location item.  <a href="#51aebf313f651d599d8d5ea73847ba9e"></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="classRTPSession.html#1e4c62b191a1133f647f57f76e28460d">SetPhoneInterval</a> (int count)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the RTCP interval for the SDES phone item.  <a href="#1e4c62b191a1133f647f57f76e28460d"></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="classRTPSession.html#88b41600f380cee7adbc90cede9e5943">SetToolInterval</a> (int count)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the RTCP interval for the SDES tool item.  <a href="#88b41600f380cee7adbc90cede9e5943"></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="classRTPSession.html#42e75670f52fb27a192d79069c9ef682">SetNoteInterval</a> (int count)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the RTCP interval for the SDES note item.  <a href="#42e75670f52fb27a192d79069c9ef682"></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="classRTPSession.html#eed2c3e597d532595c221d08dacb0a98">SetLocalName</a> (const void *s, size_t len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the SDES name item for the local participant to the value <code>s</code> with length <code>len</code>.  <a href="#eed2c3e597d532595c221d08dacb0a98"></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="classRTPSession.html#d2bb2379b7c41670440b22ec97963655">SetLocalEMail</a> (const void *s, size_t len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the SDES e-mail item for the local participant to the value <code>s</code> with length <code>len</code>.  <a href="#d2bb2379b7c41670440b22ec97963655"></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="classRTPSession.html#e5602f12b3fc3d0a617532430e756db3">SetLocalLocation</a> (const void *s, size_t len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the SDES location item for the local participant to the value <code>s</code> with length <code>len</code>.  <a href="#e5602f12b3fc3d0a617532430e756db3"></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="classRTPSession.html#b72ae21a33af46909a4ac5bf463d84ba">SetLocalPhone</a> (const void *s, size_t len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the SDES phone item for the local participant to the value <code>s</code> with length <code>len</code>.  <a href="#b72ae21a33af46909a4ac5bf463d84ba"></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="classRTPSession.html#2e15cfff1edce81f9735c31f0840fabf">SetLocalTool</a> (const void *s, size_t len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the SDES tool item for the local participant to the value <code>s</code> with length <code>len</code>.  <a href="#2e15cfff1edce81f9735c31f0840fabf"></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="classRTPSession.html#2d4054267223d717c00892ade4b11eae">SetLocalNote</a> (const void *s, size_t len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the SDES note item for the local participant to the value <code>s</code> with length <code>len</code>.  <a href="#2d4054267223d717c00892ade4b11eae"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classRTPTransmitter.html">RTPTransmitter</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#8dc57ed2e43b46a934bd597dd9a8c8d8">NewUserDefinedTransmitter</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate a user defined transmitter.  <a href="#8dc57ed2e43b46a934bd597dd9a8c8d8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#c4fd874a60aba53aab1fbadf7e05771b">OnRTPPacket</a> (<a class="el" href="classRTPPacket.html">RTPPacket</a> *pack, const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;receivetime, const <a class="el" href="classRTPAddress.html">RTPAddress</a> *senderaddress)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when an incoming RTCP packet is about to be processed.  <a href="#c4fd874a60aba53aab1fbadf7e05771b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#80deaed5cc4798f056709d219f64219c">OnRTCPCompoundPacket</a> (<a class="el" href="classRTCPCompoundPacket.html">RTCPCompoundPacket</a> *pack, const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;receivetime, const <a class="el" href="classRTPAddress.html">RTPAddress</a> *senderaddress)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when an incoming RTCP packet is about to be processed.  <a href="#80deaed5cc4798f056709d219f64219c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#5cfb438cd21df15735a6a64735809f44">OnSSRCCollision</a> (<a class="el" href="classRTPSourceData.html">RTPSourceData</a> *srcdat, const <a class="el" href="classRTPAddress.html">RTPAddress</a> *senderaddress, bool isrtp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when an SSRC collision was detected.  <a href="#5cfb438cd21df15735a6a64735809f44"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#fdbcfff8e02f5c7530b5589efa32901b">OnCNAMECollision</a> (<a class="el" href="classRTPSourceData.html">RTPSourceData</a> *srcdat, const <a class="el" href="classRTPAddress.html">RTPAddress</a> *senderaddress, const uint8_t *cname, size_t cnamelength)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when another CNAME was received than the one already present for source <code>srcdat</code>.  <a href="#fdbcfff8e02f5c7530b5589efa32901b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#900e0acc44948f3635c2d6b529d42a1a">OnNewSource</a> (<a class="el" href="classRTPSourceData.html">RTPSourceData</a> *srcdat)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when a new entry <code>srcdat</code> is added to the source table.  <a href="#900e0acc44948f3635c2d6b529d42a1a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#48d1ea8b3a3b0fe6f8b1075c342e8cf0">OnRemoveSource</a> (<a class="el" href="classRTPSourceData.html">RTPSourceData</a> *srcdat)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when the entry <code>srcdat</code> is about to be deleted from the source table.  <a href="#48d1ea8b3a3b0fe6f8b1075c342e8cf0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#68bca5ce7d968cf816b9244a97813e7b">OnTimeout</a> (<a class="el" href="classRTPSourceData.html">RTPSourceData</a> *srcdat)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when participant <code>srcdat</code> is timed out.  <a href="#68bca5ce7d968cf816b9244a97813e7b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#a0cfb63312c4cf491806c6f2cefe4410">OnBYETimeout</a> (<a class="el" href="classRTPSourceData.html">RTPSourceData</a> *srcdat)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when participant <code>srcdat</code> is timed after having sent a BYE packet.  <a href="#a0cfb63312c4cf491806c6f2cefe4410"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="bb55bd491091c67525a6ca543756a584"></a><!-- doxytag: member="RTPSession::OnAPPPacket" ref="bb55bd491091c67525a6ca543756a584" args="(RTCPAPPPacket *apppacket, const RTPTime &amp;receivetime, const RTPAddress *senderaddress)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#bb55bd491091c67525a6ca543756a584">OnAPPPacket</a> (<a class="el" href="classRTCPAPPPacket.html">RTCPAPPPacket</a> *apppacket, const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;receivetime, const <a class="el" href="classRTPAddress.html">RTPAddress</a> *senderaddress)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when an RTCP APP packet <code>apppacket</code> has been received at time <code>receivetime</code> from address <code>senderaddress</code>. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#548cb78c76e1d381efc95fc6f158ad6a">OnUnknownPacketType</a> (<a class="el" href="classRTCPPacket.html">RTCPPacket</a> *rtcppack, const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;receivetime, const <a class="el" href="classRTPAddress.html">RTPAddress</a> *senderaddress)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when an unknown RTCP packet type was detected.  <a href="#548cb78c76e1d381efc95fc6f158ad6a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#5a1cabfb6dce70234e40b0e6b9da9b48">OnUnknownPacketFormat</a> (<a class="el" href="classRTCPPacket.html">RTCPPacket</a> *rtcppack, const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;receivetime, const <a class="el" href="classRTPAddress.html">RTPAddress</a> *senderaddress)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when an unknown packet format for a known packet type was detected.  <a href="#5a1cabfb6dce70234e40b0e6b9da9b48"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#ed79a79baf9c4bc4faa75e7c219d8a18">OnNoteTimeout</a> (<a class="el" href="classRTPSourceData.html">RTPSourceData</a> *srcdat)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when the SDES NOTE item for source <code>srcdat</code> has been timed out.  <a href="#ed79a79baf9c4bc4faa75e7c219d8a18"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#fa54712af607b1b4c94ea37ec8197ce0">OnBYEPacket</a> (<a class="el" href="classRTPSourceData.html">RTPSourceData</a> *srcdat)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when a BYE packet has been processed for source <code>srcdat</code>.  <a href="#fa54712af607b1b4c94ea37ec8197ce0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#1bb4fcadcae116bd19e611ae227c390e">OnSendRTCPCompoundPacket</a> (<a class="el" href="classRTCPCompoundPacket.html">RTCPCompoundPacket</a> *pack)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when an RTCP compound packet has just been sent (useful to inspect outgoing RTCP data).  <a href="#1bb4fcadcae116bd19e611ae227c390e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#7f7c4375097bef51872925b64151745f">OnPollThreadError</a> (int errcode)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called when error <code>errcode</code> was detected in the poll thread.  <a href="#7f7c4375097bef51872925b64151745f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRTPSession.html#7935fa6d0adbdb70f4fc330bccfbf2c2">OnPollThreadStep</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Is called each time the poll thread loops.  <a href="#7935fa6d0adbdb70f4fc330bccfbf2c2"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
For most RTP based applications, the <a class="el" href="classRTPSession.html" title="High level class for using RTP.">RTPSession</a> class will probably be the one to use. It handles the RTCP part completely internally, so the user can focus on sending and receiving the actual data. <dl class="note" compact><dt><b>Note:</b></dt><dd>The <a class="el" href="classRTPSession.html" title="High level class for using RTP.">RTPSession</a> class is not meant to be thread safe. The user should use some kind of locking mechanism to prevent different threads from using the same <a class="el" href="classRTPSession.html" title="High level class for using RTP.">RTPSession</a> instance. </dd></dl>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="d71d9a59e30404ac6a989ffb2fb1ca6a"></a><!-- doxytag: member="RTPSession::RTPSession" ref="d71d9a59e30404ac6a989ffb2fb1ca6a" args="(RTPMemoryManager *mgr=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RTPSession::RTPSession           </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="11ebaa614e8b8500d8de4fe64885d36d"></a><!-- doxytag: member="RTPSession::AddDestination" ref="11ebaa614e8b8500d8de4fe64885d36d" args="(const RTPAddress &amp;addr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::AddDestination           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>addr</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="b2ddc5addac2b811d71d2c0f5a1056d3"></a><!-- doxytag: member="RTPSession::AddToAcceptList" ref="b2ddc5addac2b811d71d2c0f5a1056d3" args="(const RTPAddress &amp;addr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::AddToAcceptList           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>addr</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="0835dadbdca449c18d5addc991bcaef6"></a><!-- doxytag: member="RTPSession::AddToIgnoreList" ref="0835dadbdca449c18d5addc991bcaef6" args="(const RTPAddress &amp;addr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::AddToIgnoreList           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>addr</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="262d1afa20aaa5dde8a798dbc4056ae4"></a><!-- doxytag: member="RTPSession::BeginDataAccess" ref="262d1afa20aaa5dde8a798dbc4056ae4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::BeginDataAccess           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The BeginDataAccess function makes sure that the poll thread won't access the source table at the same time that you're using it. When the EndDataAccess is called, the lock on the source table is freed again. 
</div>
</div><p>
<a class="anchor" name="d682c2b85413413b20341a7e3ef0b668"></a><!-- doxytag: member="RTPSession::BYEDestroy" ref="d682c2b85413413b20341a7e3ef0b668" args="(const RTPTime &amp;maxwaittime, const void *reason, size_t reasonlength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPSession::BYEDestroy           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>maxwaittime</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>reason</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>reasonlength</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sends a BYE packet and leaves the session. At most a time <code>maxwaittime</code> will be waited to send the BYE packet. If this time expires, the session will be left without sending a BYE packet. The BYE packet will contain as reason for leaving <code>reason</code> with length <code>reasonlength</code>. 
</div>
</div><p>
<a class="anchor" name="9aca6068653abacb9eeea806653dd321"></a><!-- doxytag: member="RTPSession::ClearAcceptList" ref="9aca6068653abacb9eeea806653dd321" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPSession::ClearAcceptList           </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="bdbd1df8f9b2ea4f9fc8c12cfb0d8ec7"></a><!-- doxytag: member="RTPSession::ClearDestinations" ref="bdbd1df8f9b2ea4f9fc8c12cfb0d8ec7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPSession::ClearDestinations           </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="51ccc9093b5243c608216fc7ac3b0821"></a><!-- doxytag: member="RTPSession::ClearIgnoreList" ref="51ccc9093b5243c608216fc7ac3b0821" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPSession::ClearIgnoreList           </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="78baa48bc40841796392a251651fb8d1"></a><!-- doxytag: member="RTPSession::Create" ref="78baa48bc40841796392a251651fb8d1" args="(const RTPSessionParams &amp;sessparams, RTPTransmitter *transmitter)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::Create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRTPSessionParams.html">RTPSessionParams</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>sessparams</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classRTPTransmitter.html">RTPTransmitter</a> *&nbsp;</td>
          <td class="paramname"> <em>transmitter</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function creates an RTP session with parameters <code>sessparams</code>, which will use the transmission component <code>transmitter</code>. Initialization and destruction of the transmitter will not be done by the <a class="el" href="classRTPSession.html" title="High level class for using RTP.">RTPSession</a> class if this Create function is used. This function can be useful if you which to reuse the transmission component in another <a class="el" href="classRTPSession.html" title="High level class for using RTP.">RTPSession</a> instance, once the original <a class="el" href="classRTPSession.html" title="High level class for using RTP.">RTPSession</a> isn't using the transmitter anymore. 
</div>
</div><p>
<a class="anchor" name="34bc0beffb09c81b94f39758dfd13826"></a><!-- doxytag: member="RTPSession::Create" ref="34bc0beffb09c81b94f39758dfd13826" args="(const RTPSessionParams &amp;sessparams, const RTPTransmissionParams *transparams=0, RTPTransmitter::TransmissionProtocol proto=RTPTransmitter::IPv4UDPProto)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::Create           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRTPSessionParams.html">RTPSessionParams</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>sessparams</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classRTPTransmissionParams.html">RTPTransmissionParams</a> *&nbsp;</td>
          <td class="paramname"> <em>transparams</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classRTPTransmitter.html#00529bcf331e3d3dc57c4ebb476f1fd2">RTPTransmitter::TransmissionProtocol</a>&nbsp;</td>
          <td class="paramname"> <em>proto</em> = <code>RTPTransmitter::IPv4UDPProto</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function creates an RTP session with parameters <code>sessparams</code>, which will use a transmitter corresponding to <code>proto</code>. Parameters for this transmitter can be specified as well. If <code>proto</code> is of type <a class="el" href="classRTPTransmitter.html#00529bcf331e3d3dc57c4ebb476f1fd2f45e5ade219d16a0b8697d44c59eca4e" title="Specifies a user defined, external transmitter.">RTPTransmitter::UserDefinedProto</a>, the NewUserDefinedTransmitter function must be implemented. 
</div>
</div><p>
<a class="anchor" name="e2c8e90defbc25f32361e0b617222f56"></a><!-- doxytag: member="RTPSession::DeleteDestination" ref="e2c8e90defbc25f32361e0b617222f56" args="(const RTPAddress &amp;addr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::DeleteDestination           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>addr</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="6b377efd7538a7c127936ee5b75b952a"></a><!-- doxytag: member="RTPSession::DeleteFromAcceptList" ref="6b377efd7538a7c127936ee5b75b952a" args="(const RTPAddress &amp;addr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::DeleteFromAcceptList           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>addr</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="e648254068290515b56442ae02226601"></a><!-- doxytag: member="RTPSession::DeleteFromIgnoreList" ref="e648254068290515b56442ae02226601" args="(const RTPAddress &amp;addr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::DeleteFromIgnoreList           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>addr</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="58850b96177ed858747070f9e03c4cd6"></a><!-- doxytag: member="RTPSession::DeletePacket" ref="58850b96177ed858747070f9e03c4cd6" args="(RTPPacket *p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPSession::DeletePacket           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPPacket.html">RTPPacket</a> *&nbsp;</td>
          <td class="paramname"> <em>p</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="3c3fb0ac122ace411d6c22704ca6365d"></a><!-- doxytag: member="RTPSession::DeleteTransmissionInfo" ref="3c3fb0ac122ace411d6c22704ca6365d" args="(RTPTransmissionInfo *inf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPSession::DeleteTransmissionInfo           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPTransmissionInfo.html">RTPTransmissionInfo</a> *&nbsp;</td>
          <td class="paramname"> <em>inf</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="80f35b1857bcd684c14f5a0ea76cb997"></a><!-- doxytag: member="RTPSession::Destroy" ref="80f35b1857bcd684c14f5a0ea76cb997" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPSession::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="e2b77e9c6ff090eeb8b7d2d9074df87e"></a><!-- doxytag: member="RTPSession::EndDataAccess" ref="e2b77e9c6ff090eeb8b7d2d9074df87e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::EndDataAccess           </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="ff7844d88538b8380ba2a358f212e72e"></a><!-- doxytag: member="RTPSession::GetCurrentSourceInfo" ref="ff7844d88538b8380ba2a358f212e72e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classRTPSourceData.html">RTPSourceData</a>* RTPSession::GetCurrentSourceInfo           </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="0ae38da1e1d17d1b8b70af9312b0fde3"></a><!-- doxytag: member="RTPSession::GetLocalSSRC" ref="0ae38da1e1d17d1b8b70af9312b0fde3" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t RTPSession::GetLocalSSRC           </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="267350e7f289192fa13683b2bf5ee3b5"></a><!-- doxytag: member="RTPSession::GetNextPacket" ref="267350e7f289192fa13683b2bf5ee3b5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classRTPPacket.html">RTPPacket</a>* RTPSession::GetNextPacket           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Extracts the next packet from the received packets queue of the current participant, or NULL if no more packets are available. When the packet is no longer needed, its memory should be freed using the DeletePacket member function. 
</div>
</div><p>
<a class="anchor" name="42e30d1254a69b9f561d886750a890a1"></a><!-- doxytag: member="RTPSession::GetTransmissionInfo" ref="42e30d1254a69b9f561d886750a890a1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classRTPTransmissionInfo.html">RTPTransmissionInfo</a>* RTPSession::GetTransmissionInfo           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function returns an instance of a subclass of <a class="el" href="classRTPTransmissionInfo.html" title="Base class for additional information about the transmitter.">RTPTransmissionInfo</a> which will give some additional information about the transmitter (a list of local IP addresses for example). The user has to free the returned instance when it is no longer needed, preferably using the DeleteTransmissionInfo function. 
</div>
</div><p>
<a class="anchor" name="adce56dd9a5e345a0cce2674135c135d"></a><!-- doxytag: member="RTPSession::GotoFirstSource" ref="adce56dd9a5e345a0cce2674135c135d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool RTPSession::GotoFirstSource           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Starts the iteration over the participants by going to the first member in the table. If a member was found, the function returns <code>true</code>, otherwise it returns <code>false</code>. 
</div>
</div><p>
<a class="anchor" name="c8b85f5c2f1f080a5adac1d4a9c69fc4"></a><!-- doxytag: member="RTPSession::GotoFirstSourceWithData" ref="c8b85f5c2f1f080a5adac1d4a9c69fc4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool RTPSession::GotoFirstSourceWithData           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the current source to be the first source in the table which has <a class="el" href="classRTPPacket.html" title="Represents an RTP Packet.">RTPPacket</a> instances that we haven't extracted yet. If no such member was found, the function returns <code>false</code>, otherwise it returns <code>true</code>. 
</div>
</div><p>
<a class="anchor" name="0652c466c930403ee51dc842396ce9a6"></a><!-- doxytag: member="RTPSession::GotoNextSource" ref="0652c466c930403ee51dc842396ce9a6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool RTPSession::GotoNextSource           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the current source to be the next source in the table. If we're already at the last source, the function returns <code>false</code>, otherwise it returns <code>true</code>. 
</div>
</div><p>
<a class="anchor" name="dbfc946dbe9a9dae73685abc4347741e"></a><!-- doxytag: member="RTPSession::GotoNextSourceWithData" ref="dbfc946dbe9a9dae73685abc4347741e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool RTPSession::GotoNextSourceWithData           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the current source to be the next source in the table which has <a class="el" href="classRTPPacket.html" title="Represents an RTP Packet.">RTPPacket</a> instances that we haven't extracted yet. If no such member was found, the function returns <code>false</code>, otherwise it returns <code>true</code>. 
</div>
</div><p>
<a class="anchor" name="88750a16d52ba5899c86ccce32ca32a0"></a><!-- doxytag: member="RTPSession::GotoPreviousSource" ref="88750a16d52ba5899c86ccce32ca32a0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool RTPSession::GotoPreviousSource           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the current source to be the previous source in the table. If we're at the first source, the function returns <code>false</code>, otherwise it returns <code>true</code>. 
</div>
</div><p>
<a class="anchor" name="7b06f56a8bc8b12e49847228303184ce"></a><!-- doxytag: member="RTPSession::GotoPreviousSourceWithData" ref="7b06f56a8bc8b12e49847228303184ce" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool RTPSession::GotoPreviousSourceWithData           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the current source to be the previous source in the table which has <a class="el" href="classRTPPacket.html" title="Represents an RTP Packet.">RTPPacket</a> instances that we haven't extracted yet. If no such member was found, the function returns <code>false</code>, otherwise it returns <code>true</code>. 
</div>
</div><p>
<a class="anchor" name="87edd732574fcb4adc242fa962024c3b"></a><!-- doxytag: member="RTPSession::IncrementTimestamp" ref="87edd732574fcb4adc242fa962024c3b" args="(uint32_t inc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::IncrementTimestamp           </td>
          <td>(</td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>inc</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></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="e6c833a8b7f9a5802ebff5d0273fee7c"></a><!-- doxytag: member="RTPSession::IncrementTimestampDefault" ref="e6c833a8b7f9a5802ebff5d0273fee7c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::IncrementTimestampDefault           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></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="69bbd39f600f84a89b1c5b7a3dc483c3"></a><!-- doxytag: member="RTPSession::IsActive" ref="69bbd39f600f84a89b1c5b7a3dc483c3" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool RTPSession::IsActive           </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="2c8ddd6259652c3b8a4a4b276c6f790b"></a><!-- doxytag: member="RTPSession::JoinMulticastGroup" ref="2c8ddd6259652c3b8a4a4b276c6f790b" args="(const RTPAddress &amp;addr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::JoinMulticastGroup           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>addr</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="5955cf1030956ce37a76c8f42aa260eb"></a><!-- doxytag: member="RTPSession::LeaveAllMulticastGroups" ref="5955cf1030956ce37a76c8f42aa260eb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPSession::LeaveAllMulticastGroups           </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="e09486f4e4836cbf542d28a413bcf056"></a><!-- doxytag: member="RTPSession::LeaveMulticastGroup" ref="e09486f4e4836cbf542d28a413bcf056" args="(const RTPAddress &amp;addr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::LeaveMulticastGroup           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRTPAddress.html">RTPAddress</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>addr</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="8dc57ed2e43b46a934bd597dd9a8c8d8"></a><!-- doxytag: member="RTPSession::NewUserDefinedTransmitter" ref="8dc57ed2e43b46a934bd597dd9a8c8d8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classRTPTransmitter.html">RTPTransmitter</a>* RTPSession::NewUserDefinedTransmitter           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
In case you specified in the Create function that you want to use a user defined transmitter, you should override this function. The <a class="el" href="classRTPTransmitter.html" title="Abstract class from which actual transmission components should be derived.">RTPTransmitter</a> instance returned by this function will then be used to send and receive RTP and RTCP packets. Note that when the session is destroyed, this <a class="el" href="classRTPTransmitter.html" title="Abstract class from which actual transmission components should be derived.">RTPTransmitter</a> instance will be destroyed as well. 
</div>
</div><p>
<a class="anchor" name="fa54712af607b1b4c94ea37ec8197ce0"></a><!-- doxytag: member="RTPSession::OnBYEPacket" ref="fa54712af607b1b4c94ea37ec8197ce0" args="(RTPSourceData *srcdat)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnBYEPacket           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPSourceData.html">RTPSourceData</a> *&nbsp;</td>
          <td class="paramname"> <em>srcdat</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="a0cfb63312c4cf491806c6f2cefe4410"></a><!-- doxytag: member="RTPSession::OnBYETimeout" ref="a0cfb63312c4cf491806c6f2cefe4410" args="(RTPSourceData *srcdat)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnBYETimeout           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPSourceData.html">RTPSourceData</a> *&nbsp;</td>
          <td class="paramname"> <em>srcdat</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="fdbcfff8e02f5c7530b5589efa32901b"></a><!-- doxytag: member="RTPSession::OnCNAMECollision" ref="fdbcfff8e02f5c7530b5589efa32901b" args="(RTPSourceData *srcdat, const RTPAddress *senderaddress, const uint8_t *cname, size_t cnamelength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnCNAMECollision           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPSourceData.html">RTPSourceData</a> *&nbsp;</td>
          <td class="paramname"> <em>srcdat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classRTPAddress.html">RTPAddress</a> *&nbsp;</td>
          <td class="paramname"> <em>senderaddress</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&nbsp;</td>
          <td class="paramname"> <em>cname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>cnamelength</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="900e0acc44948f3635c2d6b529d42a1a"></a><!-- doxytag: member="RTPSession::OnNewSource" ref="900e0acc44948f3635c2d6b529d42a1a" args="(RTPSourceData *srcdat)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnNewSource           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPSourceData.html">RTPSourceData</a> *&nbsp;</td>
          <td class="paramname"> <em>srcdat</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="ed79a79baf9c4bc4faa75e7c219d8a18"></a><!-- doxytag: member="RTPSession::OnNoteTimeout" ref="ed79a79baf9c4bc4faa75e7c219d8a18" args="(RTPSourceData *srcdat)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnNoteTimeout           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPSourceData.html">RTPSourceData</a> *&nbsp;</td>
          <td class="paramname"> <em>srcdat</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="7f7c4375097bef51872925b64151745f"></a><!-- doxytag: member="RTPSession::OnPollThreadError" ref="7f7c4375097bef51872925b64151745f" args="(int errcode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnPollThreadError           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>errcode</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="7935fa6d0adbdb70f4fc330bccfbf2c2"></a><!-- doxytag: member="RTPSession::OnPollThreadStep" ref="7935fa6d0adbdb70f4fc330bccfbf2c2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnPollThreadStep           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Is called each time the poll thread loops. This happens when incoming data was detected or when it's time to send an RTCP compound packet. 
</div>
</div><p>
<a class="anchor" name="48d1ea8b3a3b0fe6f8b1075c342e8cf0"></a><!-- doxytag: member="RTPSession::OnRemoveSource" ref="48d1ea8b3a3b0fe6f8b1075c342e8cf0" args="(RTPSourceData *srcdat)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnRemoveSource           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPSourceData.html">RTPSourceData</a> *&nbsp;</td>
          <td class="paramname"> <em>srcdat</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="80deaed5cc4798f056709d219f64219c"></a><!-- doxytag: member="RTPSession::OnRTCPCompoundPacket" ref="80deaed5cc4798f056709d219f64219c" args="(RTCPCompoundPacket *pack, const RTPTime &amp;receivetime, const RTPAddress *senderaddress)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnRTCPCompoundPacket           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTCPCompoundPacket.html">RTCPCompoundPacket</a> *&nbsp;</td>
          <td class="paramname"> <em>pack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>receivetime</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classRTPAddress.html">RTPAddress</a> *&nbsp;</td>
          <td class="paramname"> <em>senderaddress</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="c4fd874a60aba53aab1fbadf7e05771b"></a><!-- doxytag: member="RTPSession::OnRTPPacket" ref="c4fd874a60aba53aab1fbadf7e05771b" args="(RTPPacket *pack, const RTPTime &amp;receivetime, const RTPAddress *senderaddress)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnRTPPacket           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPPacket.html">RTPPacket</a> *&nbsp;</td>
          <td class="paramname"> <em>pack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>receivetime</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classRTPAddress.html">RTPAddress</a> *&nbsp;</td>
          <td class="paramname"> <em>senderaddress</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="1bb4fcadcae116bd19e611ae227c390e"></a><!-- doxytag: member="RTPSession::OnSendRTCPCompoundPacket" ref="1bb4fcadcae116bd19e611ae227c390e" args="(RTCPCompoundPacket *pack)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnSendRTCPCompoundPacket           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTCPCompoundPacket.html">RTCPCompoundPacket</a> *&nbsp;</td>
          <td class="paramname"> <em>pack</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="5cfb438cd21df15735a6a64735809f44"></a><!-- doxytag: member="RTPSession::OnSSRCCollision" ref="5cfb438cd21df15735a6a64735809f44" args="(RTPSourceData *srcdat, const RTPAddress *senderaddress, bool isrtp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnSSRCCollision           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPSourceData.html">RTPSourceData</a> *&nbsp;</td>
          <td class="paramname"> <em>srcdat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classRTPAddress.html">RTPAddress</a> *&nbsp;</td>
          <td class="paramname"> <em>senderaddress</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>isrtp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Is called when an SSRC collision was detected. The instance <code>srcdat</code> is the one present in the table, the address <code>senderaddress</code> is the one that collided with one of the addresses and <code>isrtp</code> indicates against which address of <code>srcdat</code> the check failed. 
</div>
</div><p>
<a class="anchor" name="68bca5ce7d968cf816b9244a97813e7b"></a><!-- doxytag: member="RTPSession::OnTimeout" ref="68bca5ce7d968cf816b9244a97813e7b" args="(RTPSourceData *srcdat)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnTimeout           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPSourceData.html">RTPSourceData</a> *&nbsp;</td>
          <td class="paramname"> <em>srcdat</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="5a1cabfb6dce70234e40b0e6b9da9b48"></a><!-- doxytag: member="RTPSession::OnUnknownPacketFormat" ref="5a1cabfb6dce70234e40b0e6b9da9b48" args="(RTCPPacket *rtcppack, const RTPTime &amp;receivetime, const RTPAddress *senderaddress)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnUnknownPacketFormat           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTCPPacket.html">RTCPPacket</a> *&nbsp;</td>
          <td class="paramname"> <em>rtcppack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>receivetime</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classRTPAddress.html">RTPAddress</a> *&nbsp;</td>
          <td class="paramname"> <em>senderaddress</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="548cb78c76e1d381efc95fc6f158ad6a"></a><!-- doxytag: member="RTPSession::OnUnknownPacketType" ref="548cb78c76e1d381efc95fc6f158ad6a" args="(RTCPPacket *rtcppack, const RTPTime &amp;receivetime, const RTPAddress *senderaddress)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void RTPSession::OnUnknownPacketType           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTCPPacket.html">RTCPPacket</a> *&nbsp;</td>
          <td class="paramname"> <em>rtcppack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>receivetime</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classRTPAddress.html">RTPAddress</a> *&nbsp;</td>
          <td class="paramname"> <em>senderaddress</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="c966fef711d9818d66ca66ba4270f9d8"></a><!-- doxytag: member="RTPSession::SendPacket" ref="c966fef711d9818d66ca66ba4270f9d8" 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 RTPSession::SendPacket           </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>
It will use payload type <code>pt</code>, marker <code>mark</code> and after the packet has been built, the timestamp will be incremented by <code>timestampinc</code>. 
</div>
</div><p>
<a class="anchor" name="a9095e0c8bd08a5a46c42feac4ea079f"></a><!-- doxytag: member="RTPSession::SendPacket" ref="a9095e0c8bd08a5a46c42feac4ea079f" args="(const void *data, size_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SendPacket           </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>
Sends the RTP packet with payload <code>data</code> which has length <code>len</code>. The used payload type, marker and timestamp increment will be those that have been set using the <code>SetDefault</code> member functions. 
</div>
</div><p>
<a class="anchor" name="10c787931d3f71fa356148239079c5a1"></a><!-- doxytag: member="RTPSession::SendPacketEx" ref="10c787931d3f71fa356148239079c5a1" 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 RTPSession::SendPacketEx           </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>
It will use payload type <code>pt</code>, marker <code>mark</code> and after the packet has been built, the timestamp will be incremented by <code>timestampinc</code>. The packet will contain a header extension with identifier <code>hdrextID</code> and containing data <code>hdrextdata</code>. The length of this data is given by <code>numhdrextwords</code> and is specified in a number of 32-bit words. 
</div>
</div><p>
<a class="anchor" name="10c127b94e2340905d9c0b1aba7afd88"></a><!-- doxytag: member="RTPSession::SendPacketEx" ref="10c127b94e2340905d9c0b1aba7afd88" 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 RTPSession::SendPacketEx           </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>
The packet will contain a header extension with identifier <code>hdrextID</code> and containing data <code>hdrextdata</code>. The length of this data is given by <code>numhdrextwords</code> and is specified in a number of 32-bit words. The used payload type, marker and timestamp increment will be those that have been set using the <code>SetDefault</code> member functions. 
</div>
</div><p>
<a class="anchor" name="658e12aba572466b4a9a4bb30672506c"></a><!-- doxytag: member="RTPSession::SendRTCPAPPPacket" ref="658e12aba572466b4a9a4bb30672506c" args="(uint8_t subtype, const uint8_t name[4], const void *appdata, size_t appdatalen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SendRTCPAPPPacket           </td>
          <td>(</td>
          <td class="paramtype">uint8_t&nbsp;</td>
          <td class="paramname"> <em>subtype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t&nbsp;</td>
          <td class="paramname"> <em>name</em>[4], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>appdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>appdatalen</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If sending of RTCP APP packets was enabled at compile time, this function creates a compound packet containing an RTCP APP packet and sends it immediately. If successful, the function returns the number of bytes in the RTCP compound packet. Note that this immediate sending is not compliant with the RTP specification, so use with care. 
</div>
</div><p>
<a class="anchor" name="37172f082df1a452c2e9d3b86d5dc773"></a><!-- doxytag: member="RTPSession::SetDefaultMark" ref="37172f082df1a452c2e9d3b86d5dc773" args="(bool m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SetDefaultMark           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

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

<p>

</div>
</div><p>
<a class="anchor" name="97f5a1eef424452e4975aec7bd9f112d"></a><!-- doxytag: member="RTPSession::SetDefaultTimestampIncrement" ref="97f5a1eef424452e4975aec7bd9f112d" args="(uint32_t timestampinc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SetDefaultTimestampIncrement           </td>
          <td>(</td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>timestampinc</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="0885530d0a460fede91734fb06342138"></a><!-- doxytag: member="RTPSession::SetEMailInterval" ref="0885530d0a460fede91734fb06342138" args="(int count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPSession::SetEMailInterval           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>count</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
After all possible sources in the source table have been processed, the class will check if other SDES items need to be sent. If <code>count</code> is zero or negative, nothing will happen. If <code>count</code> is positive, an SDES e-mail item will be added after the sources in the source table have been processed <code>count</code> times. 
</div>
</div><p>
<a class="anchor" name="d2bb2379b7c41670440b22ec97963655"></a><!-- doxytag: member="RTPSession::SetLocalEMail" ref="d2bb2379b7c41670440b22ec97963655" args="(const void *s, size_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SetLocalEMail           </td>
          <td>(</td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>s</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>

</div>
</div><p>
<a class="anchor" name="e5602f12b3fc3d0a617532430e756db3"></a><!-- doxytag: member="RTPSession::SetLocalLocation" ref="e5602f12b3fc3d0a617532430e756db3" args="(const void *s, size_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SetLocalLocation           </td>
          <td>(</td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>s</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>

</div>
</div><p>
<a class="anchor" name="eed2c3e597d532595c221d08dacb0a98"></a><!-- doxytag: member="RTPSession::SetLocalName" ref="eed2c3e597d532595c221d08dacb0a98" args="(const void *s, size_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SetLocalName           </td>
          <td>(</td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>s</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>

</div>
</div><p>
<a class="anchor" name="2d4054267223d717c00892ade4b11eae"></a><!-- doxytag: member="RTPSession::SetLocalNote" ref="2d4054267223d717c00892ade4b11eae" args="(const void *s, size_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SetLocalNote           </td>
          <td>(</td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>s</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>

</div>
</div><p>
<a class="anchor" name="b72ae21a33af46909a4ac5bf463d84ba"></a><!-- doxytag: member="RTPSession::SetLocalPhone" ref="b72ae21a33af46909a4ac5bf463d84ba" args="(const void *s, size_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SetLocalPhone           </td>
          <td>(</td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>s</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>

</div>
</div><p>
<a class="anchor" name="2e15cfff1edce81f9735c31f0840fabf"></a><!-- doxytag: member="RTPSession::SetLocalTool" ref="2e15cfff1edce81f9735c31f0840fabf" args="(const void *s, size_t len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SetLocalTool           </td>
          <td>(</td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>s</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>

</div>
</div><p>
<a class="anchor" name="51aebf313f651d599d8d5ea73847ba9e"></a><!-- doxytag: member="RTPSession::SetLocationInterval" ref="51aebf313f651d599d8d5ea73847ba9e" args="(int count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPSession::SetLocationInterval           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>count</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
After all possible sources in the source table have been processed, the class will check if other SDES items need to be sent. If <code>count</code> is zero or negative, nothing will happen. If <code>count</code> is positive, an SDES location item will be added after the sources in the source table have been processed <code>count</code> times. 
</div>
</div><p>
<a class="anchor" name="ba7ac22f4076ee92a32282795ac238e1"></a><!-- doxytag: member="RTPSession::SetMaximumPacketSize" ref="ba7ac22f4076ee92a32282795ac238e1" args="(size_t s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SetMaximumPacketSize           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="2216dc90089596a1d13bd767d1d1ddbc"></a><!-- doxytag: member="RTPSession::SetNameInterval" ref="2216dc90089596a1d13bd767d1d1ddbc" args="(int count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPSession::SetNameInterval           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>count</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
After all possible sources in the source table have been processed, the class will check if other SDES items need to be sent. If <code>count</code> is zero or negative, nothing will happen. If <code>count</code> is positive, an SDES name item will be added after the sources in the source table have been processed <code>count</code> times. 
</div>
</div><p>
<a class="anchor" name="42e75670f52fb27a192d79069c9ef682"></a><!-- doxytag: member="RTPSession::SetNoteInterval" ref="42e75670f52fb27a192d79069c9ef682" args="(int count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPSession::SetNoteInterval           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>count</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
After all possible sources in the source table have been processed, the class will check if other SDES items need to be sent. If <code>count</code> is zero or negative, nothing will happen. If <code>count</code> is positive, an SDES note item will be added after the sources in the source table have been processed <code>count</code> times. 
</div>
</div><p>
<a class="anchor" name="1e4c62b191a1133f647f57f76e28460d"></a><!-- doxytag: member="RTPSession::SetPhoneInterval" ref="1e4c62b191a1133f647f57f76e28460d" args="(int count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPSession::SetPhoneInterval           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>count</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
After all possible sources in the source table have been processed, the class will check if other SDES items need to be sent. If <code>count</code> is zero or negative, nothing will happen. If <code>count</code> is positive, an SDES phone item will be added after the sources in the source table have been processed <code>count</code> times. 
</div>
</div><p>
<a class="anchor" name="783020a198c4a69d602d28aacb932527"></a><!-- doxytag: member="RTPSession::SetPreTransmissionDelay" ref="783020a198c4a69d602d28aacb932527" args="(const RTPTime &amp;delay)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SetPreTransmissionDelay           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>delay</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function allows you to inform the library about the delay between sampling the first sample of a packet and sending the packet. This delay is taken into account when calculating the relation between RTP timestamp and wallclock time, used for inter-media synchronization. 
</div>
</div><p>
<a class="anchor" name="ee898b16c7303606c8e346c28a909052"></a><!-- doxytag: member="RTPSession::SetReceiveMode" ref="ee898b16c7303606c8e346c28a909052" args="(RTPTransmitter::ReceiveMode m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SetReceiveMode           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classRTPTransmitter.html#bae77e9adf52db77f5ea29757dfa6386">RTPTransmitter::ReceiveMode</a>&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the receive mode to <code>m</code>. Note that when the receive mode is changed, the list of addresses to be ignored ot accepted will be cleared. 
</div>
</div><p>
<a class="anchor" name="799d140c38a8781c3f5c476b1bfe04db"></a><!-- doxytag: member="RTPSession::SetSessionBandwidth" ref="799d140c38a8781c3f5c476b1bfe04db" args="(double bw)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SetSessionBandwidth           </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>bw</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="3e983f539df6be96567629aa4885ba4d"></a><!-- doxytag: member="RTPSession::SetTimestampUnit" ref="3e983f539df6be96567629aa4885ba4d" args="(double u)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::SetTimestampUnit           </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>u</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the timestamp unit for our own data. The timestamp unit is defined as a time interval in seconds divided by the corresponding timestamp interval. For example, for 8000 Hz audio, the timestamp unit would typically be 1/8000. Since this value is initially set to an illegal value, the user must set this to an allowed value to be able to create a session. 
</div>
</div><p>
<a class="anchor" name="88b41600f380cee7adbc90cede9e5943"></a><!-- doxytag: member="RTPSession::SetToolInterval" ref="88b41600f380cee7adbc90cede9e5943" args="(int count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void RTPSession::SetToolInterval           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>count</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
After all possible sources in the source table have been processed, the class will check if other SDES items need to be sent. If <code>count</code> is zero or negative, nothing will happen. If <code>count</code> is positive, an SDES tool item will be added after the sources in the source table have been processed <code>count</code> times. 
</div>
</div><p>
<a class="anchor" name="398fd69051d8b7fd00b9bd8a60a359da"></a><!-- doxytag: member="RTPSession::SupportsMulticasting" ref="398fd69051d8b7fd00b9bd8a60a359da" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool RTPSession::SupportsMulticasting           </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="c61c637ab1e7eed342bdc099ecbe6fb0"></a><!-- doxytag: member="RTPSession::WaitForIncomingData" ref="c61c637ab1e7eed342bdc099ecbe6fb0" args="(const RTPTime &amp;delay, bool *dataavailable=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int RTPSession::WaitForIncomingData           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classRTPTime.html">RTPTime</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>delay</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&nbsp;</td>
          <td class="paramname"> <em>dataavailable</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Waits at most a time <code>delay</code> until incoming data has been detected. Only works when you're not using the poll thread. If <code>dataavailable</code> is not <code>NULL</code>, it should be set to <code>true</code> if data was actually read and to <code>false</code> otherwise. 
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>src/<a class="el" href="rtpsession_8h_source.html">rtpsession.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>