X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-indeo%2Fsrc%2Fcodecs%2Findeo3.rs;h=bdf8e7b961881bbcdd0a2a5e76d97b83c1735a20;hb=7f839ae7ac1eef6718bf508648ef9f287cc793bd;hp=cc3bed877c9cf6dd6863960bb0f3fdad7e0edb53;hpb=78fb6560c73965d834b215fb0b49505ae5443288;p=nihav.git diff --git a/nihav-indeo/src/codecs/indeo3.rs b/nihav-indeo/src/codecs/indeo3.rs index cc3bed8..bdf8e7b 100644 --- a/nihav-indeo/src/codecs/indeo3.rs +++ b/nihav-indeo/src/codecs/indeo3.rs @@ -31,8 +31,8 @@ impl Buffers { fn reset(&mut self) { self.width = 0; self.height = 0; - self.sbuf.truncate(0); - self.dbuf.truncate(0); + self.sbuf.clear(); + self.dbuf.clear(); } fn alloc(&mut self, w: usize, h: usize) { self.width = w; @@ -325,7 +325,7 @@ impl Indeo3Decoder { Ok((self.bbuf >> self.bpos) & 0x3) } - #[allow(clippy::cyclomatic_complexity)] + #[allow(clippy::cognitive_complexity)] fn decode_cell_data(&mut self, br: &mut ByteReader, cell: IV3Cell, off: usize, stride: usize, params: CellDecParams, vq_idx: u8) -> DecoderResult<()> { let blk_w = cell.w * 4 / params.bw; @@ -635,7 +635,7 @@ impl Indeo3Decoder { let nvec = br.read_u32le()?; validate!(nvec == 0); // for intra there should be no mc_vecs - self.mvs.truncate(0); + self.mvs.clear(); for _ in 0..nvec { let x = br.read_byte()? as i8; let y = br.read_byte()? as i8; @@ -662,7 +662,7 @@ impl Indeo3Decoder { let nvec = br.read_u32le()?; validate!(nvec <= 256); // for intra there should be no mc_vecs - self.mvs.truncate(0); + self.mvs.clear(); for _ in 0..nvec { let y = br.read_byte()? as i8; let x = br.read_byte()? as i8; @@ -817,6 +817,7 @@ mod test { let mut dec_reg = RegisteredDecoders::new(); indeo_register_all_decoders(&mut dec_reg); + // sample: https://samples.mplayerhq.hu/V-codecs/IV32/iv32_example.avi test_decoding("avi", "indeo3", "assets/Indeo/iv32_example.avi", Some(10), &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![ [0x90be698e, 0x326db071, 0x08e8c6a5, 0x39349acc],