make audio decoder tests write .wav files only by request
authorKostya Shishkov <kostya.shishkov@gmail.com>
Mon, 18 Nov 2019 17:59:42 +0000 (18:59 +0100)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Mon, 18 Nov 2019 17:59:42 +0000 (18:59 +0100)
17 files changed:
nihav-commonfmt/src/codecs/aac.rs
nihav-commonfmt/src/codecs/atrac3.rs
nihav-commonfmt/src/codecs/sipro.rs
nihav-commonfmt/src/codecs/ts102366.rs
nihav-core/src/test/dec_video.rs
nihav-duck/src/codecs/dkadpcm.rs
nihav-duck/src/codecs/on2avc.rs
nihav-game/src/codecs/bmv.rs
nihav-game/src/codecs/bmv3.rs
nihav-game/src/codecs/vmd.rs
nihav-indeo/src/codecs/imc.rs
nihav-rad/src/codecs/binkaud.rs
nihav-rad/src/codecs/smacker.rs
nihav-realmedia/src/codecs/cook.rs
nihav-realmedia/src/codecs/ra144.rs
nihav-realmedia/src/codecs/ra288.rs
nihav-realmedia/src/codecs/ralf.rs

index aeb2d060ff60694619e19d6103fe74383d4c7614..f24ba20e39a7c328bb03b7c3c27c3fcb39ef5368 100644 (file)
@@ -1278,7 +1278,7 @@ mod test {
 
 //        let file = "assets/RV/rv40_weighted_mc.rmvb";
         let file = "assets/RV/rv40_weighted_mc_2.rmvb";
-        test_decode_audio("realmedia", file, Some(12000), "aac", &dmx_reg, &dec_reg);
+        test_decode_audio("realmedia", file, Some(12000), None/*Some("aac")*/, &dmx_reg, &dec_reg);
     }
 }
 
index 441da8923a9d3695d9e5808bc22bd8ad2a4f516d..86b23496d9c841c3bccc2da15bee91dfd18acf2e 100644 (file)
@@ -715,7 +715,7 @@ mod test {
 
         let file = "assets/RV/rv30_atrc_384x208_realproducer_plus_8.51.rm";
 //        let file = "assets/RV/rv20_svt_atrc_640x352_realproducer_plus_8.51.rm";
-        test_decode_audio("realmedia", file, Some(12000), "atrac3", &dmx_reg, &dec_reg);
+        test_decode_audio("realmedia", file, Some(12000), None/*Some("atrac3")*/, &dmx_reg, &dec_reg);
     }
 }
 
index 745feaf82af09885190668e2e283fc1a0c858acd..44f7942e2cea5706fb883a0ff63417e8d91db91e 100644 (file)
@@ -755,7 +755,7 @@ mod test {
         generic_register_all_codecs(&mut dec_reg);
 
         let file = "assets/RV/autahi-vox.rm";
-        test_decode_audio("realmedia", file, Some(5000), "sipro", &dmx_reg, &dec_reg);
+        test_decode_audio("realmedia", file, Some(5000), None/*Some("sipro")*/, &dmx_reg, &dec_reg);
     }
 }
 
index 62acaebd95278d5ebc1ea4df184410cc36c0bb9a..d6f214403323472bbfcbf45363f575e04c7224de 100644 (file)
@@ -1259,7 +1259,7 @@ mod test {
         generic_register_all_codecs(&mut dec_reg);
 
         let file = "assets/RV/sp_sample1.rm";
-        test_decode_audio("realmedia", file, Some(12000), "ac3", &dmx_reg, &dec_reg);
+        test_decode_audio("realmedia", file, Some(12000), None/*Some("ac3")*/, &dmx_reg, &dec_reg);
     }
 }
 
index da29429c297b318ff2b77281f496e9ef6abee0c7..4cbdc367202ca7c0f43504de6f76056de226a021 100644 (file)
@@ -206,7 +206,7 @@ panic!(" unknown format");
     }
 }
 
-pub fn test_decode_audio(demuxer: &str, name: &str, limit: Option<u64>, audio_pfx: &str,
+pub fn test_decode_audio(demuxer: &str, name: &str, limit: Option<u64>, audio_pfx: Option<&str>,
                          dmx_reg: &RegisteredDemuxers, dec_reg: &RegisteredDecoders) {
     let dmx_f = dmx_reg.find_demuxer(demuxer).unwrap();
     let mut file = File::open(name).unwrap();
@@ -233,32 +233,50 @@ pub fn test_decode_audio(demuxer: &str, name: &str, limit: Option<u64>, audio_pf
         }
     }
 
-    let name = format!("assets/{}out.wav", audio_pfx);
-    let file = File::create(name).unwrap();
-    let mut fw = FileWriter::new_write(file);
-    let mut wr = ByteWriter::new(&mut fw);
-    let mut wwr = WavWriter::new(&mut wr);
-    let mut wrote_header = false;
+    if let Some(audio_pfx) = audio_pfx { 
+        let name = format!("assets/{}out.wav", audio_pfx);
+        let file = File::create(name).unwrap();
+        let mut fw = FileWriter::new_write(file);
+        let mut wr = ByteWriter::new(&mut fw);
+        let mut wwr = WavWriter::new(&mut wr);
+        let mut wrote_header = false;
 
-    loop {
-        let pktres = dmx.get_frame();
-        if let Err(e) = pktres {
-            if e == DemuxerError::EOF { break; }
-            panic!("error");
-        }
-        let pkt = pktres.unwrap();
-        if limit.is_some() && pkt.get_pts().is_some() && pkt.get_pts().unwrap() > limit.unwrap() {
-            break;
-        }
-        let streamno = pkt.get_stream().get_id() as usize;
-        if let Some((ref mut dsupp, ref mut dec)) = decs[streamno] {
-            let frm = dec.decode(dsupp, &pkt).unwrap();
-            if frm.get_info().is_audio() {
-                if !wrote_header {
-                    wwr.write_header(frm.get_info().as_ref().get_properties().get_audio_info().unwrap()).unwrap();
-                    wrote_header = true;
+        loop {
+            let pktres = dmx.get_frame();
+            if let Err(e) = pktres {
+                if e == DemuxerError::EOF { break; }
+                panic!("error");
+            }
+            let pkt = pktres.unwrap();
+            if limit.is_some() && pkt.get_pts().is_some() && pkt.get_pts().unwrap() > limit.unwrap() {
+                break;
+            }
+            let streamno = pkt.get_stream().get_id() as usize;
+            if let Some((ref mut dsupp, ref mut dec)) = decs[streamno] {
+                let frm = dec.decode(dsupp, &pkt).unwrap();
+                if frm.get_info().is_audio() {
+                    if !wrote_header {
+                        wwr.write_header(frm.get_info().as_ref().get_properties().get_audio_info().unwrap()).unwrap();
+                        wrote_header = true;
+                    }
+                    wwr.write_frame(frm.get_buffer()).unwrap();
                 }
-                wwr.write_frame(frm.get_buffer()).unwrap();
+            }
+        }
+    } else {
+        loop {
+            let pktres = dmx.get_frame();
+            if let Err(e) = pktres {
+                if e == DemuxerError::EOF { break; }
+                panic!("error");
+            }
+            let pkt = pktres.unwrap();
+            if limit.is_some() && pkt.get_pts().is_some() && pkt.get_pts().unwrap() > limit.unwrap() {
+                break;
+            }
+            let streamno = pkt.get_stream().get_id() as usize;
+            if let Some((ref mut dsupp, ref mut dec)) = decs[streamno] {
+                let _ = dec.decode(dsupp, &pkt).unwrap();
             }
         }
     }
index 24f5b5b8d95cb48575c40cbcc08431a0753521c9..712a864bc24d7ae2dcaadbc0696ef75b060a2cc6 100644 (file)
@@ -190,7 +190,7 @@ mod test {
         duck_register_all_codecs(&mut dec_reg);
 
         let file = "assets/Duck/AVI-DUCK-dk3.duk";
-        test_decode_audio("avi", file, Some(100), "dk3", &dmx_reg, &dec_reg);
+        test_decode_audio("avi", file, Some(100), None/*Some("dk3")*/, &dmx_reg, &dec_reg);
     }
     #[test]
     fn test_dk4() {
@@ -200,7 +200,7 @@ mod test {
         duck_register_all_codecs(&mut dec_reg);
 
         let file = "assets/Duck/virtuafighter2-opening1.avi";
-        test_decode_audio("avi", file, Some(100), "dk4", &dmx_reg, &dec_reg);
+        test_decode_audio("avi", file, Some(100), None/*Some("dk4")*/, &dmx_reg, &dec_reg);
     }
 }
 
index 8273437320f7e61502e5c1e2ede792f445471644..97c73c123b57cc1f867f75858f3422300dacaf68 100644 (file)
@@ -1073,7 +1073,7 @@ mod test {
         //let file = "assets/Duck/Cell-140.vp5";
         //let file = "assets/Duck/Chocolat-500.vp5";
         let file = "assets/Duck/potter-500.vp7";
-        test_decode_audio("avi", file, Some(1500), "avc", &dmx_reg, &dec_reg);
+        test_decode_audio("avi", file, Some(1500), None/*Some("avc")*/, &dmx_reg, &dec_reg);
     }
 }
 
index 902ae513bee4fc5d312bcf840bd0151cb460f29d..4417fb79057b07671bc47a71f94ccd3bbe09d88e 100644 (file)
@@ -332,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);
     }
 }
index 47378af1459ea64fb2a556ab239b999aff9fee17..ae1419a709797cdd8f6800fadf7e1fbe5cf00841 100644 (file)
@@ -624,7 +624,7 @@ mod test {
         game_register_all_codecs(&mut dec_reg);
 
         let file = "assets/Game/DW3-Loffnote.bmv";
-        test_decode_audio("bmv3", file, None, "bmv3", &dmx_reg, &dec_reg);
+        test_decode_audio("bmv3", file, None, None/*Some("bmv3")*/, &dmx_reg, &dec_reg);
     }
 }
 
index e7f724f2577bd163c891e78fb1bd3dd5740438e0..abcb0af7c05915ab305485d9ec0b765b038f917a 100644 (file)
@@ -476,6 +476,6 @@ mod test {
         let file = "assets/Game/128.vmd";
 //        let file = "assets/Game/1000.VMD";
 //        let file = "assets/Game/235.VMD";
-        test_decode_audio("vmd", file, None, "vmd", &dmx_reg, &dec_reg);
+        test_decode_audio("vmd", file, None, None/*Some("vmd")*/, &dmx_reg, &dec_reg);
     }
 }
index 4b7c9908e511bbc37e163b12ed3313def9ef2103..6840800f4a3292e02e76a42b4e3aa6a235a03222 100644 (file)
@@ -1126,7 +1126,7 @@ mod test {
         let file = "assets/Indeo/IMC/8khz.avi";
 //        let file = "assets/Indeo/STsKlassFist-1a.avi";
 //        let file = "assets/Indeo/IMC/Angel Bday.avi";
-        test_decode_audio("avi", file, None, "imc", &dmx_reg, &dec_reg);
+        test_decode_audio("avi", file, None, None/*Some("imc")*/, &dmx_reg, &dec_reg);
         //test_file_decoding("avi", file, None, false, true, None);
     }
 }
index 86f4fb0c55b1c38440515bedcaddb05da9d61bbe..df0970e36c95f41661473004966df0ac58a102de 100644 (file)
@@ -306,6 +306,6 @@ mod test {
 //        let file = "assets/RAD/Snd0a110c51.dee";
 //        let file = "assets/RAD/NEW.BIK";
 //        let file = "assets/RAD/ge_video_86l.bk2";
-        test_decode_audio("bink", file, None, "bink", &dmx_reg, &dec_reg);
+        test_decode_audio("bink", file, None, None/*Some("bink")*/, &dmx_reg, &dec_reg);
     }
 }
index cb7d0ba921bc7f2a1aafcb6dfa2dca8638ecdbac..0faec8f093e7506892390c596dfd320a73174387 100644 (file)
@@ -628,6 +628,6 @@ mod test {
 
         //let file = "assets/RAD/20130507_audio-distortion.smk";
         let file = "assets/RAD/wetlogo.smk";
-        test_decode_audio("smacker", file, None, "smk", &dmx_reg, &dec_reg);
+        test_decode_audio("smacker", file, None, None/*Some("smk")*/, &dmx_reg, &dec_reg);
     }
 }
index a1a32e48788592214f4c39475c095c1868e37a51..74364fc74c6bf46528eda5fcb5f777f04b1be091 100644 (file)
@@ -696,7 +696,7 @@ mod test {
 
 //        let file = "assets/RV/rv30_weighted_mc.rm";
         let file = "assets/RV/multichannel.rma";
-        test_decode_audio("realmedia", file, Some(2000), "cook", &dmx_reg, &dec_reg);
+        test_decode_audio("realmedia", file, Some(2000), None/*Some("cook")*/, &dmx_reg, &dec_reg);
     }
 }
 
index 4e8a6a549625214a11bc1bdf92c324261ef9bf74..2b70f04613fc2b5002e23b6797ee02cc6f48eeaf 100644 (file)
@@ -330,7 +330,7 @@ mod test {
         realmedia_register_all_codecs(&mut dec_reg);
 
         let file = "assets/RV/ra3_in_rm_file.rm";
-        test_decode_audio("realmedia", file, Some(5000), "ra14.4", &dmx_reg, &dec_reg);
+        test_decode_audio("realmedia", file, Some(5000), None/*Some("ra14.4")*/, &dmx_reg, &dec_reg);
     }
 }
 
index ef8faaea8e531c82e97fc63258cd99e50ebeecd5..251e47ce73b69086f5cd9e4e191ec9352e5e394e 100644 (file)
@@ -220,7 +220,7 @@ mod test {
         realmedia_register_all_codecs(&mut dec_reg);
 
         let file = "assets/RV/A0000044.rm";
-        test_decode_audio("realmedia", file, Some(5000), "ra28.8", &dmx_reg, &dec_reg);
+        test_decode_audio("realmedia", file, Some(5000), None/*Some("ra28.8")*/, &dmx_reg, &dec_reg);
     }
 }
 
index 7bcab6bdbfce8fc85571382e9da4e6635a2f92b5..c5a0f7fabe5266e6c650abfd911ea51d9561ba20 100644 (file)
@@ -490,7 +490,7 @@ mod test {
         realmedia_register_all_codecs(&mut dec_reg);
 
         let file = "assets/RV/rv40_ralf.rmvb";
-        test_decode_audio("realmedia", file, Some(2000), "ralf", &dmx_reg, &dec_reg);
+        test_decode_audio("realmedia", file, Some(2000), None/*Some("ralf")*/, &dmx_reg, &dec_reg);
 //panic!("end");
     }
 }