X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-core%2Fsrc%2Fscale%2Fcolorcvt.rs;h=bc6c4b6586551fc1ff33e80c3b79cea15ee26bea;hb=5f031d75f99167db3aca5e0bb25c06c487deb236;hp=0343bdddf27dee3aa301b8a4d26778ba0ad478a1;hpb=b36f412c24813b14cb2b1f8fd151863e2a49c1e2;p=nihav.git diff --git a/nihav-core/src/scale/colorcvt.rs b/nihav-core/src/scale/colorcvt.rs index 0343bdd..bc6c4b6 100644 --- a/nihav-core/src/scale/colorcvt.rs +++ b/nihav-core/src/scale/colorcvt.rs @@ -1,6 +1,8 @@ use super::*; use super::kernel::Kernel; +const DEFAULT_YUV: usize = 4; + const YUV_PARAMS: &[[f32; 2]] = &[ [ 0.333, 0.333 ], // RGB [ 0.2126, 0.0722 ], // ITU-R BT709 @@ -172,7 +174,7 @@ impl Kernel for RgbToYuv { fn init(&mut self, in_fmt: &ScaleInfo, dest_fmt: &ScaleInfo) -> ScaleResult { let mut df = dest_fmt.fmt; //todo coeff selection - make_rgb2yuv(YUV_PARAMS[2][0], YUV_PARAMS[2][1], &mut self.matrix); + make_rgb2yuv(YUV_PARAMS[DEFAULT_YUV][0], YUV_PARAMS[DEFAULT_YUV][1], &mut self.matrix); if let ColorModel::YUV(yuvsm) = df.get_model() { match yuvsm { YUVSubmodel::YCbCr => {}, @@ -302,12 +304,12 @@ impl Kernel for YuvToRgb { } } //todo coeff selection - make_yuv2rgb(YUV_PARAMS[2][0], YUV_PARAMS[2][1], &mut self.matrix); + make_yuv2rgb(YUV_PARAMS[DEFAULT_YUV][0], YUV_PARAMS[DEFAULT_YUV][1], &mut self.matrix); if let ColorModel::YUV(yuvsm) = in_fmt.fmt.get_model() { match yuvsm { YUVSubmodel::YCbCr => {}, YUVSubmodel::YIQ => { - make_rgb2yuv(YUV_PARAMS[2][0], YUV_PARAMS[2][1], &mut self.matrix); + make_rgb2yuv(YUV_PARAMS[DEFAULT_YUV][0], YUV_PARAMS[DEFAULT_YUV][1], &mut self.matrix); apply_ntsc_rgb2yiq(SMPTE_NTSC_COEFFS, &mut self.matrix); invert_matrix(&mut self.matrix); },