annotate the sources for test samples
[nihav.git] / nihav-indeo / src / codecs / indeo4.rs
index 7541bc1653007c96d90c901d58373aa1e8f391f9..a7263c6736ee508c4bcb7561e4fc5787e9d71928 100644 (file)
@@ -2,6 +2,7 @@ use nihav_core::io::bitreader::*;
 use nihav_core::formats;
 use nihav_core::frame::*;
 use nihav_core::codecs::*;
+use nihav_codec_support::codecs::ZIGZAG;
 use super::ivi::*;
 use super::ivibr::*;
 
@@ -446,7 +447,7 @@ impl NADecoder for Indeo4Decoder {
     }
     fn decode(&mut self, _supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
         let src = pkt.get_buffer();
-        let mut br = BitReader::new(src.as_slice(), src.len(), BitReaderMode::LE);
+        let mut br = BitReader::new(src.as_slice(), BitReaderMode::LE);
 
         let mut ip = Indeo4Parser::new();
         let bufinfo = self.dec.decode_frame(&mut ip, &mut br)?;
@@ -460,6 +461,12 @@ impl NADecoder for Indeo4Decoder {
     }
 }
 
+impl NAOptionHandler for Indeo4Decoder {
+    fn get_supported_options(&self) -> &[NAOptionDefinition] { &[] }
+    fn set_options(&mut self, _options: &[NAOption]) { }
+    fn query_option_value(&self, _name: &str) -> Option<NAValue> { None }
+}
+
 const INDEO4_PICTURE_SIZE_TAB: [[usize; 2]; 7] = [
     [640, 480], [320, 240], [160, 120], [704, 480], [352, 240], [352, 288], [176, 144]
 ];
@@ -769,16 +776,17 @@ pub fn get_decoder() -> Box<dyn NADecoder + Send> {
 mod test {
     use nihav_core::codecs::RegisteredDecoders;
     use nihav_core::demuxers::RegisteredDemuxers;
-    use nihav_core::test::dec_video::*;
-    use crate::codecs::indeo_register_all_codecs;
-    use nihav_commonfmt::demuxers::generic_register_all_demuxers;
+    use nihav_codec_support::test::dec_video::*;
+    use crate::indeo_register_all_decoders;
+    use nihav_commonfmt::generic_register_all_demuxers;
     #[test]
     fn test_indeo4() {
         let mut dmx_reg = RegisteredDemuxers::new();
         generic_register_all_demuxers(&mut dmx_reg);
         let mut dec_reg = RegisteredDecoders::new();
-        indeo_register_all_codecs(&mut dec_reg);
+        indeo_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/IV41/indeo4-avi/volcano.avi
         test_decoding("avi", "indeo4", "assets/Indeo/IV4/volcano.avi", Some(16),
                       &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0x194f626b, 0x023fdfd0, 0x9809665a, 0xd68f6f47],
@@ -798,6 +806,7 @@ mod test {
                             [0x4b04dc0e, 0x684533a7, 0x6a4e4b16, 0x0b8a5e68],
                             [0xa3eb64fc, 0x5e02a31b, 0x6b484eae, 0xbb6e6c49],
                             [0x7d4ef46e, 0x6761c447, 0x02e002f5, 0x02d0231c]]));
+        // a sample from Civilization II
         test_decoding("avi", "indeo4", "assets/Indeo/IV4/HRLDVIK.AVI", Some(8),
                       &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0x239b8b87, 0x6dbec08c, 0x82bae1f0, 0x868e00c2],