Skip to main content

Context

Struct Context 

Source
pub struct Context {
    pub bus: Bus,
    pub pipeline_id: Arc<str>,
    pub graph: PipelineGraph,
    pub clock: Arc<Clock>,
    pub playback_clock: Arc<PlaybackClock>,
    pub source_id: ElementId,
    /* private fields */
}
Expand description

Everything a crate::pipeline::ChainBuilder/crate::elements::Tee needs to wire itself into a crate::pipeline::Pipeline — bundled into one Arc instead of threading bus/pipeline_id/graph/the wall and playback clocks through separately. Built once per source by crate::pipeline::PipelineBuilder::add_source (what crate::pipeline::Pipeline::new itself calls, for its own single-source case) and handed to that source’s own wire closure; a crate::elements::Tee keeps its own clone while it is alive, and its crate::elements::TeeHandle accesses that clone weakly so retaining the handle cannot keep the pipeline’s Bus open after the Tee itself is gone.

Fields§

§bus: Bus

Sender used by this source and its attached branches for asynchronous errors, EOS, drops, and seek completion.

§pipeline_id: Arc<str>

Caller-selected identity of the pipeline currently being wired.

§graph: PipelineGraph

Shared live topology graph updated by successful attach and detach operations.

§clock: Arc<Clock>

Wall-time clock shared by paced elements in this pipeline.

§playback_clock: Arc<PlaybackClock>

Shared media-position clock used to hand video scheduling from the wall clock to an audio output master without changing pipelines.

§source_id: ElementId

Graph identity of the source whose wiring closure owns this context.

Implementations§

Source§

impl Context

Source

pub fn branch(self: &Arc<Self>) -> ChainBuilder

Starts a detached branch plan scoped to this source and pipeline.

Building the branch allocates its runtime elements but does not publish them in the graph until Self::attach succeeds.

Source

pub fn attach<S: Source>( &self, source: &mut S, pad_index: usize, branch: DetachedBranch, ) -> Result<BranchId>

Atomically attaches a completed branch to one source pad.

Returns the stable branch identity used by later dynamic graph operations. An invalid index or already-linked pad returns a GraphError without changing either the runtime connection or graph. If a lifecycle or seek operation is in progress, this returns GraphError::TimelineOperationInProgress immediately; build a fresh detached branch and retry after that operation finishes.

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