Skip to main content

TrackEndpoints

Enum TrackEndpoints 

Source
pub enum TrackEndpoints {
    Send(WebRtcTrackSink),
    Recv(WebRtcTrackSource),
    SendRecv(WebRtcTrackSink, WebRtcTrackSource),
    Inactive,
}
Available on crate feature webrtc only.
Expand description

The endpoints a track actually has, which is exactly what its negotiated Direction allows — a SendOnly track carries no WebRtcTrackSource because nothing will ever arrive on it, and a RecvOnly one carries no WebRtcTrackSink because str0m has no send capability for it.

The variant is the direction, so there is no separate field the two could disagree with. Pushing into a sink that does not exist, or waiting on a source that does not, is a compile error rather than something that silently does nothing.

Fixed for the life of the track: these are handed out once, when the track attaches, and a remote peer that later renegotiates a different direction is reported on the Bus instead (see WebRtcHandle::next_track).

Variants§

§

Send(WebRtcTrackSink)

Direction::SendOnly — outbound only.

§

Recv(WebRtcTrackSource)

Direction::RecvOnly — inbound only.

§

SendRecv(WebRtcTrackSink, WebRtcTrackSource)

Direction::SendRecv — both, on the one track.

§

Inactive

Direction::Inactive — neither, for now. Still handed out: the track exists and its mid is negotiated, so a caller matching attachments against its own WebRtcHandle::add_track calls has to see it.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more