Skip to main content

FrameCache

Struct FrameCache 

Source
pub struct FrameCache { /* private fields */ }
Expand description

Decoded frames held in memory for ranges of a film, so those ranges play without the decoder — an instant start, a loop that never waits on a keyframe.

Ranges are frame numbers, start included and end not, counted from the first frame at the file’s frame rate. The frames are the ranges’ frames, in order, end to end.

Implementations§

Source§

impl FrameCache

Source

pub fn new(ranges: Vec<(u64, u64)>, frames: Vec<Frame>) -> Result<Self>

A cache of frames for ranges.

§Errors

Error::Unsupported for an empty or backwards range, ranges that overlap, or a number of frames that is not what the ranges add up to — each of which would serve the wrong picture rather than fail later.

Source

pub fn get(&self, number: u64) -> Option<&Frame>

The frame numbered number, if a range covers it.

Source

pub fn ranges(&self) -> &[(u64, u64)]

The ranges, sorted.

Source

pub fn len(&self) -> usize

How many frames it holds.

Source

pub fn is_empty(&self) -> bool

Whether it holds none.

Source

pub fn byte_len(&self) -> usize

The memory its pictures take, for holding a show to a budget.

Trait Implementations§

Source§

impl Clone for FrameCache

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FrameCache

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.