X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-ms%2Fsrc%2Fcodecs%2Fmsvideo1enc.rs;h=4507e08ec7bfff1f7d3251d4d059b29c494a2bc1;hb=2757a0289c980aeba002609c777815b51ace8e56;hp=b927dc89f26e1c1dca8ce860cad29e766ae55c4e;hpb=991233445f09055823cdca1211cd19d87a2d56ab;p=nihav.git diff --git a/nihav-ms/src/codecs/msvideo1enc.rs b/nihav-ms/src/codecs/msvideo1enc.rs index b927dc8..4507e08 100644 --- a/nihav-ms/src/codecs/msvideo1enc.rs +++ b/nihav-ms/src/codecs/msvideo1enc.rs @@ -201,9 +201,9 @@ macro_rules! quant_template { for clr in pix.iter() { if clr[best_axis] > avg[best_axis] { avg2.add(clr); - mask |= mask_bit; } else { avg1.add(clr); + mask |= mask_bit; } mask_bit <<= 1; } @@ -338,8 +338,8 @@ impl BlockState { let src2 = [buf[off], buf[off + 1], buf[off + 4], buf[off + 5]]; let (clrs, mask, dist) = quant2_4pix(&src2); self.clr8[i] = clrs; - let lo_bits = (mask & 0x3) ^ 0x3; - let hi_bits = ((mask & 0xC) ^ 0xC) << 2; + let lo_bits = mask & 0x3; + let hi_bits = (mask & 0xC) << 2; self.clr8_flags |= (hi_bits | lo_bits) << ((i & 1) * 2 + (i & 2) * 4); self.clr8_dist += dist; } @@ -835,6 +835,7 @@ impl NAEncoder for MSVideo1Encoder { } } } + fn get_capabilities(&self) -> u64 { ENC_CAPS_SKIPFRAME } fn init(&mut self, stream_id: u32, encinfo: EncodeParameters) -> EncoderResult { match encinfo.format { NACodecTypeInfo::None => Err(EncoderError::FormatError), @@ -1075,7 +1076,7 @@ mod test { }; //test_encoding_to_file(&dec_config, &enc_config, enc_params, &[]); test_encoding_md5(&dec_config, &enc_config, enc_params, &[], - &[0x27a9db38, 0x74f1000a, 0x38818c05, 0x99d692ba]); + &[0x5afaf853, 0xd53ba9dd, 0x630f53e7, 0x41b33a36]); } #[test] @@ -1121,6 +1122,6 @@ mod test { }; //test_encoding_to_file(&dec_config, &enc_config, enc_params, &[]); test_encoding_md5(&dec_config, &enc_config, enc_params, &[], - &[0xe570a206, 0xc223063f, 0x44a0b70e, 0xa71fed1f]); + &[0xb3175a7b, 0x4a6cb45e, 0x526f3f5d, 0xaa1574cc]); } }