} else {
eob = br.read_bool()?;
let run = br.read(6)? as usize;
- let lev = br.read_s(8)? as i32;
+ let lev = br.read_s(8)?;
(lev, run)
};
idx += skip;
#[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;
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],
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],