Top | ![]() |
![]() |
![]() |
![]() |
gchar * | control | Read / Write |
GstRTSPProfile | profiles | Read / Write |
GstRTSPLowerTrans | protocols | 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.
guint
gst_rtsp_stream_get_index (GstRTSPStream *stream
);
Get the stream index.
Return: the stream index.
GstPad *
gst_rtsp_stream_get_srcpad (GstRTSPStream *stream
);
Get the srcpad associated with stream
.
gchar *
gst_rtsp_stream_get_control (GstRTSPStream *stream
);
Get the control string to identify this stream.
void gst_rtsp_stream_set_control (GstRTSPStream *stream
,const gchar *control
);
Set the control string in stream
.
gboolean gst_rtsp_stream_has_control (GstRTSPStream *stream
,const gchar *control
);
Check if stream
has the control string control
.
guint
gst_rtsp_stream_get_mtu (GstRTSPStream *stream
);
Get the configured MTU in the payloader of stream
.
void gst_rtsp_stream_set_mtu (GstRTSPStream *stream
,guint mtu
);
Configure the mtu in the payloader of stream
to mtu
.
gint
gst_rtsp_stream_get_dscp_qos (GstRTSPStream *stream
);
Get the configured DSCP QoS in of the outgoing sockets.
void gst_rtsp_stream_set_dscp_qos (GstRTSPStream *stream
,gint dscp_qos
);
Configure the dscp qos of the outgoing sockets to dscp_qos
.
void gst_rtsp_stream_set_profiles (GstRTSPStream *stream
,GstRTSPProfile profiles
);
Configure the allowed profiles for stream
.
GstRTSPProfile
gst_rtsp_stream_get_profiles (GstRTSPStream *stream
);
Get the allowed profiles of stream
.
GstRTSPLowerTrans
gst_rtsp_stream_get_protocols (GstRTSPStream *stream
);
Get the allowed protocols of stream
.
void gst_rtsp_stream_set_protocols (GstRTSPStream *stream
,GstRTSPLowerTrans protocols
);
Configure the allowed lower transport for stream
.
GstClockTime
gst_rtsp_stream_get_retransmission_time
(GstRTSPStream *stream
);
Get 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.
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.
Since: 1.6
guint
gst_rtsp_stream_get_buffer_size (GstRTSPStream *stream
);
Get the size of the UDP transmission buffer (in bytes)
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
GstRTSPAddressPool *
gst_rtsp_stream_get_address_pool (GstRTSPStream *stream
);
Get the GstRTSPAddressPool used as the address pool of stream
.
void gst_rtsp_stream_set_address_pool (GstRTSPStream *stream
,GstRTSPAddressPool *pool
);
configure pool
to be used as the address pool of stream
.
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.
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
.
stream |
||
bin |
a GstBin to join. |
[transfer none] |
rtpbin |
a rtpbin element in |
[transfer none] |
state |
the target state of the new elements |
gboolean gst_rtsp_stream_leave_bin (GstRTSPStream *stream
,GstBin *bin
,GstElement *rtpbin
);
Remove the elements of stream
from bin
.
Return: TRUE
on success.
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.
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.
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.
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.
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.
GstCaps *
gst_rtsp_stream_get_caps (GstRTSPStream *stream
);
Retrieve the current caps of stream
.
guint
gst_rtsp_stream_get_pt (GstRTSPStream *stream
);
Get the stream payload type.
Return: the stream payload type.
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
.
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
.
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.
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.
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.
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.
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
.
gboolean
gst_rtsp_stream_is_blocking (GstRTSPStream *stream
);
Check if stream
is blocking on a GstBuffer.
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.
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.
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
.
void gst_rtsp_stream_set_pt_map (GstRTSPStream *stream
,guint pt
,GstCaps *caps
);
Configure a pt map between pt
and caps
.
GstElement * gst_rtsp_stream_request_aux_sender (GstRTSPStream *stream
,guint sessid
);
Creating a rtxsend bin
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()
.
stream |
a GstRTSPStream object |
|
trans |
a GstRTSPStreamTransport in |
|
user_data |
user data that has been given to |
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.
stream |
||
func |
a callback. |
[scope call][allow-none] |
user_data |
user data passed to |
[closure] |
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 *
The control string for this stream.
Flags: Read / Write
Default value: NULL
“profiles”
property“profiles” GstRTSPProfile
Allowed transfer profiles.
Flags: Read / Write
Default value: GST_RTSP_PROFILE_AVP
“protocols”
property“protocols” GstRTSPLowerTrans
Allowed lower transport protocols.
Flags: Read / Write
Default value: GST_RTSP_LOWER_TRANS_UDP | GST_RTSP_LOWER_TRANS_UDP_MCAST | GST_RTSP_LOWER_TRANS_TCP
“new-rtcp-encoder”
signalvoid user_function (GstRTSPStream *gstrtspstream, GstElement *arg1, gpointer user_data)
Flags: Run Last
“new-rtp-encoder”
signalvoid user_function (GstRTSPStream *gstrtspstream, GstElement *arg1, gpointer user_data)
Flags: Run Last