pub struct Frame {
pub width: u16,
pub height: u16,
pub ybuf: Vec<u8>,
pub ubuf: Vec<u8>,
pub vbuf: Vec<u8>,
pub keyframe: bool,
version: u8,
pub for_display: bool,
pub pixel_type: u8,
filter_type: bool,
filter_level: u8,
sharpness_level: u8,
}
Expand description
A Representation of the last decoded video frame
Fields§
§width: u16
The width of the luma plane
height: u16
The height of the luma plane
ybuf: Vec<u8>
The luma plane of the frame
ubuf: Vec<u8>
The blue plane of the frame
vbuf: Vec<u8>
The red plane of the frame
keyframe: bool
Indicates whether this frame is a keyframe
version: u8
§for_display: bool
Indicates whether this frame is intended for display
pixel_type: u8
The pixel type of the frame as defined by Section 9.2 of the VP8 Specification
filter_type: bool
§filter_level: u8
§sharpness_level: u8
Implementations§
source§impl Frame
impl Frame
sourcefn chroma_width(&self) -> u16
fn chroma_width(&self) -> u16
Chroma plane is half the size of the Luma plane
fn chroma_height(&self) -> u16
sourcepub(crate) fn fill_rgba(&self, buf: &mut [u8])
pub(crate) fn fill_rgba(&self, buf: &mut [u8])
Fills an rgba buffer by skipping the alpha values
sourcefn fill_single(y: u8, u: u8, v: u8, rgb: &mut [u8])
fn fill_single(y: u8, u: u8, v: u8, rgb: &mut [u8])
Conversion values from https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#converting-8-bit-yuv-to-rgb888
sourcepub fn get_buf_size(&self) -> usize
pub fn get_buf_size(&self) -> usize
Gets the buffer size
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Frame
impl RefUnwindSafe for Frame
impl Send for Frame
impl Sync for Frame
impl Unpin for Frame
impl UnwindSafe for Frame
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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>
Converts
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>
Converts
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 moresource§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian()
.