pub struct SingleTimeline { /* private fields */ }Expand description
Wraps a single resolved TimelineComponent as a one-entry collection.
The tree is resolved ONCE at collection construction (plugin-side — the host
only sees Box<dyn TimelineCollection>, audit B1) and the result is stored
as a Result: resolving probes media and can fail, but the entry fn
cannot return a Result across the dylib boundary and panicking there is
UB-adjacent (audit M5). So the error is stored and surfaced per query —
frame builds yield None, timelines carries the error string, and
arrangement yields None.
Trait Implementations§
Source§impl TimelineCollection for SingleTimeline
impl TimelineCollection for SingleTimeline
fn timelines(&self) -> Vec<TimelineInfo>
Source§fn build(
&self,
id: &str,
t: TimelineTime,
target: Resolution,
residency: RasterResidency,
ctx: &mut dyn RenderContext,
) -> Option<RasterImage>
fn build( &self, id: &str, t: TimelineTime, target: Resolution, residency: RasterResidency, ctx: &mut dyn RenderContext, ) -> Option<RasterImage>
Builds a frame with the representation requested by its consumer.
Source§fn arrangement(&self, id: &str) -> Option<Arrangement>
fn arrangement(&self, id: &str) -> Option<Arrangement>
The resolved arrangement tree for
id, for the live UI to introspect. Read moreSource§fn render_audio(
&self,
id: &str,
rate: u32,
channels: u16,
) -> Option<AudioBuffer>
fn render_audio( &self, id: &str, rate: u32, channels: u16, ) -> Option<AudioBuffer>
The block-rendered audio mix-down for
id at rate / channels, for the live
preview to mux into its video stream. None means the collection
contributes no audio (the preview then muxes a silent track for a
consistent A/V stream structure). Defaulted so collections migrate in
stages, mirroring arrangement.Source§fn render_audio_window(
&self,
id: &str,
start: f64,
duration: f64,
rate: u32,
channels: u16,
) -> Option<AudioBuffer>
fn render_audio_window( &self, id: &str, start: f64, duration: f64, rate: u32, channels: u16, ) -> Option<AudioBuffer>
Block-rendered audio mix-down for
[start, start + duration), used by the live
preview when it encodes an individual cache segment. Custom collections
must implement this explicitly to preview audio; falling back to the
whole-track render_audio would reintroduce the
per-segment full-timeline work this API avoids.Auto Trait Implementations§
impl !RefUnwindSafe for SingleTimeline
impl !Sync for SingleTimeline
impl !UnwindSafe for SingleTimeline
impl Freeze for SingleTimeline
impl Send for SingleTimeline
impl Unpin for SingleTimeline
impl UnsafeUnpin for SingleTimeline
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more