#[non_exhaustive]pub enum PixelFormat {
Yuv420p,
Yuv422p,
Yuv444p,
Yuv420p10,
Yuv422p10,
Yuv444p10,
Yuv420p12,
Yuv422p12,
Yuv444p12,
Rgb24,
Rgba,
}Expand description
Raw pixel layout of a decoded video frame. A small starter subset.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Yuv420p
Planar Y’CbCr 4:2:0, 8-bit (the workhorse for H.264).
Yuv422p
Planar Y’CbCr 4:2:2, 8-bit.
Yuv444p
Planar Y’CbCr 4:4:4, 8-bit.
Yuv420p10
Planar Y’CbCr 4:2:0, 10-bit (each sample stored as little-endian u16).
Yuv422p10
Planar Y’CbCr 4:2:2, 10-bit (little-endian u16 samples).
Yuv444p10
Planar Y’CbCr 4:4:4, 10-bit (little-endian u16 samples).
Yuv420p12
Planar Y’CbCr 4:2:0, 12-bit (little-endian u16 samples).
Yuv422p12
Planar Y’CbCr 4:2:2, 12-bit (little-endian u16 samples).
Yuv444p12
Planar Y’CbCr 4:4:4, 12-bit (little-endian u16 samples).
Rgb24
Packed RGB, 8 bits per channel.
Rgba
Packed RGBA, 8 bits per channel.
Implementations§
Source§impl PixelFormat
impl PixelFormat
pub fn name(self) -> &'static str
Sourcepub fn bit_depth(self) -> u32
pub fn bit_depth(self) -> u32
Bits per component sample (8 for the 8-bit formats, 10 for the 10-bit planar ones).
Sourcepub fn bytes_per_sample(self) -> usize
pub fn bytes_per_sample(self) -> usize
Bytes used to store one component sample: 1 for 8-bit, 2 for the 10-bit
formats (whose samples live in the low bits of a little-endian u16).