X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-duck%2Fsrc%2Fcodecs%2Fvp78dsp.rs;h=e69a5abedd8700fcb6f72632f990888039c5f470;hb=6f2630992fe340ad1a122ec10c649f756e478185;hp=04545bd40754b64c6cdd26e3f6353c04294a02a8;hpb=0cc75664f579f511681ee7000741484a1d849061;p=nihav.git diff --git a/nihav-duck/src/codecs/vp78dsp.rs b/nihav-duck/src/codecs/vp78dsp.rs index 04545bd..e69a5ab 100644 --- a/nihav-duck/src/codecs/vp78dsp.rs +++ b/nihav-duck/src/codecs/vp78dsp.rs @@ -129,6 +129,13 @@ pub trait IntraPred { off += stride; } } + fn ipred_const(dst: &mut [u8], off: usize, stride: usize, dc: u8) { + for row in dst[off..].chunks_mut(stride).take(Self::SIZE) { + for el in row[..Self::SIZE].iter_mut() { + *el = dc; + } + } + } } pub struct IPred16x16 {} @@ -223,7 +230,6 @@ macro_rules! load_pred4 { pub struct IPred4x4 {} impl IPred4x4 { pub fn ipred_dc(dst: &mut [u8], mut off: usize, stride: usize, ipred: &IPredContext) { - let dc; let mut dcsum = 0; for el in ipred.left.iter().take(4) { dcsum += u16::from(*el); @@ -231,7 +237,7 @@ impl IPred4x4 { for el in ipred.top.iter().take(4) { dcsum += u16::from(*el); } - dc = ((dcsum + (1 << 2)) >> 3) as u8; + let dc = ((dcsum + (1 << 2)) >> 3) as u8; for _ in 0..4 { let out = &mut dst[off..][..4]; for el in out.iter_mut() {