make audio decoder tests write .wav files only by request
[nihav.git] / nihav-game / src / codecs / bmv.rs
index c00760e7eaf05c79b05f1b87e9433d781ce5b872..4417fb79057b07671bc47a71f94ccd3bbe09d88e 100644 (file)
@@ -206,9 +206,7 @@ impl NADecoder for BMVVideoDecoder {
         }
         let pos = br.tell() as usize;
 
-        let bufret = alloc_video_buffer(self.info.get_properties().get_video_info().unwrap(), 0);
-        if let Err(_) = bufret { return Err(DecoderError::InvalidData); }
-        let mut bufinfo = bufret.unwrap();
+        let mut bufinfo = alloc_video_buffer(self.info.get_properties().get_video_info().unwrap(), 0)?;
 
         self.decode_frame(&src[pos..], &mut bufinfo, line)?;
 
@@ -218,6 +216,8 @@ impl NADecoder for BMVVideoDecoder {
         frm.set_frame_type(if is_intra { FrameType::I } else { FrameType::P });
         Ok(frm.into_ref())
     }
+    fn flush(&mut self) {
+    }
 }
 
 
@@ -242,7 +242,7 @@ impl BMVAudioDecoder {
 }
 
 fn scale_sample(samp: u8, scale: i32) -> i16 {
-    let val = (((samp as i8) as i32) * scale) >> 5;
+    let val = (i32::from(samp as i8) * scale) >> 5;
     if val < -32768 {
         -32768
     } else if val > 32767 {
@@ -295,6 +295,8 @@ impl NADecoder for BMVAudioDecoder {
             Err(DecoderError::InvalidData)
         }
     }
+    fn flush(&mut self) {
+    }
 }
 
 pub fn get_decoder_audio() -> Box<dyn NADecoder> {
@@ -330,6 +332,6 @@ mod test {
         let file = "assets/Game/PERFECT.BMV";
 //        let file = "assets/Game/DW2-MOUSE.BMV";
 //        let file = "assets/Game/WILDCAT.BMV";
-        test_decode_audio("bmv", file, None, "bmv", &dmx_reg, &dec_reg);
+        test_decode_audio("bmv", file, None, None/*Some("bmv")*/, &dmx_reg, &dec_reg);
     }
 }