GstRTSPStream

GstRTSPStream — A media stream

Functions

GstRTSPStream * gst_rtsp_stream_new ()
guint gst_rtsp_stream_get_index ()
GstPad * gst_rtsp_stream_get_srcpad ()
gchar * gst_rtsp_stream_get_control ()
void gst_rtsp_stream_set_control ()
gboolean gst_rtsp_stream_has_control ()
guint gst_rtsp_stream_get_mtu ()
void gst_rtsp_stream_set_mtu ()
gint gst_rtsp_stream_get_dscp_qos ()
void gst_rtsp_stream_set_dscp_qos ()
void gst_rtsp_stream_set_profiles ()
GstRTSPProfile gst_rtsp_stream_get_profiles ()
GstRTSPLowerTrans gst_rtsp_stream_get_protocols ()
void gst_rtsp_stream_set_protocols ()
gboolean gst_rtsp_stream_is_transport_supported ()
GstRTSPAddressPool * gst_rtsp_stream_get_address_pool ()
void gst_rtsp_stream_set_address_pool ()
GstRTSPAddress * gst_rtsp_stream_reserve_address ()
gboolean gst_rtsp_stream_join_bin ()
gboolean gst_rtsp_stream_leave_bin ()
void gst_rtsp_stream_get_server_port ()
GstRTSPAddress * gst_rtsp_stream_get_multicast_address ()
GObject * gst_rtsp_stream_get_rtpsession ()
void gst_rtsp_stream_get_ssrc ()
gboolean gst_rtsp_stream_get_rtpinfo ()
GstCaps * gst_rtsp_stream_get_caps ()
guint gst_rtsp_stream_get_pt ()
GstFlowReturn gst_rtsp_stream_recv_rtcp ()
GstFlowReturn gst_rtsp_stream_recv_rtp ()
gboolean gst_rtsp_stream_add_transport ()
gboolean gst_rtsp_stream_remove_transport ()
GSocket * gst_rtsp_stream_get_rtp_socket ()
GSocket * gst_rtsp_stream_get_rtcp_socket ()
gboolean gst_rtsp_stream_set_blocked ()
gboolean gst_rtsp_stream_is_blocking ()
gboolean gst_rtsp_stream_update_crypto ()
GstRTSPFilterResult (*GstRTSPStreamTransportFilterFunc) ()
GList * gst_rtsp_stream_transport_filter ()

Types and Values

Object Hierarchy

    GObject
    ╰── GstRTSPStream

Description

The GstRTSPStream object manages the data transport for one stream. It is created from a payloader element and a source pad that produce the RTP packets for the stream.

With gst_rtsp_stream_join_bin() the streaming elements are added to the bin and rtpbin. gst_rtsp_stream_leave_bin() removes the elements again.

The GstRTSPStream will use the configured addresspool, as set with gst_rtsp_stream_set_address_pool(), to allocate multicast addresses for the stream. With gst_rtsp_stream_get_multicast_address() you can get the configured address.

With gst_rtsp_stream_get_server_port() you can get the port that the server will use to receive RTCP. This is the part that the clients will use to send RTCP to.

With gst_rtsp_stream_add_transport() destinations can be added where the stream should be sent to. Use gst_rtsp_stream_remove_transport() to remove the destination again.

Last reviewed on 2013-07-16 (1.0.0)

Functions

gst_rtsp_stream_new ()

GstRTSPStream *
gst_rtsp_stream_new (guint idx,
                     GstElement *payloader,
                     GstPad *srcpad);

Create a new media stream with index idx that handles RTP data on srcpad and has a payloader element payloader .

Parameters

idx

an index

 

srcpad

a GstPad

 

payloader

a GstElement

 

Returns

a new GstRTSPStream.

[transfer full]


gst_rtsp_stream_get_index ()

guint
gst_rtsp_stream_get_index (GstRTSPStream *stream);

Get the stream index.

Return: the stream index.

Parameters

stream

a GstRTSPStream

 

gst_rtsp_stream_get_srcpad ()

GstPad *
gst_rtsp_stream_get_srcpad (GstRTSPStream *stream);

Get the srcpad associated with stream .

Parameters

stream

a GstRTSPStream

 

Returns

the srcpad. Unref after usage.

[transfer full]


gst_rtsp_stream_get_control ()

gchar *
gst_rtsp_stream_get_control (GstRTSPStream *stream);

Get the control string to identify this stream.

Parameters

stream

a GstRTSPStream

 

Returns

the control string. g_free() after usage.

[transfer full]


gst_rtsp_stream_set_control ()

void
gst_rtsp_stream_set_control (GstRTSPStream *stream,
                             const gchar *control);

Set the control string in stream .

Parameters

stream

a GstRTSPStream

 

control

a control string

 

gst_rtsp_stream_has_control ()

gboolean
gst_rtsp_stream_has_control (GstRTSPStream *stream,
                             const gchar *control);

Check if stream has the control string control .

Parameters

stream

a GstRTSPStream

 

control

a control string

 

Returns

TRUE is stream has control as the control string


gst_rtsp_stream_get_mtu ()

guint
gst_rtsp_stream_get_mtu (GstRTSPStream *stream);

Get the configured MTU in the payloader of stream .

Parameters

stream

a GstRTSPStream

 

Returns

the MTU of the payloader.


gst_rtsp_stream_set_mtu ()

void
gst_rtsp_stream_set_mtu (GstRTSPStream *stream,
                         guint mtu);

Configure the mtu in the payloader of stream to mtu .

Parameters

stream

a GstRTSPStream

 

mtu

a new MTU

 

gst_rtsp_stream_get_dscp_qos ()

gint
gst_rtsp_stream_get_dscp_qos (GstRTSPStream *stream);

Get the configured DSCP QoS in of the outgoing sockets.

Parameters

stream

a GstRTSPStream

 

Returns

the DSCP QoS value of the outgoing sockets, or -1 if disbled.


gst_rtsp_stream_set_dscp_qos ()

void
gst_rtsp_stream_set_dscp_qos (GstRTSPStream *stream,
                              gint dscp_qos);

Configure the dscp qos of the outgoing sockets to dscp_qos .

Parameters

stream

a GstRTSPStream

 

dscp_qos

a new dscp qos value (0-63, or -1 to disable)

 

gst_rtsp_stream_set_profiles ()

void
gst_rtsp_stream_set_profiles (GstRTSPStream *stream,
                              GstRTSPProfile profiles);

Configure the allowed profiles for stream .

Parameters

stream

a GstRTSPStream

 

profiles

the new profiles

 

gst_rtsp_stream_get_profiles ()

GstRTSPProfile
gst_rtsp_stream_get_profiles (GstRTSPStream *stream);

Get the allowed profiles of stream .

Parameters

stream

a GstRTSPStream

 

Returns

a GstRTSPProfile


gst_rtsp_stream_get_protocols ()

GstRTSPLowerTrans
gst_rtsp_stream_get_protocols (GstRTSPStream *stream);

Get the allowed protocols of stream .

Parameters

stream

a GstRTSPStream

 

Returns

a GstRTSPLowerTrans


gst_rtsp_stream_set_protocols ()

void
gst_rtsp_stream_set_protocols (GstRTSPStream *stream,
                               GstRTSPLowerTrans protocols);

Configure the allowed lower transport for stream .

Parameters

stream

a GstRTSPStream

 

protocols

the new flags

 

gst_rtsp_stream_is_transport_supported ()

gboolean
gst_rtsp_stream_is_transport_supported
                               (GstRTSPStream *stream,
                                GstRTSPTransport *transport);

Check if transport can be handled by stream

Parameters

stream

a GstRTSPStream

 

transport

a GstRTSPTransport.

[transfer none]

Returns

TRUE if transport can be handled by stream .


gst_rtsp_stream_get_address_pool ()

GstRTSPAddressPool *
gst_rtsp_stream_get_address_pool (GstRTSPStream *stream);

Get the GstRTSPAddressPool used as the address pool of stream .

Parameters

stream

a GstRTSPStream

 

Returns

the GstRTSPAddressPool of stream . g_object_unref() after usage.

[transfer full]


gst_rtsp_stream_set_address_pool ()

void
gst_rtsp_stream_set_address_pool (GstRTSPStream *stream,
                                  GstRTSPAddressPool *pool);

configure pool to be used as the address pool of stream .

Parameters

stream

a GstRTSPStream

 

pool

a GstRTSPAddressPool.

[transfer none]

gst_rtsp_stream_reserve_address ()

GstRTSPAddress *
gst_rtsp_stream_reserve_address (GstRTSPStream *stream,
                                 const gchar *address,
                                 guint port,
                                 guint n_ports,
                                 guint ttl);

Reserve address and port as the address and port of stream .

Parameters

stream

a GstRTSPStream

 

address

an address

 

port

a port

 

n_ports

n_ports

 

ttl

a TTL

 

Returns

the GstRTSPAddress of stream or NULL when the address could be reserved. gst_rtsp_address_free() after usage.

[nullable]


gst_rtsp_stream_join_bin ()

gboolean
gst_rtsp_stream_join_bin (GstRTSPStream *stream,
                          GstBin *bin,
                          GstElement *rtpbin,
                          GstState state);

Join the GstBin bin that contains the element rtpbin .

stream will link to rtpbin , which must be inside bin . The elements added to bin will be set to the state given in state .

Parameters

stream

a GstRTSPStream

 

bin

a GstBin to join.

[transfer none]

rtpbin

a rtpbin element in bin .

[transfer none]

state

the target state of the new elements

 

Returns

TRUE on success.


gst_rtsp_stream_leave_bin ()

gboolean
gst_rtsp_stream_leave_bin (GstRTSPStream *stream,
                           GstBin *bin,
                           GstElement *rtpbin);

Remove the elements of stream from bin .

Return: TRUE on success.

Parameters

stream

a GstRTSPStream

 

bin

a GstBin.

[transfer none]

rtpbin

a rtpbin GstElement.

[transfer none]

gst_rtsp_stream_get_server_port ()

void
gst_rtsp_stream_get_server_port (GstRTSPStream *stream,
                                 GstRTSPRange *server_port,
                                 GSocketFamily family);

Fill server_port with the port pair used by the server. This function can only be called when stream has been joined.

Parameters

stream

a GstRTSPStream

 

server_port

result server port.

[out]

family

the port family to get

 

gst_rtsp_stream_get_multicast_address ()

GstRTSPAddress *
gst_rtsp_stream_get_multicast_address (GstRTSPStream *stream,
                                       GSocketFamily family);

Get the multicast address of stream for family .

Parameters

stream

a GstRTSPStream

 

family

the GSocketFamily

 

Returns

the GstRTSPAddress of stream or NULL when no address could be allocated. gst_rtsp_address_free() after usage.

[transfer full][nullable]


gst_rtsp_stream_get_rtpsession ()

GObject *
gst_rtsp_stream_get_rtpsession (GstRTSPStream *stream);

Get the RTP session of this stream.

Parameters

stream

a GstRTSPStream

 

Returns

The RTP session of this stream. Unref after usage.

[transfer full]


gst_rtsp_stream_get_ssrc ()

void
gst_rtsp_stream_get_ssrc (GstRTSPStream *stream,
                          guint *ssrc);

Get the SSRC used by the RTP session of this stream. This function can only be called when stream has been joined.

Parameters

stream

a GstRTSPStream

 

ssrc

result ssrc.

[out]

gst_rtsp_stream_get_rtpinfo ()

gboolean
gst_rtsp_stream_get_rtpinfo (GstRTSPStream *stream,
                             guint *rtptime,
                             guint *seq,
                             guint *clock_rate,
                             GstClockTime *running_time);

Retrieve the current rtptime, seq and running-time. This is used to construct a RTPInfo reply header.

Parameters

stream

a GstRTSPStream

 

rtptime

result RTP timestamp.

[allow-none]

seq

result RTP seqnum.

[allow-none]

clock_rate

the clock rate.

[allow-none]

running_time

result running-time.

[allow-none]

Returns

TRUE when rtptime, seq and running-time could be determined.


gst_rtsp_stream_get_caps ()

GstCaps *
gst_rtsp_stream_get_caps (GstRTSPStream *stream);

Retrieve the current caps of stream .

Parameters

stream

a GstRTSPStream

 

Returns

the GstCaps of stream . use gst_caps_unref() after usage.

[transfer full]


gst_rtsp_stream_get_pt ()

guint
gst_rtsp_stream_get_pt (GstRTSPStream *stream);

Get the stream payload type.

Return: the stream payload type.

Parameters

stream

a GstRTSPStream

 

gst_rtsp_stream_recv_rtcp ()

GstFlowReturn
gst_rtsp_stream_recv_rtcp (GstRTSPStream *stream,
                           GstBuffer *buffer);

Handle an RTCP buffer for the stream. This method is usually called when a message has been received from a client using the TCP transport.

This function takes ownership of buffer .

Parameters

stream

a GstRTSPStream

 

buffer

a GstBuffer.

[transfer full]

Returns

a GstFlowReturn.


gst_rtsp_stream_recv_rtp ()

GstFlowReturn
gst_rtsp_stream_recv_rtp (GstRTSPStream *stream,
                          GstBuffer *buffer);

Handle an RTP buffer for the stream. This method is usually called when a message has been received from a client using the TCP transport.

This function takes ownership of buffer .

Parameters

stream

a GstRTSPStream

 

buffer

a GstBuffer.

[transfer full]

Returns

a GstFlowReturn.


gst_rtsp_stream_add_transport ()

gboolean
gst_rtsp_stream_add_transport (GstRTSPStream *stream,
                               GstRTSPStreamTransport *trans);

Add the transport in trans to stream . The media of stream will then also be send to the values configured in trans .

stream must be joined to a bin.

trans must contain a valid GstRTSPTransport.

Parameters

stream

a GstRTSPStream

 

trans

a GstRTSPStreamTransport.

[transfer none]

Returns

TRUE if trans was added


gst_rtsp_stream_remove_transport ()

gboolean
gst_rtsp_stream_remove_transport (GstRTSPStream *stream,
                                  GstRTSPStreamTransport *trans);

Remove the transport in trans from stream . The media of stream will not be sent to the values configured in trans .

stream must be joined to a bin.

trans must contain a valid GstRTSPTransport.

Parameters

stream

a GstRTSPStream

 

trans

a GstRTSPStreamTransport.

[transfer none]

Returns

TRUE if trans was removed


gst_rtsp_stream_get_rtp_socket ()

GSocket *
gst_rtsp_stream_get_rtp_socket (GstRTSPStream *stream,
                                GSocketFamily family);

Get the RTP socket from stream for a family .

stream must be joined to a bin.

Parameters

stream

a GstRTSPStream

 

family

the socket family

 

Returns

the RTP socket or NULL if no socket could be allocated for family . Unref after usage.

[transfer full][nullable]


gst_rtsp_stream_get_rtcp_socket ()

GSocket *
gst_rtsp_stream_get_rtcp_socket (GstRTSPStream *stream,
                                 GSocketFamily family);

Get the RTCP socket from stream for a family .

stream must be joined to a bin.

Parameters

stream

a GstRTSPStream

 

family

the socket family

 

Returns

the RTCP socket or NULL if no socket could be allocated for family . Unref after usage.

[transfer full][nullable]


gst_rtsp_stream_set_blocked ()

gboolean
gst_rtsp_stream_set_blocked (GstRTSPStream *stream,
                             gboolean blocked);

Blocks or unblocks the dataflow on stream .

Parameters

stream

a GstRTSPStream

 

blocked

boolean indicating we should block or unblock

 

Returns

TRUE on success


gst_rtsp_stream_is_blocking ()

gboolean
gst_rtsp_stream_is_blocking (GstRTSPStream *stream);

Check if stream is blocking on a GstBuffer.

Parameters

stream

a GstRTSPStream

 

Returns

TRUE if stream is blocking


gst_rtsp_stream_update_crypto ()

gboolean
gst_rtsp_stream_update_crypto (GstRTSPStream *stream,
                               guint ssrc,
                               GstCaps *crypto);

Update the new crypto information for ssrc in stream . If information for ssrc did not exist, it will be added. If information for ssrc existed, it will be replaced. If crypto is NULL, it will be removed from stream .

Parameters

stream

a GstRTSPStream

 

ssrc

the SSRC

 

crypto

a GstCaps with crypto info.

[transfer none][allow-none]

Returns

TRUE if crypto could be updated


GstRTSPStreamTransportFilterFunc ()

GstRTSPFilterResult
(*GstRTSPStreamTransportFilterFunc) (GstRTSPStream *stream,
                                     GstRTSPStreamTransport *trans,
                                     gpointer user_data);

This function will be called by the gst_rtsp_stream_transport_filter(). An implementation should return a value of GstRTSPFilterResult.

When this function returns GST_RTSP_FILTER_REMOVE, trans will be removed from stream .

A return value of GST_RTSP_FILTER_KEEP will leave trans untouched in stream .

A value of GST_RTSP_FILTER_REF will add trans to the result GList of gst_rtsp_stream_transport_filter().

Parameters

stream

a GstRTSPStream object

 

trans

a GstRTSPStreamTransport in stream

 

user_data

user data that has been given to gst_rtsp_stream_transport_filter()

 

Returns

a GstRTSPFilterResult.


gst_rtsp_stream_transport_filter ()

GList *
gst_rtsp_stream_transport_filter (GstRTSPStream *stream,
                                  GstRTSPStreamTransportFilterFunc func,
                                  gpointer user_data);

Call func for each transport managed by stream . The result value of func determines what happens to the transport. func will be called with stream locked so no further actions on stream can be performed from func .

If func returns GST_RTSP_FILTER_REMOVE, the transport will be removed from stream .

If func returns GST_RTSP_FILTER_KEEP, the transport will remain in stream .

If func returns GST_RTSP_FILTER_REF, the transport will remain in stream but will also be added with an additional ref to the result GList of this function..

When func is NULL, GST_RTSP_FILTER_REF will be assumed for each transport.

Parameters

stream

a GstRTSPStream

 

func

a callback.

[scope call][allow-none]

user_data

user data passed to func .

[closure]

Returns

a GList with all transports for which func returned GST_RTSP_FILTER_REF. After usage, each element in the GList should be unreffed before the list is freed.

[element-type GstRTSPStreamTransport][transfer full]

Types and Values

struct GstRTSPStream

struct GstRTSPStream;

The definition of a media stream.


GstRTSPStreamClass

typedef struct _GstRTSPStreamClass GstRTSPStreamClass;

See Also

GstRTSPMedia