pub struct VideoPlayback { /* private fields */ }Expand description
Video playback state manager.
Implementations§
Source§impl VideoPlayback
impl VideoPlayback
Sourcepub fn start(
&self,
path: &Path,
hw_accel: HwAccel,
) -> VideoResult<VideoMetadata>
pub fn start( &self, path: &Path, hw_accel: HwAccel, ) -> VideoResult<VideoMetadata>
Start video playback from a file, replacing any active playback.
Sourcepub fn pause(&self)
pub fn pause(&self)
Pause playback: the display loop keeps presenting the last frame, the scheduler freezes its clock, and the decode thread stops decoding so the CPU stays idle.
Sourcepub fn seek(&self, timestamp: Duration) -> VideoResult<()>
pub fn seek(&self, timestamp: Duration) -> VideoResult<()>
Seek to a specific timestamp. Both the scheduler clock and the decoder stream are repositioned, and stale queued frames are discarded.
Sourcepub fn next_frame(&self) -> Option<VideoFrame>
pub fn next_frame(&self) -> Option<VideoFrame>
Pull the next frame that should be presented.
Returns Some(frame) when a new frame must be uploaded to the GPU, and
None when the currently shown texture should be presented unchanged
(duplicate frame, decoder behind, or playback paused).
Sourcepub fn wait_first_frame(&self, timeout: Duration) -> Option<VideoFrame>
pub fn wait_first_frame(&self, timeout: Duration) -> Option<VideoFrame>
Block until the first frame is available or the timeout elapses.
Used at commit time so the transition’s incoming image is the video’s actual first frame instead of a black placeholder.
Sourcepub fn current_frame(&self) -> Option<VideoFrame>
pub fn current_frame(&self) -> Option<VideoFrame>
Get the last presented frame without advancing playback.
Sourcepub fn metadata(&self) -> Option<VideoMetadata>
pub fn metadata(&self) -> Option<VideoMetadata>
Get video metadata of the active playback.
Sourcepub fn decoder_info(&self) -> Option<DecoderInfo>
pub fn decoder_info(&self) -> Option<DecoderInfo>
Get decoder diagnostics for the active playback.
Sourcepub fn hw_accel_in_use(&self) -> HwAccel
pub fn hw_accel_in_use(&self) -> HwAccel
The hardware backend actually used by the active decoder.
Sourcepub fn is_playing(&self) -> bool
pub fn is_playing(&self) -> bool
Check if a video is currently active.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for VideoPlayback
impl RefUnwindSafe for VideoPlayback
impl Send for VideoPlayback
impl Sync for VideoPlayback
impl Unpin for VideoPlayback
impl UnsafeUnpin for VideoPlayback
impl UnwindSafe for VideoPlayback
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.