av_data::pixel

Struct Chromaton

Source
pub struct Chromaton {
    pub h_ss: u8,
    pub v_ss: u8,
    pub packed: bool,
    pub depth: u8,
    pub shift: u8,
    pub comp_offs: u8,
    pub next_elem: u8,
}
Expand description

Single colorspace component definition.

Defines how the components of a colorspace are subsampled and where and how they are stored.

Fields§

§h_ss: u8

Horizontal subsampling in power of two (e.g. 0 = no subsampling, 1 = only every second value is stored).

§v_ss: u8

Vertical subsampling in power of two (e.g. 0 = no subsampling, 1 = only every second value is stored).

§packed: bool

Tells if a component is packed.

§depth: u8

Bit depth of a component.

§shift: u8

Shift for packed components.

§comp_offs: u8

Component offset for byte-packed components.

§next_elem: u8

The distance to the next packed element in bytes.

Implementations§

Source§

impl Chromaton

Source

pub const fn new( h_ss: u8, v_ss: u8, packed: bool, depth: u8, shift: u8, comp_offs: u8, next_elem: u8, ) -> Self

Constructs a new Chromaton instance.

Source

pub const fn yuv8(h_ss: u8, v_ss: u8, comp_offs: u8) -> Chromaton

Constructs a specific Chromaton instance for yuv8.

Source

pub const fn yuvhb(h_ss: u8, v_ss: u8, depth: u8, comp_offs: u8) -> Chromaton

Constructs a specific Chromaton instance for yuvhb.

Source

pub const fn packrgb( depth: u8, shift: u8, comp_offs: u8, next_elem: u8, ) -> Chromaton

Constructs a specific Chromaton instance for packrgb.

Source

pub const fn pal8(comp_offs: u8) -> Chromaton

Constructs a specific Chromaton instance for pal8.

Source

pub fn get_subsampling(self) -> (u8, u8)

Returns the subsampling of a component.

Source

pub fn is_packed(self) -> bool

Tells whether a component is packed.

Source

pub fn get_depth(self) -> u8

Returns the bit depth of a component.

Source

pub fn get_shift(self) -> u8

Returns the bit shift of a packed component.

Source

pub fn get_offset(self) -> u8

Returns the byte offset of a packed component.

Source

pub fn get_step(self) -> u8

Returns the byte offset to the next element of a packed component.

Source

pub fn get_width(self, width: usize) -> usize

Calculates the width for a component from general image width.

Source

pub fn get_height(self, height: usize) -> usize

Calculates the height for a component from general image height.

Source

pub fn get_linesize(self, width: usize, alignment: usize) -> usize

Calculates the minimal stride for a component from general image width.

Source

pub fn get_data_size(self, width: usize, height: usize, align: usize) -> usize

Calculates the required image size in pixels for a component from general image width.

Trait Implementations§

Source§

impl Clone for Chromaton

Source§

fn clone(&self) -> Chromaton

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Chromaton

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Display for Chromaton

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Hash for Chromaton

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Chromaton

Source§

fn eq(&self, other: &Chromaton) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Chromaton

Source§

impl Eq for Chromaton

Source§

impl StructuralPartialEq for Chromaton

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

Source§

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

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> 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> ToString for T
where T: Display + ?Sized,

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.