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

pub trait RTSPMediaFactoryExt: 'static {
    fn construct(&self, url: &RTSPUrl) -> Result<RTSPMedia, BoolError>;
fn create_element(&self, url: &RTSPUrl) -> Result<Element, BoolError>;
fn get_address_pool(&self) -> Option<RTSPAddressPool>;
fn get_buffer_size(&self) -> u32;
fn get_clock(&self) -> Option<Clock>;
fn get_do_retransmission(&self) -> bool;
fn get_dscp_qos(&self) -> i32;
fn get_latency(&self) -> u32;
fn get_launch(&self) -> Option<GString>;
fn get_max_mcast_ttl(&self) -> u32;
fn get_media_gtype(&self) -> Type;
fn get_multicast_iface(&self) -> Option<GString>;
fn get_profiles(&self) -> RTSPProfile;
fn get_protocols(&self) -> RTSPLowerTrans;
fn get_publish_clock_mode(&self) -> RTSPPublishClockMode;
fn get_retransmission_time(&self) -> ClockTime;
fn get_suspend_mode(&self) -> RTSPSuspendMode;
fn get_transport_mode(&self) -> RTSPTransportMode;
fn is_bind_mcast_address(&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_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: 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_eos_shutdown(&self) -> bool;
fn get_property_max_mcast_ttl(&self) -> u32;
fn set_property_max_mcast_ttl(&self, max_mcast_ttl: u32);
fn get_property_shared(&self) -> bool;
fn get_property_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_property_bind_mcast_address_notify<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_dscp_qos_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_launch_notify<F: Fn(&Self) + Send + Sync + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId;
fn connect_property_max_mcast_ttl_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_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_transport_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId; }

Trait containing all RTSPMediaFactory methods.

Implementors

RTSPMediaFactoryURI, RTSPMediaFactory

Required methods

fn construct(&self, url: &RTSPUrl) -> Result<RTSPMedia, BoolError>

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.

fn create_element(&self, url: &RTSPUrl) -> Result<Element, BoolError>

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.

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_buffer_size(&self) -> u32

Get the kernel UDP buffer size.

Returns

the kernel UDP buffer size.

fn get_clock(&self) -> Option<Clock>

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

Returns

The GstClock

fn get_do_retransmission(&self) -> bool

Feature: v1_16

Returns

Whether retransmission requests will be sent for receiving media

fn get_dscp_qos(&self) -> i32

Get the configured media DSCP QoS.

Feature: v1_18

Returns

the media DSCP QoS value or -1 if disabled.

fn get_latency(&self) -> u32

Get the latency that is used for receiving media

Returns

latency in milliseconds

fn get_launch(&self) -> Option<GString>

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.

fn get_max_mcast_ttl(&self) -> u32

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

Feature: v1_16

Returns

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

fn get_media_gtype(&self) -> Type

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

fn get_multicast_iface(&self) -> Option<GString>

Get the multicast interface used for self.

Returns

the multicast interface for self. g_free after usage.

fn get_profiles(&self) -> RTSPProfile

Get the allowed profiles of self.

Returns

a gst_rtsp::RTSPProfile

fn get_protocols(&self) -> RTSPLowerTrans

Get the allowed protocols of self.

Returns

a gst_rtsp::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_retransmission_time(&self) -> ClockTime

Get the time that is stored for retransmission purposes

Returns

a gst::ClockTime

fn get_suspend_mode(&self) -> RTSPSuspendMode

Get how media created from this factory will be suspended.

Returns

a RTSPSuspendMode.

fn get_transport_mode(&self) -> RTSPTransportMode

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

Returns

The transport mode.

fn is_bind_mcast_address(&self) -> bool

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

Feature: v1_16

Returns

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

fn is_eos_shutdown(&self) -> bool

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.

fn is_shared(&self) -> bool

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

Returns

true if the media will be shared between clients.

fn is_stop_on_disonnect(&self) -> bool

fn set_address_pool<P: IsA<RTSPAddressPool>>(&self, pool: Option<&P>)

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

pool

a RTSPAddressPool

fn set_bind_mcast_address(&self, bind_mcast_addr: bool)

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

Feature: v1_16

bind_mcast_addr

the new value

fn set_buffer_size(&self, size: u32)

Set the kernel UDP buffer size.

size

the new value

fn set_clock<P: IsA<Clock>>(&self, clock: Option<&P>)

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

fn set_do_retransmission(&self, do_retransmission: bool)

Set whether retransmission requests will be sent for receiving media

Feature: v1_16

fn set_dscp_qos(&self, dscp_qos: i32)

Configure the media dscp qos to dscp_qos.

Feature: v1_18

dscp_qos

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

fn set_eos_shutdown(&self, eos_shutdown: bool)

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

eos_shutdown

the new value

fn set_latency(&self, latency: u32)

Configure the latency used for receiving media

latency

latency in milliseconds

fn set_launch(&self, launch: &str)

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

fn set_max_mcast_ttl(&self, ttl: u32) -> bool

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

Feature: v1_16

ttl

the new multicast ttl value

Returns

true if the requested ttl has been set successfully.

fn set_media_gtype(&self, media_gtype: Type)

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

fn set_multicast_iface(&self, multicast_iface: Option<&str>)

configure multicast_iface to be used for self.

multicast_iface

a multicast interface name

fn set_profiles(&self, profiles: RTSPProfile)

Configure the allowed profiles for self.

profiles

the new flags

fn set_protocols(&self, protocols: RTSPLowerTrans)

Configure the allowed lower transport for self.

protocols

the new flags

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)

Configure the time to store for possible retransmission

time

a gst::ClockTime

fn set_shared(&self, shared: bool)

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

shared

the new value

fn set_stop_on_disconnect(&self, stop_on_disconnect: bool)

Configure if media created from this factory should be stopped when a client disconnects without sending TEARDOWN.

stop_on_disconnect

the new value

fn set_suspend_mode(&self, mode: RTSPSuspendMode)

Configure how media created from this factory will be suspended.

mode

the new RTSPSuspendMode

fn set_transport_mode(&self, mode: RTSPTransportMode)

Configure if this factory creates media for PLAY or RECORD modes.

mode

the new value

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_eos_shutdown(&self) -> bool

fn get_property_max_mcast_ttl(&self) -> u32

fn set_property_max_mcast_ttl(&self, max_mcast_ttl: u32)

fn get_property_shared(&self) -> bool

fn get_property_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_property_bind_mcast_address_notify<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_dscp_qos_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_launch_notify<F: Fn(&Self) + Send + Sync + 'static>(
    &self,
    f: F
) -> SignalHandlerId

fn connect_property_max_mcast_ttl_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_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_transport_mode_notify<F: Fn(&Self) + Send + Sync + 'static>(
    &self,
    f: F
) -> SignalHandlerId

Loading content...

Implementors

impl<O: IsA<RTSPMediaFactory>> RTSPMediaFactoryExt for O[src]

Loading content...