X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-core%2Fsrc%2Fformats.rs;h=0cc24a1033933203c7cdb3446ef4d2ee75e5de73;hb=a191f568b14cfba727449e77444cf0bcc931c01a;hp=53b28dcfcdb9ede589ad8c3ee2b3d0d6e0aeb8e8;hpb=5641dccfbf2a70d589cf094a0d4ed5a10f919f00;p=nihav.git diff --git a/nihav-core/src/formats.rs b/nihav-core/src/formats.rs index 53b28dc..0cc24a1 100644 --- a/nihav-core/src/formats.rs +++ b/nihav-core/src/formats.rs @@ -297,6 +297,18 @@ impl ColorModel { _ => 3, } } + pub fn is_rgb(&self) -> bool { + match *self { + ColorModel::RGB(_) => true, + _ => false, + } + } + pub fn is_yuv(&self) -> bool { + match *self { + ColorModel::YUV(_) => true, + _ => false, + } + } } impl fmt::Display for ColorModel { @@ -315,13 +327,13 @@ impl fmt::Display for ColorModel { #[derive(Clone,Copy,PartialEq)] pub struct NAPixelChromaton { - h_ss: u8, - v_ss: u8, - packed: bool, - depth: u8, - shift: u8, - comp_offs: u8, - next_elem: u8, + 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, } pub const FORMATON_FLAG_BE :u32 = 0x01; @@ -331,13 +343,13 @@ pub const FORMATON_FLAG_PALETTE :u32 = 0x04; #[derive(Clone,Copy,PartialEq)] pub struct NAPixelFormaton { - model: ColorModel, - components: u8, - comp_info: [Option; 5], - elem_size: u8, - be: bool, - alpha: bool, - palette: bool, + pub model: ColorModel, + pub components: u8, + pub comp_info: [Option; 5], + pub elem_size: u8, + pub be: bool, + pub alpha: bool, + pub palette: bool, } macro_rules! chromaton { @@ -404,6 +416,9 @@ pub const RGB24_FORMAT: NAPixelFormaton = NAPixelFormaton { model: ColorModel::R elem_size: 3, be: false, alpha: false, palette: false }; impl NAPixelChromaton { + pub fn new(h_ss: u8, v_ss: u8, packed: bool, depth: u8, shift: u8, comp_offs: u8, next_elem: u8) -> Self { + Self { h_ss, v_ss, packed, depth, shift, comp_offs, next_elem } + } pub fn get_subsampling(&self) -> (u8, u8) { (self.h_ss, self.v_ss) } pub fn is_packed(&self) -> bool { self.packed } pub fn get_depth(&self) -> u8 { self.depth }