use crate::ChromaSampling;
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub enum AnnexAPixelFormat {
Known(AnnexAPixelFormatDescriptor),
Unknown([u8; 16]),
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub enum AnnexAPixelFamily {
Luma,
Rgb,
Rgbe,
Cmyk { direct: bool },
Yuv(ChromaSampling),
NComponent,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub enum AnnexANumericKind {
Unsigned,
FixedPoint,
Float,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub enum AnnexABitDepth {
Bit1,
U8,
U10,
U16,
I16,
F16,
I32,
F32,
Rgb555,
Rgb565,
Rgb101010,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub enum AnnexAChannelOrder {
Luma,
Rgb,
Rgbx,
Bgr,
Bgrx,
Rgba,
Bgra,
Cmyk,
Yuv,
Rgbe,
Components,
PackedBgr,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub struct AnnexAPixelFormatDescriptor {
pub family: AnnexAPixelFamily,
pub channels: u8,
pub alpha: bool,
pub premultiplied_alpha: bool,
pub bit_depth: AnnexABitDepth,
pub numeric: AnnexANumericKind,
pub order: AnnexAChannelOrder,
}