use crate::enc::helpers::{bt601_cb, bt601_cr, bt601_y};
use crate::pixel_utils::clamp_u8;
#[must_use]
pub fn encode_cl(bgra: &[u8], w: i32, h: i32) -> Vec<u8> {
let wu = w as usize;
let hu = h as usize;
let n = wu * hu;
let mut out = vec![0u8; n * 2];
for i in 0..n {
let px = i * 4;
let r = i32::from(bgra[px + 2]);
let g = i32::from(bgra[px + 1]);
let b = i32::from(bgra[px]);
out[i] = clamp_u8(bt601_y(r, g, b));
let cb_nibble = (clamp_u8(bt601_cb(r, g, b)) >> 4) & 0x0F;
let cr_nibble = (clamp_u8(bt601_cr(r, g, b)) >> 4) & 0x0F;
out[n + i] = (cr_nibble << 4) | cb_nibble;
}
out
}