Trait gstreamer_rtsp_server::RTSPMediaExt [−][src]
pub trait RTSPMediaExt { 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 get_address_pool(&self) -> Option<RTSPAddressPool>; fn get_base_time(&self) -> ClockTime; fn get_buffer_size(&self) -> u32; fn get_clock(&self) -> Option<Clock>; fn get_element(&self) -> Option<Element>; fn get_latency(&self) -> u32; fn get_multicast_iface(&self) -> Option<String>; fn get_profiles(&self) -> RTSPProfile; fn get_protocols(&self) -> RTSPLowerTrans; fn get_publish_clock_mode(&self) -> RTSPPublishClockMode; fn get_range_string(
&self,
play: bool,
unit: RTSPRangeUnit
) -> Option<String>; fn get_retransmission_time(&self) -> ClockTime; fn get_status(&self) -> RTSPMediaStatus; fn get_stream(&self, idx: u32) -> Option<RTSPStream>; fn get_suspend_mode(&self) -> RTSPSuspendMode; fn get_transport_mode(&self) -> RTSPTransportMode; fn is_eos_shutdown(&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 n_streams(&self) -> u32; fn set_address_pool<'a, P: Into<Option<&'a RTSPAddressPool>>>(
&self,
pool: P
); fn set_buffer_size(&self, size: u32); fn set_clock<'a, P: IsA<Clock> + 'a, Q: Into<Option<&'a P>>>(
&self,
clock: Q
); fn set_eos_shutdown(&self, eos_shutdown: bool); fn set_latency(&self, latency: u32); fn set_multicast_iface<'a, P: Into<Option<&'a str>>>(
&self,
multicast_iface: P
); 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_retransmission_time(&self, time: ClockTime); fn set_reusable(&self, reusable: bool); fn set_shared(&self, shared: 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 take_pipeline(&self, pipeline: &Pipeline); fn unprepare(&self) -> Result<(), BoolError>; fn unsuspend(&self) -> Result<(), BoolError>; fn use_time_provider(&self, time_provider: bool); fn get_property_eos_shutdown(&self) -> bool; 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; 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_property_buffer_size_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId; fn connect_property_clock_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId; fn connect_property_element_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId; fn connect_property_eos_shutdown_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId; fn connect_property_latency_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId; fn connect_property_profiles_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId; fn connect_property_protocols_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId; fn connect_property_reusable_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId; fn connect_property_shared_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId; fn connect_property_stop_on_disconnect_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId; fn connect_property_suspend_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId; fn connect_property_time_provider_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId; fn connect_property_transport_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
&self,
f: F
) -> SignalHandlerId; }
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_element(&self) -> Option<Element>
fn get_latency(&self) -> u32
fn get_multicast_iface(&self) -> Option<String>
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<String>
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_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 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_reusable(&self) -> bool
Check if the pipeline for self
can be reused after an unprepare.
Returns
true
if the media can be reused
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 n_streams(&self) -> u32
fn set_address_pool<'a, P: Into<Option<&'a RTSPAddressPool>>>(&self, pool: P)
fn set_buffer_size(&self, size: u32)
fn set_clock<'a, P: IsA<Clock> + 'a, Q: Into<Option<&'a P>>>(&self, clock: Q)
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_multicast_iface<'a, P: Into<Option<&'a str>>>(&self, multicast_iface: P)
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_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
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_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 take_pipeline(&self, pipeline: &Pipeline)
Set pipeline
as the gst::Pipeline
for self
. Ownership is
taken of pipeline
.
pipeline
a gst::Pipeline
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_eos_shutdown(&self) -> bool
fn get_property_reusable(&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_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_element_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_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_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