• 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>rtpjitterbuffer: 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-rtpj2kpay.html" title="rtpj2kpay">
10<link rel="next" href="gst-plugins-good-plugins-rtpjpegdepay.html" title="rtpjpegdepay">
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-rtpjitterbuffer.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span19                  <a href="#gst-plugins-good-plugins-rtpjitterbuffer.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span20                  <a href="#gst-plugins-good-plugins-rtpjitterbuffer.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span21                  <a href="#gst-plugins-good-plugins-rtpjitterbuffer.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-rtpj2kpay.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-rtpjpegdepay.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-rtpjitterbuffer"></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-rtpjitterbuffer.top_of_page"></a>rtpjitterbuffer</span></h2>
33<p>rtpjitterbuffer</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-rtpjitterbuffer.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#gboolean"><span class="type">gboolean</span></a></td>
48<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-lost" title="The “do-lost” property">do-lost</a></td>
49<td class="property_flags">Read / Write</td>
50</tr>
51<tr>
52<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
53<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--drop-on-latency" title="The “drop-on-latency” property">drop-on-latency</a></td>
54<td class="property_flags">Read / Write</td>
55</tr>
56<tr>
57<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
58<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--latency" title="The “latency” property">latency</a></td>
59<td class="property_flags">Read / Write</td>
60</tr>
61<tr>
62<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a></td>
63<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--ts-offset" title="The “ts-offset” property">ts-offset</a></td>
64<td class="property_flags">Read / Write</td>
65</tr>
66<tr>
67<td class="property_type"><span class="type">RTPJitterBufferMode</span></td>
68<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--mode" title="The “mode” property">mode</a></td>
69<td class="property_flags">Read / Write</td>
70</tr>
71<tr>
72<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
73<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--percent" title="The “percent” property">percent</a></td>
74<td class="property_flags">Read</td>
75</tr>
76<tr>
77<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
78<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-retransmission" title="The “do-retransmission” property">do-retransmission</a></td>
79<td class="property_flags">Read / Write</td>
80</tr>
81<tr>
82<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
83<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay" title="The “rtx-delay” property">rtx-delay</a></td>
84<td class="property_flags">Read / Write</td>
85</tr>
86<tr>
87<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
88<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay-reorder" title="The “rtx-delay-reorder” property">rtx-delay-reorder</a></td>
89<td class="property_flags">Read / Write</td>
90</tr>
91<tr>
92<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
93<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-period" title="The “rtx-retry-period” property">rtx-retry-period</a></td>
94<td class="property_flags">Read / Write</td>
95</tr>
96<tr>
97<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
98<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout" title="The “rtx-retry-timeout” property">rtx-retry-timeout</a></td>
99<td class="property_flags">Read / Write</td>
100</tr>
101<tr>
102<td class="property_type">
103<a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</td>
104<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--stats" title="The “stats” property">stats</a></td>
105<td class="property_flags">Read</td>
106</tr>
107<tr>
108<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
109<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-min-delay" title="The “rtx-min-delay” property">rtx-min-delay</a></td>
110<td class="property_flags">Read / Write</td>
111</tr>
112<tr>
113<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
114<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-min-retry-timeout" title="The “rtx-min-retry-timeout” property">rtx-min-retry-timeout</a></td>
115<td class="property_flags">Read / Write</td>
116</tr>
117<tr>
118<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
119<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-max-retries" title="The “rtx-max-retries” property">rtx-max-retries</a></td>
120<td class="property_flags">Read / Write</td>
121</tr>
122<tr>
123<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
124<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-next-seqnum" title="The “rtx-next-seqnum” property">rtx-next-seqnum</a></td>
125<td class="property_flags">Read / Write</td>
126</tr>
127<tr>
128<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
129<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--max-dropout-time" title="The “max-dropout-time” property">max-dropout-time</a></td>
130<td class="property_flags">Read / Write</td>
131</tr>
132<tr>
133<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
134<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--max-misorder-time" title="The “max-misorder-time” property">max-misorder-time</a></td>
135<td class="property_flags">Read / Write</td>
136</tr>
137<tr>
138<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
139<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--max-rtcp-rtp-time-diff" title="The “max-rtcp-rtp-time-diff” property">max-rtcp-rtp-time-diff</a></td>
140<td class="property_flags">Read / Write</td>
141</tr>
142<tr>
143<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
144<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rfc7273-sync" title="The “rfc7273-sync” property">rfc7273-sync</a></td>
145<td class="property_flags">Read / Write</td>
146</tr>
147<tr>
148<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
149<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-deadline" title="The “rtx-deadline” property">rtx-deadline</a></td>
150<td class="property_flags">Read / Write</td>
151</tr>
152<tr>
153<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
154<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-stats-timeout" title="The “rtx-stats-timeout” property">rtx-stats-timeout</a></td>
155<td class="property_flags">Read / Write</td>
156</tr>
157<tr>
158<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
159<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--faststart-min-packets" title="The “faststart-min-packets” property">faststart-min-packets</a></td>
160<td class="property_flags">Read / Write</td>
161</tr>
162<tr>
163<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
164<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--max-ts-offset-adjustment" title="The “max-ts-offset-adjustment” property">max-ts-offset-adjustment</a></td>
165<td class="property_flags">Read / Write</td>
166</tr>
167</tbody>
168</table></div>
169</div>
170<div class="refsect1">
171<a name="gst-plugins-good-plugins-rtpjitterbuffer.signals"></a><h2>Signals</h2>
172<div class="informaltable"><table class="informaltable" border="0">
173<colgroup>
174<col width="150px" class="signals_return">
175<col width="300px" class="signals_name">
176<col width="200px" class="signals_flags">
177</colgroup>
178<tbody>
179<tr>
180<td class="signal_type"><span class="returnvalue">void</span></td>
181<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-clear-pt-map" title="The “clear-pt-map” signal">clear-pt-map</a></td>
182<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></td>
183</tr>
184<tr>
185<td class="signal_type"><span class="returnvalue">void</span></td>
186<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-handle-sync" title="The “handle-sync” signal">handle-sync</a></td>
187<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
188</tr>
189<tr>
190<td class="signal_type"><span class="returnvalue">void</span></td>
191<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-on-npt-stop" title="The “on-npt-stop” signal">on-npt-stop</a></td>
192<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
193</tr>
194<tr>
195<td class="signal_type">
196<a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a>*</td>
197<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map" title="The “request-pt-map” signal">request-pt-map</a></td>
198<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
199</tr>
200<tr>
201<td class="signal_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a></td>
202<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-set-active" title="The “set-active” signal">set-active</a></td>
203<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></td>
204</tr>
205</tbody>
206</table></div>
207</div>
208<a name="GstRtpJitterBuffer"></a><div class="refsect1">
209<a name="gst-plugins-good-plugins-rtpjitterbuffer.other"></a><h2>Types and Values</h2>
210<div class="informaltable"><table class="informaltable" width="100%" border="0">
211<colgroup>
212<col width="150px" class="name">
213<col class="description">
214</colgroup>
215<tbody><tr>
216<td class="datatype_keyword">struct</td>
217<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-struct" title="struct GstRtpJitterBuffer">GstRtpJitterBuffer</a></td>
218</tr></tbody>
219</table></div>
220</div>
221<div class="refsect1">
222<a name="gst-plugins-good-plugins-rtpjitterbuffer.object-hierarchy"></a><h2>Object Hierarchy</h2>
223<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
224    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
225        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
226            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
227                <span class="lineart">╰──</span> GstRtpJitterBuffer
228</pre>
229</div>
230<div class="refsect1">
231<a name="gst-plugins-good-plugins-rtpjitterbuffer.description"></a><h2>Description</h2>
232<p>This element reorders and removes duplicate RTP packets as they are received
233from a network source.</p>
234<p>The element needs the clock-rate of the RTP payload in order to estimate the
235delay. This information is obtained either from the caps on the sink pad or,
236when no caps are present, from the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map" title="The “request-pt-map” signal"><span class="type">“request-pt-map”</span></a> signal.
237To clear the previous pt-map use the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-clear-pt-map" title="The “clear-pt-map” signal"><span class="type">“clear-pt-map”</span></a> signal.</p>
238<p>The rtpjitterbuffer will wait for missing packets up to a configurable time
239limit using the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--latency" title="The “latency” property"><span class="type">“latency”</span></a> property. Packets arriving too
240late are considered to be lost packets. If the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-lost" title="The “do-lost” property"><span class="type">“do-lost”</span></a>
241property is set, lost packets will result in a custom serialized downstream
242event of name GstRTPPacketLost. The lost packet events are usually used by a
243depayloader or other element to create concealment data or some other logic
244to gracefully handle the missing packets.</p>
245<p>The jitterbuffer will use the DTS (or PTS if no DTS is set) of the incoming
246buffer and the rtptime inside the RTP packet to create a PTS on the outgoing
247buffer.</p>
248<p>The jitterbuffer can also be configured to send early retransmission events
249upstream by setting the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-retransmission" title="The “do-retransmission” property"><span class="type">“do-retransmission”</span></a> property. In
250this mode, the jitterbuffer tries to estimate when a packet should arrive and
251sends a custom upstream event named GstRTPRetransmissionRequest when the
252packet is considered late. The initial expected packet arrival time is
253calculated as follows:</p>
254<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
255<li class="listitem"><p>If seqnum N arrived at time T, seqnum N+1 is expected to arrive at
256T + packet-spacing + <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay" title="The “rtx-delay” property"><span class="type">“rtx-delay”</span></a>. The packet spacing is
257calculated from the DTS (or PTS is no DTS) of two consecutive RTP
258packets with different rtptime.</p></li>
259<li class="listitem"><p>If seqnum N0 arrived at time T0 and seqnum Nm arrived at time Tm,
260seqnum Ni is expected at time Ti = T0 + i*(Tm - T0)/(Nm - N0). Any
261previously scheduled timeout is overwritten.</p></li>
262<li class="listitem"><p>If seqnum N arrived, all seqnum older than
263N - <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay-reorder" title="The “rtx-delay-reorder” property"><span class="type">“rtx-delay-reorder”</span></a> are considered late
264immediately. This is to request fast feedback for abnormally reorder
265packets before any of the previous timeouts is triggered.</p></li>
266</ul></div>
267<p>A late packet triggers the GstRTPRetransmissionRequest custom upstream
268event. After the initial timeout expires and the retransmission event is
269sent, the timeout is scheduled for
270T + <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout" title="The “rtx-retry-timeout” property"><span class="type">“rtx-retry-timeout”</span></a>. If the missing packet did not
271arrive after <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout" title="The “rtx-retry-timeout” property"><span class="type">“rtx-retry-timeout”</span></a>, a new
272GstRTPRetransmissionRequest is sent upstream and the timeout is rescheduled
273again for T + <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout" title="The “rtx-retry-timeout” property"><span class="type">“rtx-retry-timeout”</span></a>. This repeats until
274<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-period" title="The “rtx-retry-period” property"><span class="type">“rtx-retry-period”</span></a> elapsed, at which point no further
275retransmission requests are sent and the regular logic is performed to
276schedule a lost packet as discussed above.</p>
277<p>This element acts as a live element and so adds <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--latency" title="The “latency” property"><span class="type">“latency”</span></a>
278to the pipeline.</p>
279<p>This element will automatically be used inside rtpbin.</p>
280<div class="refsect2">
281<a name="id-1.2.173.8.11"></a><h3>Example pipelines</h3>
282<div class="informalexample">
283  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
284    <tbody>
285      <tr>
286        <td class="listing_lines" align="right"><pre>1</pre></td>
287        <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> rtspsrc location<span class="gtkdoc opt">=</span>rtsp<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//192.168.1.133:8554/mpeg1or2AudioVideoTest ! rtpjitterbuffer ! rtpmpvdepay ! mpeg2dec ! xvimagesink</span></pre></td>
288      </tr>
289    </tbody>
290  </table>
291</div>
292 Connect to a streaming server and decode the MPEG video. The jitterbuffer is
293inserted into the pipeline to smooth out network jitter and to reorder the
294out-of-order RTP packets.
295</div>
296<div class="refsynopsisdiv">
297<h2>Synopsis</h2>
298<div class="refsect2">
299<a name="id-1.2.173.8.12.1"></a><h3>Element Information</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">plugin</span></p></td>
308<td>
309            <a class="link" href="gst-plugins-good-plugins-plugin-rtpmanager.html#plugin-rtpmanager">rtpmanager</a>
310          </td>
311</tr>
312<tr>
313<td><p><span class="term">author</span></p></td>
314<td>Philippe Kalaf &lt;philippe.kalaf@collabora.co.uk&gt;, Wim Taymans &lt;wim.taymans@gmail.com&gt;</td>
315</tr>
316<tr>
317<td><p><span class="term">class</span></p></td>
318<td>Filter/Network/RTP</td>
319</tr>
320</tbody>
321</table></div>
322</div>
323<hr>
324<div class="refsect2">
325<a name="id-1.2.173.8.12.2"></a><h3>Element Pads</h3>
326<div class="variablelist"><table border="0" class="variablelist">
327<colgroup>
328<col align="left" valign="top">
329<col>
330</colgroup>
331<tbody>
332<tr>
333<td><p><span class="term">name</span></p></td>
334<td>sink</td>
335</tr>
336<tr>
337<td><p><span class="term">direction</span></p></td>
338<td>sink</td>
339</tr>
340<tr>
341<td><p><span class="term">presence</span></p></td>
342<td>always</td>
343</tr>
344<tr>
345<td><p><span class="term">details</span></p></td>
346<td>application/x-rtp</td>
347</tr>
348</tbody>
349</table></div>
350<div class="variablelist"><table border="0" class="variablelist">
351<colgroup>
352<col align="left" valign="top">
353<col>
354</colgroup>
355<tbody>
356<tr>
357<td><p><span class="term">name</span></p></td>
358<td>sink_rtcp</td>
359</tr>
360<tr>
361<td><p><span class="term">direction</span></p></td>
362<td>sink</td>
363</tr>
364<tr>
365<td><p><span class="term">presence</span></p></td>
366<td>request</td>
367</tr>
368<tr>
369<td><p><span class="term">details</span></p></td>
370<td>application/x-rtcp</td>
371</tr>
372</tbody>
373</table></div>
374<div class="variablelist"><table border="0" class="variablelist">
375<colgroup>
376<col align="left" valign="top">
377<col>
378</colgroup>
379<tbody>
380<tr>
381<td><p><span class="term">name</span></p></td>
382<td>src</td>
383</tr>
384<tr>
385<td><p><span class="term">direction</span></p></td>
386<td>source</td>
387</tr>
388<tr>
389<td><p><span class="term">presence</span></p></td>
390<td>always</td>
391</tr>
392<tr>
393<td><p><span class="term">details</span></p></td>
394<td>application/x-rtp</td>
395</tr>
396</tbody>
397</table></div>
398</div>
399</div>
400</div>
401<div class="refsect1">
402<a name="gst-plugins-good-plugins-rtpjitterbuffer.functions_details"></a><h2>Functions</h2>
403<p></p>
404</div>
405<div class="refsect1">
406<a name="gst-plugins-good-plugins-rtpjitterbuffer.other_details"></a><h2>Types and Values</h2>
407<div class="refsect2">
408<a name="GstRtpJitterBuffer-struct"></a><h3>struct GstRtpJitterBuffer</h3>
409<pre class="programlisting">struct GstRtpJitterBuffer;</pre>
410<p>Opaque jitterbuffer structure.</p>
411</div>
412</div>
413<div class="refsect1">
414<a name="gst-plugins-good-plugins-rtpjitterbuffer.property-details"></a><h2>Property Details</h2>
415<div class="refsect2">
416<a name="GstRtpJitterBuffer--do-lost"></a><h3>The <code class="literal">“do-lost”</code> property</h3>
417<pre class="programlisting">  “do-lost”                  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
418<p>Send out a GstRTPPacketLost event downstream when a packet is considered
419lost.</p>
420<p>Flags: Read / Write</p>
421<p>Default value: FALSE</p>
422</div>
423<hr>
424<div class="refsect2">
425<a name="GstRtpJitterBuffer--drop-on-latency"></a><h3>The <code class="literal">“drop-on-latency”</code> property</h3>
426<pre class="programlisting">  “drop-on-latency”          <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
427<p>Drop oldest buffers when the queue is completely filled.</p>
428<p>Flags: Read / Write</p>
429<p>Default value: FALSE</p>
430</div>
431<hr>
432<div class="refsect2">
433<a name="GstRtpJitterBuffer--latency"></a><h3>The <code class="literal">“latency”</code> property</h3>
434<pre class="programlisting">  “latency”                  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
435<p>The maximum latency of the jitterbuffer. Packets will be kept in the buffer
436for at most this time.</p>
437<p>Flags: Read / Write</p>
438<p>Default value: 200</p>
439</div>
440<hr>
441<div class="refsect2">
442<a name="GstRtpJitterBuffer--ts-offset"></a><h3>The <code class="literal">“ts-offset”</code> property</h3>
443<pre class="programlisting">  “ts-offset”                <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a></pre>
444<p>Adjust GStreamer output buffer timestamps in the jitterbuffer with offset.
445This is mainly used to ensure interstream synchronisation.</p>
446<p>Flags: Read / Write</p>
447<p>Default value: 0</p>
448</div>
449<hr>
450<div class="refsect2">
451<a name="GstRtpJitterBuffer--mode"></a><h3>The <code class="literal">“mode”</code> property</h3>
452<pre class="programlisting">  “mode”                     <span class="type">RTPJitterBufferMode</span></pre>
453<p>Control the buffering and timestamping mode used by the jitterbuffer.</p>
454<p>Flags: Read / Write</p>
455<p>Default value: Slave receiver to sender clock</p>
456</div>
457<hr>
458<div class="refsect2">
459<a name="GstRtpJitterBuffer--percent"></a><h3>The <code class="literal">“percent”</code> property</h3>
460<pre class="programlisting">  “percent”                  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
461<p>The percent of the jitterbuffer that is filled.</p>
462<p>Flags: Read</p>
463<p>Allowed values: [0,100]</p>
464<p>Default value: 0</p>
465</div>
466<hr>
467<div class="refsect2">
468<a name="GstRtpJitterBuffer--do-retransmission"></a><h3>The <code class="literal">“do-retransmission”</code> property</h3>
469<pre class="programlisting">  “do-retransmission”        <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
470<p>Send out a GstRTPRetransmission event upstream when a packet is considered
471late and should be retransmitted.</p>
472<p>Flags: Read / Write</p>
473<p>Default value: FALSE</p>
474<p class="since">Since: 1.2</p>
475</div>
476<hr>
477<div class="refsect2">
478<a name="GstRtpJitterBuffer--rtx-delay"></a><h3>The <code class="literal">“rtx-delay”</code> property</h3>
479<pre class="programlisting">  “rtx-delay”                <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
480<p>When a packet did not arrive at the expected time, wait this extra amount
481of time before sending a retransmission event.</p>
482<p>When -1 is used, the max jitter will be used as extra delay.</p>
483<p>Flags: Read / Write</p>
484<p>Allowed values: &gt;= G_MAXULONG</p>
485<p>Default value: -1</p>
486<p class="since">Since: 1.2</p>
487</div>
488<hr>
489<div class="refsect2">
490<a name="GstRtpJitterBuffer--rtx-delay-reorder"></a><h3>The <code class="literal">“rtx-delay-reorder”</code> property</h3>
491<pre class="programlisting">  “rtx-delay-reorder”        <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
492<p>Assume that a retransmission event should be sent when we see
493this much packet reordering.</p>
494<p>When -1 is used, the value will be estimated based on observed packet
495reordering. When 0 is used packet reordering alone will not cause a
496retransmission event (Since 1.10).</p>
497<p>Flags: Read / Write</p>
498<p>Allowed values: &gt;= G_MAXULONG</p>
499<p>Default value: 3</p>
500<p class="since">Since: 1.2</p>
501</div>
502<hr>
503<div class="refsect2">
504<a name="GstRtpJitterBuffer--rtx-retry-period"></a><h3>The <code class="literal">“rtx-retry-period”</code> property</h3>
505<pre class="programlisting">  “rtx-retry-period”         <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
506<p>The amount of time to try to get a retransmission.</p>
507<p>When -1 is used, the value will be estimated based on the jitterbuffer
508latency and the observed round trip time.</p>
509<p>Flags: Read / Write</p>
510<p>Allowed values: &gt;= G_MAXULONG</p>
511<p>Default value: -1</p>
512<p class="since">Since: 1.2</p>
513</div>
514<hr>
515<div class="refsect2">
516<a name="GstRtpJitterBuffer--rtx-retry-timeout"></a><h3>The <code class="literal">“rtx-retry-timeout”</code> property</h3>
517<pre class="programlisting">  “rtx-retry-timeout”        <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
518<p>Retry sending a transmission event after this timeout in ms (-1 automatic).</p>
519<p>Flags: Read / Write</p>
520<p>Allowed values: &gt;= G_MAXULONG</p>
521<p>Default value: -1</p>
522</div>
523<hr>
524<div class="refsect2">
525<a name="GstRtpJitterBuffer--stats"></a><h3>The <code class="literal">“stats”</code> property</h3>
526<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>
527<p>Various jitterbuffer statistics. This property returns a GstStructure
528with name application/x-rtp-jitterbuffer-stats with the following fields:</p>
529<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
530<li class="listitem"><p>
531  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>
532  <code class="classname">"num-pushed"</code>:
533  the number of packets pushed out.
534  </p></li>
535<li class="listitem"><p>
536  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>
537  <code class="classname">"num-lost"</code>:
538  the number of packets considered lost.
539  </p></li>
540<li class="listitem"><p>
541  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>
542  <code class="classname">"num-late"</code>:
543  the number of packets arriving too late.
544  </p></li>
545<li class="listitem"><p>
546  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>
547  <code class="classname">"num-duplicates"</code>:
548  the number of duplicate packets.
549  </p></li>
550<li class="listitem"><p>
551  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>
552  <code class="classname">"rtx-count"</code>:
553  the number of retransmissions requested.
554  </p></li>
555<li class="listitem"><p>
556  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>
557  <code class="classname">"rtx-success-count"</code>:
558  the number of successful retransmissions.
559  </p></li>
560<li class="listitem"><p>
561  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>
562  <code class="classname">"rtx-per-packet"</code>:
563  average number of RTX per packet.
564  </p></li>
565<li class="listitem"><p>
566  <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>
567  <code class="classname">"rtx-rtt"</code>:
568  average round trip time per RTX.
569  </p></li>
570</ul></div>
571<p>Flags: Read</p>
572<p class="since">Since: 1.4</p>
573</div>
574<hr>
575<div class="refsect2">
576<a name="GstRtpJitterBuffer--rtx-min-delay"></a><h3>The <code class="literal">“rtx-min-delay”</code> property</h3>
577<pre class="programlisting">  “rtx-min-delay”            <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
578<p>When a packet did not arrive at the expected time, wait at least this extra amount
579of time before sending a retransmission event.</p>
580<p>Flags: Read / Write</p>
581<p>Default value: 0</p>
582<p class="since">Since: 1.6</p>
583</div>
584<hr>
585<div class="refsect2">
586<a name="GstRtpJitterBuffer--rtx-min-retry-timeout"></a><h3>The <code class="literal">“rtx-min-retry-timeout”</code> property</h3>
587<pre class="programlisting">  “rtx-min-retry-timeout”    <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
588<p>Minimum timeout between sending a transmission event in ms (-1 automatic).</p>
589<p>Flags: Read / Write</p>
590<p>Allowed values: &gt;= G_MAXULONG</p>
591<p>Default value: -1</p>
592</div>
593<hr>
594<div class="refsect2">
595<a name="GstRtpJitterBuffer--rtx-max-retries"></a><h3>The <code class="literal">“rtx-max-retries”</code> property</h3>
596<pre class="programlisting">  “rtx-max-retries”          <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
597<p>The maximum number of retries to request a retransmission.</p>
598<p>This implies that as maximum (rtx-max-retries + 1) retransmissions will be requested.
599When -1 is used, the number of retransmission request will not be limited.</p>
600<p>Flags: Read / Write</p>
601<p>Allowed values: &gt;= G_MAXULONG</p>
602<p>Default value: -1</p>
603<p class="since">Since: 1.6</p>
604</div>
605<hr>
606<div class="refsect2">
607<a name="GstRtpJitterBuffer--rtx-next-seqnum"></a><h3>The <code class="literal">“rtx-next-seqnum”</code> property</h3>
608<pre class="programlisting">  “rtx-next-seqnum”          <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
609<p>Estimate when the next packet should arrive and schedule a retransmission
610request for it.
611This is, when packet N arrives, a GstRTPRetransmission event is schedule
612for packet N+1. So it will be requested if it does not arrive at the expected time.
613The expected time is calculated using the dts of N and the packet spacing.</p>
614<p>Flags: Read / Write</p>
615<p>Default value: TRUE</p>
616<p class="since">Since: 1.6</p>
617</div>
618<hr>
619<div class="refsect2">
620<a name="GstRtpJitterBuffer--max-dropout-time"></a><h3>The <code class="literal">“max-dropout-time”</code> property</h3>
621<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>
622<p>The maximum time (milliseconds) of missing packets tolerated.</p>
623<p>Flags: Read / Write</p>
624<p>Allowed values: &lt;= G_MAXINT</p>
625<p>Default value: 60000</p>
626</div>
627<hr>
628<div class="refsect2">
629<a name="GstRtpJitterBuffer--max-misorder-time"></a><h3>The <code class="literal">“max-misorder-time”</code> property</h3>
630<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>
631<p>The maximum time (milliseconds) of misordered packets tolerated.</p>
632<p>Flags: Read / Write</p>
633<p>Default value: 2000</p>
634</div>
635<hr>
636<div class="refsect2">
637<a name="GstRtpJitterBuffer--max-rtcp-rtp-time-diff"></a><h3>The <code class="literal">“max-rtcp-rtp-time-diff”</code> property</h3>
638<pre class="programlisting">  “max-rtcp-rtp-time-diff”   <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
639<p>The maximum amount of time in ms that the RTP time in the RTCP SRs
640is allowed to be ahead of the last RTP packet we received. Use
641-1 to disable ignoring of RTCP packets.</p>
642<p>Flags: Read / Write</p>
643<p>Allowed values: &gt;= G_MAXULONG</p>
644<p>Default value: 1000</p>
645<p class="since">Since: 1.8</p>
646</div>
647<hr>
648<div class="refsect2">
649<a name="GstRtpJitterBuffer--rfc7273-sync"></a><h3>The <code class="literal">“rfc7273-sync”</code> property</h3>
650<pre class="programlisting">  “rfc7273-sync”             <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
651<p>Synchronize received streams to the RFC7273 clock (requires clock and offset to be provided).</p>
652<p>Flags: Read / Write</p>
653<p>Default value: FALSE</p>
654</div>
655<hr>
656<div class="refsect2">
657<a name="GstRtpJitterBuffer--rtx-deadline"></a><h3>The <code class="literal">“rtx-deadline”</code> property</h3>
658<pre class="programlisting">  “rtx-deadline”             <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
659<p>The deadline for a valid RTX request in ms.</p>
660<p>How long the RTX RTCP will be valid for.
661When -1 is used, the size of the jitterbuffer will be used.</p>
662<p>Flags: Read / Write</p>
663<p>Allowed values: &gt;= G_MAXULONG</p>
664<p>Default value: -1</p>
665<p class="since">Since: 1.10</p>
666</div>
667<hr>
668<div class="refsect2">
669<a name="GstRtpJitterBuffer--rtx-stats-timeout"></a><h3>The <code class="literal">“rtx-stats-timeout”</code> property</h3>
670<pre class="programlisting">  “rtx-stats-timeout”        <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
671<p>The time to wait for a retransmitted packet after it has been considered lost in order to collect statistics (ms).</p>
672<p>Flags: Read / Write</p>
673<p>Default value: 1000</p>
674</div>
675<hr>
676<div class="refsect2">
677<a name="GstRtpJitterBuffer--faststart-min-packets"></a><h3>The <code class="literal">“faststart-min-packets”</code> property</h3>
678<pre class="programlisting">  “faststart-min-packets”    <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
679<p>The number of consecutive packets needed to start (set to 0 to
680disable faststart. The jitterbuffer will by default start after the
681latency has elapsed)</p>
682<p>Flags: Read / Write</p>
683<p>Default value: 0</p>
684<p class="since">Since: 1.14</p>
685</div>
686<hr>
687<div class="refsect2">
688<a name="GstRtpJitterBuffer--max-ts-offset-adjustment"></a><h3>The <code class="literal">“max-ts-offset-adjustment”</code> property</h3>
689<pre class="programlisting">  “max-ts-offset-adjustment” <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
690<p>The maximum number of nanoseconds per frame that time offset may be
691adjusted with. This is used to avoid sudden large changes to time stamps.</p>
692<p>Flags: Read / Write</p>
693<p>Default value: 0</p>
694</div>
695</div>
696<div class="refsect1">
697<a name="gst-plugins-good-plugins-rtpjitterbuffer.signal-details"></a><h2>Signal Details</h2>
698<div class="refsect2">
699<a name="GstRtpJitterBuffer-clear-pt-map"></a><h3>The <code class="literal">“clear-pt-map”</code> signal</h3>
700<pre class="programlisting"><span class="returnvalue">void</span>
701user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer,
702               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
703<p>Invalidate the clock-rate as obtained with the
704<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map" title="The “request-pt-map” signal"><span class="type">“request-pt-map”</span></a> signal.</p>
705<div class="refsect3">
706<a name="GstRtpJitterBuffer-clear-pt-map.parameters"></a><h4>Parameters</h4>
707<div class="informaltable"><table class="informaltable" width="100%" border="0">
708<colgroup>
709<col width="150px" class="parameters_name">
710<col class="parameters_description">
711<col width="200px" class="parameters_annotations">
712</colgroup>
713<tbody>
714<tr>
715<td class="parameter_name"><p>buffer</p></td>
716<td class="parameter_description"><p>the object which received the signal</p></td>
717<td class="parameter_annotations"> </td>
718</tr>
719<tr>
720<td class="parameter_name"><p>user_data</p></td>
721<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
722<td class="parameter_annotations"> </td>
723</tr>
724</tbody>
725</table></div>
726</div>
727<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></p>
728</div>
729<hr>
730<div class="refsect2">
731<a name="GstRtpJitterBuffer-handle-sync"></a><h3>The <code class="literal">“handle-sync”</code> signal</h3>
732<pre class="programlisting"><span class="returnvalue">void</span>
733user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer,
734               <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a>       *struct,
735               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
736<p>Be notified of new sync values.</p>
737<div class="refsect3">
738<a name="GstRtpJitterBuffer-handle-sync.parameters"></a><h4>Parameters</h4>
739<div class="informaltable"><table class="informaltable" width="100%" border="0">
740<colgroup>
741<col width="150px" class="parameters_name">
742<col class="parameters_description">
743<col width="200px" class="parameters_annotations">
744</colgroup>
745<tbody>
746<tr>
747<td class="parameter_name"><p>buffer</p></td>
748<td class="parameter_description"><p>the object which received the signal</p></td>
749<td class="parameter_annotations"> </td>
750</tr>
751<tr>
752<td class="parameter_name"><p>struct</p></td>
753<td class="parameter_description"><p>a GstStructure containing sync values.</p></td>
754<td class="parameter_annotations"> </td>
755</tr>
756<tr>
757<td class="parameter_name"><p>user_data</p></td>
758<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
759<td class="parameter_annotations"> </td>
760</tr>
761</tbody>
762</table></div>
763</div>
764<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
765</div>
766<hr>
767<div class="refsect2">
768<a name="GstRtpJitterBuffer-on-npt-stop"></a><h3>The <code class="literal">“on-npt-stop”</code> signal</h3>
769<pre class="programlisting"><span class="returnvalue">void</span>
770user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer,
771               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
772<p>Signal that the jitterbufer has pushed the RTP packet that corresponds to
773the npt-stop position.</p>
774<div class="refsect3">
775<a name="GstRtpJitterBuffer-on-npt-stop.parameters"></a><h4>Parameters</h4>
776<div class="informaltable"><table class="informaltable" width="100%" border="0">
777<colgroup>
778<col width="150px" class="parameters_name">
779<col class="parameters_description">
780<col width="200px" class="parameters_annotations">
781</colgroup>
782<tbody>
783<tr>
784<td class="parameter_name"><p>buffer</p></td>
785<td class="parameter_description"><p>the object which received the signal</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="GstRtpJitterBuffer-request-pt-map"></a><h3>The <code class="literal">“request-pt-map”</code> signal</h3>
801<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a>*
802user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer,
803               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a>               pt,
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>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>
806.</p>
807<div class="refsect3">
808<a name="GstRtpJitterBuffer-request-pt-map.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>buffer</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>pt</p></td>
823<td class="parameter_description"><p>the pt</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="GstRtpJitterBuffer-set-active"></a><h3>The <code class="literal">“set-active”</code> signal</h3>
839<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>
840user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer,
841               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>            Returns,
842               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>             arg2,
843               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
844<p>Start pushing out packets with the given base time. This signal is only
845useful in buffering mode.</p>
846<div class="refsect3">
847<a name="GstRtpJitterBuffer-set-active.parameters"></a><h4>Parameters</h4>
848<div class="informaltable"><table class="informaltable" width="100%" border="0">
849<colgroup>
850<col width="150px" class="parameters_name">
851<col class="parameters_description">
852<col width="200px" class="parameters_annotations">
853</colgroup>
854<tbody>
855<tr>
856<td class="parameter_name"><p>buffer</p></td>
857<td class="parameter_description"><p>the object which received the signal</p></td>
858<td class="parameter_annotations"> </td>
859</tr>
860<tr>
861<td class="parameter_name"><p>user_data</p></td>
862<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
863<td class="parameter_annotations"> </td>
864</tr>
865</tbody>
866</table></div>
867</div>
868<div class="refsect3">
869<a name="GstRtpJitterBuffer-set-active.returns"></a><h4>Returns</h4>
870<p> the time of the last pushed packet.</p>
871</div>
872<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></p>
873</div>
874</div>
875</div>
876<div class="footer">
877<hr>Generated by GTK-Doc V1.28</div>
878</body>
879</html>