X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-game%2Fsrc%2Fcodecs%2Fmidivid.rs;h=fec4cd64f66915b7dda55272db8a64b8c170b889;hb=2826a23f3a214e2f5d47d6dee6fb06754730dc0e;hp=1234426e4921312b38f57bcfdd992ef9351d6234;hpb=bb07b6858762ea5ce0beab02d2b871726b3ba6a4;p=nihav.git diff --git a/nihav-game/src/codecs/midivid.rs b/nihav-game/src/codecs/midivid.rs index 1234426..fec4cd6 100644 --- a/nihav-game/src/codecs/midivid.rs +++ b/nihav-game/src/codecs/midivid.rs @@ -5,7 +5,7 @@ use nihav_codec_support::codecs::HAMShuffler; #[derive(Default)] struct MidividDecoder { info: NACodecInfoRef, - hams: HAMShuffler, + hams: HAMShuffler, lzbuf: Vec, width: usize, height: usize, @@ -22,10 +22,10 @@ fn lz_decompress(src: &[u8], dst: &mut [u8]) -> DecoderResult<()> { let mut dpos = 0; let end = src.len(); while spos < end { - let oplo = src[spos] as u16; + let oplo = u16::from(src[spos]); spos += 1; if spos >= end { return Err(DecoderError::ShortData); } - let ophi = src[spos] as u16; + let ophi = u16::from(src[spos]); spos += 1; let mut op = (ophi << 8) | oplo; for _ in 0..16 { @@ -58,6 +58,7 @@ fn lz_decompress(src: &[u8], dst: &mut [u8]) -> DecoderResult<()> { Ok(()) } +#[allow(clippy::identity_op)] fn decode_frame(frm: &mut NASimpleVideoFrame, src: &[u8], width: usize, height: usize) -> DecoderResult { validate!(src.len() > 8); let num_vec = read_u16le(&src[0..])? as usize; @@ -175,6 +176,12 @@ impl NADecoder for MidividDecoder { } } +impl NAOptionHandler for MidividDecoder { + 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_video() -> Box { Box::new(MidividDecoder::new()) @@ -185,15 +192,16 @@ mod test { use nihav_core::codecs::RegisteredDecoders; use nihav_core::demuxers::RegisteredDemuxers; use nihav_codec_support::test::dec_video::*; - use crate::game_register_all_codecs; + use crate::game_register_all_decoders; use nihav_commonfmt::generic_register_all_demuxers; #[test] fn test_midivid_video() { let mut dmx_reg = RegisteredDemuxers::new(); generic_register_all_demuxers(&mut dmx_reg); let mut dec_reg = RegisteredDecoders::new(); - game_register_all_codecs(&mut dec_reg); + game_register_all_decoders(&mut dec_reg); + // sample: https://samples.mplayerhq.hu/V-codecs/MVDV.avi test_decoding("avi", "midivid", "assets/Game/MVDV.avi", Some(16), &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![ [0x383e1995, 0x32bf000d, 0x2067aa2e, 0x54425bd4],