]> git.nihav.org Git - nihav.git/commitdiff
use test_file_demux() function in the demuxer tests
authorKostya Shishkov <kostya.shishkov@gmail.com>
Fri, 3 Apr 2026 16:42:54 +0000 (18:42 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Fri, 3 Apr 2026 16:42:54 +0000 (18:42 +0200)
29 files changed:
nihav-acorn/src/demuxers/tca.rs
nihav-commonfmt/src/demuxers/avi.rs
nihav-commonfmt/src/demuxers/gif.rs
nihav-commonfmt/src/demuxers/wav.rs
nihav-commonfmt/src/demuxers/y4m.rs
nihav-duck/src/demuxers/ivf.rs
nihav-flash/src/demuxers/flv.rs
nihav-game/src/demuxers/bmv.rs
nihav-game/src/demuxers/gdv.rs
nihav-game/src/demuxers/seq.rs
nihav-game/src/demuxers/sga.rs
nihav-game/src/demuxers/smush.rs
nihav-game/src/demuxers/vmd.rs
nihav-indeo/src/demuxers/dvi.rs
nihav-indeo/src/demuxers/ivf.rs
nihav-llaudio/src/demuxers/ape.rs
nihav-llaudio/src/demuxers/flac.rs
nihav-llaudio/src/demuxers/tta.rs
nihav-llaudio/src/demuxers/wavpack.rs
nihav-misc/src/demuxers/av.rs
nihav-misc/src/demuxers/mvi.rs
nihav-misc/src/demuxers/qpeg.rs
nihav-misc/src/demuxers/tealmov.rs
nihav-ms/src/demuxers/avidib.rs
nihav-qt/src/demuxers/warhol.rs
nihav-rad/src/demuxers/bink.rs
nihav-rad/src/demuxers/smacker.rs
nihav-realmedia/src/demuxers/realmedia.rs
nihav-vivo/src/demuxers/vivo.rs

index 16c8cffd93567515220090d96587d2ef99735a04..52699f38b041ce3105378878a7fcb8b9d4ff00db 100644 (file)
@@ -224,26 +224,11 @@ impl TCACoreDemuxer {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_tca_demux() {
         // a sample from RISC DISC 3
-        let mut file = File::open("assets/Acorn/JUMPER").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = TCADemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            match dmx.get_frame(&mut sm) {
-                Ok(pkt) => {
-                    println!("Got {pkt}");
-                },
-                Err(DemuxerError::EOF) => return,
-                Err(_) => panic!("error"),
-            }
-        }
+        test_file_demux("assets/Acorn/JUMPER", &TCADemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index 43b4874f52477ef40e9b4fce8e944e47bc883d7b..35eddb45598b93dcbb29ad610b3697b6e0f145d5 100644 (file)
@@ -1113,26 +1113,11 @@ impl DemuxerCreator for AVIDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_avi_demux() {
         //test sample: https://samples.mplayerhq.hu/V-codecs/RT21/320x240/laser05.avi
-        let mut file = File::open("assets/Indeo/laser05.avi").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = AVIDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Indeo/laser05.avi", &AVIDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index fd4b0b3a6b6269da6ddc8d31750f14a045deaeed..6fb0f2a255405fb9dc21fb470354cc77cc7429a1 100644 (file)
@@ -171,26 +171,11 @@ impl DemuxerCreator for GIFDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_gif_demux() {
         // sample: https://samples.mplayerhq.hu/image-samples/GIF/3D.gif
-        let mut file = File::open("assets/Misc/3D.gif").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = GIFDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Misc/3D.gif", &GIFDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index 799a4bc3bed7a954440523d5baedd3e893fa1cdf..f33b2989b6e5b7642d361b518a2cb388c82b9a55 100644 (file)
@@ -255,26 +255,11 @@ impl DemuxerCreator for WAVDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_wav_demux() {
         // sample: https://samples.mplayerhq.hu/A-codecs/msadpcm-stereo/scatter.wav
-        let mut file = File::open("assets/MS/scatter.wav").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = WAVDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/MS/scatter.wav", &WAVDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index 0fe0976ddebbf6fc4af4c0284fe610af0a94e650..f341251d6e02fe1ce8a89ed95dda0f9633cc5b64 100644 (file)
@@ -187,26 +187,11 @@ impl DemuxerCreator for Y4MDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_y4m_demux() {
         // sample: self-created with avconv
-        let mut file = File::open("assets/Misc/test.y4m").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = Y4MDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Misc/test.y4m", &Y4MDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index 982461286332f1cf6af1e16af5d0441872a82939..8ed287a9c6f22a60eae51bef81e0009d3242153c 100644 (file)
@@ -92,26 +92,11 @@ impl DemuxerCreator for IVFDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_ivf_demux() {
         // sample is from the official VP8 test bitstream set
-        let mut file = File::open("assets/Duck/VP8/vp80-00-comprehensive-001.ivf").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = IVFDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Duck/VP8/vp80-00-comprehensive-001.ivf", &IVFDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index c3a9a1d93cf29dfa57e41428a4eea19052949428..98b26e67c83139a5137dcbff61f6c0f9264a2ea3 100644 (file)
@@ -469,27 +469,13 @@ impl DemuxerCreator for FLVDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
+    use nihav_codec_support::test::dmx_test::*;
     use std::fs::File;
 
     // sample: https://samples.mplayerhq.hu/A-codecs/Nelly_Moser/input.flv
     #[test]
     fn test_flv_demux() {
-        let mut file = File::open("assets/Flash/input.flv").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = FLVDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Flash/input.flv", &FLVDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
     #[test]
     fn test_flv_demux_back() {
index 913b8e84bd1eb9b1468aa8102970dba226e35ed7..8aff3561468f3763db3447ff9a8575cfc9531e7f 100644 (file)
@@ -249,43 +249,15 @@ impl DemuxerCreator for BMV3DemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     // samples from https://samples.mplayerhq.hu/game-formats/bmv
     #[test]
     fn test_bmv_demux() {
-        let mut file = File::open("assets/Game/DW2-MOUSE.BMV").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = BMVDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Game/DW2-MOUSE.BMV", &BMVDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
     #[test]
     fn test_bmv3_demux() {
-        let mut file = File::open("assets/Game/DW3-Loffnote.bmv").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = BMV3Demuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Game/DW3-Loffnote.bmv", &BMV3DemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index 9d9efc4b21d5c4e8828545e2e066e10d81b04a41..b1e9c12d5ddd6a60a9903266cf0bc7d4e30a0238 100644 (file)
@@ -164,25 +164,11 @@ impl DemuxerCreator for GDVDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_gdv_demux() {
         // sample from Normality game
-        let mut file = File::open("assets/Game/intro1.gdv").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = GremlinVideoDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Game/intro1.gdv", &GDVDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index eeb9c7812402aad1c5035224438e6f0d73c487b3..804f18224c1d0a8bf0483328b38a829e3e939983 100644 (file)
@@ -85,25 +85,11 @@ impl DemuxerCreator for SequenceDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     // sample from King's Quest VI
     #[test]
     fn test_seq() {
-        let mut file = File::open("assets/Game/sierra/FS1.SEQ").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = SequenceDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Game/sierra/FS1.SEQ", &SequenceDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index a0f1927a3e37c7650f714db474eb71043a2829c7..3591b6b13f28aac2328912bf291937d73384da2f 100644 (file)
@@ -361,24 +361,10 @@ impl DemuxerCreator for SGADemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     fn test_sga_demux(name: &str) {
-        let mut file = File::open(name).unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = SGADemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux(name, &SGADemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 
     #[test]
index 92eb19af179919e21213c9d14341ca6e916839c6..bd0bdaf9e094eaa70c951d1dfb9f0a4dfa92ceee 100644 (file)
@@ -647,101 +647,31 @@ impl DemuxerCreator for MCMPDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_smush_demux_anim_v1() {
         // sample from Rebel Assault game
-        let mut file = File::open("assets/Game/smush/c1block.anm").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = SmushDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Game/smush/c1block.anm", &SmushDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
     #[test]
     fn test_smush_demux_anim_v2() {
         // sample from The Dig
-        let mut file = File::open("assets/Game/smush/PIGOUT.SAN").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = SmushDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Game/smush/PIGOUT.SAN", &SmushDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
     #[test]
     fn test_smush_demux_sanm() {
         // sample from Grim Fandango
-        let mut file = File::open("assets/Game/smush/lol.snm").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = SmushDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Game/smush/lol.snm", &SmushDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
     #[test]
     fn test_mcmp_demux_imus() {
         // sample from Grim Fandango
-        let mut file = File::open("assets/Game/smush/1104 - Lupe.IMC").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = MCMPDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Game/smush/1104 - Lupe.IMC", &MCMPDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
     #[test]
     fn test_mcmp_demux_wav() {
         // sample from Grim Fandango
-        let mut file = File::open("assets/Game/smush/breadpor.WAV").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = MCMPDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Game/smush/breadpor.WAV", &MCMPDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index 41c14aa5c9da9a26297c177579f6411c750a5fd6..4583be43e73030327d99dd2dc46208489ac9089e 100644 (file)
@@ -257,26 +257,11 @@ impl DemuxerCreator for VMDDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_vmd_demux() {
         // sample: https://samples.mplayerhq.hu/game-formats/sierra-vmd/Lighthouse/128.vmd
-        let mut file = File::open("assets/Game/sierra/128.vmd").unwrap();
-        //let mut file = File::open("assets/Game/1491.VMD").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = VMDDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Game/sierra/128.vmd", &VMDDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index 39bd709ad48ab7ee517b5194694291abdfdf0580..86adc1be804bddb3e612b9949fb1568335065e7c 100644 (file)
@@ -271,26 +271,11 @@ impl DemuxerCreator for DVIDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_dvi_demux() {
         // sample comes from a demo by Digital Video Arts
-        let mut file = File::open("assets/Indeo/YULELOG.AVS").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = DVIDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Indeo/YULELOG.AVS", &DVIDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index 9c9bd30cfbd5077cf9ba4a65cde33d3995642279..25a9a26faab8e5bf0c4f5db9b382926c13e24781 100644 (file)
@@ -252,26 +252,11 @@ impl DemuxerCreator for IVFDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_ivf_demux() {
         // sample is a trailer for Heart of Darkness game
-        let mut file = File::open("assets/Indeo/TRAILERIIE.IVF").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = IVFDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Indeo/TRAILERIIE.IVF", &IVFDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index 8cf01d8ea77b2fd5557e0447c5721403fdc73e2c..c2eddb56f61f22cf4b4de42bab8aa9851a503942 100644 (file)
@@ -246,25 +246,11 @@ impl DemuxerCreator for APEDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_ape_demux() {
         // sample: https://samples.mplayerhq.hu/A-codecs/lossless/luckynight.ape
-        let mut file = File::open("assets/LLaudio/ape/luckynight.ape").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = APEDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/LLaudio/ape/luckynight.ape", &APEDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index e42c6aa9d51e6707bee7bb79a30c924b5b1f95fc..496c7bf0654af46bdb83ea6ea8744b32c3411f87 100644 (file)
@@ -296,26 +296,12 @@ impl DemuxerCreator for FLACDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_flac_demux() {
         // sample: https://samples.mplayerhq.hu/A-codecs/lossless/luckynight.flac
-        let mut file = File::open("assets/LLaudio/luckynight.flac").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = FLACDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/LLaudio/luckynight.flac", &FLACDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
 
index 824ada64609232f1638d0eac67da5b0275ac6385..7cb4d5c521d2ad7f0c7ed2c8c1119333de185c57 100644 (file)
@@ -119,25 +119,11 @@ impl DemuxerCreator for TTADemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_tta_demux() {
         // sample: https://samples.mplayerhq.hu/A-codecs/lossless/luckynight.tta
-        let mut file = File::open("assets/LLaudio/luckynight.tta").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = TTADemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/LLaudio/luckynight.tta", &TTADemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index 9ceaf25afd49dad03da42c9add240d60fb85b113..21db6def848836ba823008b51b17ac6acc96db42 100644 (file)
@@ -273,25 +273,11 @@ impl DemuxerCreator for WavPackDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_wavpack_demux() {
         // sample from the official WavPack test samples set
-        let mut file = File::open("assets/LLaudio/wv/false_stereo.wv").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = WavPackDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/LLaudio/wv/false_stereo.wv", &WavPackDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index f34734986d9598505abbad3aad54f0b1162e0739..1138d2f034d48e79c2be743b0d1e3ae6e4020bf1 100644 (file)
@@ -242,46 +242,16 @@ impl DemuxerCreator for AVDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_av_video_and_audio_demux() {
         // sample can be found on various CD-Romek discs
-        let mut file = File::open("assets/Misc/CURSOR01.AV").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = AVDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Misc/CURSOR01.AV", &AVDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
     #[test]
     fn test_av_video_demux() {
         // sample can be found on various CD-Romek discs
-        let mut file = File::open("assets/Misc/cursor04ns.av").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = AVDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Misc/cursor04ns.av", &AVDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index 48856acb18081500dae4bedeab30640afd2bccc2..ff67e56852c5c6cb9a0469a68d288ca8b1f86ad6 100644 (file)
@@ -143,26 +143,11 @@ impl DemuxerCreator for MVIDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_mvi_demux() {
         // sample from AD&D Core Rules CD
-        let mut file = File::open("assets/Misc/MP/avtest.mvi").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = MVIDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Misc/MP/avtest.mvi", &MVIDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index c43fc863a3695c1cb8fc7a230101ac1e4aa6a5fb..2dbe7f37f069b462b245349f246235d157e1dbc5 100644 (file)
@@ -77,26 +77,11 @@ impl DemuxerCreator for QPEGDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_qpeg_demux() {
         // sample from Inside Multimedia 1994 October
-        let mut file = File::open("assets/Misc/club01.dvc").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = QPEGDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Misc/club01.dvc", &QPEGDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index 0634c96eca9adbd516f91b66e2ffa18e8d39623e..164c5a5977cf8a050dfcf17527a1e5607542bed5 100644 (file)
@@ -327,26 +327,11 @@ impl DemuxerCreator for TealMovieDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_teal_movie_demux() {
         // sample bundled with TealMovie software
-        let mut file = File::open("assets/Misc/ASTRONUT.PDB").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = TealMovieDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Misc/ASTRONUT.PDB", &TealMovieDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index f75bf701d086891b1d3acd7d7caf0ec9c433bf59..7afc35fdeef8ff127727d7a34bcf6c218de0cfe3 100644 (file)
@@ -342,26 +342,11 @@ impl DemuxerCreator for AVIDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_avi_dib_demux() {
         //test sample from the beta AVI SDK
-        let mut file = File::open("assets/MS/CAR_CD.AVI").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = AVIDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/MS/CAR_CD.AVI", &AVIDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index e40179cf9151a34cb2979aeb752fac61ba56f18a..1d29cd222da368749aa3c5dabc8c506a6499193b 100644 (file)
@@ -188,45 +188,15 @@ impl DemuxerCreator for WarholDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     //test samples from Apple Reference & Presentation Library 8
     #[test]
     fn test_warhol_single_desc() {
-        let mut file = File::open("assets/QT/MultiTasking.movie").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = WarholDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/QT/MultiTasking.movie", &WarholDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
     #[test]
     fn test_warhol_multiple_desc() {
-        let mut file = File::open("assets/QT/VirtualMemory.movie").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = WarholDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/QT/VirtualMemory.movie", &WarholDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index f7720bc4ebafa70187b1a560de66c41d25635b57..9f7bab2db73f3dd6736d7772d09b5bf1c7b2a250 100644 (file)
@@ -235,29 +235,16 @@ impl DemuxerCreator for BinkDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_bink_demux() {
         // sample: https://samples.mplayerhq.hu/game-formats/bink/ActivisionLogo.bik
-        let mut file = File::open("assets/RAD/ActivisionLogo.bik").unwrap();
-//        let mut file = File::open("assets/RAD/original.bik").unwrap();
-//        let mut file = File::open("assets/RAD/Snd0a110c51.dee").unwrap();
-//        let mut file = File::open("assets/RAD/NEW.BIK").unwrap();
-//        let mut file = File::open("assets/RAD/ge_video_86l.bk2").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = BinkDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        let file = "assets/RAD/ActivisionLogo.bik";
+//        let file = "assets/RAD/original.bik";
+//        let file = "assets/RAD/Snd0a110c51.dee";
+//        let file = "assets/RAD/NEW.BIK";
+//        let file = "assets/RAD/ge_video_86l.bk2";
+        test_file_demux(file, &BinkDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index 9548907b68900ced8974498d24ae26b31b615531..821d94484acda25ea1f5207d9048bf5d328b83f7 100644 (file)
@@ -328,28 +328,15 @@ impl DemuxerCreator for SMKDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_smk_demux() {
         // sample: https://samples.mplayerhq.hu/game-formats/smacker/20130507_audio-distortion.smk
-        let mut file = File::open("assets/RAD/20130507_audio-distortion.smk").unwrap();
-//        let mut file = File::open("assets/RAD/ajfstr1.smk").unwrap();
-//        let mut file = File::open("assets/RAD/credits.smk").unwrap();
-//        let mut file = File::open("assets/RAD/wetlogo.smk").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = SmackerVideoDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        let file = "assets/RAD/20130507_audio-distortion.smk";
+//        let file = "assets/RAD/ajfstr1.smk";
+//        let file = "assets/RAD/credits.smk";
+//        let file = "assets/RAD/wetlogo.smk";
+        test_file_demux(file, &SMKDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }
index 7ca526e5217f67c353d9af824d8de1fe06116789..fac98b20ee4bbff81bfe2103e70c52bb33afb5ed 100644 (file)
@@ -1677,82 +1677,40 @@ impl DemuxerCreator for RealIVRDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_rm_demux() {
         // sample from a private collection
-        let mut file =
-            File::open("assets/RV/rv10_dnet_640x352_realvideo_encoder_4.0.rm").unwrap();
-//            File::open("assets/RV/rv20_cook_640x352_realproducer_plus_8.51.rm").unwrap();
-//            File::open("assets/RV/rv20_svt_atrc_640x352_realproducer_plus_8.51.rm").unwrap();
-//            File::open("assets/RV/rv30_atrc_384x208_realproducer_plus_8.51.rm").unwrap();
-//            File::open("assets/RV/rv30_chroma_drift.rm").unwrap();
-//            File::open("assets/RV/rv30_weighted_mc.rm").unwrap();
-//            File::open("assets/RV/rv40_weighted_mc.rmvb").unwrap();
-//            File::open("assets/RV/rv40_weighted_mc_2.rmvb").unwrap();
-//            File::open("assets/RV/clv1_sipr_384x208_realvideo_encoder_4.0.rm").unwrap();
-//            File::open("assets/RV/luckynight.rmvb").unwrap();
-//            File::open("assets/RV/rv40_ralf.rmvb").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = RealMediaDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        let file =
+            "assets/RV/rv10_dnet_640x352_realvideo_encoder_4.0.rm";
+//            "assets/RV/rv20_cook_640x352_realproducer_plus_8.51.rm";
+//            "assets/RV/rv20_svt_atrc_640x352_realproducer_plus_8.51.rm";
+//            "assets/RV/rv30_atrc_384x208_realproducer_plus_8.51.rm";
+//            "assets/RV/rv30_chroma_drift.rm";
+//            "assets/RV/rv30_weighted_mc.rm";
+//            "assets/RV/rv40_weighted_mc.rmvb";
+//            "assets/RV/rv40_weighted_mc_2.rmvb";
+//            "assets/RV/clv1_sipr_384x208_realvideo_encoder_4.0.rm";
+//            "assets/RV/luckynight.rmvb";
+//            "assets/RV/rv40_ralf.rmvb";
+        test_file_demux(file, &RealMediaDemuxerCreator{}, 0, DemuxerTestMode::Demux);
 //panic!("the end");
     }
     #[test]
     fn test_ra_demux() {
         // sample: https://samples.mplayerhq.hu/real//RA/ra_with_comment_field/diemusik.ra
-        let mut file =
-//            File::open("assets/RV/welcome288.ra").unwrap();
-            File::open("assets/RV/diemusik.ra").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = RealAudioDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
-    }
+        let file =
+//            "assets/RV/welcome288.ra";
+            "assets/RV/diemusik.ra";
+        test_file_demux(file, &RealAudioDemuxerCreator{}, 0, DemuxerTestMode::Demux);
+   }
     #[test]
     fn test_ivr_demux() {
         // sample: https://samples.mplayerhq.hu/real/ivr/Opener_rm_hi.ivr
-        let mut file =
-            File::open("assets/RV/Opener_rm_hi.ivr").unwrap();
-//            File::open("assets/RV/SherwinWilliamsCommercial.ivr").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = RealIVRDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-                panic!("error");
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
-    }
+        let file =
+              "assets/RV/Opener_rm_hi.ivr";
+//            "assets/RV/SherwinWilliamsCommercial.ivr";
+        test_file_demux(file, &RealIVRDemuxerCreator{}, 0, DemuxerTestMode::Demux);
+   }
 }
index c718cb72ece63329d2c0d99fd5dd91fd68e5ba44..714aafea9b0ac8c5de389584cde9d21fd61e39e3 100644 (file)
@@ -252,26 +252,11 @@ impl DemuxerCreator for VivoDemuxerCreator {
 #[cfg(test)]
 mod test {
     use super::*;
-    use std::fs::File;
+    use nihav_codec_support::test::dmx_test::*;
 
     #[test]
     fn test_vivo_demux() {
-//        let mut file = File::open("assets/Misc/greetings.viv").unwrap();
         // sample: https://samples.mplayerhq.hu/vivo/vivo2/favmovie.viv
-        let mut file = File::open("assets/Misc/favmovie.viv").unwrap();
-        let mut br = FileReader::new_read(&mut file);
-        let mut dmx = VivoDemuxer::new(&mut br);
-        let mut sm = StreamManager::new();
-        let mut si = SeekIndex::new();
-        dmx.open(&mut sm, &mut si).unwrap();
-        loop {
-            let pktres = dmx.get_frame(&mut sm);
-            if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
-                panic!("error {:?}", e);
-            }
-            let pkt = pktres.unwrap();
-            println!("Got {}", pkt);
-        }
+        test_file_demux("assets/Misc/favmovie.viv", &VivoDemuxerCreator{}, 0, DemuxerTestMode::Demux);
     }
 }