replace vec.truncate(0) with vec.clear()
[nihav.git] / nihav-codec-support / src / codecs / h263 / mod.rs
index 33d71baa580a97d56ee9349ac6ed9d4ce7b5f8e2..e357778175a840552b8b794945254a5cd04935f2 100644 (file)
@@ -1,7 +1,8 @@
 use nihav_core::codecs::DecoderResult;
 use super::{MV, ZERO_MV};
-use nihav_core::frame::NAVideoBuffer;
+use nihav_core::frame::{NAVideoBuffer, NAVideoBufferRef};
 
+#[allow(clippy::erasing_op)]
 #[allow(clippy::many_single_char_names)]
 pub mod code;
 pub mod data;
@@ -19,8 +20,10 @@ pub trait BlockDecoder {
 
 pub trait BlockDSP {
     fn idct(&self, blk: &mut [i16; 64]);
-    fn copy_blocks(&self, dst: &mut NAVideoBuffer<u8>, src: &NAVideoBuffer<u8>, xpos: usize, ypos: usize, w: usize, h: usize, mv: MV);
-    fn avg_blocks(&self, dst: &mut NAVideoBuffer<u8>, src: &NAVideoBuffer<u8>, xpos: usize, ypos: usize, w: usize, h: usize, mv: MV);
+    fn copy_blocks(&self, dst: &mut NAVideoBuffer<u8>, src: NAVideoBufferRef<u8>, xpos: usize, ypos: usize, mv: MV);
+    fn copy_blocks8x8(&self, dst: &mut NAVideoBuffer<u8>, src: NAVideoBufferRef<u8>, xpos: usize, ypos: usize, mvs: &[MV; 4]);
+    fn avg_blocks(&self, dst: &mut NAVideoBuffer<u8>, src: NAVideoBufferRef<u8>, xpos: usize, ypos: usize, mv: MV);
+    fn avg_blocks8x8(&self, dst: &mut NAVideoBuffer<u8>, src: NAVideoBufferRef<u8>, xpos: usize, ypos: usize, mvs: &[MV; 4]);
     fn filter_row(&self, buf: &mut NAVideoBuffer<u8>, mb_y: usize, mb_w: usize, cbpi: &CBPInfo);
 }
 
@@ -355,9 +358,9 @@ impl CBPInfo {
     fn new() -> Self { CBPInfo{ cbp: Vec::new(), q: Vec::new(), mb_w: 0 } }
     fn reset(&mut self, mb_w: usize) {
         self.mb_w = mb_w;
-        self.cbp.truncate(0);
+        self.cbp.clear();
         self.cbp.resize(self.mb_w * 2, 0);
-        self.q.truncate(0);
+        self.q.clear();
         self.q.resize(self.mb_w * 2, 0);
     }
     fn update_row(&mut self) {