X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-commonfmt%2Fsrc%2Fcodecs%2Fclearvideo.rs;h=52bfe2bab7efc4cb0ca652616765a3cae13b43c4;hb=ff7cb24a554c244c7494a981f4ad2c712804a271;hp=80521b8eb53dd80984ccd5daf7dd94eb03993725;hpb=7e52da9e2978c56d38d1bd308372e15324a008e2;p=nihav.git diff --git a/nihav-commonfmt/src/codecs/clearvideo.rs b/nihav-commonfmt/src/codecs/clearvideo.rs index 80521b8..52bfe2b 100644 --- a/nihav-commonfmt/src/codecs/clearvideo.rs +++ b/nihav-commonfmt/src/codecs/clearvideo.rs @@ -881,7 +881,10 @@ impl NADecoder for ClearVideoDecoder { #[allow(clippy::or_fun_call)] fn init(&mut self, _supp: &mut NADecoderSupport, info: NACodecInfoRef) -> DecoderResult<()> { if let NACodecTypeInfo::Video(vinfo) = info.get_properties() { - let w = vinfo.get_width(); + let mut w = vinfo.get_width(); + if self.is_rm { + w = (w + 0x1F) & !0x1F; + } let h = vinfo.get_height(); let f = vinfo.is_flipped(); let fmt = formats::YUV420_FORMAT; @@ -998,6 +1001,7 @@ mod test { generic_register_all_demuxers(&mut dmx_reg); let mut dec_reg = RegisteredDecoders::new(); generic_register_all_decoders(&mut dec_reg); + // sample: https://samples.mplayerhq.hu/V-codecs/UCOD/TalkingHead_352x288.avi test_decoding("avi", "clearvideo", "assets/Misc/TalkingHead_352x288.avi", Some(10), &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![ [0xb432376c, 0xf1dce57b, 0x8e79c7ee, 0xdd51850d], @@ -1018,6 +1022,7 @@ mod test { generic_register_all_demuxers(&mut dmx_reg); let mut dec_reg = RegisteredDecoders::new(); generic_register_all_decoders(&mut dec_reg); + // sample: https://samples.mplayerhq.hu/V-codecs/UCOD/Nick%20Pope.avi test_decoding("avi", "clearvideo", "assets/Misc/Nick Pope.avi", Some(20), &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![ [0xca265763, 0xd7d40e35, 0x1c27d4fb, 0xbb76b9c6],