GstRTSPStreamTransport

GstRTSPStreamTransport — A media stream transport configuration

Synopsis

struct              GstRTSPStreamTransport;
struct              GstRTSPStreamTransportClass;
GstRTSPStreamTransport * gst_rtsp_stream_transport_new  (GstRTSPStream *stream,
                                                         GstRTSPTransport *tr);
GstRTSPStream *     gst_rtsp_stream_transport_get_stream
                                                        (GstRTSPStreamTransport *trans);
const GstRTSPTransport * gst_rtsp_stream_transport_get_transport
                                                        (GstRTSPStreamTransport *trans);
void                gst_rtsp_stream_transport_set_transport
                                                        (GstRTSPStreamTransport *trans,
                                                         GstRTSPTransport *tr);
const GstRTSPUrl *  gst_rtsp_stream_transport_get_url   (GstRTSPStreamTransport *trans);
void                gst_rtsp_stream_transport_set_url   (GstRTSPStreamTransport *trans,
                                                         const GstRTSPUrl *url);
gchar *             gst_rtsp_stream_transport_get_rtpinfo
                                                        (GstRTSPStreamTransport *trans,
                                                         GstClockTime start_time);
gboolean            (*GstRTSPSendFunc)                  (GstBuffer *buffer,
                                                         guint8 channel,
                                                         gpointer user_data);
void                gst_rtsp_stream_transport_set_callbacks
                                                        (GstRTSPStreamTransport *trans,
                                                         GstRTSPSendFunc send_rtp,
                                                         GstRTSPSendFunc send_rtcp,
                                                         gpointer user_data,
                                                         GDestroyNotify notify);
void                (*GstRTSPKeepAliveFunc)             (gpointer user_data);
void                gst_rtsp_stream_transport_set_keepalive
                                                        (GstRTSPStreamTransport *trans,
                                                         GstRTSPKeepAliveFunc keep_alive,
                                                         gpointer user_data,
                                                         GDestroyNotify notify);
void                gst_rtsp_stream_transport_keep_alive
                                                        (GstRTSPStreamTransport *trans);
gboolean            gst_rtsp_stream_transport_set_active
                                                        (GstRTSPStreamTransport *trans,
                                                         gboolean active);
void                gst_rtsp_stream_transport_set_timed_out
                                                        (GstRTSPStreamTransport *trans,
                                                         gboolean timedout);
gboolean            gst_rtsp_stream_transport_is_timed_out
                                                        (GstRTSPStreamTransport *trans);
gboolean            gst_rtsp_stream_transport_send_rtcp (GstRTSPStreamTransport *trans,
                                                         GstBuffer *buffer);
gboolean            gst_rtsp_stream_transport_send_rtp  (GstRTSPStreamTransport *trans,
                                                         GstBuffer *buffer);

Description

The GstRTSPStreamTransport configures the transport used by a GstRTSPStream. It is usually manages by a GstRTSPSessionMedia object.

With gst_rtsp_stream_transport_set_callbacks(), callbacks can be configured to handle the RTP and RTCP packets from the stream, for example when they need to be sent over TCP.

With gst_rtsp_stream_transport_set_active() the transports are added and removed from the stream.

A GstRTSPStream will call gst_rtsp_stream_transport_keep_alive() when RTCP is received from the client. It will also call gst_rtsp_stream_transport_set_timed_out() when a receiver has timed out.

Last reviewed on 2013-07-16 (1.0.0)

Details

struct GstRTSPStreamTransport

struct GstRTSPStreamTransport {
  GObject              parent;
};

A Transport description for a stream

GObject parent;

parent instance

struct GstRTSPStreamTransportClass

struct GstRTSPStreamTransportClass {
  GObjectClass parent_class;
};

gst_rtsp_stream_transport_new ()

GstRTSPStreamTransport * gst_rtsp_stream_transport_new  (GstRTSPStream *stream,
                                                         GstRTSPTransport *tr);

Create a new GstRTSPStreamTransport that can be used to manage stream with transport tr.

stream :

a GstRTSPStream

tr :

a GstRTSPTransport. [transfer full]

Returns :

a new GstRTSPStreamTransport. [transfer full]

gst_rtsp_stream_transport_get_stream ()

GstRTSPStream *     gst_rtsp_stream_transport_get_stream
                                                        (GstRTSPStreamTransport *trans);

Get the GstRTSPStream used when constructing trans.

trans :

a GstRTSPStreamTransport

Returns :

the stream used when constructing trans. [transfer none]

gst_rtsp_stream_transport_get_transport ()

const GstRTSPTransport * gst_rtsp_stream_transport_get_transport
                                                        (GstRTSPStreamTransport *trans);

Get the transport configured in trans.

trans :

a GstRTSPStreamTransport

Returns :

the transport configured in trans. It remains valid for as long as trans is valid. [transfer none]

gst_rtsp_stream_transport_set_transport ()

void                gst_rtsp_stream_transport_set_transport
                                                        (GstRTSPStreamTransport *trans,
                                                         GstRTSPTransport *tr);

Set tr as the client transport. This function takes ownership of the passed tr.

trans :

a GstRTSPStreamTransport

tr :

a client GstRTSPTransport. [transfer full]

gst_rtsp_stream_transport_get_url ()

const GstRTSPUrl *  gst_rtsp_stream_transport_get_url   (GstRTSPStreamTransport *trans);

Get the url configured in trans.

trans :

a GstRTSPStreamTransport

Returns :

the url configured in trans. It remains valid for as long as trans is valid. [transfer none]

gst_rtsp_stream_transport_set_url ()

void                gst_rtsp_stream_transport_set_url   (GstRTSPStreamTransport *trans,
                                                         const GstRTSPUrl *url);

Set url as the client url.

trans :

a GstRTSPStreamTransport

url :

a client GstRTSPUrl. [transfer none]

gst_rtsp_stream_transport_get_rtpinfo ()

gchar *             gst_rtsp_stream_transport_get_rtpinfo
                                                        (GstRTSPStreamTransport *trans,
                                                         GstClockTime start_time);

Get the RTP-Info string for trans and start_time.

trans :

a GstRTSPStreamTransport

start_time :

a star time

Returns :

the RTPInfo string for trans and start_time or NULL when the RTP-Info could not be determined. g_free() after usage. [transfer full][nullable]

GstRTSPSendFunc ()

gboolean            (*GstRTSPSendFunc)                  (GstBuffer *buffer,
                                                         guint8 channel,
                                                         gpointer user_data);

Function registered with gst_rtsp_stream_transport_set_callbacks() and called when buffer must be sent on channel.

buffer :

a GstBuffer

channel :

a channel

user_data :

user data

Returns :

TRUE on success

gst_rtsp_stream_transport_set_callbacks ()

void                gst_rtsp_stream_transport_set_callbacks
                                                        (GstRTSPStreamTransport *trans,
                                                         GstRTSPSendFunc send_rtp,
                                                         GstRTSPSendFunc send_rtcp,
                                                         gpointer user_data,
                                                         GDestroyNotify notify);

Install callbacks that will be called when data for a stream should be sent to a client. This is usually used when sending RTP/RTCP over TCP.

trans :

a GstRTSPStreamTransport

send_rtp :

a callback called when RTP should be sent. [scope notified]

send_rtcp :

a callback called when RTCP should be sent. [scope notified]

user_data :

user data passed to callbacks. [closure]

notify :

called with the user_data when no longer needed. [allow-none]

GstRTSPKeepAliveFunc ()

void                (*GstRTSPKeepAliveFunc)             (gpointer user_data);

Function registered with gst_rtsp_stream_transport_set_keepalive() and called when the stream is active.

user_data :

user data

gst_rtsp_stream_transport_set_keepalive ()

void                gst_rtsp_stream_transport_set_keepalive
                                                        (GstRTSPStreamTransport *trans,
                                                         GstRTSPKeepAliveFunc keep_alive,
                                                         gpointer user_data,
                                                         GDestroyNotify notify);

Install callbacks that will be called when RTCP packets are received from the receiver of trans.

trans :

a GstRTSPStreamTransport

keep_alive :

a callback called when the receiver is active. [scope notified]

user_data :

user data passed to callback. [closure]

notify :

called with the user_data when no longer needed. [allow-none]

gst_rtsp_stream_transport_keep_alive ()

void                gst_rtsp_stream_transport_keep_alive
                                                        (GstRTSPStreamTransport *trans);

Signal the installed keep_alive callback for trans.


gst_rtsp_stream_transport_set_active ()

gboolean            gst_rtsp_stream_transport_set_active
                                                        (GstRTSPStreamTransport *trans,
                                                         gboolean active);

Activate or deactivate datatransfer configured in trans.

trans :

a GstRTSPStreamTransport

active :

new state of trans

Returns :

TRUE when the state was changed.

gst_rtsp_stream_transport_set_timed_out ()

void                gst_rtsp_stream_transport_set_timed_out
                                                        (GstRTSPStreamTransport *trans,
                                                         gboolean timedout);

Set the timed out state of trans to timedout

trans :

a GstRTSPStreamTransport

timedout :

timed out value

gst_rtsp_stream_transport_is_timed_out ()

gboolean            gst_rtsp_stream_transport_is_timed_out
                                                        (GstRTSPStreamTransport *trans);

Check if trans is timed out.

trans :

a GstRTSPStreamTransport

Returns :

TRUE if trans timed out.

gst_rtsp_stream_transport_send_rtcp ()

gboolean            gst_rtsp_stream_transport_send_rtcp (GstRTSPStreamTransport *trans,
                                                         GstBuffer *buffer);

Send buffer to the installed RTCP callback for trans.

trans :

a GstRTSPStreamTransport

buffer :

a GstBuffer. [transfer none]

Returns :

TRUE on success

gst_rtsp_stream_transport_send_rtp ()

gboolean            gst_rtsp_stream_transport_send_rtp  (GstRTSPStreamTransport *trans,
                                                         GstBuffer *buffer);

Send buffer to the installed RTP callback for trans.

trans :

a GstRTSPStreamTransport

buffer :

a GstBuffer. [transfer none]

Returns :

TRUE on success

See Also

GstRTSPStream, GstRTSPSessionMedia