1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<html> 3<head> 4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5<title>rtpsession: GStreamer Good Plugins 1.0 Plugins Reference Manual</title> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> 8<link rel="up" href="ch01.html" title="gst-plugins-good Elements"> 9<link rel="prev" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay"> 10<link rel="next" href="gst-plugins-good-plugins-rtpsirendepay.html" title="rtpsirendepay"> 11<meta name="generator" content="GTK-Doc V1.28 (XML mode)"> 12<link rel="stylesheet" href="style.css" type="text/css"> 13</head> 14<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 15<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> 16<td width="100%" align="left" class="shortcuts"> 17<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 18 <a href="#gst-plugins-good-plugins-rtpsession.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 19 <a href="#gst-plugins-good-plugins-rtpsession.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 20 <a href="#gst-plugins-good-plugins-rtpsession.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 21 <a href="#gst-plugins-good-plugins-rtpsession.signals" class="shortcut">Signals</a></span> 22</td> 23<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> 24<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> 25<td><a accesskey="p" href="gst-plugins-good-plugins-rtpsbcpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> 26<td><a accesskey="n" href="gst-plugins-good-plugins-rtpsirendepay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> 27</tr></table> 28<div class="refentry"> 29<a name="gst-plugins-good-plugins-rtpsession"></a><div class="titlepage"></div> 30<div class="refnamediv"><table width="100%"><tr> 31<td valign="top"> 32<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpsession.top_of_page"></a>rtpsession</span></h2> 33<p>rtpsession</p> 34</td> 35<td class="gallery_image" valign="top" align="right"></td> 36</tr></table></div> 37<div class="refsect1"> 38<a name="gst-plugins-good-plugins-rtpsession.properties"></a><h2>Properties</h2> 39<div class="informaltable"><table class="informaltable" border="0"> 40<colgroup> 41<col width="150px" class="properties_type"> 42<col width="300px" class="properties_name"> 43<col width="200px" class="properties_flags"> 44</colgroup> 45<tbody> 46<tr> 47<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> 48<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--bandwidth" title="The “bandwidth” property">bandwidth</a></td> 49<td class="property_flags">Read / Write</td> 50</tr> 51<tr> 52<td class="property_type"> 53<span class="type">RTPSession</span> *</td> 54<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--internal-session" title="The “internal-session” property">internal-session</a></td> 55<td class="property_flags">Read</td> 56</tr> 57<tr> 58<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> 59<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--num-active-sources" title="The “num-active-sources” property">num-active-sources</a></td> 60<td class="property_flags">Read</td> 61</tr> 62<tr> 63<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> 64<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--num-sources" title="The “num-sources” property">num-sources</a></td> 65<td class="property_flags">Read</td> 66</tr> 67<tr> 68<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> 69<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-fraction" title="The “rtcp-fraction” property">rtcp-fraction</a></td> 70<td class="property_flags">Read / Write</td> 71</tr> 72<tr> 73<td class="property_type"> 74<a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</td> 75<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--sdes" title="The “sdes” property">sdes</a></td> 76<td class="property_flags">Read / Write</td> 77</tr> 78<tr> 79<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> 80<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-rr-bandwidth" title="The “rtcp-rr-bandwidth” property">rtcp-rr-bandwidth</a></td> 81<td class="property_flags">Read / Write</td> 82</tr> 83<tr> 84<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> 85<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-rs-bandwidth" title="The “rtcp-rs-bandwidth” property">rtcp-rs-bandwidth</a></td> 86<td class="property_flags">Read / Write</td> 87</tr> 88<tr> 89<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> 90<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--use-pipeline-clock" title="The “use-pipeline-clock” property">use-pipeline-clock</a></td> 91<td class="property_flags">Read / Write</td> 92</tr> 93<tr> 94<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td> 95<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-min-interval" title="The “rtcp-min-interval” property">rtcp-min-interval</a></td> 96<td class="property_flags">Read / Write</td> 97</tr> 98<tr> 99<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> 100<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--probation" title="The “probation” property">probation</a></td> 101<td class="property_flags">Read / Write</td> 102</tr> 103<tr> 104<td class="property_type"> 105<a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</td> 106<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--stats" title="The “stats” property">stats</a></td> 107<td class="property_flags">Read</td> 108</tr> 109<tr> 110<td class="property_type"><a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTPdefs.html#GstRTPProfile"><span class="type">GstRTPProfile</span></a></td> 111<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtp-profile" title="The “rtp-profile” property">rtp-profile</a></td> 112<td class="property_flags">Read / Write</td> 113</tr> 114<tr> 115<td class="property_type"><span class="type">GstRtpNtpTimeSource</span></td> 116<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--ntp-time-source" title="The “ntp-time-source” property">ntp-time-source</a></td> 117<td class="property_flags">Read / Write</td> 118</tr> 119<tr> 120<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> 121<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--max-dropout-time" title="The “max-dropout-time” property">max-dropout-time</a></td> 122<td class="property_flags">Read / Write</td> 123</tr> 124<tr> 125<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> 126<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--max-misorder-time" title="The “max-misorder-time” property">max-misorder-time</a></td> 127<td class="property_flags">Read / Write</td> 128</tr> 129<tr> 130<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> 131<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-sync-send-time" title="The “rtcp-sync-send-time” property">rtcp-sync-send-time</a></td> 132<td class="property_flags">Read / Write</td> 133</tr> 134</tbody> 135</table></div> 136</div> 137<div class="refsect1"> 138<a name="gst-plugins-good-plugins-rtpsession.signals"></a><h2>Signals</h2> 139<div class="informaltable"><table class="informaltable" border="0"> 140<colgroup> 141<col width="150px" class="signals_return"> 142<col width="300px" class="signals_name"> 143<col width="200px" class="signals_flags"> 144</colgroup> 145<tbody> 146<tr> 147<td class="signal_type"><span class="returnvalue">void</span></td> 148<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map" title="The “clear-pt-map” signal">clear-pt-map</a></td> 149<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></td> 150</tr> 151<tr> 152<td class="signal_type"><span class="returnvalue">void</span></td> 153<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-ssrc" title="The “on-bye-ssrc” signal">on-bye-ssrc</a></td> 154<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> 155</tr> 156<tr> 157<td class="signal_type"><span class="returnvalue">void</span></td> 158<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-timeout" title="The “on-bye-timeout” signal">on-bye-timeout</a></td> 159<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> 160</tr> 161<tr> 162<td class="signal_type"><span class="returnvalue">void</span></td> 163<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-new-ssrc" title="The “on-new-ssrc” signal">on-new-ssrc</a></td> 164<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> 165</tr> 166<tr> 167<td class="signal_type"><span class="returnvalue">void</span></td> 168<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-sender-timeout" title="The “on-sender-timeout” signal">on-sender-timeout</a></td> 169<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> 170</tr> 171<tr> 172<td class="signal_type"><span class="returnvalue">void</span></td> 173<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-active" title="The “on-ssrc-active” signal">on-ssrc-active</a></td> 174<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> 175</tr> 176<tr> 177<td class="signal_type"><span class="returnvalue">void</span></td> 178<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-collision" title="The “on-ssrc-collision” signal">on-ssrc-collision</a></td> 179<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> 180</tr> 181<tr> 182<td class="signal_type"><span class="returnvalue">void</span></td> 183<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-sdes" title="The “on-ssrc-sdes” signal">on-ssrc-sdes</a></td> 184<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> 185</tr> 186<tr> 187<td class="signal_type"><span class="returnvalue">void</span></td> 188<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-validated" title="The “on-ssrc-validated” signal">on-ssrc-validated</a></td> 189<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> 190</tr> 191<tr> 192<td class="signal_type"><span class="returnvalue">void</span></td> 193<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-timeout" title="The “on-timeout” signal">on-timeout</a></td> 194<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> 195</tr> 196<tr> 197<td class="signal_type"> 198<a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a>*</td> 199<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title="The “request-pt-map” signal">request-pt-map</a></td> 200<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> 201</tr> 202<tr> 203<td class="signal_type"><span class="returnvalue">void</span></td> 204<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-new-sender-ssrc" title="The “on-new-sender-ssrc” signal">on-new-sender-ssrc</a></td> 205<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> 206</tr> 207<tr> 208<td class="signal_type"><span class="returnvalue">void</span></td> 209<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-sender-ssrc-active" title="The “on-sender-ssrc-active” signal">on-sender-ssrc-active</a></td> 210<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> 211</tr> 212</tbody> 213</table></div> 214</div> 215<a name="GstRtpSession"></a><div class="refsect1"> 216<a name="gst-plugins-good-plugins-rtpsession.other"></a><h2>Types and Values</h2> 217<div class="informaltable"><table class="informaltable" width="100%" border="0"> 218<colgroup> 219<col width="150px" class="name"> 220<col class="description"> 221</colgroup> 222<tbody><tr> 223<td class="datatype_keyword">struct</td> 224<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-struct" title="struct GstRtpSession">GstRtpSession</a></td> 225</tr></tbody> 226</table></div> 227</div> 228<div class="refsect1"> 229<a name="gst-plugins-good-plugins-rtpsession.object-hierarchy"></a><h2>Object Hierarchy</h2> 230<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a> 231 <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> 232 <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a> 233 <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a> 234 <span class="lineart">╰──</span> GstRtpSession 235</pre> 236</div> 237<div class="refsect1"> 238<a name="gst-plugins-good-plugins-rtpsession.description"></a><h2>Description</h2> 239<p>The RTP session manager models participants with unique SSRC in an RTP 240session. This session can be used to send and receive RTP and RTCP packets. 241Based on what REQUEST pads are requested from the session manager, specific 242functionality can be activated.</p> 243<p>The session manager currently implements RFC 3550 including:</p> 244<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 245<li class="listitem"><p>RTP packet validation based on consecutive sequence numbers.</p></li> 246<li class="listitem"><p>Maintainance of the SSRC participant database.</p></li> 247<li class="listitem"><p>Keeping per participant statistics based on received RTCP packets.</p></li> 248<li class="listitem"><p>Scheduling of RR/SR RTCP packets.</p></li> 249<li class="listitem"><p>Support for multiple sender SSRC.</p></li> 250</ul></div> 251<p>The rtpsession will not demux packets based on SSRC or payload type, nor will 252it correct for packet reordering and jitter. Use <span class="type">GstRtpsSrcDemux</span>, 253<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> and GstRtpJitterBuffer in addition to <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> to 254perform these tasks. It is usually a good idea to use <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a>, which 255combines all these features in one element.</p> 256<p>To use <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> as an RTP receiver, request a recv_rtp_sink pad, which will 257automatically create recv_rtp_src pad. Data received on the recv_rtp_sink pad 258will be processed in the session and after being validated forwarded on the 259recv_rtp_src pad.</p> 260<p>To also use <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> as an RTCP receiver, request a recv_rtcp_sink pad, 261which will automatically create a sync_src pad. Packets received on the RTCP 262pad will be used by the session manager to update the stats and database of 263the other participants. SR packets will be forwarded on the sync_src pad 264so that they can be used to perform inter-stream synchronisation when needed.</p> 265<p>If you want the session manager to generate and send RTCP packets, request 266the send_rtcp_src pad. Packet pushed on this pad contain SR/RR RTCP reports 267that should be sent to all participants in the session.</p> 268<p>To use <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> as a sender, request a send_rtp_sink pad, which will 269automatically create a send_rtp_src pad. The session manager will 270forward the packets on the send_rtp_src pad after updating its internal state.</p> 271<p>The session manager needs the clock-rate of the payload types it is handling 272and will signal the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title="The “request-pt-map” signal"><span class="type">“request-pt-map”</span></a> signal when it needs such a 273mapping. One can clear the cached values with the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map" title="The “clear-pt-map” signal"><span class="type">“clear-pt-map”</span></a> 274signal.</p> 275<div class="refsect2"> 276<a name="id-1.2.215.8.11"></a><h3>Example pipelines</h3> 277<div class="informalexample"> 278 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> 279 <tbody> 280 <tr> 281 <td class="listing_lines" align="right"><pre>1</pre></td> 282 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> udpsrc port<span class="gtkdoc opt">=</span><span class="number">5000</span> caps<span class="gtkdoc opt">=</span><span class="string">"application/x-rtp, ..."</span> <span class="gtkdoc opt">! .</span>recv_rtp_sink rtpsession <span class="gtkdoc opt">.</span>recv_rtp_src <span class="gtkdoc opt">!</span> rtptheoradepay <span class="gtkdoc opt">!</span> theoradec <span class="gtkdoc opt">!</span> xvimagesink</pre></td> 283 </tr> 284 </tbody> 285 </table> 286</div> 287 Receive theora RTP packets from port 5000 and send them to the depayloader, 288decoder and display. Note that the application/x-rtp caps on udpsrc should be 289configured based on some negotiation process such as RTSP for this pipeline 290to work correctly. 291<div class="informalexample"> 292 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> 293 <tbody> 294 <tr> 295 <td class="listing_lines" align="right"><pre>1 2962 2973</pre></td> 298 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> udpsrc port<span class="gtkdoc opt">=</span><span class="number">5000</span> caps<span class="gtkdoc opt">=</span><span class="string">"application/x-rtp, ..."</span> <span class="gtkdoc opt">! .</span>recv_rtp_sink rtpsession name<span class="gtkdoc opt">=</span>session \ 299 <span class="gtkdoc opt">.</span>recv_rtp_src <span class="gtkdoc opt">!</span> rtptheoradepay <span class="gtkdoc opt">!</span> theoradec <span class="gtkdoc opt">!</span> xvimagesink \ 300 udpsrc port<span class="gtkdoc opt">=</span><span class="number">5001</span> caps<span class="gtkdoc opt">=</span><span class="string">"application/x-rtcp"</span> <span class="gtkdoc opt">!</span> session<span class="gtkdoc opt">.</span>recv_rtcp_sink</pre></td> 301 </tr> 302 </tbody> 303 </table> 304</div> 305 Receive theora RTP packets from port 5000 and send them to the depayloader, 306decoder and display. Receive RTCP packets from port 5001 and process them in 307the session manager. 308Note that the application/x-rtp caps on udpsrc should be 309configured based on some negotiation process such as RTSP for this pipeline 310to work correctly. 311<div class="informalexample"> 312 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> 313 <tbody> 314 <tr> 315 <td class="listing_lines" align="right"><pre>1</pre></td> 316 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> videotestsrc <span class="gtkdoc opt">!</span> theoraenc <span class="gtkdoc opt">!</span> rtptheorapay <span class="gtkdoc opt">! .</span>send_rtp_sink rtpsession <span class="gtkdoc opt">.</span>send_rtp_src <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5000</span></pre></td> 317 </tr> 318 </tbody> 319 </table> 320</div> 321 Send theora RTP packets through the session manager and out on UDP port 3225000. 323<div class="informalexample"> 324 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> 325 <tbody> 326 <tr> 327 <td class="listing_lines" align="right"><pre>1 3282</pre></td> 329 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> videotestsrc <span class="gtkdoc opt">!</span> theoraenc <span class="gtkdoc opt">!</span> rtptheorapay <span class="gtkdoc opt">! .</span>send_rtp_sink rtpsession name<span class="gtkdoc opt">=</span>session <span class="gtkdoc opt">.</span>send_rtp_src \ 330 <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5000</span> session<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">!</span> udpsink port<span class="gtkdoc opt">=</span><span class="number">5001</span></pre></td> 331 </tr> 332 </tbody> 333 </table> 334</div> 335 Send theora RTP packets through the session manager and out on UDP port 3365000. Send RTCP packets on port 5001. Note that this pipeline will not preroll 337correctly because the second udpsink will not preroll correctly (no RTCP 338packets are sent in the PAUSED state). Applications should manually set and 339keep (see <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#gst-element-set-locked-state"><code class="function">gst_element_set_locked_state()</code></a>) the RTCP udpsink to the PLAYING state. 340</div> 341<div class="refsynopsisdiv"> 342<h2>Synopsis</h2> 343<div class="refsect2"> 344<a name="id-1.2.215.8.12.1"></a><h3>Element Information</h3> 345<div class="variablelist"><table border="0" class="variablelist"> 346<colgroup> 347<col align="left" valign="top"> 348<col> 349</colgroup> 350<tbody> 351<tr> 352<td><p><span class="term">plugin</span></p></td> 353<td> 354 <a class="link" href="gst-plugins-good-plugins-plugin-rtpmanager.html#plugin-rtpmanager">rtpmanager</a> 355 </td> 356</tr> 357<tr> 358<td><p><span class="term">author</span></p></td> 359<td>Wim Taymans <wim.taymans@gmail.com></td> 360</tr> 361<tr> 362<td><p><span class="term">class</span></p></td> 363<td>Filter/Network/RTP</td> 364</tr> 365</tbody> 366</table></div> 367</div> 368<hr> 369<div class="refsect2"> 370<a name="id-1.2.215.8.12.2"></a><h3>Element Pads</h3> 371<div class="variablelist"><table border="0" class="variablelist"> 372<colgroup> 373<col align="left" valign="top"> 374<col> 375</colgroup> 376<tbody> 377<tr> 378<td><p><span class="term">name</span></p></td> 379<td>recv_rtcp_sink</td> 380</tr> 381<tr> 382<td><p><span class="term">direction</span></p></td> 383<td>sink</td> 384</tr> 385<tr> 386<td><p><span class="term">presence</span></p></td> 387<td>request</td> 388</tr> 389<tr> 390<td><p><span class="term">details</span></p></td> 391<td>application/x-rtcp</td> 392</tr> 393</tbody> 394</table></div> 395<div class="variablelist"><table border="0" class="variablelist"> 396<colgroup> 397<col align="left" valign="top"> 398<col> 399</colgroup> 400<tbody> 401<tr> 402<td><p><span class="term">name</span></p></td> 403<td>recv_rtp_sink</td> 404</tr> 405<tr> 406<td><p><span class="term">direction</span></p></td> 407<td>sink</td> 408</tr> 409<tr> 410<td><p><span class="term">presence</span></p></td> 411<td>request</td> 412</tr> 413<tr> 414<td><p><span class="term">details</span></p></td> 415<td>application/x-rtp</td> 416</tr> 417</tbody> 418</table></div> 419<div class="variablelist"><table border="0" class="variablelist"> 420<colgroup> 421<col align="left" valign="top"> 422<col> 423</colgroup> 424<tbody> 425<tr> 426<td><p><span class="term">name</span></p></td> 427<td>send_rtp_sink</td> 428</tr> 429<tr> 430<td><p><span class="term">direction</span></p></td> 431<td>sink</td> 432</tr> 433<tr> 434<td><p><span class="term">presence</span></p></td> 435<td>request</td> 436</tr> 437<tr> 438<td><p><span class="term">details</span></p></td> 439<td>application/x-rtp</td> 440</tr> 441</tbody> 442</table></div> 443<div class="variablelist"><table border="0" class="variablelist"> 444<colgroup> 445<col align="left" valign="top"> 446<col> 447</colgroup> 448<tbody> 449<tr> 450<td><p><span class="term">name</span></p></td> 451<td>recv_rtp_src</td> 452</tr> 453<tr> 454<td><p><span class="term">direction</span></p></td> 455<td>source</td> 456</tr> 457<tr> 458<td><p><span class="term">presence</span></p></td> 459<td>sometimes</td> 460</tr> 461<tr> 462<td><p><span class="term">details</span></p></td> 463<td>application/x-rtp</td> 464</tr> 465</tbody> 466</table></div> 467<div class="variablelist"><table border="0" class="variablelist"> 468<colgroup> 469<col align="left" valign="top"> 470<col> 471</colgroup> 472<tbody> 473<tr> 474<td><p><span class="term">name</span></p></td> 475<td>send_rtp_src</td> 476</tr> 477<tr> 478<td><p><span class="term">direction</span></p></td> 479<td>source</td> 480</tr> 481<tr> 482<td><p><span class="term">presence</span></p></td> 483<td>sometimes</td> 484</tr> 485<tr> 486<td><p><span class="term">details</span></p></td> 487<td>application/x-rtp</td> 488</tr> 489</tbody> 490</table></div> 491<div class="variablelist"><table border="0" class="variablelist"> 492<colgroup> 493<col align="left" valign="top"> 494<col> 495</colgroup> 496<tbody> 497<tr> 498<td><p><span class="term">name</span></p></td> 499<td>sync_src</td> 500</tr> 501<tr> 502<td><p><span class="term">direction</span></p></td> 503<td>source</td> 504</tr> 505<tr> 506<td><p><span class="term">presence</span></p></td> 507<td>sometimes</td> 508</tr> 509<tr> 510<td><p><span class="term">details</span></p></td> 511<td>application/x-rtcp</td> 512</tr> 513</tbody> 514</table></div> 515<div class="variablelist"><table border="0" class="variablelist"> 516<colgroup> 517<col align="left" valign="top"> 518<col> 519</colgroup> 520<tbody> 521<tr> 522<td><p><span class="term">name</span></p></td> 523<td>send_rtcp_src</td> 524</tr> 525<tr> 526<td><p><span class="term">direction</span></p></td> 527<td>source</td> 528</tr> 529<tr> 530<td><p><span class="term">presence</span></p></td> 531<td>request</td> 532</tr> 533<tr> 534<td><p><span class="term">details</span></p></td> 535<td>application/x-rtcp</td> 536</tr> 537</tbody> 538</table></div> 539</div> 540</div> 541</div> 542<div class="refsect1"> 543<a name="gst-plugins-good-plugins-rtpsession.functions_details"></a><h2>Functions</h2> 544<p></p> 545</div> 546<div class="refsect1"> 547<a name="gst-plugins-good-plugins-rtpsession.other_details"></a><h2>Types and Values</h2> 548<div class="refsect2"> 549<a name="GstRtpSession-struct"></a><h3>struct GstRtpSession</h3> 550<pre class="programlisting">struct GstRtpSession;</pre> 551</div> 552</div> 553<div class="refsect1"> 554<a name="gst-plugins-good-plugins-rtpsession.property-details"></a><h2>Property Details</h2> 555<div class="refsect2"> 556<a name="GstRtpSession--bandwidth"></a><h3>The <code class="literal">“bandwidth”</code> property</h3> 557<pre class="programlisting"> “bandwidth” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> 558<p>The bandwidth of the session in bytes per second (0 for auto-discover).</p> 559<p>Flags: Read / Write</p> 560<p>Allowed values: >= 0</p> 561<p>Default value: 0</p> 562</div> 563<hr> 564<div class="refsect2"> 565<a name="GstRtpSession--internal-session"></a><h3>The <code class="literal">“internal-session”</code> property</h3> 566<pre class="programlisting"> “internal-session” <span class="type">RTPSession</span> *</pre> 567<p>The internal RTPSession object.</p> 568<p>Flags: Read</p> 569</div> 570<hr> 571<div class="refsect2"> 572<a name="GstRtpSession--num-active-sources"></a><h3>The <code class="literal">“num-active-sources”</code> property</h3> 573<pre class="programlisting"> “num-active-sources” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> 574<p>The number of active sources in the session.</p> 575<p>Flags: Read</p> 576<p>Default value: 0</p> 577</div> 578<hr> 579<div class="refsect2"> 580<a name="GstRtpSession--num-sources"></a><h3>The <code class="literal">“num-sources”</code> property</h3> 581<pre class="programlisting"> “num-sources” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> 582<p>The number of sources in the session.</p> 583<p>Flags: Read</p> 584<p>Default value: 0</p> 585</div> 586<hr> 587<div class="refsect2"> 588<a name="GstRtpSession--rtcp-fraction"></a><h3>The <code class="literal">“rtcp-fraction”</code> property</h3> 589<pre class="programlisting"> “rtcp-fraction” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> 590<p>The RTCP bandwidth of the session in bytes per second (or as a real fraction of the RTP bandwidth if < 1.0).</p> 591<p>Flags: Read / Write</p> 592<p>Allowed values: >= 0</p> 593<p>Default value: 0.05</p> 594</div> 595<hr> 596<div class="refsect2"> 597<a name="GstRtpSession--sdes"></a><h3>The <code class="literal">“sdes”</code> property</h3> 598<pre class="programlisting"> “sdes” <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</pre> 599<p>The SDES items of this session.</p> 600<p>Flags: Read / Write</p> 601</div> 602<hr> 603<div class="refsect2"> 604<a name="GstRtpSession--rtcp-rr-bandwidth"></a><h3>The <code class="literal">“rtcp-rr-bandwidth”</code> property</h3> 605<pre class="programlisting"> “rtcp-rr-bandwidth” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> 606<p>The RTCP bandwidth used for receivers in bytes per second (-1 = default).</p> 607<p>Flags: Read / Write</p> 608<p>Allowed values: >= G_MAXULONG</p> 609<p>Default value: -1</p> 610</div> 611<hr> 612<div class="refsect2"> 613<a name="GstRtpSession--rtcp-rs-bandwidth"></a><h3>The <code class="literal">“rtcp-rs-bandwidth”</code> property</h3> 614<pre class="programlisting"> “rtcp-rs-bandwidth” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> 615<p>The RTCP bandwidth used for senders in bytes per second (-1 = default).</p> 616<p>Flags: Read / Write</p> 617<p>Allowed values: >= G_MAXULONG</p> 618<p>Default value: -1</p> 619</div> 620<hr> 621<div class="refsect2"> 622<a name="GstRtpSession--use-pipeline-clock"></a><h3>The <code class="literal">“use-pipeline-clock”</code> property</h3> 623<pre class="programlisting"> “use-pipeline-clock” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> 624<p>Use the pipeline running-time to set the NTP time in the RTCP SR messages (DEPRECATED: Use ntp-time-source property).</p> 625<p>Flags: Read / Write</p> 626<p>Default value: FALSE</p> 627</div> 628<hr> 629<div class="refsect2"> 630<a name="GstRtpSession--rtcp-min-interval"></a><h3>The <code class="literal">“rtcp-min-interval”</code> property</h3> 631<pre class="programlisting"> “rtcp-min-interval” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre> 632<p>Minimum interval between Regular RTCP packet (in ns).</p> 633<p>Flags: Read / Write</p> 634<p>Default value: 5000000000</p> 635</div> 636<hr> 637<div class="refsect2"> 638<a name="GstRtpSession--probation"></a><h3>The <code class="literal">“probation”</code> property</h3> 639<pre class="programlisting"> “probation” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> 640<p>Consecutive packet sequence numbers to accept the source.</p> 641<p>Flags: Read / Write</p> 642<p>Default value: 2</p> 643</div> 644<hr> 645<div class="refsect2"> 646<a name="GstRtpSession--stats"></a><h3>The <code class="literal">“stats”</code> property</h3> 647<pre class="programlisting"> “stats” <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</pre> 648<p>Various statistics.</p> 649<p>Flags: Read</p> 650</div> 651<hr> 652<div class="refsect2"> 653<a name="GstRtpSession--rtp-profile"></a><h3>The <code class="literal">“rtp-profile”</code> property</h3> 654<pre class="programlisting"> “rtp-profile” <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstRTPdefs.html#GstRTPProfile"><span class="type">GstRTPProfile</span></a></pre> 655<p>RTP profile to use.</p> 656<p>Flags: Read / Write</p> 657<p>Default value: GST_RTP_PROFILE_AVP</p> 658</div> 659<hr> 660<div class="refsect2"> 661<a name="GstRtpSession--ntp-time-source"></a><h3>The <code class="literal">“ntp-time-source”</code> property</h3> 662<pre class="programlisting"> “ntp-time-source” <span class="type">GstRtpNtpTimeSource</span></pre> 663<p>NTP time source for RTCP packets.</p> 664<p>Flags: Read / Write</p> 665<p>Default value: NTP time based on realtime clock</p> 666</div> 667<hr> 668<div class="refsect2"> 669<a name="GstRtpSession--max-dropout-time"></a><h3>The <code class="literal">“max-dropout-time”</code> property</h3> 670<pre class="programlisting"> “max-dropout-time” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> 671<p>The maximum time (milliseconds) of missing packets tolerated.</p> 672<p>Flags: Read / Write</p> 673<p>Default value: 60000</p> 674</div> 675<hr> 676<div class="refsect2"> 677<a name="GstRtpSession--max-misorder-time"></a><h3>The <code class="literal">“max-misorder-time”</code> property</h3> 678<pre class="programlisting"> “max-misorder-time” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> 679<p>The maximum time (milliseconds) of misordered packets tolerated.</p> 680<p>Flags: Read / Write</p> 681<p>Default value: 2000</p> 682</div> 683<hr> 684<div class="refsect2"> 685<a name="GstRtpSession--rtcp-sync-send-time"></a><h3>The <code class="literal">“rtcp-sync-send-time”</code> property</h3> 686<pre class="programlisting"> “rtcp-sync-send-time” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> 687<p>Use send time or capture time for RTCP sync (TRUE = send time, FALSE = capture time).</p> 688<p>Flags: Read / Write</p> 689<p>Default value: TRUE</p> 690</div> 691</div> 692<div class="refsect1"> 693<a name="gst-plugins-good-plugins-rtpsession.signal-details"></a><h2>Signal Details</h2> 694<div class="refsect2"> 695<a name="GstRtpSession-clear-pt-map"></a><h3>The <code class="literal">“clear-pt-map”</code> signal</h3> 696<pre class="programlisting"><span class="returnvalue">void</span> 697user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, 698 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> 699<p>Clear the cached pt-maps requested with <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title="The “request-pt-map” signal"><span class="type">“request-pt-map”</span></a>.</p> 700<div class="refsect3"> 701<a name="GstRtpSession-clear-pt-map.parameters"></a><h4>Parameters</h4> 702<div class="informaltable"><table class="informaltable" width="100%" border="0"> 703<colgroup> 704<col width="150px" class="parameters_name"> 705<col class="parameters_description"> 706<col width="200px" class="parameters_annotations"> 707</colgroup> 708<tbody> 709<tr> 710<td class="parameter_name"><p>sess</p></td> 711<td class="parameter_description"><p>the object which received the signal</p></td> 712<td class="parameter_annotations"> </td> 713</tr> 714<tr> 715<td class="parameter_name"><p>user_data</p></td> 716<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> 717<td class="parameter_annotations"> </td> 718</tr> 719</tbody> 720</table></div> 721</div> 722<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></p> 723</div> 724<hr> 725<div class="refsect2"> 726<a name="GstRtpSession-on-bye-ssrc"></a><h3>The <code class="literal">“on-bye-ssrc”</code> signal</h3> 727<pre class="programlisting"><span class="returnvalue">void</span> 728user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, 729 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, 730 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> 731<p>Notify of an SSRC that became inactive because of a BYE packet.</p> 732<div class="refsect3"> 733<a name="GstRtpSession-on-bye-ssrc.parameters"></a><h4>Parameters</h4> 734<div class="informaltable"><table class="informaltable" width="100%" border="0"> 735<colgroup> 736<col width="150px" class="parameters_name"> 737<col class="parameters_description"> 738<col width="200px" class="parameters_annotations"> 739</colgroup> 740<tbody> 741<tr> 742<td class="parameter_name"><p>sess</p></td> 743<td class="parameter_description"><p>the object which received the signal</p></td> 744<td class="parameter_annotations"> </td> 745</tr> 746<tr> 747<td class="parameter_name"><p>ssrc</p></td> 748<td class="parameter_description"><p>the SSRC</p></td> 749<td class="parameter_annotations"> </td> 750</tr> 751<tr> 752<td class="parameter_name"><p>user_data</p></td> 753<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> 754<td class="parameter_annotations"> </td> 755</tr> 756</tbody> 757</table></div> 758</div> 759<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> 760</div> 761<hr> 762<div class="refsect2"> 763<a name="GstRtpSession-on-bye-timeout"></a><h3>The <code class="literal">“on-bye-timeout”</code> signal</h3> 764<pre class="programlisting"><span class="returnvalue">void</span> 765user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, 766 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, 767 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> 768<p>Notify of an SSRC that has timed out because of BYE</p> 769<div class="refsect3"> 770<a name="GstRtpSession-on-bye-timeout.parameters"></a><h4>Parameters</h4> 771<div class="informaltable"><table class="informaltable" width="100%" border="0"> 772<colgroup> 773<col width="150px" class="parameters_name"> 774<col class="parameters_description"> 775<col width="200px" class="parameters_annotations"> 776</colgroup> 777<tbody> 778<tr> 779<td class="parameter_name"><p>sess</p></td> 780<td class="parameter_description"><p>the object which received the signal</p></td> 781<td class="parameter_annotations"> </td> 782</tr> 783<tr> 784<td class="parameter_name"><p>ssrc</p></td> 785<td class="parameter_description"><p>the SSRC</p></td> 786<td class="parameter_annotations"> </td> 787</tr> 788<tr> 789<td class="parameter_name"><p>user_data</p></td> 790<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> 791<td class="parameter_annotations"> </td> 792</tr> 793</tbody> 794</table></div> 795</div> 796<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> 797</div> 798<hr> 799<div class="refsect2"> 800<a name="GstRtpSession-on-new-ssrc"></a><h3>The <code class="literal">“on-new-ssrc”</code> signal</h3> 801<pre class="programlisting"><span class="returnvalue">void</span> 802user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, 803 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, 804 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> 805<p>Notify of a new SSRC that entered <em class="parameter"><code>session</code></em> 806.</p> 807<div class="refsect3"> 808<a name="GstRtpSession-on-new-ssrc.parameters"></a><h4>Parameters</h4> 809<div class="informaltable"><table class="informaltable" width="100%" border="0"> 810<colgroup> 811<col width="150px" class="parameters_name"> 812<col class="parameters_description"> 813<col width="200px" class="parameters_annotations"> 814</colgroup> 815<tbody> 816<tr> 817<td class="parameter_name"><p>sess</p></td> 818<td class="parameter_description"><p>the object which received the signal</p></td> 819<td class="parameter_annotations"> </td> 820</tr> 821<tr> 822<td class="parameter_name"><p>ssrc</p></td> 823<td class="parameter_description"><p>the SSRC</p></td> 824<td class="parameter_annotations"> </td> 825</tr> 826<tr> 827<td class="parameter_name"><p>user_data</p></td> 828<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> 829<td class="parameter_annotations"> </td> 830</tr> 831</tbody> 832</table></div> 833</div> 834<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> 835</div> 836<hr> 837<div class="refsect2"> 838<a name="GstRtpSession-on-sender-timeout"></a><h3>The <code class="literal">“on-sender-timeout”</code> signal</h3> 839<pre class="programlisting"><span class="returnvalue">void</span> 840user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, 841 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, 842 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> 843<p>Notify of a sender SSRC that has timed out and became a receiver</p> 844<div class="refsect3"> 845<a name="GstRtpSession-on-sender-timeout.parameters"></a><h4>Parameters</h4> 846<div class="informaltable"><table class="informaltable" width="100%" border="0"> 847<colgroup> 848<col width="150px" class="parameters_name"> 849<col class="parameters_description"> 850<col width="200px" class="parameters_annotations"> 851</colgroup> 852<tbody> 853<tr> 854<td class="parameter_name"><p>sess</p></td> 855<td class="parameter_description"><p>the object which received the signal</p></td> 856<td class="parameter_annotations"> </td> 857</tr> 858<tr> 859<td class="parameter_name"><p>ssrc</p></td> 860<td class="parameter_description"><p>the SSRC</p></td> 861<td class="parameter_annotations"> </td> 862</tr> 863<tr> 864<td class="parameter_name"><p>user_data</p></td> 865<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> 866<td class="parameter_annotations"> </td> 867</tr> 868</tbody> 869</table></div> 870</div> 871<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> 872</div> 873<hr> 874<div class="refsect2"> 875<a name="GstRtpSession-on-ssrc-active"></a><h3>The <code class="literal">“on-ssrc-active”</code> signal</h3> 876<pre class="programlisting"><span class="returnvalue">void</span> 877user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, 878 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, 879 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> 880<p>Notify of a SSRC that is active, i.e., sending RTCP.</p> 881<div class="refsect3"> 882<a name="GstRtpSession-on-ssrc-active.parameters"></a><h4>Parameters</h4> 883<div class="informaltable"><table class="informaltable" width="100%" border="0"> 884<colgroup> 885<col width="150px" class="parameters_name"> 886<col class="parameters_description"> 887<col width="200px" class="parameters_annotations"> 888</colgroup> 889<tbody> 890<tr> 891<td class="parameter_name"><p>sess</p></td> 892<td class="parameter_description"><p>the object which received the signal</p></td> 893<td class="parameter_annotations"> </td> 894</tr> 895<tr> 896<td class="parameter_name"><p>ssrc</p></td> 897<td class="parameter_description"><p>the SSRC</p></td> 898<td class="parameter_annotations"> </td> 899</tr> 900<tr> 901<td class="parameter_name"><p>user_data</p></td> 902<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> 903<td class="parameter_annotations"> </td> 904</tr> 905</tbody> 906</table></div> 907</div> 908<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> 909</div> 910<hr> 911<div class="refsect2"> 912<a name="GstRtpSession-on-ssrc-collision"></a><h3>The <code class="literal">“on-ssrc-collision”</code> signal</h3> 913<pre class="programlisting"><span class="returnvalue">void</span> 914user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *gstrtpsession, 915 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1, 916 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> 917<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> 918</div> 919<hr> 920<div class="refsect2"> 921<a name="GstRtpSession-on-ssrc-sdes"></a><h3>The <code class="literal">“on-ssrc-sdes”</code> signal</h3> 922<pre class="programlisting"><span class="returnvalue">void</span> 923user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *session, 924 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> src, 925 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> 926<p>Notify that a new SDES was received for SSRC.</p> 927<div class="refsect3"> 928<a name="GstRtpSession-on-ssrc-sdes.parameters"></a><h4>Parameters</h4> 929<div class="informaltable"><table class="informaltable" width="100%" border="0"> 930<colgroup> 931<col width="150px" class="parameters_name"> 932<col class="parameters_description"> 933<col width="200px" class="parameters_annotations"> 934</colgroup> 935<tbody> 936<tr> 937<td class="parameter_name"><p>session</p></td> 938<td class="parameter_description"><p>the object which received the signal</p></td> 939<td class="parameter_annotations"> </td> 940</tr> 941<tr> 942<td class="parameter_name"><p>src</p></td> 943<td class="parameter_description"><p>the SSRC</p></td> 944<td class="parameter_annotations"> </td> 945</tr> 946<tr> 947<td class="parameter_name"><p>user_data</p></td> 948<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> 949<td class="parameter_annotations"> </td> 950</tr> 951</tbody> 952</table></div> 953</div> 954<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> 955</div> 956<hr> 957<div class="refsect2"> 958<a name="GstRtpSession-on-ssrc-validated"></a><h3>The <code class="literal">“on-ssrc-validated”</code> signal</h3> 959<pre class="programlisting"><span class="returnvalue">void</span> 960user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *gstrtpsession, 961 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1, 962 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> 963<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> 964</div> 965<hr> 966<div class="refsect2"> 967<a name="GstRtpSession-on-timeout"></a><h3>The <code class="literal">“on-timeout”</code> signal</h3> 968<pre class="programlisting"><span class="returnvalue">void</span> 969user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, 970 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, 971 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> 972<p>Notify of an SSRC that has timed out</p> 973<div class="refsect3"> 974<a name="GstRtpSession-on-timeout.parameters"></a><h4>Parameters</h4> 975<div class="informaltable"><table class="informaltable" width="100%" border="0"> 976<colgroup> 977<col width="150px" class="parameters_name"> 978<col class="parameters_description"> 979<col width="200px" class="parameters_annotations"> 980</colgroup> 981<tbody> 982<tr> 983<td class="parameter_name"><p>sess</p></td> 984<td class="parameter_description"><p>the object which received the signal</p></td> 985<td class="parameter_annotations"> </td> 986</tr> 987<tr> 988<td class="parameter_name"><p>ssrc</p></td> 989<td class="parameter_description"><p>the SSRC</p></td> 990<td class="parameter_annotations"> </td> 991</tr> 992<tr> 993<td class="parameter_name"><p>user_data</p></td> 994<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> 995<td class="parameter_annotations"> </td> 996</tr> 997</tbody> 998</table></div> 999</div> 1000<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> 1001</div> 1002<hr> 1003<div class="refsect2"> 1004<a name="GstRtpSession-request-pt-map"></a><h3>The <code class="literal">“request-pt-map”</code> signal</h3> 1005<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a>* 1006user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, 1007 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, 1008 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> 1009<p>Request the payload type as <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em> 1010.</p> 1011<div class="refsect3"> 1012<a name="GstRtpSession-request-pt-map.parameters"></a><h4>Parameters</h4> 1013<div class="informaltable"><table class="informaltable" width="100%" border="0"> 1014<colgroup> 1015<col width="150px" class="parameters_name"> 1016<col class="parameters_description"> 1017<col width="200px" class="parameters_annotations"> 1018</colgroup> 1019<tbody> 1020<tr> 1021<td class="parameter_name"><p>sess</p></td> 1022<td class="parameter_description"><p>the object which received the signal</p></td> 1023<td class="parameter_annotations"> </td> 1024</tr> 1025<tr> 1026<td class="parameter_name"><p>pt</p></td> 1027<td class="parameter_description"><p>the pt</p></td> 1028<td class="parameter_annotations"> </td> 1029</tr> 1030<tr> 1031<td class="parameter_name"><p>user_data</p></td> 1032<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> 1033<td class="parameter_annotations"> </td> 1034</tr> 1035</tbody> 1036</table></div> 1037</div> 1038<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> 1039</div> 1040<hr> 1041<div class="refsect2"> 1042<a name="GstRtpSession-on-new-sender-ssrc"></a><h3>The <code class="literal">“on-new-sender-ssrc”</code> signal</h3> 1043<pre class="programlisting"><span class="returnvalue">void</span> 1044user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, 1045 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, 1046 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> 1047<p>Notify of a new sender SSRC that entered <em class="parameter"><code>session</code></em> 1048.</p> 1049<div class="refsect3"> 1050<a name="GstRtpSession-on-new-sender-ssrc.parameters"></a><h4>Parameters</h4> 1051<div class="informaltable"><table class="informaltable" width="100%" border="0"> 1052<colgroup> 1053<col width="150px" class="parameters_name"> 1054<col class="parameters_description"> 1055<col width="200px" class="parameters_annotations"> 1056</colgroup> 1057<tbody> 1058<tr> 1059<td class="parameter_name"><p>sess</p></td> 1060<td class="parameter_description"><p>the object which received the signal</p></td> 1061<td class="parameter_annotations"> </td> 1062</tr> 1063<tr> 1064<td class="parameter_name"><p>ssrc</p></td> 1065<td class="parameter_description"><p>the sender SSRC</p></td> 1066<td class="parameter_annotations"> </td> 1067</tr> 1068<tr> 1069<td class="parameter_name"><p>user_data</p></td> 1070<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> 1071<td class="parameter_annotations"> </td> 1072</tr> 1073</tbody> 1074</table></div> 1075</div> 1076<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> 1077<p class="since">Since: 1.8</p> 1078</div> 1079<hr> 1080<div class="refsect2"> 1081<a name="GstRtpSession-on-sender-ssrc-active"></a><h3>The <code class="literal">“on-sender-ssrc-active”</code> signal</h3> 1082<pre class="programlisting"><span class="returnvalue">void</span> 1083user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, 1084 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, 1085 <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> 1086<p>Notify of a sender SSRC that is active, i.e., sending RTCP.</p> 1087<div class="refsect3"> 1088<a name="GstRtpSession-on-sender-ssrc-active.parameters"></a><h4>Parameters</h4> 1089<div class="informaltable"><table class="informaltable" width="100%" border="0"> 1090<colgroup> 1091<col width="150px" class="parameters_name"> 1092<col class="parameters_description"> 1093<col width="200px" class="parameters_annotations"> 1094</colgroup> 1095<tbody> 1096<tr> 1097<td class="parameter_name"><p>sess</p></td> 1098<td class="parameter_description"><p>the object which received the signal</p></td> 1099<td class="parameter_annotations"> </td> 1100</tr> 1101<tr> 1102<td class="parameter_name"><p>ssrc</p></td> 1103<td class="parameter_description"><p>the sender SSRC</p></td> 1104<td class="parameter_annotations"> </td> 1105</tr> 1106<tr> 1107<td class="parameter_name"><p>user_data</p></td> 1108<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> 1109<td class="parameter_annotations"> </td> 1110</tr> 1111</tbody> 1112</table></div> 1113</div> 1114<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> 1115<p class="since">Since: 1.8</p> 1116</div> 1117</div> 1118<div class="refsect1"> 1119<a name="gst-plugins-good-plugins-rtpsession.see-also"></a><h2>See Also</h2> 1120<p>rtpjitterbuffer, rtpbin, rtpptdemux, rtpssrcdemux</p> 1121</div> 1122</div> 1123<div class="footer"> 1124<hr>Generated by GTK-Doc V1.28</div> 1125</body> 1126</html>