fn rv40_chroma_mc(dst: &mut [u8], mut didx: usize, dstride: usize, src: &[u8], mut sidx: usize, sstride: usize, size: usize, x: usize, y: usize) {
if (x == 0) && (y == 0) {
for _ in 0..size {
- for x in 0..size { dst[didx + x] = src[sidx + x]; }
+ dst[didx..][..size].copy_from_slice(&src[sidx..][..size]);
didx += dstride;
sidx += sstride;
}
}
}
+#[allow(clippy::type_complexity)]
pub struct RV40DSP {
luma_mc: [[fn (&mut [u8], usize, usize, &[u8], usize, usize); 16]; 2],
}
let q1 = el!(pix, off + step);
let q2 = el!(pix, off + 2*step);
- let str;
+ let strength;
if filter_p1 && filter_q1 {
- str = (t << 2) + (p1 - q1);
+ strength = (t << 2) + (p1 - q1);
} else {
- str = t << 2;
+ strength = t << 2;
}
- let diff = clip_symm((str + 4) >> 3, lim_p0q0);
+ let diff = clip_symm((strength + 4) >> 3, lim_p0q0);
pix[off - step] = clip8(p0 + diff);
pix[off ] = clip8(q0 - diff);
let q1 = el!(ch, 3 + 1);
let q2 = el!(ch, 3 + 2);
- let str;
+ let strength;
if filter_p1 && filter_q1 {
- str = (t << 2) + (p1 - q1);
+ strength = (t << 2) + (p1 - q1);
} else {
- str = t << 2;
+ strength = t << 2;
}
- let diff = clip_symm((str + 4) >> 3, lim_p0q0);
+ let diff = clip_symm((strength + 4) >> 3, lim_p0q0);
ch[3 - 1] = clip8(p0 + diff);
ch[3 ] = clip8(q0 - diff);
const C_RIGHT_COL_MASK: u32 = 0xA;
impl RV34DSP for RV40DSP {
+ #[allow(clippy::cognitive_complexity)]
fn loop_filter(&self, frame: &mut NAVideoBuffer<u8>, _ftype: FrameType, mbinfo: &[RV34MBInfo], mb_w: usize, mb_h: usize, row: usize) {
// todo proper B-frame filtering?
let mut offs: [usize; 3] = [0; 3];