Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 6d445a7e34cab500c4a729b1f6c7a5fd > files > 141

lib64gstreamer-plugins-base0.10-devel-0.10.17-3mdv2008.1.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>gstrtcpbuffer</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
<link rel="start" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtp.html" title="RTP Library">
<link rel="prev" href="gst-plugins-base-libs-gstrtpbuffer.html" title="gstrtpbuffer">
<link rel="next" href="gstreamer-rtsp.html" title="RTSP Library">
<meta name="generator" content="GTK-Doc V1.8 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="part" href="gstreamer-plugins-base.html" title="Part&#160;I.&#160;GStreamer Base Plugins Libraries">
<link rel="chapter" href="gstreamer-audio.html" title="Audio Library">
<link rel="chapter" href="gstreamer-cdda.html" title="CDDA Library">
<link rel="chapter" href="gstreamer-ffft.html" title="FFT Library">
<link rel="chapter" href="gstreamer-floatcast.html" title="FloatCast Library">
<link rel="chapter" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="chapter" href="gstreamer-netbuffer.html" title="Network Buffer Library">
<link rel="chapter" href="gstreamer-riff.html" title="Riff Media Library">
<link rel="chapter" href="gstreamer-rtp.html" title="RTP Library">
<link rel="chapter" href="gstreamer-rtsp.html" title="RTSP Library">
<link rel="chapter" href="gstreamer-sdp.html" title="SDP Library">
<link rel="chapter" href="gstreamer-tag.html" title="Tag Support Library">
<link rel="chapter" href="gstreamer-base-utils.html" title="Base Utils Library">
<link rel="chapter" href="gstreamer-video.html" title="Video Library">
<link rel="part" href="gstreamer-libs-hierarchy.html" title="Part&#160;II.&#160;Object Hierarchy">
<link rel="index" href="api-index.html" title="Index">
</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="2">
<tr valign="middle">
<td><a accesskey="p" href="gst-plugins-base-libs-gstrtpbuffer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gstreamer-rtp.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
<td><a accesskey="n" href="gstreamer-rtsp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2668158" class="shortcut">Top</a>
                  &#160;|&#160;
                  <a href="#id2669678" class="shortcut">Description</a></nobr></td></tr>
</table>
<div class="refentry" lang="en">
<a name="gst-plugins-base-libs-gstrtcpbuffer"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2>
<a name="id2668158"></a><span class="refentrytitle">gstrtcpbuffer</span>
</h2>
<p>gstrtcpbuffer &#8212; Helper methods for dealing with RTCP buffers</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">

#include &lt;gst/rtp/gstrtcpbuffer.h&gt;


#define             <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VERSION:CAPS">GST_RTCP_VERSION</a>
#define             <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-SDES:CAPS">GST_RTCP_MAX_SDES</a>
#define             <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS">GST_RTCP_MAX_BYE_SSRC_COUNT</a>
#define             <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-RB-COUNT:CAPS">GST_RTCP_MAX_RB_COUNT</a>
#define             <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-SDES-ITEM-COUNT:CAPS">GST_RTCP_MAX_SDES_ITEM_COUNT</a>
#define             <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VALID-MASK:CAPS">GST_RTCP_VALID_MASK</a>
#define             <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VALID-VALUE:CAPS">GST_RTCP_VALID_VALUE</a>
enum                <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPType">GstRTCPType</a>;
                    <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a>;
enum                <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType">GstRTCPSDESType</a>;
GstBuffer*          <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-take-data">gst_rtcp_buffer_new_take_data</a>       (gpointer data,
                                                         guint len);
GstBuffer*          <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-copy-data">gst_rtcp_buffer_new_copy_data</a>       (gpointer data,
                                                         guint len);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data">gst_rtcp_buffer_validate_data</a>       (guint8 *data,
                                                         guint len);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate">gst_rtcp_buffer_validate</a>            (GstBuffer *buffer);
GstBuffer*          <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new">gst_rtcp_buffer_new</a>                 (guint mtu);
void                <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-end">gst_rtcp_buffer_end</a>                 (GstBuffer *buffer);
guint               <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-get-packet-count">gst_rtcp_buffer_get_packet_count</a>    (GstBuffer *buffer);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-get-first-packet">gst_rtcp_buffer_get_first_packet</a>    (GstBuffer *buffer,
                                                         <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-move-to-next">gst_rtcp_packet_move_to_next</a>        (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-add-packet">gst_rtcp_buffer_add_packet</a>          (GstBuffer *buffer,
                                                         <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPType">GstRTCPType</a> type,
                                                         <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
void                <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-remove">gst_rtcp_packet_remove</a>              (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-padding">gst_rtcp_packet_get_padding</a>         (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
guint8              <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-count">gst_rtcp_packet_get_count</a>           (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPType">GstRTCPType</a>         <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-type">gst_rtcp_packet_get_type</a>            (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
guint16             <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-length">gst_rtcp_packet_get_length</a>          (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
void                <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sr-get-sender-info">gst_rtcp_packet_sr_get_sender_info</a>  (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint32 *ssrc,
                                                         guint64 *ntptime,
                                                         guint32 *rtptime,
                                                         guint32 *packet_count,
                                                         guint32 *octet_count);
void                <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sr-set-sender-info">gst_rtcp_packet_sr_set_sender_info</a>  (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint32 ssrc,
                                                         guint64 ntptime,
                                                         guint32 rtptime,
                                                         guint32 packet_count,
                                                         guint32 octet_count);
guint32             <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-rr-get-ssrc">gst_rtcp_packet_rr_get_ssrc</a>         (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
void                <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-rr-set-ssrc">gst_rtcp_packet_rr_set_ssrc</a>         (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint32 ssrc);
guint               <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-rb-count">gst_rtcp_packet_get_rb_count</a>        (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
void                <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-rb">gst_rtcp_packet_get_rb</a>              (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint nth,
                                                         guint32 *ssrc,
                                                         guint8 *fractionlost,
                                                         gint32 *packetslost,
                                                         guint32 *exthighestseq,
                                                         guint32 *jitter,
                                                         guint32 *lsr,
                                                         guint32 *dlsr);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-add-rb">gst_rtcp_packet_add_rb</a>              (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint32 ssrc,
                                                         guint8 fractionlost,
                                                         gint32 packetslost,
                                                         guint32 exthighestseq,
                                                         guint32 jitter,
                                                         guint32 lsr,
                                                         guint32 dlsr);
void                <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-set-rb">gst_rtcp_packet_set_rb</a>              (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint nth,
                                                         guint32 ssrc,
                                                         guint8 fractionlost,
                                                         gint32 packetslost,
                                                         guint32 exthighestseq,
                                                         guint32 jitter,
                                                         guint32 lsr,
                                                         guint32 dlsr);
guint               <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-item-count">gst_rtcp_packet_sdes_get_item_count</a> (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-first-item">gst_rtcp_packet_sdes_first_item</a>     (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-next-item">gst_rtcp_packet_sdes_next_item</a>      (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
guint32             <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-ssrc">gst_rtcp_packet_sdes_get_ssrc</a>       (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-first-entry">gst_rtcp_packet_sdes_first_entry</a>    (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-next-entry">gst_rtcp_packet_sdes_next_entry</a>     (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-entry">gst_rtcp_packet_sdes_get_entry</a>      (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType">GstRTCPSDESType</a> *type,
                                                         guint8 *len,
                                                         guint8 **data);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-copy-entry">gst_rtcp_packet_sdes_copy_entry</a>     (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType">GstRTCPSDESType</a> *type,
                                                         guint8 *len,
                                                         guint8 **data);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-add-item">gst_rtcp_packet_sdes_add_item</a>       (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint32 ssrc);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-add-entry">gst_rtcp_packet_sdes_add_entry</a>      (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType">GstRTCPSDESType</a> type,
                                                         guint8 len,
                                                         const guint8 *data);
guint               <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-ssrc-count">gst_rtcp_packet_bye_get_ssrc_count</a>  (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
guint32             <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-nth-ssrc">gst_rtcp_packet_bye_get_nth_ssrc</a>    (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint nth);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-add-ssrc">gst_rtcp_packet_bye_add_ssrc</a>        (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint32 ssrc);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-add-ssrcs">gst_rtcp_packet_bye_add_ssrcs</a>       (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint32 *ssrc,
                                                         guint len);
guint8              <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-reason-len">gst_rtcp_packet_bye_get_reason_len</a>  (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
gchar*              <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-reason">gst_rtcp_packet_bye_get_reason</a>      (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);
gboolean            <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-set-reason">gst_rtcp_packet_bye_set_reason</a>      (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         const gchar *reason);
guint64             <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-ntp-to-unix">gst_rtcp_ntp_to_unix</a>                (guint64 ntptime);
guint64             <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-unix-to-ntp">gst_rtcp_unix_to_ntp</a>                (guint64 unixtime);

</pre>
</div>
<div class="refsect1" lang="en">
<a name="id2669678"></a><h2>Description</h2>
<p>
Note: The API in this module is not yet declared stable.
</p>
<p>
</p>
<div class="refsect2" lang="en">
<a name="id2669694"></a><p>
The GstRTPCBuffer helper functions makes it easy to parse and create regular 
<span class="type">GstBuffer</span> objects that contain compound RTCP packets. These buffers are typically
of 'application/x-rtcp' <span class="type">GstCaps</span>.
</p>
<p>
An RTCP buffer consists of 1 or more <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> structures that you can
retrieve with <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-get-first-packet"><code class="function">gst_rtcp_buffer_get_first_packet()</code></a>. <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> acts as a pointer
into the RTCP buffer; you can move to the next packet with
<a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-move-to-next"><code class="function">gst_rtcp_packet_move_to_next()</code></a>.
</p>
</div>
<p>

</p>
</div>
<div class="refsect1" lang="en">
<a name="id2669768"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="id2669779"></a><h3>
<a name="GST-RTCP-VERSION:CAPS"></a>GST_RTCP_VERSION</h3>
<a class="indexterm" name="id2669792"></a><pre class="programlisting">#define GST_RTCP_VERSION 2
</pre>
<p>
The supported RTCP version 2.</p>
<p>

</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2669811"></a><h3>
<a name="GST-RTCP-MAX-SDES:CAPS"></a>GST_RTCP_MAX_SDES</h3>
<a class="indexterm" name="id2669825"></a><pre class="programlisting">#define GST_RTCP_MAX_SDES 255
</pre>
<p>
The maximum text length for an SDES item.</p>
<p>

</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2669844"></a><h3>
<a name="GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS"></a>GST_RTCP_MAX_BYE_SSRC_COUNT</h3>
<a class="indexterm" name="id2669858"></a><pre class="programlisting">#define GST_RTCP_MAX_BYE_SSRC_COUNT   31
</pre>
<p>
The maximum amount of SSRCs in a BYE packet.</p>
<p>

</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2669878"></a><h3>
<a name="GST-RTCP-MAX-RB-COUNT:CAPS"></a>GST_RTCP_MAX_RB_COUNT</h3>
<a class="indexterm" name="id2669890"></a><pre class="programlisting">#define GST_RTCP_MAX_RB_COUNT   31
</pre>
<p>
The maximum amount of Receiver report blocks in RR and SR messages.</p>
<p>

</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2669910"></a><h3>
<a name="GST-RTCP-MAX-SDES-ITEM-COUNT:CAPS"></a>GST_RTCP_MAX_SDES_ITEM_COUNT</h3>
<a class="indexterm" name="id2669923"></a><pre class="programlisting">#define GST_RTCP_MAX_SDES_ITEM_COUNT   31
</pre>
<p>
The maximum amount of SDES items.</p>
<p>

</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2669943"></a><h3>
<a name="GST-RTCP-VALID-MASK:CAPS"></a>GST_RTCP_VALID_MASK</h3>
<a class="indexterm" name="id2669956"></a><pre class="programlisting">#define GST_RTCP_VALID_MASK (0xc000 | 0x2000 | 0xfe)
</pre>
<p>
Mask for version, padding bit and packet type pair</p>
<p>

</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2669976"></a><h3>
<a name="GST-RTCP-VALID-VALUE:CAPS"></a>GST_RTCP_VALID_VALUE</h3>
<a class="indexterm" name="id2669989"></a><pre class="programlisting">#define GST_RTCP_VALID_VALUE ((GST_RTCP_VERSION &lt;&lt; 14) | GST_RTCP_TYPE_SR)
</pre>
<p>
Valid value for the first two bytes of an RTCP packet after applying
<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VALID-MASK:CAPS"><span class="type">GST_RTCP_VALID_MASK</span></a> to them.</p>
<p>

</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2670019"></a><h3>
<a name="GstRTCPType"></a>enum GstRTCPType</h3>
<a class="indexterm" name="id2670031"></a><pre class="programlisting">typedef enum
{
  GST_RTCP_TYPE_INVALID = 0,
  GST_RTCP_TYPE_SR      = 200,
  GST_RTCP_TYPE_RR      = 201,
  GST_RTCP_TYPE_SDES    = 202,
  GST_RTCP_TYPE_BYE     = 203,
  GST_RTCP_TYPE_APP     = 204
} GstRTCPType;
</pre>
<p>
Different RTCP packet types.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><a name="GST-RTCP-TYPE-INVALID:CAPS"></a><code class="literal">GST_RTCP_TYPE_INVALID</code></span></td>
<td> Invalid type
</td>
</tr>
<tr>
<td><span class="term"><a name="GST-RTCP-TYPE-SR:CAPS"></a><code class="literal">GST_RTCP_TYPE_SR</code></span></td>
<td> Sender report
</td>
</tr>
<tr>
<td><span class="term"><a name="GST-RTCP-TYPE-RR:CAPS"></a><code class="literal">GST_RTCP_TYPE_RR</code></span></td>
<td> Receiver report
</td>
</tr>
<tr>
<td><span class="term"><a name="GST-RTCP-TYPE-SDES:CAPS"></a><code class="literal">GST_RTCP_TYPE_SDES</code></span></td>
<td> Source description
</td>
</tr>
<tr>
<td><span class="term"><a name="GST-RTCP-TYPE-BYE:CAPS"></a><code class="literal">GST_RTCP_TYPE_BYE</code></span></td>
<td> Goodbye
</td>
</tr>
<tr>
<td><span class="term"><a name="GST-RTCP-TYPE-APP:CAPS"></a><code class="literal">GST_RTCP_TYPE_APP</code></span></td>
<td> Application defined
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2670194"></a><h3>
<a name="GstRTCPPacket"></a>GstRTCPPacket</h3>
<a class="indexterm" name="id2670206"></a><pre class="programlisting">typedef struct {
  GstBuffer   *buffer;
  guint        offset;
} GstRTCPPacket;
</pre>
<p>
Data structure that points to a packet at <em class="parameter"><code>offset</code></em> in <em class="parameter"><code>buffer</code></em>. 
The size of the structure is made public to allow stack allocations.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term">GstBuffer&#160;*<em class="structfield"><code>buffer</code></em>;</span></td>
<td> pointer to RTCP buffer
</td>
</tr>
<tr>
<td><span class="term">guint&#160;<em class="structfield"><code>offset</code></em>;</span></td>
<td> offset of packet in buffer data
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2670285"></a><h3>
<a name="GstRTCPSDESType"></a>enum GstRTCPSDESType</h3>
<a class="indexterm" name="id2670299"></a><pre class="programlisting">typedef enum 
{
  GST_RTCP_SDES_INVALID  = -1,
  GST_RTCP_SDES_END      = 0,
  GST_RTCP_SDES_CNAME    = 1,
  GST_RTCP_SDES_NAME     = 2,
  GST_RTCP_SDES_EMAIL    = 3,
  GST_RTCP_SDES_PHONE    = 4,
  GST_RTCP_SDES_LOC      = 5,
  GST_RTCP_SDES_TOOL     = 6,
  GST_RTCP_SDES_NOTE     = 7,
  GST_RTCP_SDES_PRIV     = 8
} GstRTCPSDESType;
</pre>
<p>
Different types of SDES content.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><a name="GST-RTCP-SDES-INVALID:CAPS"></a><code class="literal">GST_RTCP_SDES_INVALID</code></span></td>
<td> Invalid SDES entry
</td>
</tr>
<tr>
<td><span class="term"><a name="GST-RTCP-SDES-END:CAPS"></a><code class="literal">GST_RTCP_SDES_END</code></span></td>
<td> End of SDES list
</td>
</tr>
<tr>
<td><span class="term"><a name="GST-RTCP-SDES-CNAME:CAPS"></a><code class="literal">GST_RTCP_SDES_CNAME</code></span></td>
<td> Canonical name
</td>
</tr>
<tr>
<td><span class="term"><a name="GST-RTCP-SDES-NAME:CAPS"></a><code class="literal">GST_RTCP_SDES_NAME</code></span></td>
<td> User name
</td>
</tr>
<tr>
<td><span class="term"><a name="GST-RTCP-SDES-EMAIL:CAPS"></a><code class="literal">GST_RTCP_SDES_EMAIL</code></span></td>
<td> User's electronic mail address
</td>
</tr>
<tr>
<td><span class="term"><a name="GST-RTCP-SDES-PHONE:CAPS"></a><code class="literal">GST_RTCP_SDES_PHONE</code></span></td>
<td> User's phone number
</td>
</tr>
<tr>
<td><span class="term"><a name="GST-RTCP-SDES-LOC:CAPS"></a><code class="literal">GST_RTCP_SDES_LOC</code></span></td>
<td> Geographic user location
</td>
</tr>
<tr>
<td><span class="term"><a name="GST-RTCP-SDES-TOOL:CAPS"></a><code class="literal">GST_RTCP_SDES_TOOL</code></span></td>
<td> Name of application or tool
</td>
</tr>
<tr>
<td><span class="term"><a name="GST-RTCP-SDES-NOTE:CAPS"></a><code class="literal">GST_RTCP_SDES_NOTE</code></span></td>
<td> Notice about the source
</td>
</tr>
<tr>
<td><span class="term"><a name="GST-RTCP-SDES-PRIV:CAPS"></a><code class="literal">GST_RTCP_SDES_PRIV</code></span></td>
<td> Private extensions
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2670554"></a><h3>
<a name="gst-rtcp-buffer-new-take-data"></a>gst_rtcp_buffer_new_take_data ()</h3>
<a class="indexterm" name="id2670568"></a><pre class="programlisting">GstBuffer*          gst_rtcp_buffer_new_take_data       (gpointer data,
                                                         guint len);</pre>
<p>
Create a new buffer and set the data and size of the buffer to <em class="parameter"><code>data</code></em> and <em class="parameter"><code>len</code></em>
respectively. <em class="parameter"><code>data</code></em> will be freed when the buffer is unreffed, so this
function transfers ownership of <em class="parameter"><code>data</code></em> to the new buffer.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>data</code></em>&#160;:</span></td>
<td> data for the new buffer
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>len</code></em>&#160;:</span></td>
<td> the length of data
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> A newly allocated buffer with <em class="parameter"><code>data</code></em> and of size <em class="parameter"><code>len</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2670689"></a><h3>
<a name="gst-rtcp-buffer-new-copy-data"></a>gst_rtcp_buffer_new_copy_data ()</h3>
<a class="indexterm" name="id2670702"></a><pre class="programlisting">GstBuffer*          gst_rtcp_buffer_new_copy_data       (gpointer data,
                                                         guint len);</pre>
<p>
Create a new buffer and set the data to a copy of <em class="parameter"><code>len</code></em>
bytes of <em class="parameter"><code>data</code></em> and the size to <em class="parameter"><code>len</code></em>. The data will be freed when the buffer
is freed.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>data</code></em>&#160;:</span></td>
<td> data for the new buffer
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>len</code></em>&#160;:</span></td>
<td> the length of data
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> A newly allocated buffer with a copy of <em class="parameter"><code>data</code></em> and of size <em class="parameter"><code>len</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2670816"></a><h3>
<a name="gst-rtcp-buffer-validate-data"></a>gst_rtcp_buffer_validate_data ()</h3>
<a class="indexterm" name="id2670829"></a><pre class="programlisting">gboolean            gst_rtcp_buffer_validate_data       (guint8 *data,
                                                         guint len);</pre>
<p>
Check if the <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em> point to the data of a valid RTCP (compound)
packet. 
Use this function to validate a packet before using the other functions in
this module.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>data</code></em>&#160;:</span></td>
<td> the data to validate
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>len</code></em>&#160;:</span></td>
<td> the length of <em class="parameter"><code>data</code></em> to validate
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> TRUE if the data points to a valid RTCP packet.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2670933"></a><h3>
<a name="gst-rtcp-buffer-validate"></a>gst_rtcp_buffer_validate ()</h3>
<a class="indexterm" name="id2670946"></a><pre class="programlisting">gboolean            gst_rtcp_buffer_validate            (GstBuffer *buffer);</pre>
<p>
Check if the data pointed to by <em class="parameter"><code>buffer</code></em> is a valid RTCP packet using
<a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data"><code class="function">gst_rtcp_buffer_validate_data()</code></a>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>buffer</code></em>&#160;:</span></td>
<td> the buffer to validate
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> TRUE if <em class="parameter"><code>buffer</code></em> is a valid RTCP packet.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2671031"></a><h3>
<a name="gst-rtcp-buffer-new"></a>gst_rtcp_buffer_new ()</h3>
<a class="indexterm" name="id2671044"></a><pre class="programlisting">GstBuffer*          gst_rtcp_buffer_new                 (guint mtu);</pre>
<p>
Create a new buffer for constructing RTCP packets. The packet will have a
maximum size of <em class="parameter"><code>mtu</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>mtu</code></em>&#160;:</span></td>
<td> the maximum mtu size.
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> A newly allocated buffer.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2671111"></a><h3>
<a name="gst-rtcp-buffer-end"></a>gst_rtcp_buffer_end ()</h3>
<a class="indexterm" name="id2671124"></a><pre class="programlisting">void                gst_rtcp_buffer_end                 (GstBuffer *buffer);</pre>
<p>
Finish <em class="parameter"><code>buffer</code></em> after being constructured. This function is usually called
after <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new"><code class="function">gst_rtcp_buffer_new()</code></a> and after adding the RTCP items to the new buffer. 
</p>
<p>
The function adjusts the size of <em class="parameter"><code>buffer</code></em> with the total length of all the
added packets.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><span class="term"><em class="parameter"><code>buffer</code></em>&#160;:</span></td>
<td> a buffer with an RTCP packet
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2671203"></a><h3>
<a name="gst-rtcp-buffer-get-packet-count"></a>gst_rtcp_buffer_get_packet_count ()</h3>
<a class="indexterm" name="id2671217"></a><pre class="programlisting">guint               gst_rtcp_buffer_get_packet_count    (GstBuffer *buffer);</pre>
<p>
Get the number of RTCP packets in <em class="parameter"><code>buffer</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>buffer</code></em>&#160;:</span></td>
<td> a valid RTCP buffer
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the number of RTCP packets in <em class="parameter"><code>buffer</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2671289"></a><h3>
<a name="gst-rtcp-buffer-get-first-packet"></a>gst_rtcp_buffer_get_first_packet ()</h3>
<a class="indexterm" name="id2671303"></a><pre class="programlisting">gboolean            gst_rtcp_buffer_get_first_packet    (GstBuffer *buffer,
                                                         <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Initialize a new <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> pointer that points to the first packet in
<em class="parameter"><code>buffer</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>buffer</code></em>&#160;:</span></td>
<td> a valid RTCP buffer
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> TRUE if the packet existed in <em class="parameter"><code>buffer</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2671415"></a><h3>
<a name="gst-rtcp-packet-move-to-next"></a>gst_rtcp_packet_move_to_next ()</h3>
<a class="indexterm" name="id2671428"></a><pre class="programlisting">gboolean            gst_rtcp_packet_move_to_next        (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Move the packet pointer <em class="parameter"><code>packet</code></em> to the next packet in the payload.
Use <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-get-first-packet"><code class="function">gst_rtcp_buffer_get_first_packet()</code></a> to initialize <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> TRUE if <em class="parameter"><code>packet</code></em> is pointing to a valid packet after calling this
function.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2671528"></a><h3>
<a name="gst-rtcp-buffer-add-packet"></a>gst_rtcp_buffer_add_packet ()</h3>
<a class="indexterm" name="id2671542"></a><pre class="programlisting">gboolean            gst_rtcp_buffer_add_packet          (GstBuffer *buffer,
                                                         <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPType">GstRTCPType</a> type,
                                                         <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Add a new packet of <em class="parameter"><code>type</code></em> to <em class="parameter"><code>buffer</code></em>. <em class="parameter"><code>packet</code></em> will point to the newly created 
packet.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>buffer</code></em>&#160;:</span></td>
<td> a valid RTCP buffer
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>type</code></em>&#160;:</span></td>
<td> the <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPType"><span class="type">GstRTCPType</span></a> of the new packet
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> pointer to new packet
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> <code class="literal">TRUE</code> if the packet could be created. This function returns <code class="literal">FALSE</code>
if the max mtu is exceeded for the buffer.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2671694"></a><h3>
<a name="gst-rtcp-packet-remove"></a>gst_rtcp_packet_remove ()</h3>
<a class="indexterm" name="id2671708"></a><pre class="programlisting">void                gst_rtcp_packet_remove              (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Removes the packet pointed to by <em class="parameter"><code>packet</code></em>.
</p>
<p>
Note: Not implemented.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2671776"></a><h3>
<a name="gst-rtcp-packet-get-padding"></a>gst_rtcp_packet_get_padding ()</h3>
<a class="indexterm" name="id2671790"></a><pre class="programlisting">gboolean            gst_rtcp_packet_get_padding         (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Get the packet padding of the packet pointed to by <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> If the packet has the padding bit set.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2671865"></a><h3>
<a name="gst-rtcp-packet-get-count"></a>gst_rtcp_packet_get_count ()</h3>
<a class="indexterm" name="id2671879"></a><pre class="programlisting">guint8              gst_rtcp_packet_get_count           (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Get the count field in <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> The count field in <em class="parameter"><code>packet</code></em> or -1 if <em class="parameter"><code>packet</code></em> does not point to a
valid packet.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2671966"></a><h3>
<a name="gst-rtcp-packet-get-type"></a>gst_rtcp_packet_get_type ()</h3>
<a class="indexterm" name="id2671979"></a><pre class="programlisting"><a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPType">GstRTCPType</a>         gst_rtcp_packet_get_type            (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Get the packet type of the packet pointed to by <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> The packet type.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2672055"></a><h3>
<a name="gst-rtcp-packet-get-length"></a>gst_rtcp_packet_get_length ()</h3>
<a class="indexterm" name="id2672069"></a><pre class="programlisting">guint16             gst_rtcp_packet_get_length          (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Get the length field of <em class="parameter"><code>packet</code></em>. This is the length of the packet in 
32-bit words minus one.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> The length field of <em class="parameter"><code>packet</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2672150"></a><h3>
<a name="gst-rtcp-packet-sr-get-sender-info"></a>gst_rtcp_packet_sr_get_sender_info ()</h3>
<a class="indexterm" name="id2672165"></a><pre class="programlisting">void                gst_rtcp_packet_sr_get_sender_info  (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint32 *ssrc,
                                                         guint64 *ntptime,
                                                         guint32 *rtptime,
                                                         guint32 *packet_count,
                                                         guint32 *octet_count);</pre>
<p>
Parse the SR sender info and store the values.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SR <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>ssrc</code></em>&#160;:</span></td>
<td> result SSRC
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>ntptime</code></em>&#160;:</span></td>
<td> result NTP time
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>rtptime</code></em>&#160;:</span></td>
<td> result RTP time
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>packet_count</code></em>&#160;:</span></td>
<td> result packet count
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>octet_count</code></em>&#160;:</span></td>
<td> result octect count
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2672333"></a><h3>
<a name="gst-rtcp-packet-sr-set-sender-info"></a>gst_rtcp_packet_sr_set_sender_info ()</h3>
<a class="indexterm" name="id2672348"></a><pre class="programlisting">void                gst_rtcp_packet_sr_set_sender_info  (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint32 ssrc,
                                                         guint64 ntptime,
                                                         guint32 rtptime,
                                                         guint32 packet_count,
                                                         guint32 octet_count);</pre>
<p>
Set the given values in the SR packet <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SR <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>ssrc</code></em>&#160;:</span></td>
<td> the SSRC 
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>ntptime</code></em>&#160;:</span></td>
<td> the NTP time
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>rtptime</code></em>&#160;:</span></td>
<td> the RTP time
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>packet_count</code></em>&#160;:</span></td>
<td> the packet count
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>octet_count</code></em>&#160;:</span></td>
<td> the octect count
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2672521"></a><h3>
<a name="gst-rtcp-packet-rr-get-ssrc"></a>gst_rtcp_packet_rr_get_ssrc ()</h3>
<a class="indexterm" name="id2672535"></a><pre class="programlisting">guint32             gst_rtcp_packet_rr_get_ssrc         (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Get the ssrc field of the RR <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid RR <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the ssrc.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2672610"></a><h3>
<a name="gst-rtcp-packet-rr-set-ssrc"></a>gst_rtcp_packet_rr_set_ssrc ()</h3>
<a class="indexterm" name="id2672624"></a><pre class="programlisting">void                gst_rtcp_packet_rr_set_ssrc         (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint32 ssrc);</pre>
<p>
Set the ssrc field of the RR <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid RR <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>ssrc</code></em>&#160;:</span></td>
<td> the SSRC to set
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2672710"></a><h3>
<a name="gst-rtcp-packet-get-rb-count"></a>gst_rtcp_packet_get_rb_count ()</h3>
<a class="indexterm" name="id2672723"></a><pre class="programlisting">guint               gst_rtcp_packet_get_rb_count        (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Get the number of report blocks in <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SR or RR <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> The number of report blocks in <em class="parameter"><code>packet</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2672805"></a><h3>
<a name="gst-rtcp-packet-get-rb"></a>gst_rtcp_packet_get_rb ()</h3>
<a class="indexterm" name="id2672818"></a><pre class="programlisting">void                gst_rtcp_packet_get_rb              (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint nth,
                                                         guint32 *ssrc,
                                                         guint8 *fractionlost,
                                                         gint32 *packetslost,
                                                         guint32 *exthighestseq,
                                                         guint32 *jitter,
                                                         guint32 *lsr,
                                                         guint32 *dlsr);</pre>
<p>
Parse the values of the <em class="parameter"><code>nth</code></em> report block in <em class="parameter"><code>packet</code></em> and store the result in
the values.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SR or RR <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>nth</code></em>&#160;:</span></td>
<td> the nth report block in <em class="parameter"><code>packet</code></em>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>ssrc</code></em>&#160;:</span></td>
<td> result for data source being reported
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>fractionlost</code></em>&#160;:</span></td>
<td> result for fraction lost since last SR/RR
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>packetslost</code></em>&#160;:</span></td>
<td> result for the cumululative number of packets lost
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>exthighestseq</code></em>&#160;:</span></td>
<td> result for the extended last sequence number received
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>jitter</code></em>&#160;:</span></td>
<td> result for the interarrival jitter
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>lsr</code></em>&#160;:</span></td>
<td> result for the last SR packet from this source
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>dlsr</code></em>&#160;:</span></td>
<td> result for the delay since last SR packet
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2673074"></a><h3>
<a name="gst-rtcp-packet-add-rb"></a>gst_rtcp_packet_add_rb ()</h3>
<a class="indexterm" name="id2673087"></a><pre class="programlisting">gboolean            gst_rtcp_packet_add_rb              (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint32 ssrc,
                                                         guint8 fractionlost,
                                                         gint32 packetslost,
                                                         guint32 exthighestseq,
                                                         guint32 jitter,
                                                         guint32 lsr,
                                                         guint32 dlsr);</pre>
<p>
Add a new report block to <em class="parameter"><code>packet</code></em> with the given values.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SR or RR <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>ssrc</code></em>&#160;:</span></td>
<td> data source being reported
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>fractionlost</code></em>&#160;:</span></td>
<td> fraction lost since last SR/RR
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>packetslost</code></em>&#160;:</span></td>
<td> the cumululative number of packets lost
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>exthighestseq</code></em>&#160;:</span></td>
<td> the extended last sequence number received
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>jitter</code></em>&#160;:</span></td>
<td> the interarrival jitter
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>lsr</code></em>&#160;:</span></td>
<td> the last SR packet from this source
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>dlsr</code></em>&#160;:</span></td>
<td> the delay since last SR packet
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> <code class="literal">TRUE</code> if the packet was created. This function can return <code class="literal">FALSE</code> if
the max MTU is exceeded or the number of report blocks is greater than
<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-RB-COUNT:CAPS"><span class="type">GST_RTCP_MAX_RB_COUNT</span></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2673348"></a><h3>
<a name="gst-rtcp-packet-set-rb"></a>gst_rtcp_packet_set_rb ()</h3>
<a class="indexterm" name="id2673361"></a><pre class="programlisting">void                gst_rtcp_packet_set_rb              (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint nth,
                                                         guint32 ssrc,
                                                         guint8 fractionlost,
                                                         gint32 packetslost,
                                                         guint32 exthighestseq,
                                                         guint32 jitter,
                                                         guint32 lsr,
                                                         guint32 dlsr);</pre>
<p>
Set the <em class="parameter"><code>nth</code></em> new report block in <em class="parameter"><code>packet</code></em> with the given values.
</p>
<p>
Note: Not implemented.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SR or RR <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>nth</code></em>&#160;:</span></td>
<td> the nth report block to set
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>ssrc</code></em>&#160;:</span></td>
<td> data source being reported
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>fractionlost</code></em>&#160;:</span></td>
<td> fraction lost since last SR/RR
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>packetslost</code></em>&#160;:</span></td>
<td> the cumululative number of packets lost
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>exthighestseq</code></em>&#160;:</span></td>
<td> the extended last sequence number received
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>jitter</code></em>&#160;:</span></td>
<td> the interarrival jitter
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>lsr</code></em>&#160;:</span></td>
<td> the last SR packet from this source
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>dlsr</code></em>&#160;:</span></td>
<td> the delay since last SR packet
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2673612"></a><h3>
<a name="gst-rtcp-packet-sdes-get-item-count"></a>gst_rtcp_packet_sdes_get_item_count ()</h3>
<a class="indexterm" name="id2673626"></a><pre class="programlisting">guint               gst_rtcp_packet_sdes_get_item_count (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Get the number of items in the SDES packet <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SDES <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> The number of items in <em class="parameter"><code>packet</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2673707"></a><h3>
<a name="gst-rtcp-packet-sdes-first-item"></a>gst_rtcp_packet_sdes_first_item ()</h3>
<a class="indexterm" name="id2673721"></a><pre class="programlisting">gboolean            gst_rtcp_packet_sdes_first_item     (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Move to the first SDES item in <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SDES <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> TRUE if there was a first item.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2673797"></a><h3>
<a name="gst-rtcp-packet-sdes-next-item"></a>gst_rtcp_packet_sdes_next_item ()</h3>
<a class="indexterm" name="id2673810"></a><pre class="programlisting">gboolean            gst_rtcp_packet_sdes_next_item      (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Move to the next SDES item in <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SDES <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> TRUE if there was a next item.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2673886"></a><h3>
<a name="gst-rtcp-packet-sdes-get-ssrc"></a>gst_rtcp_packet_sdes_get_ssrc ()</h3>
<a class="indexterm" name="id2673900"></a><pre class="programlisting">guint32             gst_rtcp_packet_sdes_get_ssrc       (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Get the SSRC of the current SDES item.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SDES <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the SSRC of the current item.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2673970"></a><h3>
<a name="gst-rtcp-packet-sdes-first-entry"></a>gst_rtcp_packet_sdes_first_entry ()</h3>
<a class="indexterm" name="id2673984"></a><pre class="programlisting">gboolean            gst_rtcp_packet_sdes_first_entry    (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Move to the first SDES entry in the current item.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SDES <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> <code class="literal">TRUE</code> if there was a first entry.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2674064"></a><h3>
<a name="gst-rtcp-packet-sdes-next-entry"></a>gst_rtcp_packet_sdes_next_entry ()</h3>
<a class="indexterm" name="id2674077"></a><pre class="programlisting">gboolean            gst_rtcp_packet_sdes_next_entry     (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Move to the next SDES entry in the current item.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SDES <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> <code class="literal">TRUE</code> if there was a next entry.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2674158"></a><h3>
<a name="gst-rtcp-packet-sdes-get-entry"></a>gst_rtcp_packet_sdes_get_entry ()</h3>
<a class="indexterm" name="id2674171"></a><pre class="programlisting">gboolean            gst_rtcp_packet_sdes_get_entry      (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType">GstRTCPSDESType</a> *type,
                                                         guint8 *len,
                                                         guint8 **data);</pre>
<p>
Get the data of the current SDES item entry. <em class="parameter"><code>type</code></em> (when not NULL) will
contain the type of the entry. <em class="parameter"><code>data</code></em> (when not NULL) will point to <em class="parameter"><code>len</code></em>
bytes.
</p>
<p>
When <em class="parameter"><code>type</code></em> refers to a text item, <em class="parameter"><code>data</code></em> will point to a UTF8 string. Note
that this UTF8 string is NOT null-terminated. Use
<a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-copy-entry"><code class="function">gst_rtcp_packet_sdes_copy_entry()</code></a> to get a null-termined copy of the entry.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SDES <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>type</code></em>&#160;:</span></td>
<td> result of the entry type
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>len</code></em>&#160;:</span></td>
<td> result length of the entry data
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>data</code></em>&#160;:</span></td>
<td> result entry data
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> <code class="literal">TRUE</code> if there was valid data.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2674365"></a><h3>
<a name="gst-rtcp-packet-sdes-copy-entry"></a>gst_rtcp_packet_sdes_copy_entry ()</h3>
<a class="indexterm" name="id2674379"></a><pre class="programlisting">gboolean            gst_rtcp_packet_sdes_copy_entry     (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType">GstRTCPSDESType</a> *type,
                                                         guint8 *len,
                                                         guint8 **data);</pre>
<p>
This function is like <a href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-entry"><code class="function">gst_rtcp_packet_sdes_get_entry()</code></a> but it returns a
null-terminated copy of the data instead. use <code class="function">g_free()</code> after usage.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SDES <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>type</code></em>&#160;:</span></td>
<td> result of the entry type
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>len</code></em>&#160;:</span></td>
<td> result length of the entry data
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>data</code></em>&#160;:</span></td>
<td> result entry data
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> <code class="literal">TRUE</code> if there was valid data.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2674547"></a><h3>
<a name="gst-rtcp-packet-sdes-add-item"></a>gst_rtcp_packet_sdes_add_item ()</h3>
<a class="indexterm" name="id2674561"></a><pre class="programlisting">gboolean            gst_rtcp_packet_sdes_add_item       (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint32 ssrc);</pre>
<p>
Add a new SDES item for <em class="parameter"><code>ssrc</code></em> to <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SDES <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>ssrc</code></em>&#160;:</span></td>
<td> the SSRC of the new item to add
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> <code class="literal">TRUE</code> if the item could be added, <code class="literal">FALSE</code> if the maximum amount of
items has been exceeded for the SDES packet or the MTU has been reached.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2674686"></a><h3>
<a name="gst-rtcp-packet-sdes-add-entry"></a>gst_rtcp_packet_sdes_add_entry ()</h3>
<a class="indexterm" name="id2674700"></a><pre class="programlisting">gboolean            gst_rtcp_packet_sdes_add_entry      (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType">GstRTCPSDESType</a> type,
                                                         guint8 len,
                                                         const guint8 *data);</pre>
<p>
Add a new SDES entry to the current item in <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid SDES <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>type</code></em>&#160;:</span></td>
<td> the <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> of the SDES entry
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>len</code></em>&#160;:</span></td>
<td> the data length
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>data</code></em>&#160;:</span></td>
<td> the data
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> <code class="literal">TRUE</code> if the item could be added, <code class="literal">FALSE</code> if the MTU has been
reached.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2674870"></a><h3>
<a name="gst-rtcp-packet-bye-get-ssrc-count"></a>gst_rtcp_packet_bye_get_ssrc_count ()</h3>
<a class="indexterm" name="id2674884"></a><pre class="programlisting">guint               gst_rtcp_packet_bye_get_ssrc_count  (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Get the number of SSRC fields in <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid BYE <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> The number of SSRC fields in <em class="parameter"><code>packet</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2674965"></a><h3>
<a name="gst-rtcp-packet-bye-get-nth-ssrc"></a>gst_rtcp_packet_bye_get_nth_ssrc ()</h3>
<a class="indexterm" name="id2674979"></a><pre class="programlisting">guint32             gst_rtcp_packet_bye_get_nth_ssrc    (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint nth);</pre>
<p>
Get the <em class="parameter"><code>nth</code></em> SSRC of the BYE <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid BYE <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>nth</code></em>&#160;:</span></td>
<td> the nth SSRC to get
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> The <em class="parameter"><code>nth</code></em> SSRC of <em class="parameter"><code>packet</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2675093"></a><h3>
<a name="gst-rtcp-packet-bye-add-ssrc"></a>gst_rtcp_packet_bye_add_ssrc ()</h3>
<a class="indexterm" name="id2675106"></a><pre class="programlisting">gboolean            gst_rtcp_packet_bye_add_ssrc        (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint32 ssrc);</pre>
<p>
Add <em class="parameter"><code>ssrc</code></em> to the BYE <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid BYE <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>ssrc</code></em>&#160;:</span></td>
<td> an SSRC to add
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> <code class="literal">TRUE</code> if the ssrc was added. This function can return <code class="literal">FALSE</code> if
the max MTU is exceeded or the number of sources blocks is greater than
<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS"><span class="type">GST_RTCP_MAX_BYE_SSRC_COUNT</span></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2675241"></a><h3>
<a name="gst-rtcp-packet-bye-add-ssrcs"></a>gst_rtcp_packet_bye_add_ssrcs ()</h3>
<a class="indexterm" name="id2675253"></a><pre class="programlisting">gboolean            gst_rtcp_packet_bye_add_ssrcs       (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         guint32 *ssrc,
                                                         guint len);</pre>
<p>
Adds <em class="parameter"><code>len</code></em> SSRCs in <em class="parameter"><code>ssrc</code></em> to BYE <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid BYE <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>ssrc</code></em>&#160;:</span></td>
<td> an array of SSRCs to add
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>len</code></em>&#160;:</span></td>
<td> number of elements in <em class="parameter"><code>ssrc</code></em>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> <code class="literal">TRUE</code> if the all the SSRCs were added. This function can return <code class="literal">FALSE</code> if
the max MTU is exceeded or the number of sources blocks is greater than
<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS"><span class="type">GST_RTCP_MAX_BYE_SSRC_COUNT</span></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2675421"></a><h3>
<a name="gst-rtcp-packet-bye-get-reason-len"></a>gst_rtcp_packet_bye_get_reason_len ()</h3>
<a class="indexterm" name="id2675434"></a><pre class="programlisting">guint8              gst_rtcp_packet_bye_get_reason_len  (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Get the length of the reason string.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid BYE <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> The length of the reason string or 0 when there is no reason string
present.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2675505"></a><h3>
<a name="gst-rtcp-packet-bye-get-reason"></a>gst_rtcp_packet_bye_get_reason ()</h3>
<a class="indexterm" name="id2675518"></a><pre class="programlisting">gchar*              gst_rtcp_packet_bye_get_reason      (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet);</pre>
<p>
Get the reason in <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid BYE <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> The reason for the BYE <em class="parameter"><code>packet</code></em> or NULL if the packet did not contain
a reason string. The string must be freed with <code class="function">g_free()</code> after usage.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2675611"></a><h3>
<a name="gst-rtcp-packet-bye-set-reason"></a>gst_rtcp_packet_bye_set_reason ()</h3>
<a class="indexterm" name="id2675625"></a><pre class="programlisting">gboolean            gst_rtcp_packet_bye_set_reason      (<a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket">GstRTCPPacket</a> *packet,
                                                         const gchar *reason);</pre>
<p>
Set the reason string to <em class="parameter"><code>reason</code></em> in <em class="parameter"><code>packet</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>packet</code></em>&#160;:</span></td>
<td> a valid BYE <a href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"><span class="type">GstRTCPPacket</span></a>
</td>
</tr>
<tr>
<td><span class="term"><em class="parameter"><code>reason</code></em>&#160;:</span></td>
<td> a reason string
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> TRUE if the string could be set.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2675728"></a><h3>
<a name="gst-rtcp-ntp-to-unix"></a>gst_rtcp_ntp_to_unix ()</h3>
<a class="indexterm" name="id2675742"></a><pre class="programlisting">guint64             gst_rtcp_ntp_to_unix                (guint64 ntptime);</pre>
<p>
Converts an NTP time to UNIX nanoseconds. <em class="parameter"><code>ntptime</code></em> can typically be
the NTP time of an SR RTCP message and contains, in the upper 32 bits, the
number of seconds since 1900 and, in the lower 32 bits, the fractional
seconds. The resulting value will be the number of nanoseconds since 1970.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>ntptime</code></em>&#160;:</span></td>
<td> an NTP timestamp
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the UNIX time for <em class="parameter"><code>ntptime</code></em> in nanoseconds.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2675819"></a><h3>
<a name="gst-rtcp-unix-to-ntp"></a>gst_rtcp_unix_to_ntp ()</h3>
<a class="indexterm" name="id2675832"></a><pre class="programlisting">guint64             gst_rtcp_unix_to_ntp                (guint64 unixtime);</pre>
<p>
Converts a UNIX timestamp in nanoseconds to an NTP time. The caller should
pass a value with nanoseconds since 1970. The NTP time will, in the upper
32 bits, contain the number of seconds since 1900 and, in the lower 32
bits, the fractional seconds. The resulting value can be used as an ntptime
for constructing SR RTCP packets.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><span class="term"><em class="parameter"><code>unixtime</code></em>&#160;:</span></td>
<td> an UNIX timestamp in nanoseconds
</td>
</tr>
<tr>
<td><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the NTP time for <em class="parameter"><code>gsttime</code></em>.
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1" lang="en">
<a name="id2675905"></a><h2>See Also</h2>
<a href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload"><span class="type">GstBaseRTPPayload</span></a>, <a href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload"><span class="type">GstBaseRTPDepayload</span></a>, <span class="type">gstrtpbuffer</span>
</div>
</div>
</body>
</html>