X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-commonfmt%2Fsrc%2Fcodecs%2Fzmbvenc.rs;h=0c8b945f8fb4c716fb704bc18a527b7f8f44b673;hb=6f2630992fe340ad1a122ec10c649f756e478185;hp=0e053fe66539bc8194b4c00e7756f21480f4e6c6;hpb=f714b4e5b5001486c9f6e692a3457d3130fb7280;p=nihav.git diff --git a/nihav-commonfmt/src/codecs/zmbvenc.rs b/nihav-commonfmt/src/codecs/zmbvenc.rs index 0e053fe..0c8b945 100644 --- a/nihav-commonfmt/src/codecs/zmbvenc.rs +++ b/nihav-commonfmt/src/codecs/zmbvenc.rs @@ -184,7 +184,7 @@ impl ZMBVEncoder { } bw.write_buf(&self.frm1[..self.width * self.height * bm])?; } else { - self.tmp_buf.truncate(0); + self.tmp_buf.clear(); if bpp == 8 { self.tmp_buf.extend_from_slice(&self.pal); } @@ -193,7 +193,7 @@ impl ZMBVEncoder { let mut db = Vec::new(); std::mem::swap(&mut db, &mut self.zbuf); - db.truncate(0); + db.clear(); let mut wr = DeflateWriter::new(db); self.compr.write_zlib_header(&mut wr); self.compr.compress(&self.tmp_buf, &mut wr); @@ -211,7 +211,7 @@ impl ZMBVEncoder { self.frm1.copy_from_slice(&self.frm2); bw.write_byte(0)?; - self.tmp_buf.truncate(0); + self.tmp_buf.clear(); let tile_w = (self.width + self.tile_w - 1) / self.tile_w; let tile_h = (self.height + self.tile_h - 1) / self.tile_h; let mv_size = (tile_w * tile_h * 2 + 3) & !3; @@ -224,7 +224,7 @@ impl ZMBVEncoder { let mut db = Vec::new(); std::mem::swap(&mut db, &mut self.zbuf); - db.truncate(0); + db.clear(); let mut wr = DeflateWriter::new(db); self.compr.compress(&self.tmp_buf, &mut wr); self.compr.compress_flush(&mut wr); @@ -240,7 +240,7 @@ impl ZMBVEncoder { return Err(EncoderError::FormatError); } - self.tmp_buf.truncate(0); + self.tmp_buf.clear(); if let (NABufferType::Video(ref vbuf), true) = (&buf, bpp == 8) { let mut npal = [0; 768]; let off = vbuf.get_offset(1); @@ -356,7 +356,7 @@ impl ZMBVEncoder { let mut db = Vec::new(); std::mem::swap(&mut db, &mut self.zbuf); - db.truncate(0); + db.clear(); let mut wr = DeflateWriter::new(db); self.compr.compress(&self.tmp_buf, &mut wr); self.compr.compress_flush(&mut wr); @@ -374,9 +374,10 @@ impl NAEncoder for ZMBVEncoder { fn negotiate_format(&self, encinfo: &EncodeParameters) -> EncoderResult { match encinfo.format { NACodecTypeInfo::None => { - let mut ofmt = EncodeParameters::default(); - ofmt.format = NACodecTypeInfo::Video(NAVideoInfo::new(0, 0, true, YUV420_FORMAT)); - Ok(ofmt) + Ok(EncodeParameters { + format: NACodecTypeInfo::Video(NAVideoInfo::new(0, 0, true, YUV420_FORMAT)), + ..Default::default() + }) }, NACodecTypeInfo::Audio(_) => Err(EncoderError::FormatError), NACodecTypeInfo::Video(vinfo) => { @@ -549,6 +550,7 @@ mod test { use nihav_codec_support::test::enc_video::*; use super::{RGB555_FORMAT, RGB24_0_FORMAT}; + // samples are from https://samples.mplayerhq.hu/V-codecs/ZMBV/ #[test] fn test_zmbv_encoder_8bit() { let mut dmx_reg = RegisteredDemuxers::new(); @@ -593,7 +595,7 @@ mod test { ]; //test_encoding_to_file(&dec_config, &enc_config, enc_params, enc_options); test_encoding_md5(&dec_config, &enc_config, enc_params, enc_options, - &[0x4bcdb816, 0x57d5d1b6, 0xc9412438, 0x9416c407]); + &[0x08615111, 0x6f644a35, 0xa4e28f32, 0x35d2e66c]); } #[test]