Trait gstreamer_rtsp_server::prelude::RTSPStreamExt[][src]

pub trait RTSPStreamExt: 'static {
Show methods fn add_multicast_client_address(
        &self,
        destination: &str,
        rtp_port: u32,
        rtcp_port: u32,
        family: SocketFamily
    ) -> bool;
fn add_transport<P: IsA<RTSPStreamTransport>>(
        &self,
        trans: &P
    ) -> Result<(), BoolError>;
fn address_pool(&self) -> Option<RTSPAddressPool>;
fn buffer_size(&self) -> u32;
fn caps(&self) -> Option<Caps>;
fn control(&self) -> Option<GString>;
fn current_seqnum(&self) -> u16;
fn dscp_qos(&self) -> i32;
fn index(&self) -> u32;
fn joined_bin(&self) -> Option<Bin>;
fn max_mcast_ttl(&self) -> u32;
fn mtu(&self) -> u32;
fn multicast_address(&self, family: SocketFamily) -> Option<RTSPAddress>;
fn multicast_client_addresses(&self) -> Option<GString>;
fn multicast_iface(&self) -> Option<GString>;
fn profiles(&self) -> RTSPProfile;
fn protocols(&self) -> RTSPLowerTrans;
fn pt(&self) -> u32;
fn publish_clock_mode(&self) -> RTSPPublishClockMode;
fn is_rate_control(&self) -> bool;
fn rates(&self) -> Option<(f64, f64)>;
fn retransmission_pt(&self) -> u32;
fn retransmission_time(&self) -> Option<ClockTime>;
fn rtcp_multicast_socket(&self, family: SocketFamily) -> Option<Socket>;
fn rtcp_socket(&self, family: SocketFamily) -> Option<Socket>;
fn rtp_multicast_socket(&self, family: SocketFamily) -> Option<Socket>;
fn rtp_socket(&self, family: SocketFamily) -> Option<Socket>;
fn rtpinfo(&self) -> Option<(u32, u32, u32, Option<ClockTime>)>;
fn rtpsession(&self) -> Option<Object>;
fn sinkpad(&self) -> Option<Pad>;
fn srcpad(&self) -> Option<Pad>;
fn srtp_encoder(&self) -> Option<Element>;
fn ssrc(&self) -> u32;
fn is_ulpfec_enabled(&self) -> bool;
fn ulpfec_percentage(&self) -> u32;
fn ulpfec_pt(&self) -> u32;
fn handle_keymgmt(&self, keymgmt: &str) -> bool;
fn has_control(&self, control: Option<&str>) -> bool;
fn is_bind_mcast_address(&self) -> bool;
fn is_blocking(&self) -> bool;
fn is_client_side(&self) -> bool;
fn is_complete(&self) -> bool;
fn is_receiver(&self) -> bool;
fn is_sender(&self) -> bool;
fn join_bin<P: IsA<Bin>, Q: IsA<Element>>(
        &self,
        bin: &P,
        rtpbin: &Q,
        state: State
    ) -> Result<(), BoolError>;
fn leave_bin<P: IsA<Bin>, Q: IsA<Element>>(
        &self,
        bin: &P,
        rtpbin: &Q
    ) -> Result<(), BoolError>;
fn recv_rtcp(&self, buffer: &Buffer) -> Result<FlowSuccess, FlowError>;
fn recv_rtp(&self, buffer: &Buffer) -> Result<FlowSuccess, FlowError>;
fn remove_transport<P: IsA<RTSPStreamTransport>>(
        &self,
        trans: &P
    ) -> Result<(), BoolError>;
fn request_aux_receiver(&self, sessid: u32) -> Option<Element>;
fn request_aux_sender(&self, sessid: u32) -> Option<Element>;
fn request_ulpfec_decoder<P: IsA<Element>>(
        &self,
        rtpbin: &P,
        sessid: u32
    ) -> Option<Element>;
fn request_ulpfec_encoder(&self, sessid: u32) -> Option<Element>;
fn reserve_address(
        &self,
        address: &str,
        port: u32,
        n_ports: u32,
        ttl: u32
    ) -> Option<RTSPAddress>;
fn seekable(&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_blocked(&self, blocked: bool) -> Result<(), BoolError>;
fn set_buffer_size(&self, size: u32);
fn set_client_side(&self, client_side: bool);
fn set_control(&self, control: Option<&str>);
fn set_dscp_qos(&self, dscp_qos: i32);
fn set_max_mcast_ttl(&self, ttl: u32) -> bool;
fn set_mtu(&self, mtu: u32);
fn set_multicast_iface(&self, multicast_iface: Option<&str>);
fn set_profiles(&self, profiles: RTSPProfile);
fn set_protocols(&self, protocols: RTSPLowerTrans);
fn set_pt_map(&self, pt: u32, caps: &Caps);
fn set_publish_clock_mode(&self, mode: RTSPPublishClockMode);
fn set_rate_control(&self, enabled: bool);
fn set_retransmission_pt(&self, rtx_pt: u32);
fn set_retransmission_time(&self, time: impl Into<Option<ClockTime>>);
fn set_seqnum_offset(&self, seqnum: u16);
fn set_ulpfec_percentage(&self, percentage: u32);
fn set_ulpfec_pt(&self, pt: u32);
fn transport_filter(
        &self,
        func: Option<&mut dyn FnMut(&RTSPStream, &RTSPStreamTransport) -> RTSPFilterResult>
    ) -> Vec<RTSPStreamTransport>;
fn unblock_linked(&self) -> Result<(), BoolError>;
fn update_crypto(
        &self,
        ssrc: u32,
        crypto: Option<&Caps>
    ) -> Result<(), BoolError>;
fn verify_mcast_ttl(&self, ttl: u32) -> bool;
fn connect_new_rtcp_encoder<F: Fn(&Self, &Element) + Send + Sync + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId;
fn connect_new_rtp_encoder<F: Fn(&Self, &Element) + Send + Sync + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId;
fn connect_new_rtp_rtcp_decoder<F: Fn(&Self, &Element) + Send + Sync + 'static>(
        &self,
        f: F
    ) -> SignalHandlerId;
fn connect_control_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;
}
Expand description

Trait containing all RTSPStream methods.

Implementors

RTSPStream

Required methods

This is supported on crate feature v1_16 only.

Add multicast client address to stream. At this point, the sockets that will stream RTP and RTCP data to destination are supposed to be allocated.

destination

a multicast address to add

rtp_port

RTP port

rtcp_port

RTCP port

family

socket family

Returns

true if destination can be addedd and handled by self.

Add the transport in trans to self. The media of self will then also be send to the values configured in trans. Adding the same transport twice will not add it a second time.

self must be joined to a bin.

trans must contain a valid GstRTSPTransport.

trans

a RTSPStreamTransport

Returns

true if trans was added

Get the RTSPAddressPool used as the address pool of self.

Returns

the RTSPAddressPool of self. g_object_unref() after usage.

Get the size of the UDP transmission buffer (in bytes)

Returns

the size of the UDP TX buffer

Retrieve the current caps of self.

Returns

the gst::Caps of self. use gst_caps_unref() after usage.

Get the control string to identify this stream.

Returns

the control string. g_free() after usage.

Get the configured DSCP QoS in of the outgoing sockets.

Returns

the DSCP QoS value of the outgoing sockets, or -1 if disbled.

Get the stream index.

Returns

the stream index.

Get the previous joined bin with join_bin() or NULL.

Returns

the joined bin or NULL.

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 configured MTU in the payloader of self.

Returns

the MTU of the payloader.

Get the multicast address of self for family. The original RTSPAddress is cached and copy is returned, so freeing the return value won’t release the address from the pool.

family

the gio::SocketFamily

Returns

the RTSPAddress of self or None when no address could be allocated. gst_rtsp_address_free() after usage.

This is supported on crate feature v1_16 only.

Get all multicast client addresses that RTP data will be sent to

Returns

A comma separated list of host:port pairs with destinations

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

Get the stream payload type.

Returns

the stream payload type.

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

Returns

The GstRTSPPublishClockMode

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.

Retrieve the current rate and/or applied_rate.

Returns

true if rate and/or applied_rate could be determined.

rate

the configured rate

applied_rate

the configured applied_rate

Get the payload-type used for retransmission of this stream

Returns

The retransmission PT.

Get the amount of time to store retransmission data.

Returns

the amount of time to store retransmission data.

This is supported on crate feature v1_14 only.

Get the multicast RTCP socket from self for a family.

family

the socket family

Returns

the multicast RTCP socket or None if no socket could be allocated for family. Unref after usage

Get the RTCP socket from self for a family.

self must be joined to a bin.

family

the socket family

Returns

the RTCP socket or None if no socket could be allocated for family. Unref after usage

Get the multicast RTP socket from self for a family.

family

the socket family

Returns

the multicast RTP socket or None if no

socket could be allocated for family. Unref after usage

Get the RTP socket from self for a family.

self must be joined to a bin.

family

the socket family

Returns

the RTP socket or None if no socket could be allocated for family. Unref after usage

Retrieve the current rtptime, seq and running-time. This is used to construct a RTPInfo reply header.

Returns

true when rtptime, seq and running-time could be determined.

rtptime

result RTP timestamp

seq

result RTP seqnum

clock_rate

the clock rate

running_time

result running-time

Get the RTP session of this stream.

Returns

The RTP session of this stream. Unref after usage.

Get the sinkpad associated with self.

Returns

the sinkpad. Unref after usage.

Get the srcpad associated with self.

Returns

the srcpad. Unref after usage.

Get the SRTP encoder for this stream.

Returns

The SRTP encoder for this stream. Unref after usage.

Get the SSRC used by the RTP session of this stream. This function can only be called when self has been joined.

Returns

ssrc

result ssrc

This is supported on crate feature v1_16 only.

Returns

the amount of redundancy applied when creating ULPFEC protection packets.

This is supported on crate feature v1_16 only.

Returns

the payload type used for ULPFEC protection packets

This is supported on crate feature v1_16 only.

Parse and handle a KeyMgmt header.

keymgmt

a keymgmt header

Check if self has the control string control.

control

a control string

Returns

true is self has control as the control string

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 self is blocking on a gst::Buffer.

Returns

true if self is blocking

See set_client_side()

Returns

TRUE if this RTSPStream is client-side.

This is supported on crate feature v1_14 only.

Checks whether the stream is complete, contains the receiver and the sender parts. As the stream contains sink(s) element(s), it’s possible to perform seek operations on it.

Returns

true if the stream contains at least one sink element.

This is supported on crate feature v1_14 only.

Checks whether the stream is a receiver.

Returns

true if the stream is a receiver and false otherwise.

This is supported on crate feature v1_14 only.

Checks whether the stream is a sender.

Returns

true if the stream is a sender and false otherwise.

Join the gst::Bin bin that contains the element rtpbin.

self will link to rtpbin, which must be inside bin. The elements added to bin will be set to the state given in state.

bin

a gst::Bin to join

rtpbin

a rtpbin element in bin

state

the target state of the new elements

Returns

true on success.

Remove the elements of self from bin.

bin

a gst::Bin

rtpbin

a rtpbin gst::Element

Returns

true on success.

Handle an RTCP buffer for the stream. This method is usually called when a message has been received from a client using the TCP transport.

This function takes ownership of buffer.

buffer

a gst::Buffer

Returns

a GstFlowReturn.

Handle an RTP buffer for the stream. This method is usually called when a message has been received from a client using the TCP transport.

This function takes ownership of buffer.

buffer

a gst::Buffer

Returns

a GstFlowReturn.

Remove the transport in trans from self. The media of self will not be sent to the values configured in trans.

self must be joined to a bin.

trans must contain a valid GstRTSPTransport.

trans

a RTSPStreamTransport

Returns

true if trans was removed

This is supported on crate feature v1_16 only.

Creating a rtxreceive bin

sessid

the session id

Returns

a gst::Element.

Creating a rtxsend bin

sessid

the session id

Returns

a gst::Element.

This is supported on crate feature v1_16 only.

Creating a rtpulpfecdec element

Returns

a gst::Element.

This is supported on crate feature v1_16 only.

Creating a rtpulpfecenc element

Returns

a gst::Element.

Reserve address and port as the address and port of self. The original RTSPAddress is cached and copy is returned, so freeing the return value won’t release the address from the pool.

address

an address

port

a port

n_ports

n_ports

ttl

a TTL

Returns

the RTSPAddress of self or None when the address could not be reserved. gst_rtsp_address_free() after usage.

This is supported on crate feature v1_14 only.

Checks whether the individual self is seekable.

Returns

true if self is seekable, else false.

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

Blocks or unblocks the dataflow on self.

blocked

boolean indicating we should block or unblock

Returns

true on success

Set the size of the UDP transmission buffer (in bytes) Needs to be set before the stream is joined to a bin.

size

the buffer size

Sets the RTSPStream as a ‘client side’ stream - used for sending streams to an RTSP server via RECORD. This has the practical effect of changing which UDP port numbers are used when setting up the local side of the stream sending to be either the ‘server’ or ‘client’ pair of a configured UDP transport.

client_side

TRUE if this RTSPStream is running on the ‘client’ side of an RTSP connection.

Set the control string in self.

control

a control string

Configure the dscp qos of the outgoing sockets to dscp_qos.

dscp_qos

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

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 mtu in the payloader of self to mtu.

mtu

a new MTU

configure multicast_iface to be used for self.

multicast_iface

a multicast interface name

Configure the allowed profiles for self.

profiles

the new profiles

Configure the allowed lower transport for self.

protocols

the new flags

Configure a pt map between pt and caps.

pt

the pt

caps

a gst::Caps

Sets if and how the stream 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 payload type (pt) for retransmission of this stream.

rtx_pt

a guint

Set the amount of time to store retransmission packets.

time

a GstClockTime

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_16 only.

Implementors

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_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_14 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_16 only.
This is supported on crate feature v1_16 only.
This is supported on crate feature v1_14 only.
This is supported on crate feature v1_14 only.
This is supported on crate feature v1_14 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_16 only.
This is supported on crate feature v1_14 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_16 only.
This is supported on crate feature v1_16 only.