| GStreamer RTSP Server Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | ||||
struct GstRTSPStream; GstRTSPStreamClass; GstRTSPStream * gst_rtsp_stream_new (guint idx,GstElement *payloader,GstPad *srcpad); guint gst_rtsp_stream_get_index (GstRTSPStream *stream); GstPad * gst_rtsp_stream_get_srcpad (GstRTSPStream *stream); gchar * gst_rtsp_stream_get_control (GstRTSPStream *stream); void gst_rtsp_stream_set_control (GstRTSPStream *stream,const gchar *control); gboolean gst_rtsp_stream_has_control (GstRTSPStream *stream,const gchar *control); guint gst_rtsp_stream_get_mtu (GstRTSPStream *stream); void gst_rtsp_stream_set_mtu (GstRTSPStream *stream,guint mtu); gint gst_rtsp_stream_get_dscp_qos (GstRTSPStream *stream); void gst_rtsp_stream_set_dscp_qos (GstRTSPStream *stream,gint dscp_qos); GstRTSPLowerTrans gst_rtsp_stream_get_protocols (GstRTSPStream *stream); void gst_rtsp_stream_set_protocols (GstRTSPStream *stream,GstRTSPLowerTrans protocols); GstRTSPAddressPool * gst_rtsp_stream_get_address_pool (GstRTSPStream *stream); void gst_rtsp_stream_set_address_pool (GstRTSPStream *stream,GstRTSPAddressPool *pool); GstRTSPAddress * gst_rtsp_stream_reserve_address (GstRTSPStream *stream,const gchar *address,guint port,guint n_ports,guint ttl); gboolean gst_rtsp_stream_join_bin (GstRTSPStream *stream,GstBin *bin,GstElement *rtpbin,GstState state); gboolean gst_rtsp_stream_leave_bin (GstRTSPStream *stream,GstBin *bin,GstElement *rtpbin); void gst_rtsp_stream_get_server_port (GstRTSPStream *stream,GstRTSPRange *server_port,GSocketFamily family); GstRTSPAddress * gst_rtsp_stream_get_multicast_address (GstRTSPStream *stream,GSocketFamily family); GObject * gst_rtsp_stream_get_rtpsession (GstRTSPStream *stream); void gst_rtsp_stream_get_ssrc (GstRTSPStream *stream,guint *ssrc); gboolean gst_rtsp_stream_get_rtpinfo (GstRTSPStream *stream,guint *rtptime,guint *seq,guint *clock_rate,GstClockTime *running_time); GstCaps * gst_rtsp_stream_get_caps (GstRTSPStream *stream); GstFlowReturn gst_rtsp_stream_recv_rtcp (GstRTSPStream *stream,GstBuffer *buffer); GstFlowReturn gst_rtsp_stream_recv_rtp (GstRTSPStream *stream,GstBuffer *buffer); gboolean gst_rtsp_stream_add_transport (GstRTSPStream *stream,GstRTSPStreamTransport *trans); gboolean gst_rtsp_stream_remove_transport (GstRTSPStream *stream,GstRTSPStreamTransport *trans); GSocket * gst_rtsp_stream_get_rtp_socket (GstRTSPStream *stream,GSocketFamily family); GSocket * gst_rtsp_stream_get_rtcp_socket (GstRTSPStream *stream,GSocketFamily family); GstRTSPFilterResult (*GstRTSPStreamTransportFilterFunc) (GstRTSPStream *stream,GstRTSPStreamTransport *trans,gpointer user_data); GList * gst_rtsp_stream_transport_filter (GstRTSPStream *stream,GstRTSPStreamTransportFilterFunc func,gpointer user_data);
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)
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.
|
an index |
|
a GstPad |
|
a GstElement |
Returns : |
a new GstRTSPStream |
guint gst_rtsp_stream_get_index (GstRTSPStream *stream);
Get the stream index.
Return: the stream index.
|
a GstRTSPStream |
GstPad * gst_rtsp_stream_get_srcpad (GstRTSPStream *stream);
Get the srcpad associated with stream.
|
a GstRTSPStream |
Returns : |
the srcpad. Unref after usage. [transfer full] |
gchar * gst_rtsp_stream_get_control (GstRTSPStream *stream);
Get the control string to identify this stream.
|
a GstRTSPStream |
Returns : |
the control string. free after usage. [transfer full] |
void gst_rtsp_stream_set_control (GstRTSPStream *stream,const gchar *control);
Set the control string in stream.
|
a GstRTSPStream |
|
a control string |
gboolean gst_rtsp_stream_has_control (GstRTSPStream *stream,const gchar *control);
Check if stream has the control string control.
|
a GstRTSPStream |
|
a control string |
Returns : |
TRUE is stream has control as the control string |
guint gst_rtsp_stream_get_mtu (GstRTSPStream *stream);
Get the configured MTU in the payloader of stream.
|
a GstRTSPStream |
Returns : |
the MTU of the payloader. |
void gst_rtsp_stream_set_mtu (GstRTSPStream *stream,guint mtu);
Configure the mtu in the payloader of stream to mtu.
|
a GstRTSPStream |
|
a new MTU |
gint gst_rtsp_stream_get_dscp_qos (GstRTSPStream *stream);
Get the configured DSCP QoS in of the outgoing sockets.
|
a GstRTSPStream |
Returns : |
the DSCP QoS value of the outgoing sockets, or -1 if disbled. |
void gst_rtsp_stream_set_dscp_qos (GstRTSPStream *stream,gint dscp_qos);
Configure the dscp qos of the outgoing sockets to dscp_qos.
|
a GstRTSPStream |
|
a new dscp qos value (0-63, or -1 to disable) |
GstRTSPLowerTrans gst_rtsp_stream_get_protocols (GstRTSPStream *stream);
Get the allowed protocols of stream.
|
a GstRTSPStream |
Returns : |
a GstRTSPLowerTrans |
void gst_rtsp_stream_set_protocols (GstRTSPStream *stream,GstRTSPLowerTrans protocols);
Configure the allowed lower transport for stream.
|
a GstRTSPStream |
|
the new flags |
GstRTSPAddressPool * gst_rtsp_stream_get_address_pool (GstRTSPStream *stream);
Get the GstRTSPAddressPool used as the address pool of stream.
|
a GstRTSPStream |
Returns : |
the GstRTSPAddressPool of stream. g_object_unref() after
usage. [transfer full]
|
void gst_rtsp_stream_set_address_pool (GstRTSPStream *stream,GstRTSPAddressPool *pool);
configure pool to be used as the address pool of stream.
|
a GstRTSPStream |
|
a GstRTSPAddressPool |
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.
|
a GstRTSPStream |
|
an address |
|
a port |
|
n_ports |
|
a TTL |
Returns : |
the GstRTSPAddress of stream or NULL when the address could be
reserved. gst_rtsp_address_free() after usage. |
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.
|
a GstRTSPStream |
|
a GstBin to join |
|
a rtpbin element in bin
|
|
the target state of the new elements |
Returns : |
TRUE on success. |
gboolean gst_rtsp_stream_leave_bin (GstRTSPStream *stream,GstBin *bin,GstElement *rtpbin);
Remove the elements of stream from bin.
Return: TRUE on success.
|
a GstRTSPStream |
|
a GstBin |
|
a rtpbin GstElement |
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.
|
a GstRTSPStream |
|
result server port. [out] |
|
the port family to get |
GstRTSPAddress * gst_rtsp_stream_get_multicast_address (GstRTSPStream *stream,GSocketFamily family);
Get the multicast address of stream for family.
|
a GstRTSPStream |
|
the GSocketFamily |
Returns : |
the GstRTSPAddress of stream or NULL when no address could be
allocated. gst_rtsp_address_free() after usage. |
GObject * gst_rtsp_stream_get_rtpsession (GstRTSPStream *stream);
Get the RTP session of this stream.
|
a GstRTSPStream |
Returns : |
The RTP session of this stream. Unref after usage. [transfer full] |
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.
|
a GstRTSPStream |
|
result ssrc. [out] |
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.
|
a GstRTSPStream |
|
result RTP timestamp. [allow-none] |
|
result RTP seqnum. [allow-none] |
|
the clock rate |
|
result running-time. [allow-none] |
Returns : |
TRUE when rtptime, seq and running-time could be determined. |
GstCaps * gst_rtsp_stream_get_caps (GstRTSPStream *stream);
Retrieve the current caps of stream.
|
a GstRTSPStream |
Returns : |
the GstCaps of stream. use gst_caps_unref()
after usage. [transfer full]
|
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.
|
a GstRTSPStream |
|
a GstBuffer. [transfer full] |
Returns : |
a GstFlowReturn. |
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.
|
a GstRTSPStream |
|
a GstBuffer. [transfer full] |
Returns : |
a GstFlowReturn. |
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.
|
a GstRTSPStream |
|
a GstRTSPStreamTransport |
Returns : |
TRUE if trans was added |
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.
|
a GstRTSPStream |
|
a GstRTSPStreamTransport |
Returns : |
TRUE if trans was removed |
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.
|
a GstRTSPStream |
|
the socket family |
Returns : |
the RTP socket or NULL if no socket could be allocated for family.
Unref after usage |
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.
|
a GstRTSPStream |
|
the socket family |
Returns : |
the RTCP socket or NULL if no socket could be allocated for
family. Unref after usage |
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().
|
a GstRTSPStream object |
|
a GstRTSPStreamTransport in stream
|
|
user data that has been given to gst_rtsp_stream_transport_filter()
|
Returns : |
a GstRTSPFilterResult. |
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.
|
a GstRTSPStream |
|
a callback. [scope call][allow-none] |
|
user data passed to func
|
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]
|