Trait gstreamer_rtsp_server::prelude::RTSPMediaFactoryExt[][src]

pub trait RTSPMediaFactoryExt: 'static {
Show methods fn construct(&self, url: &RTSPUrl) -> Result<RTSPMedia, BoolError>;
fn create_element(&self, url: &RTSPUrl) -> Result<Element, BoolError>;
fn address_pool(&self) -> Option<RTSPAddressPool>;
fn buffer_size(&self) -> u32;
fn clock(&self) -> Option<Clock>;
fn does_retransmission(&self) -> bool;
fn dscp_qos(&self) -> i32;
fn latency(&self) -> u32;
fn launch(&self) -> Option<GString>;
fn max_mcast_ttl(&self) -> u32;
fn media_gtype(&self) -> Type;
fn multicast_iface(&self) -> Option<GString>;
fn profiles(&self) -> RTSPProfile;
fn protocols(&self) -> RTSPLowerTrans;
fn publish_clock_mode(&self) -> RTSPPublishClockMode;
fn retransmission_time(&self) -> Option<ClockTime>;
fn suspend_mode(&self) -> RTSPSuspendMode;
fn transport_mode(&self) -> RTSPTransportMode;
fn is_bind_mcast_address(&self) -> bool;
fn is_enable_rtcp(&self) -> bool;
fn is_eos_shutdown(&self) -> bool;
fn is_shared(&self) -> bool;
fn is_stop_on_disonnect(&self) -> bool;
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_enable_rtcp(&self, enable: bool);
fn set_eos_shutdown(&self, eos_shutdown: bool);
fn set_latency(&self, latency: u32);
fn set_launch(&self, launch: &str);
fn set_max_mcast_ttl(&self, ttl: u32) -> bool;
fn set_media_gtype(&self, media_gtype: Type);
fn set_multicast_iface(&self, multicast_iface: Option<&str>);
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: impl Into<Option<ClockTime>>);
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 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 is_stop_on_disconnect(&self) -> bool;
fn connect_media_configure<F: Fn(&Self, &RTSPMedia) + Send + Sync + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId;
fn connect_media_constructed<F: Fn(&Self, &RTSPMedia) + 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_enable_rtcp_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_launch_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_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_transport_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId;
}
Expand description

Required methods

Construct the media object and create its streams. Implementations should create the needed gstreamer elements and add them to the result object. No state changes should be performed on them yet.

One or more GstRTSPStream objects should be created from the result with gst_rtsp_media_create_stream ().

After the media is constructed, it can be configured and then prepared with gst_rtsp_media_prepare ().

url

the url used

Returns

a new RTSPMedia if the media could be prepared.

Construct and return a gst::Element that is a gst::Bin containing the elements to use for streaming the media.

The bin should contain payloaders pay`d` for each stream. The default implementation of this function returns the bin created from the launch parameter.

url

the url used

Returns

a new gst::Element.

Get the RTSPAddressPool used as the address pool of self.

Returns

the RTSPAddressPool of self. g_object_unref() after usage.

Get the kernel UDP buffer size.

Returns

the kernel UDP buffer size.

Returns the clock that is going to be used by the pipelines of all medias created from this factory.

Returns

The GstClock

This is supported on crate feature v1_16 only.

Returns

Whether retransmission requests will be sent for receiving media

This is supported on crate feature v1_18 only.

Get the configured media DSCP QoS.

Returns

the media DSCP QoS value or -1 if disabled.

Get the latency that is used for receiving media

Returns

latency in milliseconds

Get the gst_parse_launch() pipeline description that will be used in the default prepare vmethod.

Returns

the configured launch description. g_free() after usage.

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.

Return the GType of the GstRTSPMedia subclass this factory will create.

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 time that is stored for retransmission purposes

Returns

a GstClockTime

Get how media created from this factory will be suspended.

Returns

a RTSPSuspendMode.

Get if media created from this factory can be used for PLAY or RECORD methods.

Returns

The transport mode.

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.

This is supported on crate feature v1_20 only.

Check if created media will send and receive RTCP

Returns

true if created media will send and receive RTCP

Get if media created from this factory will have an EOS event sent to the pipeline before shutdown.

Returns

true if the media will receive EOS before shutdown.

Get if media created from this factory can be shared between clients.

Returns

true if the media will be shared between clients.

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

Configures a specific clock to be used by the pipelines of all medias created from this factory.

clock

the clock to be used by the media factory

This is supported on crate feature v1_16 only.

Set whether retransmission requests will be sent for receiving media

This is supported on crate feature v1_18 only.

Configure the media dscp qos to dscp_qos.

dscp_qos

a new dscp qos value (0-63, or -1 to disable)

This is supported on crate feature v1_20 only.

Decide whether the created media should send and receive RTCP

enable

the new value

Configure if media created from this factory will have an EOS sent to the pipeline before shutdown.

eos_shutdown

the new value

Configure the latency used for receiving media

latency

latency in milliseconds

The gst_parse_launch() line to use for constructing the pipeline in the default prepare vmethod.

The pipeline description should return a GstBin as the toplevel element which can be accomplished by enclosing the description with brackets ‘(’ ‘)’.

The description should return a pipeline with payloaders named pay0, pay1, etc.. Each of the payloaders will result in a stream.

launch

the launch description

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 the GType of the GstRTSPMedia subclass to create (by default, overridden construct vmethods may of course do something different)

media_gtype

the GType of the class to create

configure multicast_iface to be used for self.

multicast_iface

a multicast interface name

Configure the allowed profiles 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

Configure the time to store for possible retransmission

time

a GstClockTime

This is supported on crate feature v1_20 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_16 only.
This is supported on crate feature v1_20 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_20 only.
This is supported on crate feature v1_16 only.
This is supported on crate feature v1_20 only.