<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstrtpbasedepayload: GStreamer Base Plugins 1.0 Library Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
<link rel="up" href="gstreamer-rtp.html" title="RTP Library">
<link rel="prev" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html" title="gstrtpbaseaudiopayload">
<link rel="next" href="gst-plugins-base-libs-gstrtpbasepayload.html" title="gstrtpbasepayload">
<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-base-libs-gstrtpbasedepayload.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#gst-plugins-base-libs-gstrtpbasedepayload.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                  <a href="#gst-plugins-base-libs-gstrtpbasedepayload.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="gstreamer-rtp.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gst-plugins-base-libs-gstrtpbasepayload.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gst-plugins-base-libs-gstrtpbasedepayload"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtpbasedepayload.top_of_page"></a>gstrtpbasedepayload</span></h2>
<p>gstrtpbasedepayload</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstrtpbasedepayload.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GST-RTP-BASE-DEPAYLOAD-SINKPAD:CAPS" title="GST_RTP_BASE_DEPAYLOAD_SINKPAD()">GST_RTP_BASE_DEPAYLOAD_SINKPAD</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GST-RTP-BASE-DEPAYLOAD-SRCPAD:CAPS" title="GST_RTP_BASE_DEPAYLOAD_SRCPAD()">GST_RTP_BASE_DEPAYLOAD_SRCPAD</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
</td>
<td class="function_name">
<a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#gst-rtp-base-depayload-push" title="gst_rtp_base_depayload_push ()">gst_rtp_base_depayload_push</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
</td>
<td class="function_name">
<a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#gst-rtp-base-depayload-push-list" title="gst_rtp_base_depayload_push_list ()">gst_rtp_base_depayload_push_list</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstrtpbasedepayload.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/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</td>
<td class="property_name"><a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload--stats" title="The “stats” property">stats</a></td>
<td class="property_flags">Read</td>
</tr></tbody>
</table></div>
</div>
<a name="GstRTPBaseDepayload"></a><div class="refsect1">
<a name="gst-plugins-base-libs-gstrtpbasedepayload.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-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct" title="struct GstRTPBaseDepayload">GstRTPBaseDepayload</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayloadClass" title="struct GstRTPBaseDepayloadClass">GstRTPBaseDepayloadClass</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstrtpbasedepayload.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> GstRTPBaseDepayload
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstrtpbasedepayload.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gst/rtp/gstrtpbasedepayload.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstrtpbasedepayload.description"></a><h2>Description</h2>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstrtpbasedepayload.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="GST-RTP-BASE-DEPAYLOAD-SINKPAD:CAPS"></a><h3>GST_RTP_BASE_DEPAYLOAD_SINKPAD()</h3>
<pre class="programlisting">#define GST_RTP_BASE_DEPAYLOAD_SINKPAD(depayload) (GST_RTP_BASE_DEPAYLOAD_CAST (depayload)-&gt;sinkpad)
</pre>
</div>
<hr>
<div class="refsect2">
<a name="GST-RTP-BASE-DEPAYLOAD-SRCPAD:CAPS"></a><h3>GST_RTP_BASE_DEPAYLOAD_SRCPAD()</h3>
<pre class="programlisting">#define GST_RTP_BASE_DEPAYLOAD_SRCPAD(depayload)  (GST_RTP_BASE_DEPAYLOAD_CAST (depayload)-&gt;srcpad)
</pre>
</div>
<hr>
<div class="refsect2">
<a name="gst-rtp-base-depayload-push"></a><h3>gst_rtp_base_depayload_push ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
gst_rtp_base_depayload_push (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload"><span class="type">GstRTPBaseDepayload</span></a> *filter</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *out_buf</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="gst-rtp-base-depayload-push-list"></a><h3>gst_rtp_base_depayload_push_list ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
gst_rtp_base_depayload_push_list (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload"><span class="type">GstRTPBaseDepayload</span></a> *filter</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBufferList.html#GstBufferList-struct"><span class="type">GstBufferList</span></a> *out_list</code></em>);</pre>
</div>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstrtpbasedepayload.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GstRTPBaseDepayload-struct"></a><h3>struct GstRTPBaseDepayload</h3>
<pre class="programlisting">struct GstRTPBaseDepayload;</pre>
</div>
<hr>
<div class="refsect2">
<a name="GstRTPBaseDepayloadClass"></a><h3>struct GstRTPBaseDepayloadClass</h3>
<pre class="programlisting">struct GstRTPBaseDepayloadClass {
  GstElementClass parent_class;

  /* virtuals, inform the subclass of the caps. */
  gboolean (*set_caps) (GstRTPBaseDepayload *filter, GstCaps *caps);

  /* pure virtual function, child must implement either this method
   * or the process_rtp_packet virtual method to process incoming
   * rtp packets. If the child returns a buffer without a valid timestamp,
   * the timestamp of @in will be applied to the result buffer and the
   * buffer will be pushed. If this function returns %NULL, nothing is
   * pushed.  */
  GstBuffer * (*process) (GstRTPBaseDepayload *base, GstBuffer *in);

  /* non-pure function used to to signal the depayloader about packet loss. the
   * timestamp and duration are the estimated values of the lost packet.
   * The default implementation of this message pushes a segment update. */
  gboolean (*packet_lost) (GstRTPBaseDepayload *filter, GstEvent *event);

  /* the default implementation does the default actions for events but
   * implementation can override. */
  gboolean (*handle_event) (GstRTPBaseDepayload * filter, GstEvent * event);

  /* Optional. Same as the process virtual function, but slightly more
   * efficient, since it is passed the rtp buffer structure that has already
   * been mapped (with GST_MAP_READ) by the base class and thus does not have
   * to be mapped again by the subclass. Can be used by the subclass to process
   * incoming rtp packets. If the subclass returns a buffer without a valid
   * timestamp, the timestamp of the input buffer will be applied to the result
   * buffer and the output buffer will be pushed out. If this function returns
   * %NULL, nothing is pushed out.
   *
   * Since: 1.6
   */
  GstBuffer * (*process_rtp_packet) (GstRTPBaseDepayload *base, GstRTPBuffer * rtp_buffer);
};
</pre>
</div>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstrtpbasedepayload.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstRTPBaseDepayload--stats"></a><h3>The <code class="literal">“stats”</code> property</h3>
<pre class="programlisting">  “stats”                    <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</pre>
<p>Various statistics.</p>
<p>Flags: Read</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25</div>
</body>
</html>