X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=src%2Fcodecs%2Fblockdsp.rs;h=ab0773eab29c5e180d60879c5eeb493318e73814;hb=b7b96b4cabbde72f05d0464299bf7fdf74d6480c;hp=ed47284e5387a247fa94de3978a226855c7afe88;hpb=9037cf6b83ce135243522ec154cd7ffb35f8c816;p=nihav.git diff --git a/src/codecs/blockdsp.rs b/src/codecs/blockdsp.rs index ed47284..ab0773e 100644 --- a/src/codecs/blockdsp.rs +++ b/src/codecs/blockdsp.rs @@ -108,7 +108,7 @@ pub fn add_blocks(buf: &mut NAVideoBuffer, xpos: usize, ypos: usize, blk: &[ } } -fn edge_emu(src: &NAVideoBuffer, xpos: isize, ypos: isize, bw: usize, bh: usize, dst: &mut [u8], dstride: usize, comp: usize) { +pub fn edge_emu(src: &NAVideoBuffer, xpos: isize, ypos: isize, bw: usize, bh: usize, dst: &mut [u8], dstride: usize, comp: usize) { let stride = src.get_stride(comp); let offs = src.get_offset(comp); let (w, h) = src.get_dimensions(comp); @@ -147,7 +147,7 @@ pub fn copy_blocks(dst: &mut NAVideoBuffer, src: &NAVideoBuffer, ebuf.resize((((pre + post) as usize) + bh) * ebuf_stride, 0); for comp in 0..3 { - let dstride = src.get_stride(comp); + let dstride = dst.get_stride(comp); let doff = dst.get_offset(comp); let mut ddta = dst.get_data_mut(); let mut dbuf: &mut [u8] = ddta.as_mut_slice(); @@ -163,14 +163,13 @@ pub fn copy_blocks(dst: &mut NAVideoBuffer, src: &NAVideoBuffer, let bh_ = if comp > 0 { bh/2 } else { bh }; (interp[mode])(&mut dbuf[doff + x + y * dstride..], dstride, ebuf.as_slice(), ebuf_stride, bw_, bh_); } - } else { for comp in 0..3 { let sstride = src.get_stride(comp); let soff = src.get_offset(comp); let sdta = src.get_data(); let sbuf: &[u8] = sdta.as_slice(); - let dstride = src.get_stride(comp); + let dstride = dst.get_stride(comp); let doff = dst.get_offset(comp); let mut ddta = dst.get_data_mut(); let mut dbuf: &mut [u8] = ddta.as_mut_slice();