![]() |
![]() |
![]() |
GStreamer RTSP Server Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Signals |
struct GstRTSPStream; struct GstRTSPStreamClass; GstRTSPStream * gst_rtsp_stream_new (guint idx
,GstElement *payloader
,GstPad *pad
); 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
); GstClockTime gst_rtsp_stream_get_retransmission_time (GstRTSPStream *stream
); void gst_rtsp_stream_set_retransmission_time (GstRTSPStream *stream
,GstClockTime time
); void gst_rtsp_stream_set_buffer_size (GstRTSPStream *stream
,guint size
); guint gst_rtsp_stream_get_buffer_size (GstRTSPStream *stream
); void gst_rtsp_stream_set_seqnum_offset (GstRTSPStream *stream
,guint16 seqnum
); guint16 gst_rtsp_stream_get_current_seqnum (GstRTSPStream *stream
); 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_query_stop (GstRTSPStream *stream
,gint64 *stop
); gboolean gst_rtsp_stream_query_position (GstRTSPStream *stream
,gint64 *position
); gboolean gst_rtsp_stream_update_crypto (GstRTSPStream *stream
,guint ssrc
,GstCaps *crypto
); void gst_rtsp_stream_set_pt_map (GstRTSPStream *stream
,guint pt
,GstCaps *caps
); GstElement * gst_rtsp_stream_request_aux_sender (GstRTSPStream *stream
,guint sessid
); GstRTSPFilterResult (*GstRTSPStreamTransportFilterFunc) (GstRTSPStream *stream
,GstRTSPStreamTransport *trans
,gpointer user_data
); GList * gst_rtsp_stream_transport_filter (GstRTSPStream *stream
,GstRTSPStreamTransportFilterFunc func
,gpointer user_data
);
"control" gchar* : Read / Write "profiles" GstRTSPProfile : Read / Write "protocols" GstRTSPLowerTrans : Read / Write
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 *pad
);
Create a new media stream with index idx
that handles RTP data on
pad
and has a payloader element payloader
if pad
is a source pad
or a depayloader element payloader
if pad
is a sink pad.
|
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 |
GstClockTime gst_rtsp_stream_get_retransmission_time
(GstRTSPStream *stream
);
Get the amount of time to store retransmission data.
|
a GstRTSPStream |
Returns : |
the amount of time to store retransmission data. |
void gst_rtsp_stream_set_retransmission_time (GstRTSPStream *stream
,GstClockTime time
);
Set the amount of time to store retransmission packets.
|
a GstRTSPStream |
|
a GstClockTime |
void gst_rtsp_stream_set_buffer_size (GstRTSPStream *stream
,guint size
);
Set the size of the UDP transmission buffer (in bytes) Needs to be set before the stream is joined to a bin.
|
a GstRTSPStream |
|
the buffer size |
Since 1.6
guint gst_rtsp_stream_get_buffer_size (GstRTSPStream *stream
);
Get the size of the UDP transmission buffer (in bytes)
|
a GstRTSPStream |
Returns : |
the size of the UDP TX buffer |
Since 1.6
void gst_rtsp_stream_set_seqnum_offset (GstRTSPStream *stream
,guint16 seqnum
);
guint16 gst_rtsp_stream_get_current_seqnum (GstRTSPStream *stream
);
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
. The original
GstRTSPAddress is cached and copy is returned, so freeing the return value
won't release the address from the pool.
|
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
. The original
GstRTSPAddress is cached and copy is returned, so freeing the return value
won't release the address from the pool.
|
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_query_stop (GstRTSPStream *stream
,gint64 *stop
);
Query the stop of the stream in GST_FORMAT_TIME
. This only considers
the RTP parts of the pipeline and not the RTCP parts.
|
a GstRTSPStream |
Returns : |
TRUE if the stop could be queried |
gboolean gst_rtsp_stream_query_position (GstRTSPStream *stream
,gint64 *position
);
Query the position of the stream in GST_FORMAT_TIME
. This only considers
the RTP parts of the pipeline and not the RTCP parts.
|
a GstRTSPStream |
Returns : |
TRUE if the position could be queried |
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 |
void gst_rtsp_stream_set_pt_map (GstRTSPStream *stream
,guint pt
,GstCaps *caps
);
Configure a pt map between pt
and caps
.
|
a GstRTSPStream |
|
the pt |
|
a GstCaps |
GstElement * gst_rtsp_stream_request_aux_sender (GstRTSPStream *stream
,guint sessid
);
Creating a rtxsend bin
|
a GstRTSPStream |
|
the session id |
Returns : |
a GstElement. [transfer full] |
Since 1.6
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]
|
"control"
property "control" gchar* : Read / Write
The control string for this stream.
Default value: NULL
"profiles"
property "profiles" GstRTSPProfile : Read / Write
Allowed transfer profiles.
Default value: GST_RTSP_PROFILE_AVP
"new-rtcp-encoder"
signalvoid user_function (GstRTSPStream *gstrtspstream,
GstElement *arg1,
gpointer user_data) : Run Last
"new-rtp-encoder"
signalvoid user_function (GstRTSPStream *gstrtspstream,
GstElement *arg1,
gpointer user_data) : Run Last