]> git.nihav.org Git - nihav.git/blobdiff - nihav-game/src/codecs/midivid.rs
avimux: do not record palette change chunks in OpenDML index
[nihav.git] / nihav-game / src / codecs / midivid.rs
index 611ca60daced7aeed95d7e4ec006858e700439ab..1e3b85811ecee896661856fb47d2da4c65c3abcc 100644 (file)
@@ -5,7 +5,7 @@ use nihav_codec_support::codecs::HAMShuffler;
 #[derive(Default)]
 struct MidividDecoder {
     info:       NACodecInfoRef,
-    hams:       HAMShuffler,
+    hams:       HAMShuffler<u8>,
     lzbuf:      Vec<u8>,
     width:      usize,
     height:     usize,
@@ -143,14 +143,13 @@ impl NADecoder for MidividDecoder {
 
         let size = read_u32le(&src[0..])? as usize;
         validate!(size + 8 == src.len());
-        let data_ptr;
         validate!(src.len() > 12);
-        if read_u32le(&src[8..])? == 0 {
-            lz_decompress(&src[12..], self.lzbuf.as_mut_slice())?;
-            data_ptr = self.lzbuf.as_slice();
-        } else {
-            data_ptr = &src[12..];
-        }
+        let data_ptr = if read_u32le(&src[8..])? == 0 {
+                lz_decompress(&src[12..], self.lzbuf.as_mut_slice())?;
+                self.lzbuf.as_slice()
+            } else {
+                &src[12..]
+            };
 
         let mut buf;
         let bufret = self.hams.clone_ref();
@@ -192,15 +191,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],