GstRTSPStreamTransport

## 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);
    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

### 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]

### 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
`notify` : | called with the user_data when no longer needed.

### 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
`user_data` : | user data passed to callback
`notify` : | called with the user_data when no longer needed.

### gst_rtsp_stream_transport_keep_alive ()

    void                gst_rtsp_stream_transport_keep_alive
                                                            (GstRTSPStreamTransport *trans);

Signal the installed keep_alive callback for `trans`.

`trans` : | a GstRTSPStreamTransport

### 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
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
Returns : | `TRUE` on success

## See Also

GstRTSPStream, GstRTSPSessionMedia