// TODO: avoid using float pub fn yuv2rgb(y: u8, u: u8, v: u8) -> (u8, u8, u8){ fn rc(v: f64) -> u8{ v.round().clamp(0., 255.) as u8 } let y = y as f64; let u = u as f64 - 128.; let v = v as f64 - 128.; ( rc(y + 1.402*v), rc(y - 0.344*u - 0.714*v), rc(y + 1.772*u ), ) }