X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-realmedia%2Fsrc%2Fcodecs%2Frv30dsp.rs;h=ebdd1f32329eba4046caeea04f4269e27a89f55b;hb=fa57381ec2a3b8c441aa1388492b9ca037cfcf78;hp=86e8488de3b9286b03e26748f587525d2ffb330a;hpb=e07387c7f125550a41faf36a509b252cf71d7f9a;p=nihav.git diff --git a/nihav-realmedia/src/codecs/rv30dsp.rs b/nihav-realmedia/src/codecs/rv30dsp.rs index 86e8488..ebdd1f3 100644 --- a/nihav-realmedia/src/codecs/rv30dsp.rs +++ b/nihav-realmedia/src/codecs/rv30dsp.rs @@ -1,6 +1,6 @@ use nihav_core::frame::{FrameType, NAVideoBuffer}; -use nihav_core::codecs::MV; -use nihav_core::codecs::blockdsp::edge_emu; +use nihav_codec_support::codecs::MV; +use nihav_codec_support::codecs::blockdsp::edge_emu; use super::rv3040::{RV34DSP, RV34MBInfo}; fn clip8(a: i16) -> u8 { @@ -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,7 +239,8 @@ const RV30_EDGE1: [isize; 3] = [ 0, 1, 1 ]; const RV30_EDGE2: [isize; 3] = [ 0, 2, 2 ]; impl RV34DSP for RV30DSP { - fn loop_filter(&self, frame: &mut NAVideoBuffer, _ftype: FrameType, mbinfo: &[RV34MBInfo], mb_w: usize, row: usize) { + #[allow(clippy::cyclomatic_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); } }