| 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); void gst_rtsp_stream_set_profiles (GstRTSPStream *stream,GstRTSPProfile profiles); GstRTSPProfile gst_rtsp_stream_get_profiles (GstRTSPStream *stream); GstRTSPLowerTrans gst_rtsp_stream_get_protocols (GstRTSPStream *stream); void gst_rtsp_stream_set_protocols (GstRTSPStream *stream,GstRTSPLowerTrans protocols); gboolean gst_rtsp_stream_is_transport_supported (GstRTSPStream *stream,GstRTSPTransport *transport); 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); guint gst_rtsp_stream_get_pt (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); gboolean gst_rtsp_stream_set_blocked (GstRTSPStream *stream,gboolean blocked); gboolean gst_rtsp_stream_is_blocking (GstRTSPStream *stream); gboolean gst_rtsp_stream_update_crypto (GstRTSPStream *stream,guint ssrc,GstCaps *crypto); 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. [transfer full] |
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. g_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) |
void gst_rtsp_stream_set_profiles (GstRTSPStream *stream,GstRTSPProfile profiles);
Configure the allowed profiles for stream.
|
a GstRTSPStream |
|
the new profiles |
GstRTSPProfile gst_rtsp_stream_get_profiles (GstRTSPStream *stream);
Get the allowed profiles of stream.
|
a GstRTSPStream |
Returns : |
a GstRTSPProfile |
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 |
gboolean gst_rtsp_stream_is_transport_supported (GstRTSPStream *stream,GstRTSPTransport *transport);
Check if transport can be handled by stream
|
a GstRTSPStream |
|
a GstRTSPTransport. [transfer none] |
Returns : |
TRUE if transport can be handled by stream. |
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. [transfer none] |
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. [nullable]
|
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. [transfer none] |
|
a rtpbin element in bin. [transfer none]
|
|
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. [transfer none] |
|
a rtpbin GstElement. [transfer none] |
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. [transfer full][nullable]
|
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. [allow-none] |
|
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]
|
guint gst_rtsp_stream_get_pt (GstRTSPStream *stream);
Get the stream payload type.
Return: the stream payload type.
|
a GstRTSPStream |
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. [transfer none] |
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. [transfer none] |
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. [transfer full][nullable]
|
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. [transfer full][nullable]
|
gboolean gst_rtsp_stream_set_blocked (GstRTSPStream *stream,gboolean blocked);
Blocks or unblocks the dataflow on stream.
|
a GstRTSPStream |
|
boolean indicating we should block or unblock |
Returns : |
TRUE on success |
gboolean gst_rtsp_stream_is_blocking (GstRTSPStream *stream);
Check if stream is blocking on a GstBuffer.
|
a GstRTSPStream |
Returns : |
TRUE if stream is blocking |
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.
|
a GstRTSPStream |
|
the SSRC |
|
a GstCaps with crypto info. [transfer none][allow-none] |
Returns : |
TRUE if crypto could be updated |
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. [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]
|