X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-duck%2Fsrc%2Fcodecs%2Ftruemotion2x.rs;h=7f4ac524062903d4129f13ea9405faeaeb66437c;hp=584ee43218ebbc04729d0b08434d4ee89a789700;hb=78fb6560c73965d834b215fb0b49505ae5443288;hpb=f9be4e750dccff762b9a3d894faec50ffdb59233 diff --git a/nihav-duck/src/codecs/truemotion2x.rs b/nihav-duck/src/codecs/truemotion2x.rs index 584ee43..7f4ac52 100644 --- a/nihav-duck/src/codecs/truemotion2x.rs +++ b/nihav-duck/src/codecs/truemotion2x.rs @@ -227,7 +227,7 @@ impl TM2XDecoder { br.read_skip(len)?; let _smth = br.read_u32be()?; } - + Ok(()) } fn parse_tabs(&mut self) -> DecoderResult<()> { @@ -275,6 +275,9 @@ impl TM2XDecoder { Ok(()) } + #[allow(clippy::int_plus_one)] + #[allow(clippy::manual_memcpy)] + #[allow(clippy::cyclomatic_complexity)] fn decode_frame(&mut self, src: &[u8]) -> DecoderResult<()> { let mut mr = MemoryReader::new_read(src); let mut br = ByteReader::new(&mut mr); @@ -692,7 +695,13 @@ impl NADecoder for TM2XDecoder { } } -pub fn get_decoder() -> Box { +impl NAOptionHandler for TM2XDecoder { + fn get_supported_options(&self) -> &[NAOptionDefinition] { &[] } + fn set_options(&mut self, _options: &[NAOption]) { } + fn query_option_value(&self, _name: &str) -> Option { None } +} + +pub fn get_decoder() -> Box { Box::new(TM2XDecoder::new()) } @@ -700,17 +709,25 @@ pub fn get_decoder() -> Box { mod test { use nihav_core::codecs::RegisteredDecoders; use nihav_core::demuxers::RegisteredDemuxers; - use nihav_core::test::dec_video::*; - use crate::codecs::duck_register_all_codecs; - use nihav_commonfmt::demuxers::generic_register_all_demuxers; + use nihav_codec_support::test::dec_video::*; + use crate::duck_register_all_decoders; + use nihav_commonfmt::generic_register_all_demuxers; #[test] fn test_tm2x() { let mut dmx_reg = RegisteredDemuxers::new(); generic_register_all_demuxers(&mut dmx_reg); let mut dec_reg = RegisteredDecoders::new(); - duck_register_all_codecs(&mut dec_reg); + duck_register_all_decoders(&mut dec_reg); - test_file_decoding("avi", "assets/Duck/TM2x.avi", Some(16), true, false, None/*Some("tm2x")*/, &dmx_reg, &dec_reg); + test_decoding("avi", "truemotion2x", "assets/Duck/TM2x.avi", None, + &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![ + [0x2854e7f3, 0x41e54fd3, 0xd9a16302, 0x580321b2], + [0x8e736f59, 0x57c58dc0, 0xe15bad3a, 0xf96e2c5b], + [0x12700e7c, 0xfa2d06e0, 0x05b758ba, 0xe79aabb6], + [0x29f935f2, 0x2ad0d6d1, 0x2fde19a2, 0x5aa3823b], + [0x7f1a787d, 0x77f3ab61, 0x0e584c66, 0x9d1842ea], + [0xb5607334, 0xdb149056, 0xe0e3ddb5, 0x19f8e254], + [0xb054e4d0, 0x1d241d4f, 0x75fdfe95, 0x9dde8024]])); } }