• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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>rtprtxreceive: 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-rtprtxqueue.html" title="rtprtxqueue">
10<link rel="next" href="gst-plugins-good-plugins-rtprtxsend.html" title="rtprtxsend">
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">|</span18                  <a href="#gst-plugins-good-plugins-rtprtxreceive.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span19                  <a href="#gst-plugins-good-plugins-rtprtxreceive.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span20                  <a href="#gst-plugins-good-plugins-rtprtxreceive.properties" class="shortcut">Properties</a></span>
21</td>
22<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
23<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
24<td><a accesskey="p" href="gst-plugins-good-plugins-rtprtxqueue.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
25<td><a accesskey="n" href="gst-plugins-good-plugins-rtprtxsend.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
26</tr></table>
27<div class="refentry">
28<a name="gst-plugins-good-plugins-rtprtxreceive"></a><div class="titlepage"></div>
29<div class="refnamediv"><table width="100%"><tr>
30<td valign="top">
31<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtprtxreceive.top_of_page"></a>rtprtxreceive</span></h2>
32<p>rtprtxreceive</p>
33</td>
34<td class="gallery_image" valign="top" align="right"></td>
35</tr></table></div>
36<div class="refsect1">
37<a name="gst-plugins-good-plugins-rtprtxreceive.properties"></a><h2>Properties</h2>
38<div class="informaltable"><table class="informaltable" border="0">
39<colgroup>
40<col width="150px" class="properties_type">
41<col width="300px" class="properties_name">
42<col width="200px" class="properties_flags">
43</colgroup>
44<tbody>
45<tr>
46<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
47<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-requests" title="The “num-rtx-requests” property">num-rtx-requests</a></td>
48<td class="property_flags">Read</td>
49</tr>
50<tr>
51<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
52<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-packets" title="The “num-rtx-packets” property">num-rtx-packets</a></td>
53<td class="property_flags">Read</td>
54</tr>
55<tr>
56<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
57<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-assoc-packets" title="The “num-rtx-assoc-packets” property">num-rtx-assoc-packets</a></td>
58<td class="property_flags">Read</td>
59</tr>
60<tr>
61<td class="property_type">
62<a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</td>
63<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--payload-type-map" title="The “payload-type-map” property">payload-type-map</a></td>
64<td class="property_flags">Read / Write</td>
65</tr>
66</tbody>
67</table></div>
68</div>
69<a name="GstRtpRtxReceive"></a><div class="refsect1">
70<a name="gst-plugins-good-plugins-rtprtxreceive.other"></a><h2>Types and Values</h2>
71<div class="informaltable"><table class="informaltable" width="100%" border="0">
72<colgroup>
73<col width="150px" class="name">
74<col class="description">
75</colgroup>
76<tbody><tr>
77<td class="datatype_keyword">struct</td>
78<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive-struct" title="struct GstRtpRtxReceive">GstRtpRtxReceive</a></td>
79</tr></tbody>
80</table></div>
81</div>
82<div class="refsect1">
83<a name="gst-plugins-good-plugins-rtprtxreceive.object-hierarchy"></a><h2>Object Hierarchy</h2>
84<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
85    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
86        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
87            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
88                <span class="lineart">╰──</span> GstRtpRtxReceive
89</pre>
90</div>
91<div class="refsect1">
92<a name="gst-plugins-good-plugins-rtprtxreceive.description"></a><h2>Description</h2>
93<p>rtprtxreceive listens to the retransmission events from the
94downstream rtpjitterbuffer and remembers the SSRC (ssrc1) of the stream and
95the sequence number that was requested. When it receives a packet with
96a sequence number equal to one of the ones stored and with a different SSRC,
97it identifies the new SSRC (ssrc2) as the retransmission stream of ssrc1.
98From this point on, it replaces ssrc2 with ssrc1 in all packets of the
99ssrc2 stream and flags them as retransmissions, so that rtpjitterbuffer
100can reconstruct the original stream.</p>
101<p>This algorithm is implemented as specified in RFC 4588.</p>
102<p>This element is meant to be used with rtprtxsend on the sender side.
103See <a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend"><span class="type">GstRtpRtxSend</span></a></p>
104<p>Below you can see some examples that illustrate how rtprtxreceive and
105rtprtxsend fit among the other rtp elements and how they work internally.
106Normally, hoewever, you should avoid using such pipelines and use
107rtpbin instead, with its <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-sender" title="The “request-aux-sender” signal"><span class="type">“request-aux-sender”</span></a> and
108<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-receiver" title="The “request-aux-receiver” signal"><span class="type">“request-aux-receiver”</span></a> signals. See <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a>.</p>
109<div class="refsect2">
110<a name="id-1.2.211.7.6"></a><h3>Example pipelines</h3>
111<div class="informalexample">
112  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
113    <tbody>
114      <tr>
115        <td class="listing_lines" align="right"><pre>1
1162
1173
1184
1195
1206
1217
1228
1239</pre></td>
124        <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> rtpsession name<span class="gtkdoc opt">=</span>rtpsession rtp<span class="gtkdoc opt">-</span>profile<span class="gtkdoc opt">=</span>avpf \
125    audiotestsrc is<span class="gtkdoc opt">-</span>live<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> opusenc <span class="gtkdoc opt">!</span> rtpopuspay pt<span class="gtkdoc opt">=</span><span class="number">96</span> <span class="gtkdoc opt">!</span> \
126        rtprtxsend payload<span class="gtkdoc opt">-</span>type<span class="gtkdoc opt">-</span>map<span class="gtkdoc opt">=</span><span class="string">&quot;application/x-rtp-pt-map,96=(uint)97&quot;</span> <span class="gtkdoc opt">!</span> \
127        rtpsession<span class="gtkdoc opt">.</span>send_rtp_sink \
128    rtpsession<span class="gtkdoc opt">.</span>send_rtp_src <span class="gtkdoc opt">!</span> identity drop<span class="gtkdoc opt">-</span>probability<span class="gtkdoc opt">=</span><span class="number">0.01</span> <span class="gtkdoc opt">!</span> \
129        udpsink host<span class="gtkdoc opt">=</span><span class="string">&quot;127.0.0.1&quot;</span> port<span class="gtkdoc opt">=</span><span class="number">5000</span> \
130    udpsrc port<span class="gtkdoc opt">=</span><span class="number">5001</span> <span class="gtkdoc opt">!</span> rtpsession<span class="gtkdoc opt">.</span>recv_rtcp_sink \
131    rtpsession<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">&quot;127.0.0.1&quot;</span> port<span class="gtkdoc opt">=</span><span class="number">5002</span> \
132        sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td>
133      </tr>
134    </tbody>
135  </table>
136</div>
137
138<p> Send audio stream through port 5000 (5001 and 5002 are just the rtcp
139link with the receiver)</p>
140<div class="informalexample">
141  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
142    <tbody>
143      <tr>
144        <td class="listing_lines" align="right"><pre>1
1452
1463
1474
1485
1496
1507
1518
1529
15310</pre></td>
154        <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> rtpsession name<span class="gtkdoc opt">=</span>rtpsession rtp<span class="gtkdoc opt">-</span>profile<span class="gtkdoc opt">=</span>avpf \
155    udpsrc port<span class="gtkdoc opt">=</span><span class="number">5000</span> caps<span class="gtkdoc opt">=</span><span class="string">&quot;application/x-rtp,media=(string)audio,clock-rate=(int)48000,encoding-name=(string)OPUS,payload=(int)96&quot;</span> <span class="gtkdoc opt">!</span> \
156        rtpsession<span class="gtkdoc opt">.</span>recv_rtp_sink \
157    rtpsession<span class="gtkdoc opt">.</span>recv_rtp_src <span class="gtkdoc opt">!</span> \
158        rtprtxreceive payload<span class="gtkdoc opt">-</span>type<span class="gtkdoc opt">-</span>map<span class="gtkdoc opt">=</span><span class="string">&quot;application/x-rtp-pt-map,96=(uint)97&quot;</span> <span class="gtkdoc opt">!</span> \
159        rtpssrcdemux <span class="gtkdoc opt">!</span> rtpjitterbuffer <span class="keyword">do</span><span class="gtkdoc opt">-</span>retransmission<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> \
160        rtpopusdepay <span class="gtkdoc opt">!</span> opusdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink \
161    rtpsession<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">!</span> \
162        udpsink host<span class="gtkdoc opt">=</span><span class="string">&quot;127.0.0.1&quot;</span> port<span class="gtkdoc opt">=</span><span class="number">5001</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span> \
163    udpsrc port<span class="gtkdoc opt">=</span><span class="number">5002</span> <span class="gtkdoc opt">!</span> rtpsession<span class="gtkdoc opt">.</span>recv_rtcp_sink</pre></td>
164      </tr>
165    </tbody>
166  </table>
167</div>
168
169<p> Receive audio stream from port 5000 (5001 and 5002 are just the rtcp
170link with the sender)</p>
171<p>In this example we can see a simple streaming of an OPUS stream with some
172of the packets being artificially dropped by the identity element.
173Thanks to retransmission, you should still hear a clear sound when setting
174drop-probability to something greater than 0.</p>
175<p>Internally, the rtpjitterbuffer will generate a custom upstream event,
176GstRTPRetransmissionRequest, when it detects that one packet is missing.
177Then this request is translated to a FB NACK in the rtcp link by rtpsession.
178Finally the rtpsession of the sender side will re-convert it in a
179GstRTPRetransmissionRequest that will be handled by rtprtxsend. rtprtxsend
180will then re-send the missing packet with a new srrc and a different payload
181type (here, 97), but with the same original sequence number. On the receiver
182side, rtprtxreceive will associate this new stream with the original and
183forward the retransmission packets to rtpjitterbuffer with the original
184ssrc and payload type.</p>
185<div class="informalexample">
186  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
187    <tbody>
188      <tr>
189        <td class="listing_lines" align="right"><pre>1
1902
1913
1924
1935
1946
1957
1968
1979
19810
19911
20012
20113</pre></td>
202        <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> rtpsession name<span class="gtkdoc opt">=</span>rtpsession rtp<span class="gtkdoc opt">-</span>profile<span class="gtkdoc opt">=</span>avpf \
203    audiotestsrc is<span class="gtkdoc opt">-</span>live<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> opusenc <span class="gtkdoc opt">!</span> rtpopuspay pt<span class="gtkdoc opt">=</span><span class="number">97</span> seqnum<span class="gtkdoc opt">-</span>offset<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> \
204        rtprtxsend payload<span class="gtkdoc opt">-</span>type<span class="gtkdoc opt">-</span>map<span class="gtkdoc opt">=</span><span class="string">&quot;application/x-rtp-pt-map,97=(uint)99&quot;</span> <span class="gtkdoc opt">!</span> \
205        funnel name<span class="gtkdoc opt">=</span>f <span class="gtkdoc opt">!</span> rtpsession<span class="gtkdoc opt">.</span>send_rtp_sink \
206    audiotestsrc freq<span class="gtkdoc opt">=</span><span class="number">660.0</span> is<span class="gtkdoc opt">-</span>live<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> opusenc <span class="gtkdoc opt">!</span> \
207        rtpopuspay pt<span class="gtkdoc opt">=</span><span class="number">97</span> seqnum<span class="gtkdoc opt">-</span>offset<span class="gtkdoc opt">=</span><span class="number">100</span> <span class="gtkdoc opt">!</span> \
208        rtprtxsend payload<span class="gtkdoc opt">-</span>type<span class="gtkdoc opt">-</span>map<span class="gtkdoc opt">=</span><span class="string">&quot;application/x-rtp-pt-map,97=(uint)99&quot;</span> <span class="gtkdoc opt">!</span> \
209        f<span class="gtkdoc opt">.</span> \
210    rtpsession<span class="gtkdoc opt">.</span>send_rtp_src <span class="gtkdoc opt">!</span> identity drop<span class="gtkdoc opt">-</span>probability<span class="gtkdoc opt">=</span><span class="number">0.01</span> <span class="gtkdoc opt">!</span> \
211        udpsink host<span class="gtkdoc opt">=</span><span class="string">&quot;127.0.0.1&quot;</span> port<span class="gtkdoc opt">=</span><span class="number">5000</span> \
212    udpsrc port<span class="gtkdoc opt">=</span><span class="number">5001</span> <span class="gtkdoc opt">!</span> rtpsession<span class="gtkdoc opt">.</span>recv_rtcp_sink \
213    rtpsession<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">&quot;127.0.0.1&quot;</span> port<span class="gtkdoc opt">=</span><span class="number">5002</span> \
214        sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td>
215      </tr>
216    </tbody>
217  </table>
218</div>
219
220<p> Send two audio streams to port 5000.</p>
221<div class="informalexample">
222  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
223    <tbody>
224      <tr>
225        <td class="listing_lines" align="right"><pre>1
2262
2273
2284
2295
2306
2317
2328
2339
23410
23511
23612
23713</pre></td>
238        <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> rtpsession name<span class="gtkdoc opt">=</span>rtpsession rtp<span class="gtkdoc opt">-</span>profile<span class="gtkdoc opt">=</span>avpf \
239    udpsrc port<span class="gtkdoc opt">=</span><span class="number">5000</span> caps<span class="gtkdoc opt">=</span><span class="string">&quot;application/x-rtp,media=(string)audio,clock-rate=(int)48000,encoding-name=(string)OPUS,payload=(int)97&quot;</span> <span class="gtkdoc opt">!</span> \
240        rtpsession<span class="gtkdoc opt">.</span>recv_rtp_sink \
241    rtpsession<span class="gtkdoc opt">.</span>recv_rtp_src <span class="gtkdoc opt">!</span> \
242        rtprtxreceive payload<span class="gtkdoc opt">-</span>type<span class="gtkdoc opt">-</span>map<span class="gtkdoc opt">=</span><span class="string">&quot;application/x-rtp-pt-map,97=(uint)99&quot;</span> <span class="gtkdoc opt">!</span> \
243        rtpssrcdemux name<span class="gtkdoc opt">=</span>demux \
244    demux<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> rtpjitterbuffer <span class="keyword">do</span><span class="gtkdoc opt">-</span>retransmission<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> rtpopusdepay <span class="gtkdoc opt">!</span> \
245        opusdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> autoaudiosink \
246    demux<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> rtpjitterbuffer <span class="keyword">do</span><span class="gtkdoc opt">-</span>retransmission<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> rtpopusdepay <span class="gtkdoc opt">!</span> \
247        opusdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> autoaudiosink \
248    udpsrc port<span class="gtkdoc opt">=</span><span class="number">5002</span> <span class="gtkdoc opt">!</span> rtpsession<span class="gtkdoc opt">.</span>recv_rtcp_sink \
249    rtpsession<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">&quot;127.0.0.1&quot;</span> port<span class="gtkdoc opt">=</span><span class="number">5001</span> \
250        sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td>
251      </tr>
252    </tbody>
253  </table>
254</div>
255
256<p> Receive two audio streams from port 5000.</p>
257<p>In this example we are streaming two streams of the same type through the
258same port. They, however, are using a different SSRC (ssrc is randomly
259generated on each payloader - rtpopuspay in this example), so they can be
260identified and demultiplexed by rtpssrcdemux on the receiver side. This is
261an example of SSRC-multiplexing.</p>
262<p>It is important here to use a different starting sequence number
263(seqnum-offset), since this is the only means of identification that
264rtprtxreceive uses the very first time to identify retransmission streams.
265It is an error, according to RFC4588 to have two retransmission requests for
266packets belonging to two different streams but with the same sequence number.
267Note that the default seqnum-offset value (-1, which means random) would
268work just fine, but it is overriden here for illustration purposes.</p>
269</div>
270<div class="refsynopsisdiv">
271<h2>Synopsis</h2>
272<div class="refsect2">
273<a name="id-1.2.211.7.7.1"></a><h3>Element Information</h3>
274<div class="variablelist"><table border="0" class="variablelist">
275<colgroup>
276<col align="left" valign="top">
277<col>
278</colgroup>
279<tbody>
280<tr>
281<td><p><span class="term">plugin</span></p></td>
282<td>
283            <a class="link" href="gst-plugins-good-plugins-plugin-rtpmanager.html#plugin-rtpmanager">rtpmanager</a>
284          </td>
285</tr>
286<tr>
287<td><p><span class="term">author</span></p></td>
288<td>Julien Isorce &lt;julien.isorce@collabora.co.uk&gt;</td>
289</tr>
290<tr>
291<td><p><span class="term">class</span></p></td>
292<td>Codec</td>
293</tr>
294</tbody>
295</table></div>
296</div>
297<hr>
298<div class="refsect2">
299<a name="id-1.2.211.7.7.2"></a><h3>Element Pads</h3>
300<div class="variablelist"><table border="0" class="variablelist">
301<colgroup>
302<col align="left" valign="top">
303<col>
304</colgroup>
305<tbody>
306<tr>
307<td><p><span class="term">name</span></p></td>
308<td>sink</td>
309</tr>
310<tr>
311<td><p><span class="term">direction</span></p></td>
312<td>sink</td>
313</tr>
314<tr>
315<td><p><span class="term">presence</span></p></td>
316<td>always</td>
317</tr>
318<tr>
319<td><p><span class="term">details</span></p></td>
320<td>application/x-rtp</td>
321</tr>
322</tbody>
323</table></div>
324<div class="variablelist"><table border="0" class="variablelist">
325<colgroup>
326<col align="left" valign="top">
327<col>
328</colgroup>
329<tbody>
330<tr>
331<td><p><span class="term">name</span></p></td>
332<td>src</td>
333</tr>
334<tr>
335<td><p><span class="term">direction</span></p></td>
336<td>source</td>
337</tr>
338<tr>
339<td><p><span class="term">presence</span></p></td>
340<td>always</td>
341</tr>
342<tr>
343<td><p><span class="term">details</span></p></td>
344<td>application/x-rtp</td>
345</tr>
346</tbody>
347</table></div>
348</div>
349</div>
350</div>
351<div class="refsect1">
352<a name="gst-plugins-good-plugins-rtprtxreceive.functions_details"></a><h2>Functions</h2>
353<p></p>
354</div>
355<div class="refsect1">
356<a name="gst-plugins-good-plugins-rtprtxreceive.other_details"></a><h2>Types and Values</h2>
357<div class="refsect2">
358<a name="GstRtpRtxReceive-struct"></a><h3>struct GstRtpRtxReceive</h3>
359<pre class="programlisting">struct GstRtpRtxReceive;</pre>
360</div>
361</div>
362<div class="refsect1">
363<a name="gst-plugins-good-plugins-rtprtxreceive.property-details"></a><h2>Property Details</h2>
364<div class="refsect2">
365<a name="GstRtpRtxReceive--num-rtx-requests"></a><h3>The <code class="literal">“num-rtx-requests”</code> property</h3>
366<pre class="programlisting">  “num-rtx-requests”         <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
367<p>Number of retransmission events received.</p>
368<p>Flags: Read</p>
369<p>Default value: 0</p>
370</div>
371<hr>
372<div class="refsect2">
373<a name="GstRtpRtxReceive--num-rtx-packets"></a><h3>The <code class="literal">“num-rtx-packets”</code> property</h3>
374<pre class="programlisting">  “num-rtx-packets”          <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
375<p> Number of retransmission packets received.</p>
376<p>Flags: Read</p>
377<p>Default value: 0</p>
378</div>
379<hr>
380<div class="refsect2">
381<a name="GstRtpRtxReceive--num-rtx-assoc-packets"></a><h3>The <code class="literal">“num-rtx-assoc-packets”</code> property</h3>
382<pre class="programlisting">  “num-rtx-assoc-packets”    <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
383<p>Number of retransmission packets correctly associated with retransmission requests.</p>
384<p>Flags: Read</p>
385<p>Default value: 0</p>
386</div>
387<hr>
388<div class="refsect2">
389<a name="GstRtpRtxReceive--payload-type-map"></a><h3>The <code class="literal">“payload-type-map”</code> property</h3>
390<pre class="programlisting">  “payload-type-map”         <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</pre>
391<p>Map of original payload types to their retransmission payload types.</p>
392<p>Flags: Read / Write</p>
393</div>
394</div>
395<div class="refsect1">
396<a name="gst-plugins-good-plugins-rtprtxreceive.see-also"></a><h2>See Also</h2>
397<p>rtprtxsend, rtpsession, rtpjitterbuffer</p>
398</div>
399</div>
400<div class="footer">
401<hr>Generated by GTK-Doc V1.28</div>
402</body>
403</html>