pub(super) struct Frame<'a> {Show 13 fields
pub key: bool,
pub pts: u64,
pub key_pts: u64,
pub recon: VASurfaceID,
pub coded: VABufferID,
pub reference: Option<(u64, VASurfaceID)>,
pub held: &'a [(u64, VASurfaceID, bool)],
pub anchored: bool,
pub anchor: Option<u8>,
pub long_term: &'a [(u64, u8)],
pub qp: u32,
pub slots: SlotPlan,
pub slot_surfaces: [VASurfaceID; 3],
}Expand description
One frame as the codec arms see it: what it is, where its reconstruction and coded output go, and what it may predict from.
Fields§
§key: bool§pts: u64The session’s count of encoded frames.
key_pts: u64The count at the last key frame, where a codec’s own counters restart.
recon: VASurfaceID§coded: VABufferID§reference: Option<(u64, VASurfaceID)>The frame predicted from, by timestamp and reconstruction surface.
held: &'a [(u64, VASurfaceID, bool)]Every frame the decoder holds, oldest first, with the surface each was reconstructed into and whether a client lost it.
anchored: boolWhether the session keeps long-term anchors, its key frame the first.
anchor: Option<u8>The long-term index the frame is marked under, an anchor (ReferenceWindow::plan_anchor).
long_term: &'a [(u64, u8)]The anchors among held, by timestamp, with the long-term index each is marked under.
qp: u32The quantizer, in the codec’s domain, of a constant-quantizer session.
slots: SlotPlanVP8’s buffer plan.
slot_surfaces: [VASurfaceID; 3]The surface each VP8 buffer holds, LAST, GOLDEN, ALTREF.
Auto Trait Implementations§
impl<'a> Freeze for Frame<'a>
impl<'a> RefUnwindSafe for Frame<'a>
impl<'a> Send for Frame<'a>
impl<'a> Sync for Frame<'a>
impl<'a> Unpin for Frame<'a>
impl<'a> UnsafeUnpin for Frame<'a>
impl<'a> UnwindSafe for Frame<'a>
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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.§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.§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.§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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more