pub struct FileDemuxerHandle { /* private fields */ }Expand description
Runtime control for a FileDemuxer, taken with
FileDemuxer::looping_handle before the demuxer is moved into its
pipeline.
Cheap to clone and safe to share: it holds one atomic flag and nothing else, so it keeps neither the demuxer, its file, nor its pipeline alive. No call blocks or does any work beyond that store. A call after the source has finished is simply never read.
Implementations§
Source§impl FileDemuxerHandle
impl FileDemuxerHandle
Sourcepub fn set_looping(&self, looping: bool)
pub fn set_looping(&self, looping: bool)
Whether reaching the end of the file starts it again instead of ending the stream. Off unless this says otherwise.
Read once per lap, at the end of the file — never mid-file. So
turning it off part way through means “play this lap out and then
finish”, not “stop now”, and the stream still ends with a real
Eos rather than being abandoned the way ControlMsg::Stop
abandons it. Turning it on part way through takes effect at the end
the source was already heading for.
Sourcepub fn is_looping(&self) -> bool
pub fn is_looping(&self) -> bool
What FileDemuxerHandle::set_looping last set.
Sourcepub fn lap_offset(&self) -> Duration
pub fn lap_offset(&self) -> Duration
How far this source’s output timeline has been carried past the file’s own — the sum of every lap already played.
Zero until the first wrap, so a source that never loops never needs
this. What it is for is reading a timestamp back: subtract it from
a packet’s or frame’s timestamp and the result is a position in the
file, which is what a progress bar means by one. See
FileDemuxer’s own docs on why the two are not the same number.
It moves once per lap, so a reader that samples it beside a timestamp from the same moment can be one lap out for the instant either side of a wrap. Nothing here can close that window, and a progress bar that is wrong for one frame at the moment it jumps back to zero is not wrong in a way anyone can see.
Trait Implementations§
Source§impl Clone for FileDemuxerHandle
impl Clone for FileDemuxerHandle
Source§fn clone(&self) -> FileDemuxerHandle
fn clone(&self) -> FileDemuxerHandle
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more