pub struct Planes {
pub width: usize,
pub height: usize,
pub i444: bool,
pub bit_depth: u32,
pub y: Vec<u8>,
pub u: Vec<u8>,
pub v: Vec<u8>,
pub y16: Vec<u16>,
pub u16: Vec<u16>,
pub v16: Vec<u16>,
}Expand description
A planar picture, 4:2:0 or 4:4:4, with tightly packed rows: 8-bit samples in y, u, and
v, or 10-bit ones in y16, u16, and v16, the planes of the other depth staying empty.
Fields§
§width: usize§height: usize§i444: bool§bit_depth: u32§y: Vec<u8>§u: Vec<u8>§v: Vec<u8>§y16: Vec<u16>§u16: Vec<u16>§v16: Vec<u16>Implementations§
Source§impl Planes
impl Planes
pub fn new(width: usize, height: usize, i444: bool, bit_depth: u32) -> Self
pub fn chroma_width(&self) -> usize
Sourcepub fn pointers(&mut self) -> [*mut u8; 3]
pub fn pointers(&mut self) -> [*mut u8; 3]
The planes as a library reads them, whichever depth they hold.
Sourcepub fn sample_bytes(&self) -> usize
pub fn sample_bytes(&self) -> usize
The bytes a sample takes.
Sourcepub fn convert(
&mut self,
pixels: &[u8],
stride: usize,
rgba: bool,
full_range: bool,
bt601: bool,
threads: usize,
) -> Result<(), String>
pub fn convert( &mut self, pixels: &[u8], stride: usize, rgba: bool, full_range: bool, bt601: bool, threads: usize, ) -> Result<(), String>
Convert a packed host frame (stride bytes per row, R,G,B,A when rgba, else B,G,R,A)
into the planes across threads bands, with the BT.709 matrix at full_range, or BT.601
where bt601 names a codec whose bitstream can carry no other, which has no 10 bits.
Auto Trait Implementations§
impl Freeze for Planes
impl RefUnwindSafe for Planes
impl Send for Planes
impl Sync for Planes
impl Unpin for Planes
impl UnsafeUnpin for Planes
impl UnwindSafe for Planes
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
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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&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> ⓘ
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 more