X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-qt%2Fsrc%2Fcodecs%2Fsvq3.rs;h=d2cd385a2b9e899b8330deab4170d66882fe2526;hp=c900d3ca5386379a5cbb3eadaa23b32bd3c4bcc3;hb=379524159c95f1c3639976ccf35f9d47cd9732ac;hpb=237cc1f9576ed23c7a2f9bb34b43e5d07e93f710 diff --git a/nihav-qt/src/codecs/svq3.rs b/nihav-qt/src/codecs/svq3.rs index c900d3c..d2cd385 100644 --- a/nihav-qt/src/codecs/svq3.rs +++ b/nihav-qt/src/codecs/svq3.rs @@ -140,13 +140,13 @@ impl MVInfo { } fn reset(&mut self) { let size = self.w * self.h; - self.mv_f.truncate(0); + self.mv_f.clear(); self.mv_f.resize(size, ZERO_MV); - self.mv_b.truncate(0); + self.mv_b.clear(); self.mv_b.resize(size, ZERO_MV); - self.has_f.truncate(0); + self.has_f.clear(); self.has_f.resize(size >> 4, false); - self.has_b.truncate(0); + self.has_b.clear(); self.has_b.resize(size >> 4, false); } fn fill(&mut self, mb_x: usize, mb_y: usize, fwd: bool, mv: MV) { @@ -434,7 +434,7 @@ fn mc_part(dframe: &mut NASimpleVideoFrame, src: NAVideoBufferRef, ebuf: copy_block(dframe, src.clone(), ebuf, 0, xoff, yoff, mx, my, bw * 4, bh * 4, 0, post, mode, ifuncs); copy_block(dframe, src.clone(), ebuf, 1, xoff / 2, yoff / 2, cmx, cmy, bw * 2, bh * 2, 0, post, mode, ifuncs); - copy_block(dframe, src.clone(), ebuf, 2, xoff / 2, yoff / 2, cmx, cmy, bw * 2, bh * 2, 0, post, mode, ifuncs); + copy_block(dframe, src, ebuf, 2, xoff / 2, yoff / 2, cmx, cmy, bw * 2, bh * 2, 0, post, mode, ifuncs); } impl SVQ3Decoder { @@ -518,7 +518,7 @@ unimplemented!(); }; let slice_len = length + llen + 1; validate!(src.len() >= slice_len); - self.slice_buf.truncate(0); + self.slice_buf.clear(); if llen > 1 { self.slice_buf.extend_from_slice(&src[slice_len - llen + 1..][..llen - 1]); } @@ -813,7 +813,7 @@ println!("slice offset {}", _offset); if let (Some(bwd_ref), true, true) = (self.ipbs.get_b_bwdref(), has_fwd, has_bwd) { let mut aframe = NASimpleVideoFrame::from_video_buf(&mut self.avg_buf).unwrap(); let amv = MV { x: bmv.x + (self.mb_x as i16) * 16 * 6, y: bmv.y + (self.mb_y as i16) * 16 * 6 }; - mc_part(&mut aframe, bwd_ref.clone(), &mut self.ebuf, 0, 0, 4, 4, amv, bmode, ifuncs); + mc_part(&mut aframe, bwd_ref, &mut self.ebuf, 0, 0, 4, 4, amv, bmode, ifuncs); let dstride = dframe.stride[0]; let dst = &mut dframe.data[dframe.offset[0] + self.mb_x * 16 + self.mb_y * 16 * dstride..];