X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-realmedia%2Fsrc%2Fcodecs%2Frv30dsp.rs;h=36ae629d530468c8f325baee4350c68b450ed994;hb=2b6a8fdcfd39656130fbbc1ff48fd863b13f7daa;hp=fbe03607c679aef54e9c95d526caadaa1f84fd9f;hpb=16cbd8c0f1508886caf521710e0ab14e55c089a9;p=nihav.git diff --git a/nihav-realmedia/src/codecs/rv30dsp.rs b/nihav-realmedia/src/codecs/rv30dsp.rs index fbe0360..36ae629 100644 --- a/nihav-realmedia/src/codecs/rv30dsp.rs +++ b/nihav-realmedia/src/codecs/rv30dsp.rs @@ -140,7 +140,7 @@ const RV30_CHROMA_FRAC2: [u16; 3] = [ 0, 3, 5 ]; fn rv30_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; } @@ -162,6 +162,7 @@ fn rv30_chroma_mc(dst: &mut [u8], mut didx: usize, dstride: usize, src: &[u8], m } } +#[allow(clippy::type_complexity)] pub struct RV30DSP { luma_mc: [[fn (&mut [u8], usize, usize, &[u8], usize, usize); 9]; 2], } @@ -238,6 +239,7 @@ const RV30_EDGE1: [isize; 3] = [ 0, 1, 1 ]; const RV30_EDGE2: [isize; 3] = [ 0, 2, 2 ]; impl RV34DSP for RV30DSP { + #[allow(clippy::cognitive_complexity)] fn loop_filter(&self, frame: &mut NAVideoBuffer, _ftype: FrameType, mbinfo: &[RV34MBInfo], mb_w: usize, _mb_h: usize, row: usize) { let mut offs: [usize; 3] = [0; 3]; let mut stride: [usize; 3] = [0; 3]; @@ -401,7 +403,7 @@ impl RV34DSP for RV30DSP { self.luma_mc[if use16 { 0 } else { 1 }][mode](dst, doffset, dstride, src, soffset, sstride); } else { let mut ebuf: [u8; 32*20] = [0; 32*20]; - edge_emu(prev_frame, (x as isize) + (dx as isize) - 1, (y as isize) + (dy as isize) - 1, 16+3, 16+3, &mut ebuf, 32, 0); + edge_emu(prev_frame, (x as isize) + (dx as isize) - 1, (y as isize) + (dy as isize) - 1, 16+3, 16+3, &mut ebuf, 32, 0, 4); self.luma_mc[if use16 { 0 } else { 1 }][mode](dst, doffset, dstride, &ebuf, 32 + 1, 32); } } @@ -428,7 +430,7 @@ impl RV34DSP for RV30DSP { rv30_chroma_mc(dst, doffset, dstride, src, soffset, sstride, size, cx, cy); } else { let mut ebuf: [u8; 16*10] = [0; 16*10]; - edge_emu(prev_frame, (x as isize) + (dx as isize), (y as isize) + (dy as isize), 8+1, 8+1, &mut ebuf, 16, comp); + edge_emu(prev_frame, (x as isize) + (dx as isize), (y as isize) + (dy as isize), 8+1, 8+1, &mut ebuf, 16, comp, 4); rv30_chroma_mc(dst, doffset, dstride, &ebuf, 0, 16, size, cx, cy); } }