X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-qt%2Fsrc%2Fcodecs%2Fsvq3.rs;h=07331c688e9c83200922ea28058a109aa6043d50;hb=c5d5793c1fd18882a32acabb8141a221b0a97b61;hp=46480f57d5b14266a5f1992895cdb78e0bd7ec99;hpb=b7c882c1ce6f86c07c2340751200e3a060942826;p=nihav.git diff --git a/nihav-qt/src/codecs/svq3.rs b/nihav-qt/src/codecs/svq3.rs index 46480f5..07331c6 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) { @@ -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]); } @@ -1230,6 +1230,7 @@ mod test { //let file = "assets/QT/broken_sword_Large.mov"; //test_file_decoding("mov", file, Some(264), true, false, Some("svq3"), &dmx_reg, &dec_reg); //panic!("end"); + // sample: https://samples.mplayerhq.hu/V-codecs/SVQ3/broken_sword_Large.mov test_decoding("mov", "sorenson-video3", "assets/QT/broken_sword_Large.mov", Some(40), &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![ [0x16924d18, 0xccc5a0b4, 0xc2bb9412, 0x93d41f10],