[−][src]Trait gstreamer_rtsp_server::prelude::RTSPMediaExt
Required methods
fn collect_streams(&self)
Find all payloader elements, they should be named pay%d in the
element of self
, and create GstRTSPStreams
for them.
Collect all dynamic elements, named dynpay%d, and add them to the list of dynamic elements.
Find all depayloader elements, they should be named depay%d in the
element of self
, and create GstRTSPStreams
for them.
fn create_stream<P: IsA<Element>, Q: IsA<Pad>>(
&self,
payloader: &P,
pad: &Q
) -> Option<RTSPStream>
&self,
payloader: &P,
pad: &Q
) -> Option<RTSPStream>
Create a new stream in self
that provides RTP data on pad
.
pad
should be a pad of an element inside self
->element.
payloader
a gst::Element
pad
a gst::Pad
Returns
a new RTSPStream
that remains valid for as long
as self
exists.
fn find_stream(&self, control: &str) -> Option<RTSPStream>
Find a stream in self
with control
as the control uri.
control
the control of the stream
Returns
the RTSPStream
with
control uri control
or None
when a stream with that control did
not exist.
fn get_address_pool(&self) -> Option<RTSPAddressPool>
Get the RTSPAddressPool
used as the address pool of self
.
Returns
the RTSPAddressPool
of self
.
gobject::ObjectExt::unref
after usage.
fn get_base_time(&self) -> ClockTime
Get the base_time that is used by the pipeline in self
.
self
must be prepared before this method returns a valid base_time.
Returns
the base_time used by self
.
fn get_buffer_size(&self) -> u32
fn get_clock(&self) -> Option<Clock>
Get the clock that is used by the pipeline in self
.
self
must be prepared before this method returns a valid clock object.
Returns
the gst::Clock
used by self
. unref after usage.
fn get_do_retransmission(&self) -> bool
fn get_dscp_qos(&self) -> i32
Get the configured DSCP QoS of attached media.
Feature: v1_18
Returns
the DSCP QoS value of attached streams or -1 if disabled.
fn get_element(&self) -> Option<Element>
fn get_latency(&self) -> u32
fn get_max_mcast_ttl(&self) -> u32
Get the the maximum time-to-live value of outgoing multicast packets.
Feature: v1_16
Returns
the maximum time-to-live value of outgoing multicast packets.
fn get_multicast_iface(&self) -> Option<GString>
Get the multicast interface used for self
.
Returns
the multicast interface for self
.
g_free
after usage.
fn get_profiles(&self) -> RTSPProfile
fn get_protocols(&self) -> RTSPLowerTrans
fn get_publish_clock_mode(&self) -> RTSPPublishClockMode
Gets if and how the media clock should be published according to RFC7273.
Returns
The GstRTSPPublishClockMode
fn get_range_string(&self, play: bool, unit: RTSPRangeUnit) -> Option<GString>
Get the current range as a string. self
must be prepared with
gst_rtsp_media_prepare ().
play
for the PLAY request
unit
the unit to use for the string
Returns
The range as a string, g_free
after usage.
fn get_rate_control(&self) -> bool
Feature: v1_18
Returns
whether self
will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.
fn get_rates(&self) -> Option<(f64, f64)>
Get the rate and applied_rate of the current segment.
Feature: v1_18
rate
the rate of the current segment
applied_rate
the applied_rate of the current segment
Returns
false
if looking up the rate and applied rate failed. Otherwise
true
is returned and rate
and applied_rate
are set to the rate and
applied_rate of the current segment.
fn get_retransmission_time(&self) -> ClockTime
Get the amount of time to store retransmission data.
Returns
the amount of time to store retransmission data.
fn get_status(&self) -> RTSPMediaStatus
Get the status of self
. When self
is busy preparing, this function waits
until self
is prepared or in error.
Returns
the status of self
.
fn get_stream(&self, idx: u32) -> Option<RTSPStream>
Retrieve the stream with index idx
from self
.
idx
the stream index
Returns
the RTSPStream
at index
idx
or None
when a stream with that index did not exist.
fn get_suspend_mode(&self) -> RTSPSuspendMode
fn get_transport_mode(&self) -> RTSPTransportMode
fn has_completed_sender(&self) -> bool
See RTSPStreamExt::is_complete
, RTSPStreamExt::is_sender
.
Feature: v1_18
Returns
whether self
has at least one complete sender stream.
fn is_bind_mcast_address(&self) -> bool
Check if multicast sockets are configured to be bound to multicast addresses.
Feature: v1_16
Returns
true
if multicast sockets are configured to be bound to multicast addresses.
fn is_eos_shutdown(&self) -> bool
Check if the pipeline for self
will send an EOS down the pipeline before
unpreparing.
Returns
true
if the media will send EOS before unpreparing.
fn is_receive_only(&self) -> bool
fn is_reusable(&self) -> bool
Check if the pipeline for self
can be reused after an unprepare.
Returns
true
if the media can be reused
fn is_shared(&self) -> bool
Check if the pipeline for self
can be shared between multiple clients.
Returns
true
if the media can be shared between clients.
fn is_stop_on_disconnect(&self) -> bool
Check if the pipeline for self
will be stopped when a client disconnects
without sending TEARDOWN.
Returns
true
if the media will be stopped when a client disconnects
without sending TEARDOWN.
fn is_time_provider(&self) -> bool
Check if self
can provide a gst_net::NetTimeProvider
for its pipeline clock.
Use RTSPMediaExt::get_time_provider
to get the network clock.
Returns
true
if self
can provide a gst_net::NetTimeProvider
.
fn lock(&self)
Lock the entire media. This is needed by callers such as rtsp_client to protect the media when it is shared by many clients. The lock prevents that concurrent clients alters the shared media, while one client already is working with it. Typically the lock is taken in external RTSP API calls that uses shared media such as DESCRIBE, SETUP, ANNOUNCE, TEARDOWN, PLAY, PAUSE.
As best practice take the lock as soon as the function get hold of a shared media object. Release the lock right before the function returns.
Feature: v1_18
fn n_streams(&self) -> u32
fn prepare(&self, thread: Option<&RTSPThread>) -> Result<(), BoolError>
Prepare self
for streaming. This function will create the objects
to manage the streaming. A pipeline must have been set on self
with
RTSPMedia::take_pipeline
.
It will preroll the pipeline and collect vital information about the streams such as the duration.
thread
a RTSPThread
to run the
bus handler or None
Returns
true
on success.
fn set_address_pool<P: IsA<RTSPAddressPool>>(&self, pool: Option<&P>)
fn set_bind_mcast_address(&self, bind_mcast_addr: bool)
Decide whether the multicast socket should be bound to a multicast address or INADDR_ANY.
Feature: v1_16
bind_mcast_addr
the new value
fn set_buffer_size(&self, size: u32)
fn set_clock<P: IsA<Clock>>(&self, clock: Option<&P>)
fn set_do_retransmission(&self, do_retransmission: bool)
Set whether retransmission requests will be sent
Feature: v1_16
fn set_dscp_qos(&self, dscp_qos: i32)
Configure the dscp qos of attached streams to dscp_qos
.
Feature: v1_18
dscp_qos
a new dscp qos value (0-63, or -1 to disable)
fn set_eos_shutdown(&self, eos_shutdown: bool)
Set or unset if an EOS event will be sent to the pipeline for self
before
it is unprepared.
eos_shutdown
the new value
fn set_latency(&self, latency: u32)
fn set_max_mcast_ttl(&self, ttl: u32) -> bool
Set the maximum time-to-live value of outgoing multicast packets.
Feature: v1_16
ttl
the new multicast ttl value
Returns
true
if the requested ttl has been set successfully.
fn set_multicast_iface(&self, multicast_iface: Option<&str>)
fn set_pipeline_state(&self, state: State)
fn set_profiles(&self, profiles: RTSPProfile)
fn set_protocols(&self, protocols: RTSPLowerTrans)
fn set_publish_clock_mode(&self, mode: RTSPPublishClockMode)
Sets if and how the media clock should be published according to RFC7273.
mode
the clock publish mode
fn set_rate_control(&self, enabled: bool)
Define whether self
will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.
Feature: v1_18
fn set_retransmission_time(&self, time: ClockTime)
fn set_reusable(&self, reusable: bool)
Set or unset if the pipeline for self
can be reused after the pipeline has
been unprepared.
reusable
the new value
fn set_shared(&self, shared: bool)
Set or unset if the pipeline for self
can be shared will multiple clients.
When shared
is true
, client requests for this media will share the media
pipeline.
shared
the new value
fn set_state(&self, state: State, transports: &[RTSPStreamTransport]) -> bool
Set the state of self
to state
and for the transports in transports
.
self
must be prepared with RTSPMediaExt::prepare
;
state
the target state of the media
transports
a glib::PtrArray
of RTSPStreamTransport
pointers
Returns
true
on success.
fn set_stop_on_disconnect(&self, stop_on_disconnect: bool)
Set or unset if the pipeline for self
should be stopped when a
client disconnects without sending TEARDOWN.
stop_on_disconnect
the new value
fn set_suspend_mode(&self, mode: RTSPSuspendMode)
Control how @ media will be suspended after the SDP has been generated and after a PAUSE request has been performed.
Media must be unprepared when setting the suspend mode.
mode
the new RTSPSuspendMode
fn set_transport_mode(&self, mode: RTSPTransportMode)
fn suspend(&self) -> Result<(), BoolError>
Suspend self
. The state of the pipeline managed by self
is set to
GST_STATE_NULL but all streams are kept. self
can be prepared again
with RTSPMediaExt::unsuspend
self
must be prepared with RTSPMediaExt::prepare
;
Returns
true
on success.
fn unlock(&self)
Unlock the media.
Feature: v1_18
fn unprepare(&self) -> Result<(), BoolError>
Unprepare self
. After this call, the media should be prepared again before
it can be used again. If the media is set to be non-reusable, a new instance
must be created.
Returns
true
on success.
fn unsuspend(&self) -> Result<(), BoolError>
Unsuspend self
if it was in a suspended state. This method does nothing
when the media was not in the suspended state.
Returns
true
on success.
fn use_time_provider(&self, time_provider: bool)
Set self
to provide a gst_net::NetTimeProvider
.
time_provider
if a gst_net::NetTimeProvider
should be used
fn get_property_bind_mcast_address(&self) -> bool
fn set_property_bind_mcast_address(&self, bind_mcast_address: bool)
fn get_property_dscp_qos(&self) -> i32
fn set_property_dscp_qos(&self, dscp_qos: i32)
fn get_property_eos_shutdown(&self) -> bool
fn get_property_max_mcast_ttl(&self) -> u32
fn set_property_max_mcast_ttl(&self, max_mcast_ttl: u32)
fn get_property_reusable(&self) -> bool
fn get_property_shared(&self) -> bool
fn get_property_stop_on_disconnect(&self) -> bool
fn set_property_time_provider(&self, time_provider: bool)
fn connect_new_state<F: Fn(&Self, i32) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_new_stream<F: Fn(&Self, &RTSPStream) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_prepared<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_removed_stream<F: Fn(&Self, &RTSPStream) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_target_state<F: Fn(&Self, i32) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_unprepared<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_bind_mcast_address_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_buffer_size_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_clock_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_dscp_qos_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_eos_shutdown_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_latency_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_max_mcast_ttl_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_profiles_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_protocols_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_reusable_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_shared_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_stop_on_disconnect_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_suspend_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_time_provider_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
fn connect_property_transport_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
&self,
f: F
) -> SignalHandlerId
Implementors
impl<O: IsA<RTSPMedia>> RTSPMediaExt for O
[src]
fn collect_streams(&self)
[src]
fn create_stream<P: IsA<Element>, Q: IsA<Pad>>(
&self,
payloader: &P,
pad: &Q
) -> Option<RTSPStream>
[src]
&self,
payloader: &P,
pad: &Q
) -> Option<RTSPStream>
fn find_stream(&self, control: &str) -> Option<RTSPStream>
[src]
fn get_address_pool(&self) -> Option<RTSPAddressPool>
[src]
fn get_base_time(&self) -> ClockTime
[src]
fn get_buffer_size(&self) -> u32
[src]
fn get_clock(&self) -> Option<Clock>
[src]
fn get_do_retransmission(&self) -> bool
[src]
fn get_dscp_qos(&self) -> i32
[src]
fn get_element(&self) -> Option<Element>
[src]
fn get_latency(&self) -> u32
[src]
fn get_max_mcast_ttl(&self) -> u32
[src]
fn get_multicast_iface(&self) -> Option<GString>
[src]
fn get_profiles(&self) -> RTSPProfile
[src]
fn get_protocols(&self) -> RTSPLowerTrans
[src]
fn get_publish_clock_mode(&self) -> RTSPPublishClockMode
[src]
fn get_range_string(&self, play: bool, unit: RTSPRangeUnit) -> Option<GString>
[src]
fn get_rate_control(&self) -> bool
[src]
fn get_rates(&self) -> Option<(f64, f64)>
[src]
fn get_retransmission_time(&self) -> ClockTime
[src]
fn get_status(&self) -> RTSPMediaStatus
[src]
fn get_stream(&self, idx: u32) -> Option<RTSPStream>
[src]
fn get_suspend_mode(&self) -> RTSPSuspendMode
[src]
fn get_transport_mode(&self) -> RTSPTransportMode
[src]
fn has_completed_sender(&self) -> bool
[src]
fn is_bind_mcast_address(&self) -> bool
[src]
fn is_eos_shutdown(&self) -> bool
[src]
fn is_receive_only(&self) -> bool
[src]
fn is_reusable(&self) -> bool
[src]
fn is_shared(&self) -> bool
[src]
fn is_stop_on_disconnect(&self) -> bool
[src]
fn is_time_provider(&self) -> bool
[src]
fn lock(&self)
[src]
fn n_streams(&self) -> u32
[src]
fn prepare(&self, thread: Option<&RTSPThread>) -> Result<(), BoolError>
[src]
fn set_address_pool<P: IsA<RTSPAddressPool>>(&self, pool: Option<&P>)
[src]
fn set_bind_mcast_address(&self, bind_mcast_addr: bool)
[src]
fn set_buffer_size(&self, size: u32)
[src]
fn set_clock<P: IsA<Clock>>(&self, clock: Option<&P>)
[src]
fn set_do_retransmission(&self, do_retransmission: bool)
[src]
fn set_dscp_qos(&self, dscp_qos: i32)
[src]
fn set_eos_shutdown(&self, eos_shutdown: bool)
[src]
fn set_latency(&self, latency: u32)
[src]
fn set_max_mcast_ttl(&self, ttl: u32) -> bool
[src]
fn set_multicast_iface(&self, multicast_iface: Option<&str>)
[src]
fn set_pipeline_state(&self, state: State)
[src]
fn set_profiles(&self, profiles: RTSPProfile)
[src]
fn set_protocols(&self, protocols: RTSPLowerTrans)
[src]
fn set_publish_clock_mode(&self, mode: RTSPPublishClockMode)
[src]
fn set_rate_control(&self, enabled: bool)
[src]
fn set_retransmission_time(&self, time: ClockTime)
[src]
fn set_reusable(&self, reusable: bool)
[src]
fn set_shared(&self, shared: bool)
[src]
fn set_state(&self, state: State, transports: &[RTSPStreamTransport]) -> bool
[src]
fn set_stop_on_disconnect(&self, stop_on_disconnect: bool)
[src]
fn set_suspend_mode(&self, mode: RTSPSuspendMode)
[src]
fn set_transport_mode(&self, mode: RTSPTransportMode)
[src]
fn suspend(&self) -> Result<(), BoolError>
[src]
fn unlock(&self)
[src]
fn unprepare(&self) -> Result<(), BoolError>
[src]
fn unsuspend(&self) -> Result<(), BoolError>
[src]
fn use_time_provider(&self, time_provider: bool)
[src]
fn get_property_bind_mcast_address(&self) -> bool
[src]
fn set_property_bind_mcast_address(&self, bind_mcast_address: bool)
[src]
fn get_property_dscp_qos(&self) -> i32
[src]
fn set_property_dscp_qos(&self, dscp_qos: i32)
[src]
fn get_property_eos_shutdown(&self) -> bool
[src]
fn get_property_max_mcast_ttl(&self) -> u32
[src]
fn set_property_max_mcast_ttl(&self, max_mcast_ttl: u32)
[src]
fn get_property_reusable(&self) -> bool
[src]
fn get_property_shared(&self) -> bool
[src]
fn get_property_stop_on_disconnect(&self) -> bool
[src]
fn set_property_time_provider(&self, time_provider: bool)
[src]
fn connect_new_state<F: Fn(&Self, i32) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_new_stream<F: Fn(&Self, &RTSPStream) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_prepared<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_removed_stream<F: Fn(&Self, &RTSPStream) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_target_state<F: Fn(&Self, i32) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_unprepared<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_bind_mcast_address_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_buffer_size_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_clock_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_dscp_qos_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_eos_shutdown_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_latency_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_max_mcast_ttl_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_profiles_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_protocols_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_reusable_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_shared_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_stop_on_disconnect_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_suspend_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_time_provider_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId
fn connect_property_transport_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId
[src]
&self,
f: F
) -> SignalHandlerId