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

Trait containing all RTSPMedia methods.

Implementors

RTSPMedia

Required methods

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.

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.

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.

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.

Get the kernel UDP buffer size.

Returns

the kernel UDP buffer size.

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.

This is supported on crate feature v1_16 only.

Returns

Whether retransmission requests will be sent

This is supported on crate feature v1_18 only.

Get the configured DSCP QoS of attached media.

Returns

the DSCP QoS value of attached streams or -1 if disabled.

Get the element that was used when constructing self.

Returns

a gst::Element. Unref after usage.

Get the latency that is used for receiving media.

Returns

latency in milliseconds

This is supported on crate feature 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.

Get the multicast interface used for self.

Returns

the multicast interface for self. g_free() after usage.

Get the allowed profiles of self.

Returns

a gst_rtsp::RTSPProfile

Get the allowed protocols of self.

Returns

a gst_rtsp::RTSPLowerTrans

Gets if and how the media clock should be published according to RFC7273.

Returns

The GstRTSPPublishClockMode

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.

This is supported on crate feature v1_18 only.

Returns

whether self will follow the Rate-Control=no behaviour as specified in the ONVIF replay spec.

This is supported on crate feature 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

Get the amount of time to store retransmission data.

Returns

the amount of time to store retransmission data.

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.

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.

Get how self will be suspended.

Returns

RTSPSuspendMode.

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.

Check if the pipeline for self can be used for PLAY or RECORD methods.

Returns

The transport mode.

This is supported on crate feature v1_18 only.

See RTSPStreamExt::is_complete(), RTSPStreamExt::is_sender().

Returns

whether self has at least one complete sender stream.

This is supported on crate feature v1_16 only.

Check if multicast sockets are configured to be bound to multicast addresses.

Returns

true if multicast sockets are configured to be bound to multicast addresses.

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.

This is supported on crate feature v1_18 only.

Returns

true if self is receive-only, false otherwise.

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.

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.

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.

This is supported on crate feature 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.

Get the number of streams in this media.

Returns

The number of streams.

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.

configure pool to be used as the address pool of self.

pool

a RTSPAddressPool

This is supported on crate feature v1_16 only.

Decide whether the multicast socket should be bound to a multicast address or INADDR_ANY.

bind_mcast_addr

the new value

Set the kernel UDP buffer size.

size

the new value

Configure the clock used for the media.

clock

gst::Clock to be used

This is supported on crate feature v1_16 only.

Set whether retransmission requests will be sent

This is supported on crate feature 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)

Set or unset if an EOS event will be sent to the pipeline for self before it is unprepared.

eos_shutdown

the new value

Configure the latency used for receiving media.

latency

latency in milliseconds

This is supported on crate feature v1_16 only.

Set the maximum time-to-live value of outgoing multicast packets.

ttl

the new multicast ttl value

Returns

true if the requested ttl has been set successfully.

configure multicast_iface to be used for self.

multicast_iface

a multicast interface name

Set the state of the pipeline managed by self to state

state

the target state of the pipeline

Configure the allowed lower transport for self.

profiles

the new flags

Configure the allowed lower transport for self.

protocols

the new flags

Sets if and how the media clock should be published according to RFC7273.

mode

the clock publish mode

This is supported on crate feature v1_18 only.

Define whether self will follow the Rate-Control=no behaviour as specified in the ONVIF replay spec.

Set the amount of time to store retransmission packets.

time

the new value

This is supported on crate feature v1_18 only.

Implementors

This is supported on crate feature v1_16 only.
This is supported on crate feature v1_18 only.
This is supported on crate feature v1_16 only.
This is supported on crate feature v1_18 only.
This is supported on crate feature v1_18 only.
This is supported on crate feature v1_18 only.
This is supported on crate feature v1_16 only.
This is supported on crate feature v1_18 only.
This is supported on crate feature v1_18 only.
This is supported on crate feature v1_16 only.
This is supported on crate feature v1_16 only.
This is supported on crate feature v1_18 only.
This is supported on crate feature v1_16 only.
This is supported on crate feature v1_18 only.
This is supported on crate feature v1_18 only.