Trait gstreamer_rtsp_server::RTSPStreamExt[][src]

pub trait RTSPStreamExt {
    fn add_transport(
        &self,
        trans: &RTSPStreamTransport
    ) -> Result<(), BoolError>;
fn get_address_pool(&self) -> Option<RTSPAddressPool>;
fn get_buffer_size(&self) -> u32;
fn get_caps(&self) -> Option<Caps>;
fn get_control(&self) -> Option<String>;
fn get_current_seqnum(&self) -> u16;
fn get_dscp_qos(&self) -> i32;
fn get_index(&self) -> u32;
fn get_joined_bin(&self) -> Option<Bin>;
fn get_mtu(&self) -> u32;
fn get_multicast_address(&self, family: SocketFamily) -> Option<RTSPAddress>;
fn get_multicast_iface(&self) -> Option<String>;
fn get_profiles(&self) -> RTSPProfile;
fn get_protocols(&self) -> RTSPLowerTrans;
fn get_pt(&self) -> u32;
fn get_publish_clock_mode(&self) -> RTSPPublishClockMode;
fn get_retransmission_pt(&self) -> u32;
fn get_retransmission_time(&self) -> ClockTime;
fn get_rtcp_multicast_socket(&self, family: SocketFamily) -> Option<Socket>;
fn get_rtcp_socket(&self, family: SocketFamily) -> Option<Socket>;
fn get_rtp_multicast_socket(&self, family: SocketFamily) -> Option<Socket>;
fn get_rtp_socket(&self, family: SocketFamily) -> Option<Socket>;
fn get_rtpinfo(&self) -> Option<(u32, u32, u32, ClockTime)>;
fn get_rtpsession(&self) -> Option<Object>;
fn get_sinkpad(&self) -> Option<Pad>;
fn get_srcpad(&self) -> Option<Pad>;
fn get_srtp_encoder(&self) -> Option<Element>;
fn get_ssrc(&self) -> u32;
fn has_control<'a, P: Into<Option<&'a str>>>(&self, control: P) -> 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) -> FlowReturn;
fn recv_rtp(&self, buffer: &Buffer) -> FlowReturn;
fn remove_transport(
        &self,
        trans: &RTSPStreamTransport
    ) -> Result<(), BoolError>;
fn request_aux_sender(&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<'a, P: Into<Option<&'a RTSPAddressPool>>>(
        &self,
        pool: P
    );
fn set_blocked(&self, blocked: bool) -> bool;
fn set_buffer_size(&self, size: u32);
fn set_client_side(&self, client_side: bool);
fn set_control<'a, P: Into<Option<&'a str>>>(&self, control: P);
fn set_dscp_qos(&self, dscp_qos: i32);
fn set_mtu(&self, mtu: u32);
fn set_multicast_iface<'a, P: Into<Option<&'a str>>>(
        &self,
        multicast_iface: P
    );
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_retransmission_pt(&self, rtx_pt: u32);
fn set_retransmission_time(&self, time: ClockTime);
fn set_seqnum_offset(&self, seqnum: u16);
fn unblock_linked(&self) -> bool;
fn update_crypto<'a, P: Into<Option<&'a Caps>>>(
        &self,
        ssrc: u32,
        crypto: P
    ) -> 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_property_control_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; }

Trait containing all RTSPStream methods.

Implementors

RTSPStream

Required Methods

Add the transport in trans to self. The media of self will then also be send to the values configured in trans.

self must be joined to a bin.

trans must contain a valid gst_rtsp::RTSPTransport.

trans

a RTSPStreamTransport

Returns

true if trans was added

Get the RTSPAddressPool used as the address pool of self.

Returns

the RTSPAddressPool of self. gobject::ObjectExt::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 RTSPStreamExt::join_bin or NULL.

Returns

the joined bin or NULL.

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. RTSPAddress::free after usage.

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

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.

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.

rtptime

result RTP timestamp

seq

result RTP seqnum

clock_rate

the clock rate

running_time

result running-time

Returns

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

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.

ssrc

result ssrc

Check if self has the control string control.

control

a control string

Returns

true is self has control as the control string

Check if self is blocking on a gst::Buffer.

Returns

true if self is blocking

See RTSPStreamExt::set_client_side

Returns

TRUE if this RTSPStream is client-side.

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.

Checks whether the stream is a receiver.

Returns

true if the stream is a receiver and false otherwise.

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 gst_rtsp::RTSPTransport.

trans

a RTSPStreamTransport

Returns

true if trans was removed

Creating a rtxsend bin

sessid

the session id

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 be reserved. RTSPAddress::free after usage.

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

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)

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

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 gst::ClockTime

Update the new crypto information for ssrc in self. If information for ssrc did not exist, it will be added. If information for ssrc existed, it will be replaced. If crypto is None, it will be removed from self.

ssrc

the SSRC

crypto

a gst::Caps with crypto info

Returns

true if crypto could be updated

Implementors