Trait gstreamer_rtsp_server::prelude::RTSPMediaExt [−][src]
pub trait RTSPMediaExt: 'static {
Show methods
fn collect_streams(&self);
fn create_stream<P: IsA<Element>, Q: IsA<Pad>>(
&self,
payloader: &P,
pad: &Q
) -> Option<RTSPStream>;
fn find_stream(&self, control: &str) -> Option<RTSPStream>;
fn address_pool(&self) -> Option<RTSPAddressPool>;
fn base_time(&self) -> Option<ClockTime>;
fn buffer_size(&self) -> u32;
fn clock(&self) -> Option<Clock>;
fn does_retransmission(&self) -> bool;
fn dscp_qos(&self) -> i32;
fn element(&self) -> Option<Element>;
fn latency(&self) -> u32;
fn max_mcast_ttl(&self) -> u32;
fn multicast_iface(&self) -> Option<GString>;
fn profiles(&self) -> RTSPProfile;
fn protocols(&self) -> RTSPLowerTrans;
fn publish_clock_mode(&self) -> RTSPPublishClockMode;
fn range_string(&self, play: bool, unit: RTSPRangeUnit) -> Option<GString>;
fn is_rate_control(&self) -> bool;
fn rates(&self) -> Option<(f64, f64)>;
fn retransmission_time(&self) -> Option<ClockTime>;
fn status(&self) -> RTSPMediaStatus;
fn stream(&self, idx: u32) -> Option<RTSPStream>;
fn suspend_mode(&self) -> RTSPSuspendMode;
fn time_provider(
&self,
address: Option<&str>,
port: u16
) -> Option<NetTimeProvider>;
fn transport_mode(&self) -> RTSPTransportMode;
fn has_completed_sender(&self) -> bool;
fn is_bind_mcast_address(&self) -> bool;
fn is_eos_shutdown(&self) -> bool;
fn is_receive_only(&self) -> bool;
fn is_reusable(&self) -> bool;
fn is_shared(&self) -> bool;
fn is_stop_on_disconnect(&self) -> bool;
fn is_time_provider(&self) -> bool;
fn lock(&self);
fn n_streams(&self) -> u32;
fn prepare(&self, thread: Option<&RTSPThread>) -> Result<(), BoolError>;
fn set_address_pool<P: IsA<RTSPAddressPool>>(&self, pool: Option<&P>);
fn set_bind_mcast_address(&self, bind_mcast_addr: bool);
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);
fn set_dscp_qos(&self, dscp_qos: i32);
fn set_eos_shutdown(&self, eos_shutdown: bool);
fn set_latency(&self, latency: u32);
fn set_max_mcast_ttl(&self, ttl: u32) -> bool;
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);
fn set_rate_control(&self, enabled: bool);
fn set_retransmission_time(&self, time: impl Into<Option<ClockTime>>);
fn set_reusable(&self, reusable: bool);
fn set_shared(&self, shared: bool);
fn set_state(
&self,
state: State,
transports: &[RTSPStreamTransport]
) -> bool;
fn set_stop_on_disconnect(&self, stop_on_disconnect: bool);
fn set_suspend_mode(&self, mode: RTSPSuspendMode);
fn set_transport_mode(&self, mode: RTSPTransportMode);
fn suspend(&self) -> Result<(), BoolError>;
fn unlock(&self);
fn unprepare(&self) -> Result<(), BoolError>;
fn unsuspend(&self) -> Result<(), BoolError>;
fn use_time_provider(&self, time_provider: bool);
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_max_mcast_ttl(&self) -> u32;
fn set_property_max_mcast_ttl(&self, max_mcast_ttl: u32);
fn set_time_provider(&self, time_provider: bool);
fn connect_new_state<F: Fn(&Self, i32) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_new_stream<F: Fn(&Self, &RTSPStream) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_prepared<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_removed_stream<F: Fn(&Self, &RTSPStream) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_target_state<F: Fn(&Self, i32) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_unprepared<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_bind_mcast_address_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_buffer_size_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_clock_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_dscp_qos_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_eos_shutdown_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_latency_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_max_mcast_ttl_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_profiles_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_protocols_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_reusable_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_shared_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_stop_on_disconnect_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_suspend_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_time_provider_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
fn connect_transport_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId;
}Expand description
Required methods
fn collect_streams(&self)[src]
fn collect_streams(&self)[src]Find all payloader elements, they should be named pay`din the element ofself, 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`din the element ofself, and create GstRTSPStreams` for them.
fn create_stream<P: IsA<Element>, Q: IsA<Pad>>(
&self,
payloader: &P,
pad: &Q
) -> Option<RTSPStream>[src]
fn create_stream<P: IsA<Element>, Q: IsA<Pad>>(
&self,
payloader: &P,
pad: &Q
) -> Option<RTSPStream>[src]Create a new stream in self that provides RTP data on pad.
pad should be a pad of an element inside self->element.
payloader
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>[src]
fn find_stream(&self, control: &str) -> Option<RTSPStream>[src]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 address_pool(&self) -> Option<RTSPAddressPool>[src]
fn address_pool(&self) -> Option<RTSPAddressPool>[src]Get the RTSPAddressPool used as the address pool of self.
Returns
the RTSPAddressPool of self.
g_object_unref() after usage.
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 buffer_size(&self) -> u32[src]
fn buffer_size(&self) -> u32[src]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 does_retransmission(&self) -> bool[src]
fn does_retransmission(&self) -> bool[src]v1_16 only.Returns
Whether retransmission requests will be sent
v1_18 only.Get the configured DSCP QoS of attached media.
Returns
the DSCP QoS value of attached streams or -1 if disabled.
fn max_mcast_ttl(&self) -> u32[src]
fn max_mcast_ttl(&self) -> u32[src]v1_16 only.Get the the maximum time-to-live value of outgoing multicast packets.
Returns
the maximum time-to-live value of outgoing multicast packets.
fn multicast_iface(&self) -> Option<GString>[src]
fn multicast_iface(&self) -> Option<GString>[src]Get the multicast interface used for self.
Returns
the multicast interface for self.
g_free() after usage.
fn profiles(&self) -> RTSPProfile[src]
fn profiles(&self) -> RTSPProfile[src]fn protocols(&self) -> RTSPLowerTrans[src]
fn protocols(&self) -> RTSPLowerTrans[src]fn publish_clock_mode(&self) -> RTSPPublishClockMode[src]
fn publish_clock_mode(&self) -> RTSPPublishClockMode[src]Gets if and how the media clock should be published according to RFC7273.
Returns
The GstRTSPPublishClockMode
fn range_string(&self, play: bool, unit: RTSPRangeUnit) -> Option<GString>[src]
fn range_string(&self, play: bool, unit: RTSPRangeUnit) -> Option<GString>[src]fn is_rate_control(&self) -> bool[src]
fn is_rate_control(&self) -> bool[src]v1_18 only.Returns
whether self will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.
v1_18 only.Get the rate and 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.
rate
the rate of the current segment
applied_rate
the applied_rate of the current segment
fn retransmission_time(&self) -> Option<ClockTime>[src]
fn retransmission_time(&self) -> Option<ClockTime>[src]Get the amount of time to store retransmission data.
Returns
the amount of time to store retransmission data.
fn status(&self) -> RTSPMediaStatus[src]
fn status(&self) -> RTSPMediaStatus[src]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 stream(&self, idx: u32) -> Option<RTSPStream>[src]
fn stream(&self, idx: u32) -> Option<RTSPStream>[src]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 suspend_mode(&self) -> RTSPSuspendMode[src]
fn suspend_mode(&self) -> RTSPSuspendMode[src]fn time_provider(
&self,
address: Option<&str>,
port: u16
) -> Option<NetTimeProvider>[src]
fn time_provider(
&self,
address: Option<&str>,
port: u16
) -> Option<NetTimeProvider>[src]Get the gst_net::NetTimeProvider for the clock used by self. The time provider
will listen on address and port for client time requests.
address
an address or None
port
a port or 0
Returns
the gst_net::NetTimeProvider of self.
fn transport_mode(&self) -> RTSPTransportMode[src]
fn transport_mode(&self) -> RTSPTransportMode[src]fn has_completed_sender(&self) -> bool[src]
fn has_completed_sender(&self) -> bool[src]v1_18 only.See RTSPStreamExt::is_complete(), RTSPStreamExt::is_sender().
Returns
whether self has at least one complete sender stream.
fn is_bind_mcast_address(&self) -> bool[src]
fn is_bind_mcast_address(&self) -> bool[src]v1_16 only.fn is_eos_shutdown(&self) -> bool[src]
fn is_eos_shutdown(&self) -> bool[src]fn is_receive_only(&self) -> bool[src]
fn is_receive_only(&self) -> bool[src]v1_18 only.fn is_reusable(&self) -> bool[src]
fn is_reusable(&self) -> bool[src]fn is_stop_on_disconnect(&self) -> bool[src]
fn is_stop_on_disconnect(&self) -> bool[src]fn is_time_provider(&self) -> bool[src]
fn is_time_provider(&self) -> bool[src]Check if self can provide a gst_net::NetTimeProvider for its pipeline clock.
Use time_provider() to get the network clock.
Returns
true if self can provide a gst_net::NetTimeProvider.
v1_18 only.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.
Prepare self for streaming. This function will create the objects
to manage the streaming. A pipeline must have been set on self with
RTSPMediaExtManual::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>)[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_bind_mcast_address(&self, bind_mcast_addr: bool)[src]v1_16 only.Decide whether the multicast socket should be bound to a multicast address or INADDR_ANY.
bind_mcast_addr
the new value
fn set_buffer_size(&self, size: u32)[src]
fn set_buffer_size(&self, size: u32)[src]fn set_do_retransmission(&self, do_retransmission: bool)[src]
fn set_do_retransmission(&self, do_retransmission: bool)[src]v1_16 only.Set whether retransmission requests will be sent
fn set_dscp_qos(&self, dscp_qos: i32)[src]
fn set_dscp_qos(&self, dscp_qos: i32)[src]v1_18 only.Configure the dscp qos of attached streams to dscp_qos.
dscp_qos
a new dscp qos value (0-63, or -1 to disable)
fn set_eos_shutdown(&self, eos_shutdown: bool)[src]
fn set_eos_shutdown(&self, eos_shutdown: bool)[src]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)[src]
fn set_latency(&self, latency: u32)[src]fn set_max_mcast_ttl(&self, ttl: u32) -> bool[src]
fn set_max_mcast_ttl(&self, ttl: u32) -> bool[src]v1_16 only.fn set_multicast_iface(&self, multicast_iface: Option<&str>)[src]
fn set_multicast_iface(&self, multicast_iface: Option<&str>)[src]fn set_pipeline_state(&self, state: State)[src]
fn set_pipeline_state(&self, state: State)[src]fn set_profiles(&self, profiles: RTSPProfile)[src]
fn set_profiles(&self, profiles: RTSPProfile)[src]fn set_protocols(&self, protocols: RTSPLowerTrans)[src]
fn set_protocols(&self, protocols: RTSPLowerTrans)[src]fn set_publish_clock_mode(&self, mode: RTSPPublishClockMode)[src]
fn set_publish_clock_mode(&self, mode: RTSPPublishClockMode)[src]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)[src]
fn set_rate_control(&self, enabled: bool)[src]v1_18 only.Define whether self will follow the Rate-Control=no behaviour as specified
in the ONVIF replay spec.
fn set_retransmission_time(&self, time: impl Into<Option<ClockTime>>)[src]
fn set_retransmission_time(&self, time: impl Into<Option<ClockTime>>)[src]fn set_reusable(&self, reusable: 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 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_max_mcast_ttl(&self) -> u32[src]fn set_property_max_mcast_ttl(&self, max_mcast_ttl: u32)[src]fn set_time_provider(&self, time_provider: bool)[src]fn connect_new_state<F: Fn(&Self, i32) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_new_stream<F: Fn(&Self, &RTSPStream) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_prepared<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_removed_stream<F: Fn(&Self, &RTSPStream) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_target_state<F: Fn(&Self, i32) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_unprepared<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_bind_mcast_address_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_buffer_size_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_clock_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_dscp_qos_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_eos_shutdown_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_latency_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_max_mcast_ttl_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_profiles_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_protocols_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_reusable_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_stop_on_disconnect_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_suspend_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_time_provider_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_transport_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]Implementors
fn create_stream<P: IsA<Element>, Q: IsA<Pad>>(
&self,
payloader: &P,
pad: &Q
) -> Option<RTSPStream>[src]v1_16 only.v1_16 only.v1_18 only.v1_18 only.v1_16 only.v1_18 only.v1_16 only.v1_16 only.v1_18 only.v1_16 only.v1_18 only.fn connect_new_state<F: Fn(&Self, i32) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_new_stream<F: Fn(&Self, &RTSPStream) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_removed_stream<F: Fn(&Self, &RTSPStream) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_target_state<F: Fn(&Self, i32) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_bind_mcast_address_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_buffer_size_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_dscp_qos_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_eos_shutdown_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_latency_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_max_mcast_ttl_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_profiles_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_protocols_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_reusable_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_stop_on_disconnect_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_suspend_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_time_provider_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]fn connect_transport_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId[src]