| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>rtprtxreceive: GStreamer Good Plugins 1.0 Plugins Reference Manual</title> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> |
| <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual"> |
| <link rel="up" href="ch01.html" title="gst-plugins-good Elements"> |
| <link rel="prev" href="gst-plugins-good-plugins-rtprtxqueue.html" title="rtprtxqueue"> |
| <link rel="next" href="gst-plugins-good-plugins-rtprtxsend.html" title="rtprtxsend"> |
| <meta name="generator" content="GTK-Doc V1.25 (XML mode)"> |
| <link rel="stylesheet" href="style.css" type="text/css"> |
| </head> |
| <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
| <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> |
| <td width="100%" align="left" class="shortcuts"> |
| <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> |
| <a href="#gst-plugins-good-plugins-rtprtxreceive.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> |
| <a href="#gst-plugins-good-plugins-rtprtxreceive.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> |
| <a href="#gst-plugins-good-plugins-rtprtxreceive.properties" class="shortcut">Properties</a></span> |
| </td> |
| <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
| <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
| <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> |
| <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> |
| </tr></table> |
| <div class="refentry"> |
| <a name="gst-plugins-good-plugins-rtprtxreceive"></a><div class="titlepage"></div> |
| <div class="refnamediv"><table width="100%"><tr> |
| <td valign="top"> |
| <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtprtxreceive.top_of_page"></a>rtprtxreceive</span></h2> |
| <p>rtprtxreceive</p> |
| </td> |
| <td class="gallery_image" valign="top" align="right"></td> |
| </tr></table></div> |
| <div class="refsect1"> |
| <a name="gst-plugins-good-plugins-rtprtxreceive.properties"></a><h2>Properties</h2> |
| <div class="informaltable"><table class="informaltable" border="0"> |
| <colgroup> |
| <col width="150px" class="properties_type"> |
| <col width="300px" class="properties_name"> |
| <col width="200px" class="properties_flags"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td> |
| <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> |
| <td class="property_flags">Read</td> |
| </tr> |
| <tr> |
| <td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td> |
| <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> |
| <td class="property_flags">Read</td> |
| </tr> |
| <tr> |
| <td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td> |
| <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> |
| <td class="property_flags">Read</td> |
| </tr> |
| <tr> |
| <td class="property_type"> |
| <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</td> |
| <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> |
| <td class="property_flags">Read / Write</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <a name="GstRtpRtxReceive"></a><div class="refsect1"> |
| <a name="gst-plugins-good-plugins-rtprtxreceive.other"></a><h2>Types and Values</h2> |
| <div class="informaltable"><table class="informaltable" width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="name"> |
| <col class="description"> |
| </colgroup> |
| <tbody><tr> |
| <td class="datatype_keyword">struct</td> |
| <td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive-struct" title="struct GstRtpRtxReceive">GstRtpRtxReceive</a></td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-good-plugins-rtprtxreceive.object-hierarchy"></a><h2>Object Hierarchy</h2> |
| <pre class="screen"> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a> |
| <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> |
| <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a> |
| <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a> |
| <span class="lineart">╰──</span> GstRtpRtxReceive |
| </pre> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-good-plugins-rtprtxreceive.description"></a><h2>Description</h2> |
| <p>The receiver will listen to the custom retransmission events from the |
| downstream jitterbuffer and will remember the SSRC1 of the stream and |
| seqnum that was requested. When it sees a packet with one of the stored |
| seqnum, it associates the SSRC2 of the stream with the SSRC1 of the |
| master stream. From then it knows that SSRC2 is the retransmission |
| stream of SSRC1. This algorithm is stated in RFC 4588. For this |
| algorithm to work, RFC4588 also states that no two pending retransmission |
| requests can exist for the same seqnum and different SSRCs or else it |
| would be impossible to associate the retransmission with the original |
| requester SSRC. |
| When the RTX receiver has associated the retransmission packets, |
| it can depayload and forward them to the source pad of the element. |
| RTX is SSRC-multiplexed. See <a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend"><span class="type">GstRtpRtxSend</span></a></p> |
| <div class="refsect2"> |
| <a name="id-1.2.201.7.3"></a><h3>Example pipelines</h3> |
| <div class="informalexample"> |
| <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> |
| <tbody> |
| <tr> |
| <td class="listing_lines" align="right"><pre>1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6</pre></td> |
| <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 \ |
| audiotestsrc <span class="gtkdoc opt">!</span> speexenc <span class="gtkdoc opt">!</span> rtpspeexpay pt<span class="gtkdoc opt">=</span><span class="number">97</span> <span class="gtkdoc opt">!</span> rtprtxsend rtx<span class="gtkdoc opt">-</span>payload<span class="gtkdoc opt">-</span>type<span class="gtkdoc opt">=</span><span class="number">99</span> <span class="gtkdoc opt">!</span> \ |
| identity drop<span class="gtkdoc opt">-</span>probability<span class="gtkdoc opt">=</span><span class="number">0.1</span> <span class="gtkdoc opt">!</span> rtpsession<span class="gtkdoc opt">.</span>send_rtp_sink \ |
| rtpsession<span class="gtkdoc opt">.</span>send_rtp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5000</span> \ |
| 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 \ |
| rtpsession<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5002</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| Send audio stream through port 5000. (5001 and 5002 are just the rtcp link with the receiver) |
| <div class="informalexample"> |
| <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> |
| <tbody> |
| <tr> |
| <td class="listing_lines" align="right"><pre>1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7</pre></td> |
| <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 \ |
| udpsrc port<span class="gtkdoc opt">=</span><span class="number">5000</span> caps<span class="gtkdoc opt">=</span><span class="string">"application/x-rtp,media=(string)audio,clock-rate=(int)44100,encoding-name=(string)SPEEX,encoding-params=(string)1,octet-align=(string)1"</span> <span class="gtkdoc opt">!</span> \ |
| rtpsession<span class="gtkdoc opt">.</span>recv_rtp_sink \ |
| rtpsession<span class="gtkdoc opt">.</span>recv_rtp_src <span class="gtkdoc opt">!</span> rtprtxreceive rtx<span class="gtkdoc opt">-</span>payload<span class="gtkdoc opt">-</span>types<span class="gtkdoc opt">=</span><span class="string">"99"</span> <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> rtpspeexdepay <span class="gtkdoc opt">!</span> \ |
| speexdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> autoaudiosink \ |
| rtpsession<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5001</span> \ |
| 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 sync<span class="gtkdoc opt">=</span>fakse async<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| Receive audio stream from port 5000. (5001 and 5002 are just the rtcp link with the sender) |
| On sender side make sure to use a different payload type for the stream and |
| its associated retransmission stream (see <a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend"><span class="type">GstRtpRtxSend</span></a>). Note that several retransmission streams can |
| have the same payload type so this is not deterministic. Actually the |
| rtprtxreceiver element does the association using seqnum values. |
| On receiver side set all the retransmission payload types (Those informations are retrieve |
| through SDP). |
| You should still hear a clear sound when setting drop-probability to something greater than 0. |
| The rtpjitterbuffer will generate a custom upstream event GstRTPRetransmissionRequest when |
| it assumes that one packet is missing. Then this request is translated to a FB NACK in the rtcp link |
| Finally the rtpsession of the sender side re-convert it in a GstRTPRetransmissionRequest that will |
| be handle by rtprtxsend. |
| When increasing this value it may be possible that even the retransmission stream would be dropped |
| so the receiver will ask to resend the packets again and again until it actually receive them. |
| If the value is too high the rtprtxsend will not be able to retrieve the packet in its list of |
| stored packets. For learning purpose you could try to increase the max-size-packets or max-size-time |
| rtprtxsender's properties. |
| Also note that you should use rtprtxsend through rtpbin and its set-aux-send property. See <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a>. |
| <div class="informalexample"> |
| <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> |
| <tbody> |
| <tr> |
| <td class="listing_lines" align="right"><pre>1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12</pre></td> |
| <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>rtpsession0 \ |
| audiotestsrc wave<span class="gtkdoc opt">=</span><span class="number">0</span> <span class="gtkdoc opt">!</span> speexenc <span class="gtkdoc opt">!</span> rtpspeexpay pt<span class="gtkdoc opt">=</span><span class="number">97</span> <span class="gtkdoc opt">!</span> rtprtxsend rtx<span class="gtkdoc opt">-</span>payload<span class="gtkdoc opt">-</span>type<span class="gtkdoc opt">=</span><span class="number">99</span> seqnum<span class="gtkdoc opt">-</span>offset<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> \ |
| identity drop<span class="gtkdoc opt">-</span>probability<span class="gtkdoc opt">=</span><span class="number">0.1</span> <span class="gtkdoc opt">!</span> rtpsession0<span class="gtkdoc opt">.</span>send_rtp_sink \ |
| rtpsession0<span class="gtkdoc opt">.</span>send_rtp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5000</span> \ |
| udpsrc port<span class="gtkdoc opt">=</span><span class="number">5001</span> <span class="gtkdoc opt">!</span> rtpsession0<span class="gtkdoc opt">.</span>recv_rtcp_sink \ |
| rtpsession0<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5002</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span> \ |
| rtpsession name<span class="gtkdoc opt">=</span>rtpsession1 \ |
| audiotestsrc wave<span class="gtkdoc opt">=</span><span class="number">0</span> <span class="gtkdoc opt">!</span> speexenc <span class="gtkdoc opt">!</span> rtpspeexpay pt<span class="gtkdoc opt">=</span><span class="number">97</span> <span class="gtkdoc opt">!</span> rtprtxsend rtx<span class="gtkdoc opt">-</span>payload<span class="gtkdoc opt">-</span>type<span class="gtkdoc opt">=</span><span class="number">99</span> seqnum<span class="gtkdoc opt">-</span>offset<span class="gtkdoc opt">=</span><span class="number">10</span> <span class="gtkdoc opt">!</span> \ |
| identity drop<span class="gtkdoc opt">-</span>probability<span class="gtkdoc opt">=</span><span class="number">0.1</span> <span class="gtkdoc opt">!</span> rtpsession1<span class="gtkdoc opt">.</span>send_rtp_sink \ |
| rtpsession1<span class="gtkdoc opt">.</span>send_rtp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5000</span> \ |
| udpsrc port<span class="gtkdoc opt">=</span><span class="number">5004</span> <span class="gtkdoc opt">!</span> rtpsession1<span class="gtkdoc opt">.</span>recv_rtcp_sink \ |
| rtpsession1<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5002</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| Send two audio streams to port 5000. |
| <div class="informalexample"> |
| <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> |
| <tbody> |
| <tr> |
| <td class="listing_lines" align="right"><pre>1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8</pre></td> |
| <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 |
| udpsrc port<span class="gtkdoc opt">=</span><span class="number">5000</span> caps<span class="gtkdoc opt">=</span><span class="string">"application/x-rtp,media=(string)audio,clock-rate=(int)44100,encoding-name=(string)SPEEX,encoding-params=(string)1,octet-align=(string)1"</span> <span class="gtkdoc opt">!</span> \ |
| rtpsession<span class="gtkdoc opt">.</span>recv_rtp_sink \ |
| rtpsession<span class="gtkdoc opt">.</span>recv_rtp_src <span class="gtkdoc opt">!</span> rtprtxreceive rtx<span class="gtkdoc opt">-</span>payload<span class="gtkdoc opt">-</span>types<span class="gtkdoc opt">=</span><span class="string">"99"</span> <span class="gtkdoc opt">!</span> rtpssrcdemux name<span class="gtkdoc opt">=</span>demux \ |
| 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> rtpspeexdepay <span class="gtkdoc opt">!</span> speexdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> autoaudiosink \ |
| 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> rtpspeexdepay <span class="gtkdoc opt">!</span> speexdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> autoaudiosink \ |
| rtpsession<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">! !</span> tee name<span class="gtkdoc opt">=</span>t <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5001</span> t<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5004</span> \ |
| 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 sync<span class="gtkdoc opt">=</span>fakse async<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| Receive audio stream from port 5000. |
| On sender side the two streams have the same payload type for master streams, Same about retransmission streams. |
| The streams are sent to the network through two distincts sessions. |
| But we need to set a different seqnum-offset to make sure their seqnum navigate at a different rate like in concrete cases. |
| We could also choose the same seqnum offset but we would require to set a different initial seqnum value. |
| This is also why the rtprtxreceive can succeed to do the association between master and retransmission stream. |
| On receiver side the same session is used to receive the two streams. So the rtpssrcdemux is here to demultiplex |
| those two streams. The rtprtxreceive is responsible for reconstructing the original packets from the two retransmission streams. |
| You can play with the drop-probability value for one or both streams. |
| You should hear a clear sound. (after a few seconds the two streams wave feel synchronized) |
| </div> |
| <div class="refsynopsisdiv"> |
| <h2>Synopsis</h2> |
| <div class="refsect2"> |
| <a name="id-1.2.201.7.4.1"></a><h3>Element Information</h3> |
| <div class="variablelist"><table border="0" class="variablelist"> |
| <colgroup> |
| <col align="left" valign="top"> |
| <col> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td><p><span class="term">plugin</span></p></td> |
| <td> |
| <a class="link" href="gst-plugins-good-plugins-plugin-rtpmanager.html#plugin-rtpmanager">rtpmanager</a> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term">author</span></p></td> |
| <td>Julien Isorce <julien.isorce@collabora.co.uk></td> |
| </tr> |
| <tr> |
| <td><p><span class="term">class</span></p></td> |
| <td>Codec</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="id-1.2.201.7.4.2"></a><h3>Element Pads</h3> |
| <div class="variablelist"><table border="0" class="variablelist"> |
| <colgroup> |
| <col align="left" valign="top"> |
| <col> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td><p><span class="term">name</span></p></td> |
| <td>sink</td> |
| </tr> |
| <tr> |
| <td><p><span class="term">direction</span></p></td> |
| <td>sink</td> |
| </tr> |
| <tr> |
| <td><p><span class="term">presence</span></p></td> |
| <td>always</td> |
| </tr> |
| <tr> |
| <td><p><span class="term">details</span></p></td> |
| <td>application/x-rtp</td> |
| </tr> |
| </tbody> |
| </table></div> |
| <div class="variablelist"><table border="0" class="variablelist"> |
| <colgroup> |
| <col align="left" valign="top"> |
| <col> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td><p><span class="term">name</span></p></td> |
| <td>src</td> |
| </tr> |
| <tr> |
| <td><p><span class="term">direction</span></p></td> |
| <td>source</td> |
| </tr> |
| <tr> |
| <td><p><span class="term">presence</span></p></td> |
| <td>always</td> |
| </tr> |
| <tr> |
| <td><p><span class="term">details</span></p></td> |
| <td>application/x-rtp</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-good-plugins-rtprtxreceive.functions_details"></a><h2>Functions</h2> |
| <p></p> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-good-plugins-rtprtxreceive.other_details"></a><h2>Types and Values</h2> |
| <div class="refsect2"> |
| <a name="GstRtpRtxReceive-struct"></a><h3>struct GstRtpRtxReceive</h3> |
| <pre class="programlisting">struct GstRtpRtxReceive;</pre> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-good-plugins-rtprtxreceive.property-details"></a><h2>Property Details</h2> |
| <div class="refsect2"> |
| <a name="GstRtpRtxReceive--num-rtx-requests"></a><h3>The <code class="literal">“num-rtx-requests”</code> property</h3> |
| <pre class="programlisting"> “num-rtx-requests” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> |
| <p>Number of retransmission events received.</p> |
| <p>Flags: Read</p> |
| <p>Default value: 0</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstRtpRtxReceive--num-rtx-packets"></a><h3>The <code class="literal">“num-rtx-packets”</code> property</h3> |
| <pre class="programlisting"> “num-rtx-packets” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> |
| <p> Number of retransmission packets received.</p> |
| <p>Flags: Read</p> |
| <p>Default value: 0</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstRtpRtxReceive--num-rtx-assoc-packets"></a><h3>The <code class="literal">“num-rtx-assoc-packets”</code> property</h3> |
| <pre class="programlisting"> “num-rtx-assoc-packets” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> |
| <p>Number of retransmission packets correctly associated with retransmission requests.</p> |
| <p>Flags: Read</p> |
| <p>Default value: 0</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstRtpRtxReceive--payload-type-map"></a><h3>The <code class="literal">“payload-type-map”</code> property</h3> |
| <pre class="programlisting"> “payload-type-map” <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</pre> |
| <p>Map of original payload types to their retransmission payload types.</p> |
| <p>Flags: Read / Write</p> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-good-plugins-rtprtxreceive.see-also"></a><h2>See Also</h2> |
| <p>rtprtxsend, rtpsession, rtpjitterbuffer</p> |
| </div> |
| </div> |
| <div class="footer"> |
| <hr>Generated by GTK-Doc V1.25</div> |
| </body> |
| </html> |