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; }

Trait containing all RTSPMedia methods.

Implementors

RTSPMedia

Required Methods

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.

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. gobject::ObjectExt::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.

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

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.

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.

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

Returns

The transport mode.

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.

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 RTSPMediaExt::get_time_provider to get the network clock.

Returns

true if self can provide a gst_net::NetTimeProvider.

Get the number of streams in this media.

Returns

The number of streams.

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

pool

a RTSPAddressPool

Set the kernel UDP buffer size.

size

the new value

Configure the clock used for the media.

clock

gst::Clock to be used

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

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

Set the amount of time to store retransmission packets.

time

the new value

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

Set or unset if the pipeline for self should be stopped when a client disconnects without sending TEARDOWN.

stop_on_disconnect

the new value

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

Sets if the media pipeline can work in PLAY or RECORD mode

mode

the new value

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.

Set pipeline as the gst::Pipeline for self. Ownership is taken of pipeline.

pipeline

a gst::Pipeline

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.

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.

Set self to provide a gst_net::NetTimeProvider.

time_provider

if a gst_net::NetTimeProvider should be used

Implementors