]> git.nihav.org Git - nihav.git/blobdiff - nihav-game/src/codecs/vmd.rs
vmdaudio: fix u8 silent blocks value
[nihav.git] / nihav-game / src / codecs / vmd.rs
index 1f4964e7d2d9f487ce2faf514fbec8f51ad2a5c3..f260f9b77598ef69ef3a91faefca9a2869b6ede0 100644 (file)
@@ -1,5 +1,6 @@
 use nihav_core::codecs::*;
 use nihav_core::io::byteio::*;
+use nihav_codec_support::codecs::HAMShuffler;
 use std::str::FromStr;
 
 macro_rules! lz_op {
@@ -179,6 +180,9 @@ impl VMDVideoDecoder {
                                                   br.read_skip(1)?;
         let flags                               = br.read_byte()?;
         let has_pal = (flags & 0x02) != 0;
+        if (frame_x == 0xFFFF) && (frame_y == 0xFFFF) && (frame_l == 0xFFFF) && (frame_d == 0xFFFF) {
+            return Ok(false);
+        }
         validate!(frame_l >= frame_x && frame_d >= frame_y);
         validate!(frame_l < self.width && frame_d < self.height);
 
@@ -410,7 +414,7 @@ impl NADecoder for VMDAudioDecoder {
                 for _ in 0..nblocks {
                     if (mask & 1) != 0 {
                         for i in 0..self.blk_align * channels {
-                            dst[doff + i] = 0;
+                            dst[doff + i] = 128;
                         }
                     } else if channels == 1 {
                         for i in 0..self.blk_size {
@@ -451,7 +455,7 @@ pub fn get_decoder_audio() -> Box<dyn NADecoder + Send> {
 mod test {
     use nihav_core::codecs::RegisteredDecoders;
     use nihav_core::demuxers::RegisteredDemuxers;
-    use nihav_core::test::dec_video::*;
+    use nihav_codec_support::test::dec_video::*;
     use crate::game_register_all_codecs;
     use crate::game_register_all_demuxers;
     #[test]