gstrtsptransport

gstrtsptransport — dealing with RTSP transports

Synopsis

#include <gst/rtsp/gstrtsptransport.h>

enum                GstRTSPTransMode;
enum                GstRTSPProfile;
struct              GstRTSPRange;
enum                GstRTSPLowerTrans;
struct              GstRTSPTransport;
GstRTSPResult       gst_rtsp_transport_new              (GstRTSPTransport **transport);
GstRTSPResult       gst_rtsp_transport_init             (GstRTSPTransport *transport);
GstRTSPResult       gst_rtsp_transport_parse            (const gchar *str,
                                                         GstRTSPTransport *transport);
gchar *             gst_rtsp_transport_as_text          (GstRTSPTransport *transport);
GstRTSPResult       gst_rtsp_transport_get_mime         (GstRTSPTransMode trans,
                                                         const gchar **mime);
GstRTSPResult       gst_rtsp_transport_get_manager      (GstRTSPTransMode trans,
                                                         const gchar **manager,
                                                         guint option);
GstRTSPResult       gst_rtsp_transport_free             (GstRTSPTransport *transport);

Description

Provides helper functions to deal with RTSP transport strings. Last reviewed on 2007-07-25 (0.10.14)

Details

enum GstRTSPTransMode

typedef enum {
  GST_RTSP_TRANS_UNKNOWN =  0,
  GST_RTSP_TRANS_RTP     = (1 << 0),
  GST_RTSP_TRANS_RDT     = (1 << 1)
} GstRTSPTransMode;

The transfer mode to use.

GST_RTSP_TRANS_UNKNOWN

invalid tansport mode

GST_RTSP_TRANS_RTP

transfer RTP data

GST_RTSP_TRANS_RDT

transfer RDT (RealMedia) data

enum GstRTSPProfile

typedef enum {
  GST_RTSP_PROFILE_UNKNOWN =  0,
  GST_RTSP_PROFILE_AVP     = (1 << 0),
  GST_RTSP_PROFILE_SAVP    = (1 << 1)
} GstRTSPProfile;

The transfer profile to use.

GST_RTSP_PROFILE_UNKNOWN

invalid profile

GST_RTSP_PROFILE_AVP

the Audio/Visual profile

GST_RTSP_PROFILE_SAVP

the secure Audio/Visual profile

struct GstRTSPRange

struct GstRTSPRange {
  gint min;
  gint max;
};

A type to specify a range.

gint min;

minimum value of the range

gint max;

maximum value of the range

enum GstRTSPLowerTrans

typedef enum {
  GST_RTSP_LOWER_TRANS_UNKNOWN   = 0,
  GST_RTSP_LOWER_TRANS_UDP       = (1 << 0),
  GST_RTSP_LOWER_TRANS_UDP_MCAST = (1 << 1),
  GST_RTSP_LOWER_TRANS_TCP       = (1 << 2),
  GST_RTSP_LOWER_TRANS_HTTP      = (1 << 4)
} GstRTSPLowerTrans;

The different transport methods.

GST_RTSP_LOWER_TRANS_UNKNOWN

invalid transport flag

GST_RTSP_LOWER_TRANS_UDP

stream data over UDP

GST_RTSP_LOWER_TRANS_UDP_MCAST

stream data over UDP multicast

GST_RTSP_LOWER_TRANS_TCP

stream data over TCP

GST_RTSP_LOWER_TRANS_HTTP

stream data tunneled over HTTP.

struct GstRTSPTransport

struct GstRTSPTransport {
  GstRTSPTransMode  trans;
  GstRTSPProfile    profile;
  GstRTSPLowerTrans lower_transport;

  gchar         *destination;
  gchar         *source;
  guint          layers;
  gboolean       mode_play;
  gboolean       mode_record;
  gboolean       append;
  GstRTSPRange   interleaved;

  /* multicast specific */
  guint  ttl;

  /* UDP specific */
  GstRTSPRange   port;
  GstRTSPRange   client_port;
  GstRTSPRange   server_port;
  /* RTP specific */
  guint          ssrc;
};

A structure holding the RTSP transport values.

GstRTSPTransMode trans;

the transport mode

GstRTSPProfile profile;

the tansport profile

GstRTSPLowerTrans lower_transport;

the lower transport

gchar *destination;

the destination ip/hostname

gchar *source;

the source ip/hostname

guint layers;

the number of layers

gboolean mode_play;

if play mode was selected

gboolean mode_record;

if record mode was selected

gboolean append;

is append mode was selected

GstRTSPRange interleaved;

the interleave range

guint ttl;

the time to live for multicast UDP

GstRTSPRange port;

the port pair for multicast sessions

GstRTSPRange client_port;

the client port pair for receiving data

GstRTSPRange server_port;

the server port pair for receiving data

guint ssrc;

the ssrc that the sender/receiver will use

gst_rtsp_transport_new ()

GstRTSPResult       gst_rtsp_transport_new              (GstRTSPTransport **transport);

Allocate a new initialized GstRTSPTransport. Use gst_rtsp_transport_free() after usage.

transport :

location to hold the new GstRTSPTransport

Returns :

a GstRTSPResult.

gst_rtsp_transport_init ()

GstRTSPResult       gst_rtsp_transport_init             (GstRTSPTransport *transport);

Initialize transport so that it can be used.

transport :

a GstRTSPTransport

Returns :

GST_RTSP_OK.

gst_rtsp_transport_parse ()

GstRTSPResult       gst_rtsp_transport_parse            (const gchar *str,
                                                         GstRTSPTransport *transport);

Parse the RTSP transport string str into transport.

str :

a transport string

transport :

a GstRTSPTransport

Returns :

a GstRTSPResult.

gst_rtsp_transport_as_text ()

gchar *             gst_rtsp_transport_as_text          (GstRTSPTransport *transport);

Convert transport into a string that can be used to signal the transport in an RTSP SETUP response.

transport :

a GstRTSPTransport

Returns :

a string describing the RTSP transport or NULL when the transport is invalid.

gst_rtsp_transport_get_mime ()

GstRTSPResult       gst_rtsp_transport_get_mime         (GstRTSPTransMode trans,
                                                         const gchar **mime);

Get the mime type of the transport mode trans. This mime type is typically used to generate GstCaps on buffers.

trans :

a GstRTSPTransMode

mime :

location to hold the result

Returns :

GST_RTSP_OK.

gst_rtsp_transport_get_manager ()

GstRTSPResult       gst_rtsp_transport_get_manager      (GstRTSPTransMode trans,
                                                         const gchar **manager,
                                                         guint option);

Get the GstElement that can handle the buffers transported over trans.

It is possible that there are several managers available, use option to selected one.

manager will contain an element name or NULL when no manager is needed/available for trans.

trans :

a GstRTSPTransMode

manager :

location to hold the result

option :

option index.

Returns :

GST_RTSP_OK.

gst_rtsp_transport_free ()

GstRTSPResult       gst_rtsp_transport_free             (GstRTSPTransport *transport);

Free the memory used by transport.

transport :

a GstRTSPTransport

Returns :

GST_RTSP_OK.