summaryrefslogtreecommitdiff
path: root/gst-libs/gst/rtp/gstrtcpbuffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'gst-libs/gst/rtp/gstrtcpbuffer.h')
-rw-r--r--gst-libs/gst/rtp/gstrtcpbuffer.h283
1 files changed, 0 insertions, 283 deletions
diff --git a/gst-libs/gst/rtp/gstrtcpbuffer.h b/gst-libs/gst/rtp/gstrtcpbuffer.h
deleted file mode 100644
index b051571f..00000000
--- a/gst-libs/gst/rtp/gstrtcpbuffer.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/* GStreamer
- * Copyright (C) <2007> Wim Taymans <wim@fluendo.com>
- *
- * gstrtcpbuffer.h: various helper functions to manipulate buffers
- * with RTCP payload.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GST_RTCPBUFFER_H__
-#define __GST_RTCPBUFFER_H__
-
-#include <gst/gst.h>
-
-G_BEGIN_DECLS
-
-/**
- * GST_RTCP_VERSION:
- *
- * The supported RTCP version 2.
- */
-#define GST_RTCP_VERSION 2
-
-/**
- * GstRTCPType:
- * @GST_RTCP_TYPE_INVALID: Invalid type
- * @GST_RTCP_TYPE_SR: Sender report
- * @GST_RTCP_TYPE_RR: Receiver report
- * @GST_RTCP_TYPE_SDES: Source description
- * @GST_RTCP_TYPE_BYE: Goodbye
- * @GST_RTCP_TYPE_APP: Application defined
- * @GST_RTCP_TYPE_RTPFB: Transport layer feedback. Since: 0.10.23
- * @GST_RTCP_TYPE_PSFB: Payload-specific feedback. Since: 0.10.23
- *
- * Different RTCP packet types.
- */
-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,
- GST_RTCP_TYPE_RTPFB = 205,
- GST_RTCP_TYPE_PSFB = 206
-} GstRTCPType;
-
-/**
- * GstRTCPFBType:
- * @GST_RTCP_FB_TYPE_INVALID: Invalid type
- * @GST_RTCP_RTPFB_TYPE_NACK: Generic NACK
- * @GST_RTCP_PSFB_TYPE_PLI: Picture Loss Indication
- * @GST_RTCP_PSFB_TYPE_SLI: Slice Loss Indication
- * @GST_RTCP_PSFB_TYPE_RPSI: Reference Picture Selection Indication
- * @GST_RTCP_PSFB_TYPE_AFB: Application layer Feedback
- *
- * Different types of feedback messages.
- *
- * Since: 0.10.23
- */
-typedef enum
-{
- /* generic */
- GST_RTCP_FB_TYPE_INVALID = 0,
- /* RTPFB types */
- GST_RTCP_RTPFB_TYPE_NACK = 1,
- /* PSFB types */
- GST_RTCP_PSFB_TYPE_PLI = 1,
- GST_RTCP_PSFB_TYPE_SLI = 2,
- GST_RTCP_PSFB_TYPE_RPSI = 3,
- GST_RTCP_PSFB_TYPE_AFB = 15
-} GstRTCPFBType;
-
-/**
- * GstRTCPSDESType:
- * @GST_RTCP_SDES_INVALID: Invalid SDES entry
- * @GST_RTCP_SDES_END: End of SDES list
- * @GST_RTCP_SDES_CNAME: Canonical name
- * @GST_RTCP_SDES_NAME: User name
- * @GST_RTCP_SDES_EMAIL: User's electronic mail address
- * @GST_RTCP_SDES_PHONE: User's phone number
- * @GST_RTCP_SDES_LOC: Geographic user location
- * @GST_RTCP_SDES_TOOL: Name of application or tool
- * @GST_RTCP_SDES_NOTE: Notice about the source
- * @GST_RTCP_SDES_PRIV: Private extensions
- *
- * Different types of SDES content.
- */
-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;
-
-/**
- * GST_RTCP_MAX_SDES:
- *
- * The maximum text length for an SDES item.
- */
-#define GST_RTCP_MAX_SDES 255
-
-/**
- * GST_RTCP_MAX_RB_COUNT:
- *
- * The maximum amount of Receiver report blocks in RR and SR messages.
- */
-#define GST_RTCP_MAX_RB_COUNT 31
-
-/**
- * GST_RTCP_MAX_SDES_ITEM_COUNT:
- *
- * The maximum amount of SDES items.
- */
-#define GST_RTCP_MAX_SDES_ITEM_COUNT 31
-
-/**
- * GST_RTCP_MAX_BYE_SSRC_COUNT:
- *
- * The maximum amount of SSRCs in a BYE packet.
- */
-#define GST_RTCP_MAX_BYE_SSRC_COUNT 31
-
-/**
- * GST_RTCP_VALID_MASK:
- *
- * Mask for version, padding bit and packet type pair
- */
-#define GST_RTCP_VALID_MASK (0xc000 | 0x2000 | 0xfe)
-/**
- * GST_RTCP_VALID_VALUE:
- *
- * Valid value for the first two bytes of an RTCP packet after applying
- * #GST_RTCP_VALID_MASK to them.
- */
-#define GST_RTCP_VALID_VALUE ((GST_RTCP_VERSION << 14) | GST_RTCP_TYPE_SR)
-
-typedef struct _GstRTCPPacket GstRTCPPacket;
-
-/**
- * GstRTCPPacket:
- * @buffer: pointer to RTCP buffer
- * @offset: offset of packet in buffer data
- *
- * Data structure that points to a packet at @offset in @buffer.
- * The size of the structure is made public to allow stack allocations.
- */
-struct _GstRTCPPacket
-{
- GstBuffer *buffer;
- guint offset;
-
- /*< private >*/
- gboolean padding; /* padding field of current packet */
- guint8 count; /* count field of current packet */
- GstRTCPType type; /* type of current packet */
- guint16 length; /* length of current packet in 32-bits words */
-
- guint item_offset; /* current item offset for navigating SDES */
- guint item_count; /* current item count */
- guint entry_offset; /* current entry offset for navigating SDES items */
-};
-
-/* creating buffers */
-GstBuffer* gst_rtcp_buffer_new_take_data (gpointer data, guint len);
-GstBuffer* gst_rtcp_buffer_new_copy_data (gpointer data, guint len);
-
-gboolean gst_rtcp_buffer_validate_data (guint8 *data, guint len);
-gboolean gst_rtcp_buffer_validate (GstBuffer *buffer);
-
-GstBuffer* gst_rtcp_buffer_new (guint mtu);
-void gst_rtcp_buffer_end (GstBuffer *buffer);
-
-/* adding/retrieving packets */
-guint gst_rtcp_buffer_get_packet_count (GstBuffer *buffer);
-gboolean gst_rtcp_buffer_get_first_packet (GstBuffer *buffer, GstRTCPPacket *packet);
-gboolean gst_rtcp_packet_move_to_next (GstRTCPPacket *packet);
-
-gboolean gst_rtcp_buffer_add_packet (GstBuffer *buffer, GstRTCPType type,
- GstRTCPPacket *packet);
-gboolean gst_rtcp_packet_remove (GstRTCPPacket *packet);
-
-/* working with packets */
-gboolean gst_rtcp_packet_get_padding (GstRTCPPacket *packet);
-guint8 gst_rtcp_packet_get_count (GstRTCPPacket *packet);
-GstRTCPType gst_rtcp_packet_get_type (GstRTCPPacket *packet);
-guint16 gst_rtcp_packet_get_length (GstRTCPPacket *packet);
-
-
-/* sender reports */
-void gst_rtcp_packet_sr_get_sender_info (GstRTCPPacket *packet, guint32 *ssrc,
- guint64 *ntptime, guint32 *rtptime,
- guint32 *packet_count, guint32 *octet_count);
-void gst_rtcp_packet_sr_set_sender_info (GstRTCPPacket *packet, guint32 ssrc,
- guint64 ntptime, guint32 rtptime,
- guint32 packet_count, guint32 octet_count);
-/* receiver reports */
-guint32 gst_rtcp_packet_rr_get_ssrc (GstRTCPPacket *packet);
-void gst_rtcp_packet_rr_set_ssrc (GstRTCPPacket *packet, guint32 ssrc);
-
-
-/* report blocks for SR and RR */
-guint gst_rtcp_packet_get_rb_count (GstRTCPPacket *packet);
-void gst_rtcp_packet_get_rb (GstRTCPPacket *packet, guint nth, guint32 *ssrc,
- guint8 *fractionlost, gint32 *packetslost,
- guint32 *exthighestseq, guint32 *jitter,
- guint32 *lsr, guint32 *dlsr);
-gboolean gst_rtcp_packet_add_rb (GstRTCPPacket *packet, guint32 ssrc,
- guint8 fractionlost, gint32 packetslost,
- guint32 exthighestseq, guint32 jitter,
- guint32 lsr, guint32 dlsr);
-void gst_rtcp_packet_set_rb (GstRTCPPacket *packet, guint nth, guint32 ssrc,
- guint8 fractionlost, gint32 packetslost,
- guint32 exthighestseq, guint32 jitter,
- guint32 lsr, guint32 dlsr);
-
-/* source description packet */
-guint gst_rtcp_packet_sdes_get_item_count (GstRTCPPacket *packet);
-gboolean gst_rtcp_packet_sdes_first_item (GstRTCPPacket *packet);
-gboolean gst_rtcp_packet_sdes_next_item (GstRTCPPacket *packet);
-guint32 gst_rtcp_packet_sdes_get_ssrc (GstRTCPPacket *packet);
-gboolean gst_rtcp_packet_sdes_first_entry (GstRTCPPacket *packet);
-gboolean gst_rtcp_packet_sdes_next_entry (GstRTCPPacket *packet);
-gboolean gst_rtcp_packet_sdes_get_entry (GstRTCPPacket *packet,
- GstRTCPSDESType *type, guint8 *len,
- guint8 **data);
-gboolean gst_rtcp_packet_sdes_copy_entry (GstRTCPPacket *packet,
- GstRTCPSDESType *type, guint8 *len,
- guint8 **data);
-
-gboolean gst_rtcp_packet_sdes_add_item (GstRTCPPacket *packet, guint32 ssrc);
-gboolean gst_rtcp_packet_sdes_add_entry (GstRTCPPacket *packet, GstRTCPSDESType type,
- guint8 len, const guint8 *data);
-
-/* bye packet */
-guint gst_rtcp_packet_bye_get_ssrc_count (GstRTCPPacket *packet);
-guint32 gst_rtcp_packet_bye_get_nth_ssrc (GstRTCPPacket *packet, guint nth);
-gboolean gst_rtcp_packet_bye_add_ssrc (GstRTCPPacket *packet, guint32 ssrc);
-gboolean gst_rtcp_packet_bye_add_ssrcs (GstRTCPPacket *packet, guint32 *ssrc, guint len);
-guint8 gst_rtcp_packet_bye_get_reason_len (GstRTCPPacket *packet);
-gchar* gst_rtcp_packet_bye_get_reason (GstRTCPPacket *packet);
-gboolean gst_rtcp_packet_bye_set_reason (GstRTCPPacket *packet, const gchar *reason);
-
-/* feedback packets */
-guint32 gst_rtcp_packet_fb_get_sender_ssrc (GstRTCPPacket *packet);
-void gst_rtcp_packet_fb_set_sender_ssrc (GstRTCPPacket *packet, guint32 ssrc);
-guint32 gst_rtcp_packet_fb_get_media_ssrc (GstRTCPPacket *packet);
-void gst_rtcp_packet_fb_set_media_ssrc (GstRTCPPacket *packet, guint32 ssrc);
-GstRTCPFBType gst_rtcp_packet_fb_get_type (GstRTCPPacket *packet);
-void gst_rtcp_packet_fb_set_type (GstRTCPPacket *packet, GstRTCPFBType type);
-
-/* helper functions */
-guint64 gst_rtcp_ntp_to_unix (guint64 ntptime);
-guint64 gst_rtcp_unix_to_ntp (guint64 unixtime);
-
-const gchar * gst_rtcp_sdes_type_to_name (GstRTCPSDESType type);
-GstRTCPSDESType gst_rtcp_sdes_name_to_type (const gchar *name);
-
-G_END_DECLS
-
-#endif /* __GST_RTCPBUFFER_H__ */
-