From 886cde4847280b96e10d240c2f2d76abec121dc8 Mon Sep 17 00:00:00 2001
From: Kostya Shishkov <kostya.shishkov@gmail.com>
Date: Sat, 20 Nov 2021 16:06:22 +0100
Subject: [PATCH] annotate the sources for test samples

---
 nihav-commonfmt/src/codecs/atrac3.rs      | 1 +
 nihav-commonfmt/src/codecs/cinepak.rs     | 3 +++
 nihav-commonfmt/src/codecs/cinepakenc.rs  | 1 +
 nihav-commonfmt/src/codecs/clearvideo.rs  | 2 ++
 nihav-commonfmt/src/codecs/jpeg.rs        | 1 +
 nihav-commonfmt/src/codecs/rawvideo.rs    | 1 +
 nihav-commonfmt/src/codecs/rawvideo_ms.rs | 4 ++++
 nihav-commonfmt/src/codecs/sipro.rs       | 1 +
 nihav-commonfmt/src/codecs/ts102366.rs    | 1 +
 nihav-commonfmt/src/codecs/zmbv.rs        | 1 +
 nihav-commonfmt/src/codecs/zmbvenc.rs     | 1 +
 nihav-commonfmt/src/demuxers/avi.rs       | 1 +
 nihav-commonfmt/src/demuxers/mov.rs       | 2 ++
 nihav-commonfmt/src/demuxers/wav.rs       | 1 +
 nihav-commonfmt/src/demuxers/y4m.rs       | 1 +
 nihav-commonfmt/src/muxers/avi.rs         | 1 +
 nihav-commonfmt/src/muxers/wav.rs         | 1 +
 nihav-duck/src/codecs/dkadpcm.rs          | 2 ++
 nihav-duck/src/codecs/on2avc.rs           | 1 +
 nihav-duck/src/codecs/truemotion1.rs      | 1 +
 nihav-duck/src/codecs/truemotion2.rs      | 1 +
 nihav-duck/src/codecs/truemotion2x.rs     | 1 +
 nihav-duck/src/codecs/truemotionrt.rs     | 1 +
 nihav-duck/src/codecs/vp3.rs              | 3 +++
 nihav-duck/src/codecs/vp5.rs              | 1 +
 nihav-duck/src/codecs/vp6.rs              | 3 +++
 nihav-duck/src/codecs/vp6enc/mod.rs       | 1 +
 nihav-duck/src/codecs/vp7.rs              | 1 +
 nihav-duck/src/codecs/vp8.rs              | 1 +
 nihav-duck/src/demuxers/ivf.rs            | 1 +
 nihav-flash/src/codecs/adpcm.rs           | 2 ++
 nihav-flash/src/codecs/adpcmenc.rs        | 1 +
 nihav-flash/src/codecs/asao.rs            | 1 +
 nihav-flash/src/codecs/flashsv.rs         | 2 ++
 nihav-flash/src/codecs/flv263.rs          | 1 +
 nihav-flash/src/demuxers/flv.rs           | 1 +
 nihav-flash/src/muxers/flv.rs             | 1 +
 nihav-game/src/codecs/bmv.rs              | 1 +
 nihav-game/src/codecs/bmv3.rs             | 1 +
 nihav-game/src/codecs/futurevision.rs     | 1 +
 nihav-game/src/codecs/gremlinvideo.rs     | 1 +
 nihav-game/src/codecs/imax.rs             | 1 +
 nihav-game/src/codecs/ipma.rs             | 1 +
 nihav-game/src/codecs/midivid.rs          | 1 +
 nihav-game/src/codecs/midivid3.rs         | 1 +
 nihav-game/src/codecs/q.rs                | 1 +
 nihav-game/src/codecs/vmd.rs              | 1 +
 nihav-game/src/codecs/vx.rs               | 1 +
 nihav-game/src/demuxers/bmv.rs            | 1 +
 nihav-game/src/demuxers/fst.rs            | 1 +
 nihav-game/src/demuxers/gdv.rs            | 1 +
 nihav-game/src/demuxers/imax.rs           | 1 +
 nihav-game/src/demuxers/q.rs              | 1 +
 nihav-game/src/demuxers/vmd.rs            | 1 +
 nihav-game/src/demuxers/vx.rs             | 1 +
 nihav-indeo/src/codecs/imc.rs             | 1 +
 nihav-indeo/src/codecs/indeo2.rs          | 1 +
 nihav-indeo/src/codecs/indeo3.rs          | 1 +
 nihav-indeo/src/codecs/indeo4.rs          | 2 ++
 nihav-indeo/src/codecs/indeo5.rs          | 1 +
 nihav-indeo/src/codecs/intel263.rs        | 1 +
 nihav-itu/src/codecs/h264/mod.rs          | 3 +++
 nihav-llaudio/src/codecs/ape.rs           | 1 +
 nihav-llaudio/src/codecs/flac.rs          | 1 +
 nihav-llaudio/src/codecs/flacenc.rs       | 1 +
 nihav-llaudio/src/codecs/tta.rs           | 1 +
 nihav-llaudio/src/codecs/wavpack.rs       | 1 +
 nihav-llaudio/src/demuxers/ape.rs         | 1 +
 nihav-llaudio/src/demuxers/flac.rs        | 1 +
 nihav-llaudio/src/demuxers/flacraw.rs     | 1 +
 nihav-llaudio/src/demuxers/tta.rs         | 1 +
 nihav-llaudio/src/demuxers/wavpack.rs     | 1 +
 nihav-llaudio/src/muxers/flac.rs          | 1 +
 nihav-mpeg/src/codecs/mpegaudio/mod.rs    | 4 ++++
 nihav-ms/src/codecs/imaadpcm.rs           | 1 +
 nihav-ms/src/codecs/imaadpcmenc.rs        | 1 +
 nihav-ms/src/codecs/msadpcm.rs            | 1 +
 nihav-ms/src/codecs/msrle.rs              | 1 +
 nihav-ms/src/codecs/msvideo1.rs           | 2 ++
 nihav-ms/src/codecs/msvideo1enc.rs        | 1 +
 nihav-qt/src/codecs/alac.rs               | 3 +++
 nihav-qt/src/codecs/imaadpcm.rs           | 1 +
 nihav-qt/src/codecs/mace.rs               | 1 +
 nihav-qt/src/codecs/qdm2.rs               | 1 +
 nihav-qt/src/codecs/qdmc.rs               | 1 +
 nihav-qt/src/codecs/rle.rs                | 1 +
 nihav-qt/src/codecs/rpza.rs               | 3 ++-
 nihav-qt/src/codecs/smc.rs                | 1 +
 nihav-qt/src/codecs/svq1.rs               | 1 +
 nihav-qt/src/codecs/svq3.rs               | 1 +
 nihav-rad/src/codecs/bink2.rs             | 1 +
 nihav-rad/src/codecs/binkaud.rs           | 2 ++
 nihav-rad/src/codecs/binkvid.rs           | 2 ++
 nihav-rad/src/codecs/smacker.rs           | 3 +++
 nihav-rad/src/demuxers/bink.rs            | 1 +
 nihav-rad/src/demuxers/smacker.rs         | 1 +
 nihav-realmedia/src/codecs/cook.rs        | 1 +
 nihav-realmedia/src/codecs/ra144.rs       | 1 +
 nihav-realmedia/src/codecs/ra288.rs       | 1 +
 nihav-realmedia/src/codecs/ralf.rs        | 1 +
 nihav-realmedia/src/codecs/rv10.rs        | 2 ++
 nihav-realmedia/src/codecs/rv20.rs        | 1 +
 nihav-realmedia/src/codecs/rv30.rs        | 2 ++
 nihav-realmedia/src/codecs/rv40.rs        | 1 +
 nihav-realmedia/src/codecs/rv60.rs        | 1 +
 nihav-realmedia/src/demuxers/realmedia.rs | 3 +++
 nihav-vivo/src/codecs/g723_1.rs           | 1 +
 nihav-vivo/src/codecs/siren.rs            | 1 +
 nihav-vivo/src/codecs/vivo.rs             | 1 +
 nihav-vivo/src/demuxers/vivo.rs           | 1 +
 110 files changed, 142 insertions(+), 1 deletion(-)

diff --git a/nihav-commonfmt/src/codecs/atrac3.rs b/nihav-commonfmt/src/codecs/atrac3.rs
index f1b9ef6..ee93a63 100644
--- a/nihav-commonfmt/src/codecs/atrac3.rs
+++ b/nihav-commonfmt/src/codecs/atrac3.rs
@@ -721,6 +721,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         generic_register_all_decoders(&mut dec_reg);
 
+        // samples from private collection
         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), None/*Some("atrac3")*/, &dmx_reg, &dec_reg);
diff --git a/nihav-commonfmt/src/codecs/cinepak.rs b/nihav-commonfmt/src/codecs/cinepak.rs
index 23903dd..e558da9 100644
--- a/nihav-commonfmt/src/codecs/cinepak.rs
+++ b/nihav-commonfmt/src/codecs/cinepak.rs
@@ -413,6 +413,7 @@ mod test {
         generic_register_all_demuxers(&mut dmx_reg);
         let mut dec_reg = RegisteredDecoders::new();
         generic_register_all_decoders(&mut dec_reg);
+        // sample: https://samples.mplayerhq.hu/V-codecs/CVID/ot171.avi
         test_decoding("avi", "cinepak", "assets/Misc/ot171.avi", Some(10), &dmx_reg,
                      &dec_reg, ExpectedTestResult::MD5Frames(vec![
                         [0xd58326b0, 0xdbfc1dcc, 0x6d66a04c, 0x08a21bbb],
@@ -433,6 +434,7 @@ mod test {
         generic_register_all_demuxers(&mut dmx_reg);
         let mut dec_reg = RegisteredDecoders::new();
         generic_register_all_decoders(&mut dec_reg);
+        // sample: https://samples.mplayerhq.hu/V-codecs/CVID/grayscale/dday.mov
         test_decoding("mov", "cinepak", "assets/Misc/dday.mov", Some(10), &dmx_reg,
                      &dec_reg, ExpectedTestResult::MD5Frames(vec![
                         [0x2ab229bc, 0xb71308aa, 0x979511c6, 0xcef3ea92],
@@ -453,6 +455,7 @@ mod test {
         generic_register_all_demuxers(&mut dmx_reg);
         let mut dec_reg = RegisteredDecoders::new();
         generic_register_all_decoders(&mut dec_reg);
+        // sample: https://samples.mplayerhq.hu/V-codecs/CVID/palette/catfight%20Tag%20team%20DT.mov
         test_decoding("mov", "cinepak", "assets/Misc/catfight Tag team DT.mov", Some(10), &dmx_reg,
                      &dec_reg, ExpectedTestResult::MD5Frames(vec![
                         [0x3f7ec8ea, 0x873a2bc6, 0xcc58336e, 0xe88c4ffd],
diff --git a/nihav-commonfmt/src/codecs/cinepakenc.rs b/nihav-commonfmt/src/codecs/cinepakenc.rs
index ddf2584..3269cf8 100644
--- a/nihav-commonfmt/src/codecs/cinepakenc.rs
+++ b/nihav-commonfmt/src/codecs/cinepakenc.rs
@@ -1100,6 +1100,7 @@ mod test {
         let mut enc_reg = RegisteredEncoders::new();
         generic_register_all_encoders(&mut enc_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/UCOD/TalkingHead_352x288.avi
         let dec_config = DecoderTestParams {
                 demuxer:        "avi",
                 in_name:        "assets/Misc/TalkingHead_352x288.avi",
diff --git a/nihav-commonfmt/src/codecs/clearvideo.rs b/nihav-commonfmt/src/codecs/clearvideo.rs
index 80521b8..731f848 100644
--- a/nihav-commonfmt/src/codecs/clearvideo.rs
+++ b/nihav-commonfmt/src/codecs/clearvideo.rs
@@ -998,6 +998,7 @@ mod test {
         generic_register_all_demuxers(&mut dmx_reg);
         let mut dec_reg = RegisteredDecoders::new();
         generic_register_all_decoders(&mut dec_reg);
+        // sample: https://samples.mplayerhq.hu/V-codecs/UCOD/TalkingHead_352x288.avi
         test_decoding("avi", "clearvideo", "assets/Misc/TalkingHead_352x288.avi", Some(10), &dmx_reg,
                      &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0xb432376c, 0xf1dce57b, 0x8e79c7ee, 0xdd51850d],
@@ -1018,6 +1019,7 @@ mod test {
         generic_register_all_demuxers(&mut dmx_reg);
         let mut dec_reg = RegisteredDecoders::new();
         generic_register_all_decoders(&mut dec_reg);
+        // sample: https://samples.mplayerhq.hu/V-codecs/UCOD/Nick%20Pope.avi
         test_decoding("avi", "clearvideo", "assets/Misc/Nick Pope.avi", Some(20), &dmx_reg,
                      &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0xca265763, 0xd7d40e35, 0x1c27d4fb, 0xbb76b9c6],
diff --git a/nihav-commonfmt/src/codecs/jpeg.rs b/nihav-commonfmt/src/codecs/jpeg.rs
index 693ead4..f9689a0 100644
--- a/nihav-commonfmt/src/codecs/jpeg.rs
+++ b/nihav-commonfmt/src/codecs/jpeg.rs
@@ -756,6 +756,7 @@ mod test {
         generic_register_all_demuxers(&mut dmx_reg);
         let mut dec_reg = RegisteredDecoders::new();
         generic_register_all_decoders(&mut dec_reg);
+        // sample: self-created with avconv
         test_decoding("avi", "jpeg", "assets/Misc/mjpeg.avi", Some(1), &dmx_reg,
                      &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0xe07f7128, 0x8c55eb5d, 0x03bfdee5, 0x358b24a4],
diff --git a/nihav-commonfmt/src/codecs/rawvideo.rs b/nihav-commonfmt/src/codecs/rawvideo.rs
index 13bd187..52dcc52 100644
--- a/nihav-commonfmt/src/codecs/rawvideo.rs
+++ b/nihav-commonfmt/src/codecs/rawvideo.rs
@@ -103,6 +103,7 @@ mod test {
         generic_register_all_demuxers(&mut dmx_reg);
         let mut dec_reg = RegisteredDecoders::new();
         generic_register_all_decoders(&mut dec_reg);
+        // sample: self-created with avconv
         test_decoding("yuv4mpeg", "rawvideo", "assets/Misc/test.y4m", None, &dmx_reg,
                      &dec_reg, ExpectedTestResult::MD5Frames(vec![
                                 [0xd58326b0, 0xdbfc1dcc, 0x6d66a04c, 0x08a21bbb],
diff --git a/nihav-commonfmt/src/codecs/rawvideo_ms.rs b/nihav-commonfmt/src/codecs/rawvideo_ms.rs
index a445cfd..8261e3e 100644
--- a/nihav-commonfmt/src/codecs/rawvideo_ms.rs
+++ b/nihav-commonfmt/src/codecs/rawvideo_ms.rs
@@ -126,6 +126,7 @@ mod test {
         generic_register_all_demuxers(&mut dmx_reg);
         let mut dec_reg = RegisteredDecoders::new();
         generic_register_all_decoders(&mut dec_reg);
+        // sample: https://samples.mplayerhq.hu/V-codecs/Uncompressed/8bpp.avi
         test_decoding("avi", "rawvideo-ms", "assets/Misc/8bpp.avi", Some(0), &dmx_reg,
                      &dec_reg, ExpectedTestResult::MD5([0xb6629439, 0x6ea482e9, 0x42c84d7c, 0x46c94431]));
     }
@@ -135,6 +136,7 @@ mod test {
         generic_register_all_demuxers(&mut dmx_reg);
         let mut dec_reg = RegisteredDecoders::new();
         generic_register_all_decoders(&mut dec_reg);
+        // sample: https://samples.mplayerhq.hu/V-codecs/Uncompressed/16bpp.avi
         test_decoding("avi", "rawvideo-ms", "assets/Misc/16bpp.avi", Some(0), &dmx_reg,
                      &dec_reg, ExpectedTestResult::MD5([0xe80e16a1, 0x2d50659e, 0x413d24af, 0xea3bee05]));
     }
@@ -144,6 +146,7 @@ mod test {
         generic_register_all_demuxers(&mut dmx_reg);
         let mut dec_reg = RegisteredDecoders::new();
         generic_register_all_decoders(&mut dec_reg);
+        // sample:https://samples.mplayerhq.hu/V-codecs/Uncompressed/keve.avi
         test_decoding("avi", "rawvideo-ms", "assets/Misc/keve.avi", Some(0), &dmx_reg,
                      &dec_reg, ExpectedTestResult::MD5([0x9514ac1f, 0x4512cc62, 0x069485ba, 0x084a1e63]));
     }
@@ -153,6 +156,7 @@ mod test {
         generic_register_all_demuxers(&mut dmx_reg);
         let mut dec_reg = RegisteredDecoders::new();
         generic_register_all_decoders(&mut dec_reg);
+        // sample: https://samples.mplayerhq.hu/V-codecs/Uncompressed/Logo-Uncompressed.zip
         test_decoding("avi", "rawvideo-ms", "assets/Misc/VRMLuncompressed.avi", Some(0), &dmx_reg,
                      &dec_reg, ExpectedTestResult::MD5([0xf4c9d468, 0x8f42c576, 0xc8eb522a, 0x75f654b1]));
     }
diff --git a/nihav-commonfmt/src/codecs/sipro.rs b/nihav-commonfmt/src/codecs/sipro.rs
index a1a1ed3..eeab619 100644
--- a/nihav-commonfmt/src/codecs/sipro.rs
+++ b/nihav-commonfmt/src/codecs/sipro.rs
@@ -759,6 +759,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         generic_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/real/AC-sipr/autahi-vox.rm
         let file = "assets/RV/autahi-vox.rm";
         test_decode_audio("realmedia", file, Some(5000), None/*Some("sipro")*/, &dmx_reg, &dec_reg);
     }
diff --git a/nihav-commonfmt/src/codecs/ts102366.rs b/nihav-commonfmt/src/codecs/ts102366.rs
index de6a5ad..5cf90c5 100644
--- a/nihav-commonfmt/src/codecs/ts102366.rs
+++ b/nihav-commonfmt/src/codecs/ts102366.rs
@@ -1265,6 +1265,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         generic_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/real/VC-RV10/sp_sample1.rm
         let file = "assets/RV/sp_sample1.rm";
         test_decode_audio("realmedia", file, Some(12000), None/*Some("ac3")*/, &dmx_reg, &dec_reg);
     }
diff --git a/nihav-commonfmt/src/codecs/zmbv.rs b/nihav-commonfmt/src/codecs/zmbv.rs
index b01e375..c53f76a 100644
--- a/nihav-commonfmt/src/codecs/zmbv.rs
+++ b/nihav-commonfmt/src/codecs/zmbv.rs
@@ -320,6 +320,7 @@ mod test {
     use nihav_codec_support::test::dec_video::*;
     use crate::generic_register_all_decoders;
     use crate::generic_register_all_demuxers;
+    // samples are from https://samples.mplayerhq.hu/V-codecs/ZMBV/
     #[test]
     fn test_zmbv_8() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-commonfmt/src/codecs/zmbvenc.rs b/nihav-commonfmt/src/codecs/zmbvenc.rs
index ee40f49..c0d58fa 100644
--- a/nihav-commonfmt/src/codecs/zmbvenc.rs
+++ b/nihav-commonfmt/src/codecs/zmbvenc.rs
@@ -549,6 +549,7 @@ mod test {
     use nihav_codec_support::test::enc_video::*;
     use super::{RGB555_FORMAT, RGB24_0_FORMAT};
 
+    // samples are from https://samples.mplayerhq.hu/V-codecs/ZMBV/
     #[test]
     fn test_zmbv_encoder_8bit() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-commonfmt/src/demuxers/avi.rs b/nihav-commonfmt/src/demuxers/avi.rs
index 7c1d4f7..cc24fe3 100644
--- a/nihav-commonfmt/src/demuxers/avi.rs
+++ b/nihav-commonfmt/src/demuxers/avi.rs
@@ -857,6 +857,7 @@ mod 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 fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
diff --git a/nihav-commonfmt/src/demuxers/mov.rs b/nihav-commonfmt/src/demuxers/mov.rs
index 90ca6c5..23781a9 100644
--- a/nihav-commonfmt/src/demuxers/mov.rs
+++ b/nihav-commonfmt/src/demuxers/mov.rs
@@ -2045,6 +2045,7 @@ mod test {
 
     #[test]
     fn test_mov_demux() {
+        // sample: https://samples.mplayerhq.hu/V-codecs/IV32/cubes.mov
         let mut file = File::open("assets/Indeo/cubes.mov").unwrap();
         let mut fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
@@ -2066,6 +2067,7 @@ mod test {
 
     #[test]
     fn test_dash_demux() {
+        // sample: a stream downloaded with youtube-dl
         let mut file = File::open("assets/ITU/dash.m4a").unwrap();
         let mut fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
diff --git a/nihav-commonfmt/src/demuxers/wav.rs b/nihav-commonfmt/src/demuxers/wav.rs
index 2164619..1e685de 100644
--- a/nihav-commonfmt/src/demuxers/wav.rs
+++ b/nihav-commonfmt/src/demuxers/wav.rs
@@ -209,6 +209,7 @@ mod 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 fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
diff --git a/nihav-commonfmt/src/demuxers/y4m.rs b/nihav-commonfmt/src/demuxers/y4m.rs
index f303060..93831e9 100644
--- a/nihav-commonfmt/src/demuxers/y4m.rs
+++ b/nihav-commonfmt/src/demuxers/y4m.rs
@@ -194,6 +194,7 @@ mod test {
 
     #[test]
     fn test_y4m_demux() {
+        // sample: self-created with avconv
         let mut file = File::open("assets/Misc/test.y4m").unwrap();
         let mut fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
diff --git a/nihav-commonfmt/src/muxers/avi.rs b/nihav-commonfmt/src/muxers/avi.rs
index cd75942..e094060 100644
--- a/nihav-commonfmt/src/muxers/avi.rs
+++ b/nihav-commonfmt/src/muxers/avi.rs
@@ -355,6 +355,7 @@ mod test {
     fn test_avi_muxer() {
         let mut dmx_reg = RegisteredDemuxers::new();
         generic_register_all_demuxers(&mut dmx_reg);
+        //test sample: https://samples.mplayerhq.hu/V-codecs/RT21/320x240/laser05.avi
         let dec_config = DecoderTestParams {
                 demuxer:        "avi",
                 in_name:        "assets/Indeo/laser05.avi",
diff --git a/nihav-commonfmt/src/muxers/wav.rs b/nihav-commonfmt/src/muxers/wav.rs
index f99c147..49be5d6 100644
--- a/nihav-commonfmt/src/muxers/wav.rs
+++ b/nihav-commonfmt/src/muxers/wav.rs
@@ -126,6 +126,7 @@ mod test {
     fn test_wav_muxer() {
         let mut dmx_reg = RegisteredDemuxers::new();
         generic_register_all_demuxers(&mut dmx_reg);
+        // sample: https://samples.mplayerhq.hu/V-codecs/RT21/320x240/laser05.avi
         let dec_config = DecoderTestParams {
                 demuxer:        "avi",
                 in_name:        "assets/Indeo/laser05.avi",
diff --git a/nihav-duck/src/codecs/dkadpcm.rs b/nihav-duck/src/codecs/dkadpcm.rs
index 399b4f7..cdd58b6 100644
--- a/nihav-duck/src/codecs/dkadpcm.rs
+++ b/nihav-duck/src/codecs/dkadpcm.rs
@@ -170,6 +170,7 @@ mod test {
 
         //let file = "assets/Duck/AVI-DUCK-dk3.duk";
         //test_decode_audio("avi", file, Some(100), None/*Some("dk3")*/, &dmx_reg, &dec_reg);
+        // sample: https://samples.mplayerhq.hu/V-codecs/DUCK/AVI-DUCK-dk3.duk
         test_decoding("avi", "adpcm-dk3", "assets/Duck/AVI-DUCK-dk3.duk", None, &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0xa48fae0a, 0xa536b27f, 0x169ecc19, 0x8436fade]));
     }
@@ -182,6 +183,7 @@ mod test {
 
 //        let file = "assets/Duck/virtuafighter2-opening1.avi";
 //        test_decode_audio("avi", file, Some(100), None/*Some("dk4")*/, &dmx_reg, &dec_reg);
+        // sample: https://samples.mplayerhq.hu/V-codecs/DUCK/virtuafighter2-opening1.avi
         test_decoding("avi", "adpcm-dk4", "assets/Duck/virtuafighter2-opening1.avi", None, &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x04e40d15, 0xf65b3427, 0x1dd5181f, 0xf321b56f]));
     }
diff --git a/nihav-duck/src/codecs/on2avc.rs b/nihav-duck/src/codecs/on2avc.rs
index 1e3a122..69505cf 100644
--- a/nihav-duck/src/codecs/on2avc.rs
+++ b/nihav-duck/src/codecs/on2avc.rs
@@ -1060,6 +1060,7 @@ mod test {
 
         //let file = "assets/Duck/Cell-140.vp5";
         //let file = "assets/Duck/Chocolat-500.vp5";
+        // sample: https://samples.mplayerhq.hu/V-codecs/VP7/potter-500.vp7
         let file = "assets/Duck/potter-500.vp7";
         test_decode_audio("avi", file, Some(1500), None/*Some("avc")*/, &dmx_reg, &dec_reg);
     }
diff --git a/nihav-duck/src/codecs/truemotion1.rs b/nihav-duck/src/codecs/truemotion1.rs
index 9f5546f..c64c2ec 100644
--- a/nihav-duck/src/codecs/truemotion1.rs
+++ b/nihav-duck/src/codecs/truemotion1.rs
@@ -683,6 +683,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         duck_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/DUCK/phant2-940.duk
         test_decoding("avi", "truemotion1", "assets/Duck/phant2-940.duk", Some(12), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5Frames(vec![
                         [0x989e62b8, 0x5d85c23c, 0x1cffba6d, 0xe599f1c4],
diff --git a/nihav-duck/src/codecs/truemotion2.rs b/nihav-duck/src/codecs/truemotion2.rs
index 0c9e004..dfbbf9b 100644
--- a/nihav-duck/src/codecs/truemotion2.rs
+++ b/nihav-duck/src/codecs/truemotion2.rs
@@ -606,6 +606,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         duck_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/TM20/tm20.avi
         test_decoding("avi", "truemotion2", "assets/Duck/tm20.avi", Some(16),
                         &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0x8c336eb4, 0x10d0d934, 0x52392306, 0xc0bc6dd3],
diff --git a/nihav-duck/src/codecs/truemotion2x.rs b/nihav-duck/src/codecs/truemotion2x.rs
index 652b5b0..2e31829 100644
--- a/nihav-duck/src/codecs/truemotion2x.rs
+++ b/nihav-duck/src/codecs/truemotion2x.rs
@@ -719,6 +719,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         duck_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/TM2x.avi
         test_decoding("avi", "truemotion2x", "assets/Duck/TM2x.avi", None,
                         &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0x2854e7f3, 0x41e54fd3, 0xd9a16302, 0x580321b2],
diff --git a/nihav-duck/src/codecs/truemotionrt.rs b/nihav-duck/src/codecs/truemotionrt.rs
index 5ca17bd..157f8be 100644
--- a/nihav-duck/src/codecs/truemotionrt.rs
+++ b/nihav-duck/src/codecs/truemotionrt.rs
@@ -109,6 +109,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         duck_register_all_decoders(&mut dec_reg);
 
+        // sample from a private collection
         test_decoding("avi", "truemotionrt", "assets/Duck/tr20_low.avi", Some(10),
                         &dmx_reg, &dec_reg,
                         ExpectedTestResult::MD5([0x24c3d26c, 0x1e8bbdc4, 0xfb0fba5d, 0xaa04be81]));
diff --git a/nihav-duck/src/codecs/vp3.rs b/nihav-duck/src/codecs/vp3.rs
index 7b3411c..cf59b14 100644
--- a/nihav-duck/src/codecs/vp3.rs
+++ b/nihav-duck/src/codecs/vp3.rs
@@ -1910,6 +1910,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         duck_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/VP3/vp30-logo.avi
         test_decoding("avi", "vp3", "assets/Duck/vp30-logo.avi", Some(23), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x51aba7df, 0x6e42534d, 0xef6c5b13, 0x26c38d1f]));
     }
@@ -1926,6 +1927,7 @@ mod test {
 //        let file = "assets/Duck/01-vp31-0500.avi";
 //        test_file_decoding("avi", file, Some(3), true, false, None/*Some("vp31")*/, &dmx_reg, &dec_reg);
 //panic!("end");
+        // sample: https://samples.mplayerhq.hu/V-codecs/VP3/01-vp31-0500.avi
         test_decoding("avi", "vp3", "assets/Duck/01-vp31-0500.avi", Some(16), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x65112f7e, 0x2914f29b, 0x2908ed2f, 0xce5fc8c5]));
     }
@@ -1937,6 +1939,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         duck_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/VP4/ot171_vp40.avi
         test_decoding("avi", "vp3", "assets/Duck/ot171_vp40.avi", Some(86), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0xd41d8cd9, 0x8f00b204, 0xe9800998, 0xecf8427e]));
     }
diff --git a/nihav-duck/src/codecs/vp5.rs b/nihav-duck/src/codecs/vp5.rs
index 48fda2d..0b7062e 100644
--- a/nihav-duck/src/codecs/vp5.rs
+++ b/nihav-duck/src/codecs/vp5.rs
@@ -305,6 +305,7 @@ mod test {
 
         let file = "assets/Duck/Cell-140.vp5";
         //let file = "assets/Duck/Chocolat-500.vp5";
+        // sample: https://samples.mplayerhq.hu/V-codecs/VP5/Cell-140.vp5
         test_decoding("avi", "vp5", file, Some(96), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x9ad78b0f, 0xed988ead, 0x88ed2ea9, 0xcdb75cdf]));
     }
diff --git a/nihav-duck/src/codecs/vp6.rs b/nihav-duck/src/codecs/vp6.rs
index 6d97189..4bbf4c9 100644
--- a/nihav-duck/src/codecs/vp6.rs
+++ b/nihav-duck/src/codecs/vp6.rs
@@ -566,6 +566,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         duck_register_all_decoders(&mut dec_reg);
 
+        // sample from a private collection
         test_decoding("avi", "vp6", "assets/Duck/selection_720x576_300kBit_vp60i.avi", Some(16),
                       &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x042c3e96, 0x8a9b26a2, 0x4dcbaf66, 0x1b788d03]));
@@ -577,6 +578,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         duck_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/VP6/vp6_crash.avi
         test_decoding("avi", "vp6", "assets/Duck/vp6_crash.avi", Some(4),
                       &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0xdcd70fa0, 0x0d075ce2, 0xc9e65077, 0xb003a92e],
@@ -592,6 +594,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         duck_register_all_decoders(&mut dec_reg);
 
+        // sample created by remuxing some VP6A in FLV
         test_decoding("avi", "vp6a", "assets/Duck/vp6a.avi", Some(25),
                       &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0xaf903d79, 0x17ddb3c7, 0xf0a381e8, 0x26b36a7d],
diff --git a/nihav-duck/src/codecs/vp6enc/mod.rs b/nihav-duck/src/codecs/vp6enc/mod.rs
index 9388fd2..9f87054 100644
--- a/nihav-duck/src/codecs/vp6enc/mod.rs
+++ b/nihav-duck/src/codecs/vp6enc/mod.rs
@@ -882,6 +882,7 @@ mod test {
         let mut enc_reg = RegisteredEncoders::new();
         duck_register_all_encoders(&mut enc_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/VP4/ot171_vp40.avi
         let dec_config = DecoderTestParams {
                 demuxer:        "avi",
                 in_name:        "assets/Duck/ot171_vp40.avi",
diff --git a/nihav-duck/src/codecs/vp7.rs b/nihav-duck/src/codecs/vp7.rs
index 95f2575..da0ccc4 100644
--- a/nihav-duck/src/codecs/vp7.rs
+++ b/nihav-duck/src/codecs/vp7.rs
@@ -1267,6 +1267,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         duck_register_all_decoders(&mut dec_reg);
 
+        // sample from https://trac.ffmpeg.org/ticket/5580
         test_decoding("avi", "vp7", "assets/Duck/interlaced_blit_pitch.avi", Some(12), &dmx_reg,
                       &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0xb79fb6f8, 0xed51ac9e, 0x9e423456, 0xc0918e7f],
diff --git a/nihav-duck/src/codecs/vp8.rs b/nihav-duck/src/codecs/vp8.rs
index 2969bfa..9a9c4cc 100644
--- a/nihav-duck/src/codecs/vp8.rs
+++ b/nihav-duck/src/codecs/vp8.rs
@@ -1547,6 +1547,7 @@ mod test {
     use crate::duck_register_all_decoders;
     use crate::duck_register_all_demuxers;
 
+    // all samples are from the official VP8 test bitstreams set
     fn test_vp8_core(name: &str, hash: [u32; 4]) {
         let mut dmx_reg = RegisteredDemuxers::new();
         duck_register_all_demuxers(&mut dmx_reg);
diff --git a/nihav-duck/src/demuxers/ivf.rs b/nihav-duck/src/demuxers/ivf.rs
index 7d44460..ba4bb91 100644
--- a/nihav-duck/src/demuxers/ivf.rs
+++ b/nihav-duck/src/demuxers/ivf.rs
@@ -97,6 +97,7 @@ mod 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 fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
diff --git a/nihav-flash/src/codecs/adpcm.rs b/nihav-flash/src/codecs/adpcm.rs
index e6e21cf..d72b101 100644
--- a/nihav-flash/src/codecs/adpcm.rs
+++ b/nihav-flash/src/codecs/adpcm.rs
@@ -143,6 +143,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         flash_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/FLV/flash_flv_adpcm_testfiles/mono_11k.flv
         test_decoding("flv", "flv-adpcm", "assets/Flash/mono_11k.flv", Some(3000), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x4cf30e71, 0x4360c85b, 0x21c52863, 0x1782160e]));
     }
@@ -153,6 +154,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         flash_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/FLV/flash_flv_adpcm_testfiles/stereo_44k.flv
         test_decoding("flv", "flv-adpcm", "assets/Flash/stereo_44k.flv", Some(3000), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0xae108d38, 0xb36236f8, 0x2bc18d31, 0xac600424]));
     }
diff --git a/nihav-flash/src/codecs/adpcmenc.rs b/nihav-flash/src/codecs/adpcmenc.rs
index ced3c1b..92a292b 100644
--- a/nihav-flash/src/codecs/adpcmenc.rs
+++ b/nihav-flash/src/codecs/adpcmenc.rs
@@ -175,6 +175,7 @@ mod test {
         let mut enc_reg = RegisteredEncoders::new();
         flash_register_all_encoders(&mut enc_reg);
 
+        // sample: https://samples.mplayerhq.hu/FLV/flash_flv_adpcm_testfiles/mono_11k.flv
         let dec_config = DecoderTestParams {
                 demuxer:        "flv",
                 in_name:        "assets/Flash/mono_11k.flv",
diff --git a/nihav-flash/src/codecs/asao.rs b/nihav-flash/src/codecs/asao.rs
index e20c729..5fe8b40 100644
--- a/nihav-flash/src/codecs/asao.rs
+++ b/nihav-flash/src/codecs/asao.rs
@@ -309,6 +309,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         flash_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/A-codecs/Nelly_Moser/nellymoser-in-flv.flv
         test_decode_audio("flv", "assets/Flash/nellymoser-in-flv.flv", Some(3000), None/*Some("asao")*/, &dmx_reg, &dec_reg);
     }
 }
diff --git a/nihav-flash/src/codecs/flashsv.rs b/nihav-flash/src/codecs/flashsv.rs
index 26e0eb4..91d5825 100644
--- a/nihav-flash/src/codecs/flashsv.rs
+++ b/nihav-flash/src/codecs/flashsv.rs
@@ -347,6 +347,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         flash_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/FLV/flash_screen/screen.flv
         test_decoding("flv", "flashsv", "assets/Flash/screen.flv",
                       Some(3000), &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0xb45b899e, 0x417b17d5, 0x7bfe898b, 0x026b289f],
@@ -367,6 +368,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         flash_register_all_decoders(&mut dec_reg);
 
+        // sample created from https://samples.mplayerhq.hu/FLV/flash_screen/screen.flv by recoding
         test_decoding("flv", "flashsv2", "assets/Flash/screen2.flv",
                       Some(4700), &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0x55522afa, 0x9c7dd794, 0xdd67aa2e, 0x8b8c525e],
diff --git a/nihav-flash/src/codecs/flv263.rs b/nihav-flash/src/codecs/flv263.rs
index 3a8a18a..8655423 100644
--- a/nihav-flash/src/codecs/flv263.rs
+++ b/nihav-flash/src/codecs/flv263.rs
@@ -356,6 +356,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         flash_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/A-codecs/Nelly_Moser/input.flv
         test_decoding("flv", "flv263", "assets/Flash/input.flv",
                       Some(1000), &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0x9110718e, 0x794e22ad, 0x3324e552, 0xf58a0449],
diff --git a/nihav-flash/src/demuxers/flv.rs b/nihav-flash/src/demuxers/flv.rs
index 52080ab..82901ac 100644
--- a/nihav-flash/src/demuxers/flv.rs
+++ b/nihav-flash/src/demuxers/flv.rs
@@ -473,6 +473,7 @@ mod test {
     use super::*;
     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();
diff --git a/nihav-flash/src/muxers/flv.rs b/nihav-flash/src/muxers/flv.rs
index 9f32fbe..3ff9bee 100644
--- a/nihav-flash/src/muxers/flv.rs
+++ b/nihav-flash/src/muxers/flv.rs
@@ -301,6 +301,7 @@ mod test {
     fn test_flv_muxer() {
         let mut dmx_reg = RegisteredDemuxers::new();
         flash_register_all_demuxers(&mut dmx_reg);
+        // sample: https://samples.mplayerhq.hu/A-codecs/Nelly_Moser/input.flv
         let dec_config = DecoderTestParams {
                 demuxer:        "flv",
                 in_name:        "assets/Flash/input.flv",
diff --git a/nihav-game/src/codecs/bmv.rs b/nihav-game/src/codecs/bmv.rs
index a407fb9..31fd855 100644
--- a/nihav-game/src/codecs/bmv.rs
+++ b/nihav-game/src/codecs/bmv.rs
@@ -322,6 +322,7 @@ mod test {
     use nihav_codec_support::test::dec_video::*;
     use crate::game_register_all_decoders;
     use crate::game_register_all_demuxers;
+    // samples from: https://samples.mplayerhq.hu/game-formats/bmv/
     #[test]
     fn test_bmv_video() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-game/src/codecs/bmv3.rs b/nihav-game/src/codecs/bmv3.rs
index 0140c8c..525273d 100644
--- a/nihav-game/src/codecs/bmv3.rs
+++ b/nihav-game/src/codecs/bmv3.rs
@@ -620,6 +620,7 @@ mod test {
     use nihav_codec_support::test::dec_video::*;
     use crate::game_register_all_decoders;
     use crate::game_register_all_demuxers;
+    // sample: https://samples.mplayerhq.hu/game-formats/bmv/DW3-Loffnote.bmv
     #[test]
     fn test_bmv_video() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-game/src/codecs/futurevision.rs b/nihav-game/src/codecs/futurevision.rs
index 8140391..e7ddd97 100644
--- a/nihav-game/src/codecs/futurevision.rs
+++ b/nihav-game/src/codecs/futurevision.rs
@@ -242,6 +242,7 @@ mod test {
     use crate::game_register_all_decoders;
     use crate::game_register_all_demuxers;
 
+    // samples come from the Harvester game
     #[test]
     fn test_fst_video() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-game/src/codecs/gremlinvideo.rs b/nihav-game/src/codecs/gremlinvideo.rs
index 7427e54..624f513 100644
--- a/nihav-game/src/codecs/gremlinvideo.rs
+++ b/nihav-game/src/codecs/gremlinvideo.rs
@@ -755,6 +755,7 @@ mod test {
     use crate::game_register_all_decoders;
     use crate::game_register_all_demuxers;
 
+    // samples: intro1.gdv from Normality, SHELI_S.GDV from Jungle Strike
     #[test]
     fn test_gdv_video() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-game/src/codecs/imax.rs b/nihav-game/src/codecs/imax.rs
index 5a4c814..de0bf98 100644
--- a/nihav-game/src/codecs/imax.rs
+++ b/nihav-game/src/codecs/imax.rs
@@ -158,6 +158,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         game_register_all_decoders(&mut dec_reg);
 
+        // sample from Fable game
         test_decoding("fable-imax", "fable-imax", "assets/Game/present.imx",
                       Some(64), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x775e1326, 0x7aa63674, 0x9b8aec54, 0x5caee2e3]));
diff --git a/nihav-game/src/codecs/ipma.rs b/nihav-game/src/codecs/ipma.rs
index 21f657d..fcdeac3 100644
--- a/nihav-game/src/codecs/ipma.rs
+++ b/nihav-game/src/codecs/ipma.rs
@@ -221,6 +221,7 @@ mod test {
     use nihav_codec_support::test::dec_video::*;
     use crate::game_register_all_decoders;
     use nihav_commonfmt::generic_register_all_demuxers;
+    // samples from https://misc.daniel-marschall.de/spiele/blown_away/ipma_codec/
     #[test]
     fn test_ipma_video() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-game/src/codecs/midivid.rs b/nihav-game/src/codecs/midivid.rs
index ac91fde..fec4cd6 100644
--- a/nihav-game/src/codecs/midivid.rs
+++ b/nihav-game/src/codecs/midivid.rs
@@ -201,6 +201,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         game_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/MVDV.avi
         test_decoding("avi", "midivid", "assets/Game/MVDV.avi", Some(16), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5Frames(vec![
                         [0x383e1995, 0x32bf000d, 0x2067aa2e, 0x54425bd4],
diff --git a/nihav-game/src/codecs/midivid3.rs b/nihav-game/src/codecs/midivid3.rs
index 3c06e96..31b8618 100644
--- a/nihav-game/src/codecs/midivid3.rs
+++ b/nihav-game/src/codecs/midivid3.rs
@@ -536,6 +536,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         game_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/mv30.avi
         test_decoding("avi", "midivid3", "assets/Game/mv30.avi", Some(16), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5Frames(vec![
                             [0x0f4f2377, 0xe017458f, 0xebf6d59d, 0x238a3e64],
diff --git a/nihav-game/src/codecs/q.rs b/nihav-game/src/codecs/q.rs
index ff6b647..9f30ae5 100644
--- a/nihav-game/src/codecs/q.rs
+++ b/nihav-game/src/codecs/q.rs
@@ -526,6 +526,7 @@ mod test {
     use crate::game_register_all_decoders;
     use crate::game_register_all_demuxers;
 
+    // samples from Deathgate, Mission Critical and Shannara games
     #[test]
     fn test_q_video3() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-game/src/codecs/vmd.rs b/nihav-game/src/codecs/vmd.rs
index e05899d..25f8b6d 100644
--- a/nihav-game/src/codecs/vmd.rs
+++ b/nihav-game/src/codecs/vmd.rs
@@ -692,6 +692,7 @@ mod test {
     use nihav_codec_support::test::dec_video::*;
     use crate::game_register_all_decoders;
     use crate::game_register_all_demuxers;
+    // samples from https://samples.mplayerhq.hu/game-formats/sierra-vmd/ and various games
     #[test]
     fn test_vmd_video() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-game/src/codecs/vx.rs b/nihav-game/src/codecs/vx.rs
index 185c9f4..c13fc49 100644
--- a/nihav-game/src/codecs/vx.rs
+++ b/nihav-game/src/codecs/vx.rs
@@ -1331,6 +1331,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         game_register_all_decoders(&mut dec_reg);
 
+        // sample from some game
         test_decoding("vx", "vxvideo", "assets/Game/bioware.vx", Some(31), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5Frames(vec![
                                 [0x33de14fa, 0x00948eb7, 0x028141d7, 0x1d07abd6],
diff --git a/nihav-game/src/demuxers/bmv.rs b/nihav-game/src/demuxers/bmv.rs
index f548fdc..ee88262 100644
--- a/nihav-game/src/demuxers/bmv.rs
+++ b/nihav-game/src/demuxers/bmv.rs
@@ -260,6 +260,7 @@ mod test {
     use super::*;
     use std::fs::File;
 
+    // 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();
diff --git a/nihav-game/src/demuxers/fst.rs b/nihav-game/src/demuxers/fst.rs
index b6cc066..c70584a 100644
--- a/nihav-game/src/demuxers/fst.rs
+++ b/nihav-game/src/demuxers/fst.rs
@@ -188,6 +188,7 @@ mod test {
     use super::*;
     use std::fs::File;
 
+    // samples from the Harvester game
     #[test]
     fn test_fst_demux() {
         let mut file = File::open("assets/Game/c007.fst").unwrap();
diff --git a/nihav-game/src/demuxers/gdv.rs b/nihav-game/src/demuxers/gdv.rs
index de4e993..8f54bca 100644
--- a/nihav-game/src/demuxers/gdv.rs
+++ b/nihav-game/src/demuxers/gdv.rs
@@ -180,6 +180,7 @@ mod test {
 
     #[test]
     fn test_gdv_demux() {
+        // sample from Normality game
         let mut file = File::open("assets/Game/intro1.gdv").unwrap();
         let mut fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
diff --git a/nihav-game/src/demuxers/imax.rs b/nihav-game/src/demuxers/imax.rs
index ad427dd..a477ebe 100644
--- a/nihav-game/src/demuxers/imax.rs
+++ b/nihav-game/src/demuxers/imax.rs
@@ -124,6 +124,7 @@ mod test {
 
     #[test]
     fn test_imax_demux() {
+        // sample from Fable game
         let mut file = File::open("assets/Game/present.imx").unwrap();
         let mut fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
diff --git a/nihav-game/src/demuxers/q.rs b/nihav-game/src/demuxers/q.rs
index 0b154e9..473507a 100644
--- a/nihav-game/src/demuxers/q.rs
+++ b/nihav-game/src/demuxers/q.rs
@@ -187,6 +187,7 @@ mod test {
     use super::*;
     use std::fs::File;
 
+    // samples from Death Gate, Mission Critical and Shannara games
     #[test]
     fn test_q_demux_v3() {
         let mut file = File::open("assets/Game/dgate101.q").unwrap();
diff --git a/nihav-game/src/demuxers/vmd.rs b/nihav-game/src/demuxers/vmd.rs
index a2c93f6..663a1a8 100644
--- a/nihav-game/src/demuxers/vmd.rs
+++ b/nihav-game/src/demuxers/vmd.rs
@@ -223,6 +223,7 @@ mod 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/128.vmd").unwrap();
         //let mut file = File::open("assets/Game/1491.VMD").unwrap();
         let mut fr = FileReader::new_read(&mut file);
diff --git a/nihav-game/src/demuxers/vx.rs b/nihav-game/src/demuxers/vx.rs
index 245ca49..1722841 100644
--- a/nihav-game/src/demuxers/vx.rs
+++ b/nihav-game/src/demuxers/vx.rs
@@ -142,6 +142,7 @@ mod test {
 
     #[test]
     fn test_vx_demux() {
+        // sample from some game
         let mut file = File::open("assets/Game/bioware.vx").unwrap();
         //let mut file = File::open("assets/Game/BS_01_Intro.vx").unwrap();
         //let mut file = File::open("assets/Game/sega.vx").unwrap();
diff --git a/nihav-indeo/src/codecs/imc.rs b/nihav-indeo/src/codecs/imc.rs
index f9a92c0..e94704c 100644
--- a/nihav-indeo/src/codecs/imc.rs
+++ b/nihav-indeo/src/codecs/imc.rs
@@ -1130,6 +1130,7 @@ mod test {
 
 //        let file = "assets/Indeo/neal73_saber.avi";
 //        let file = "assets/Indeo/IMC/hvalen.avi";
+        // sample from a private collection
         let file = "assets/Indeo/IMC/8khz.avi";
 //        let file = "assets/Indeo/STsKlassFist-1a.avi";
 //        let file = "assets/Indeo/IMC/Angel Bday.avi";
diff --git a/nihav-indeo/src/codecs/indeo2.rs b/nihav-indeo/src/codecs/indeo2.rs
index 32e54f8..3213388 100644
--- a/nihav-indeo/src/codecs/indeo2.rs
+++ b/nihav-indeo/src/codecs/indeo2.rs
@@ -389,6 +389,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         indeo_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/RT21/320x240/laser05.avi
         test_decoding("avi", "indeo2", "assets/Indeo/laser05.avi", Some(10),
                       &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0x55f509ad, 0x62fb52d5, 0x6e9a86b2, 0x3910ce74],
diff --git a/nihav-indeo/src/codecs/indeo3.rs b/nihav-indeo/src/codecs/indeo3.rs
index 9e0ee11..bdf8e7b 100644
--- a/nihav-indeo/src/codecs/indeo3.rs
+++ b/nihav-indeo/src/codecs/indeo3.rs
@@ -817,6 +817,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         indeo_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/IV32/iv32_example.avi
         test_decoding("avi", "indeo3", "assets/Indeo/iv32_example.avi", Some(10),
                       &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0x90be698e, 0x326db071, 0x08e8c6a5, 0x39349acc],
diff --git a/nihav-indeo/src/codecs/indeo4.rs b/nihav-indeo/src/codecs/indeo4.rs
index 474a8d5..a7263c6 100644
--- a/nihav-indeo/src/codecs/indeo4.rs
+++ b/nihav-indeo/src/codecs/indeo4.rs
@@ -786,6 +786,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         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],
@@ -805,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],
diff --git a/nihav-indeo/src/codecs/indeo5.rs b/nihav-indeo/src/codecs/indeo5.rs
index eb0b40c..11d813d 100644
--- a/nihav-indeo/src/codecs/indeo5.rs
+++ b/nihav-indeo/src/codecs/indeo5.rs
@@ -740,6 +740,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         indeo_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/IV50/sample.avi
         test_decoding("avi", "indeo5", "assets/Indeo/IV5/sample.avi", Some(100),
                       &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                            [0xd73ef6e2, 0x099dc18f, 0x46450af9, 0x1b390a48],
diff --git a/nihav-indeo/src/codecs/intel263.rs b/nihav-indeo/src/codecs/intel263.rs
index 7237adf..c9bb5f4 100644
--- a/nihav-indeo/src/codecs/intel263.rs
+++ b/nihav-indeo/src/codecs/intel263.rs
@@ -758,6 +758,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         indeo_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/A-codecs/IMC/neal73_saber.avi
         test_decoding("avi", "intel263", "assets/Indeo/neal73_saber.avi", Some(16),
                       &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                         [0x698c4f70, 0xf727bfc1, 0x96e687e9, 0xc9e37073],
diff --git a/nihav-itu/src/codecs/h264/mod.rs b/nihav-itu/src/codecs/h264/mod.rs
index e23d909..3034e07 100644
--- a/nihav-itu/src/codecs/h264/mod.rs
+++ b/nihav-itu/src/codecs/h264/mod.rs
@@ -1461,6 +1461,7 @@ mod test {
     use crate::itu_register_all_decoders;
     use nihav_commonfmt::generic_register_all_demuxers;
 
+    // samples if not specified otherwise come from H.264 conformance suite
     mod raw_demux;
     mod conformance;
     use self::raw_demux::RawH264DemuxerCreator;
@@ -1503,6 +1504,7 @@ mod test {
                         [0xa90454f5, 0x7875d5db, 0xbab234bd, 0xe6ce1193]]));
     }
 
+    // mostly static music video downloaded with youtube-dl
     #[test]
     fn test_h264_real1() {
         let mut dmx_reg = RegisteredDemuxers::new();
@@ -1576,6 +1578,7 @@ mod test {
                             [0x94fee093, 0x78ad89b3, 0xf20e882b, 0x941425db],
                             [0xc3eb1a78, 0x4b4e098a, 0xcbcf9bb4, 0xfd5b5426]]));
     }
+    // a sample downloaded from gfycat.com
     #[test]
     fn test_h264_real2() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-llaudio/src/codecs/ape.rs b/nihav-llaudio/src/codecs/ape.rs
index 8a9073d..1bcd62e 100644
--- a/nihav-llaudio/src/codecs/ape.rs
+++ b/nihav-llaudio/src/codecs/ape.rs
@@ -260,6 +260,7 @@ mod test {
     use nihav_codec_support::test::dec_video::*;
     use crate::llaudio_register_all_decoders;
     use crate::llaudio_register_all_demuxers;
+    // samples from Libav test suite
     #[test]
     fn test_ape_3990() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-llaudio/src/codecs/flac.rs b/nihav-llaudio/src/codecs/flac.rs
index 9f8a884..3fba6b1 100644
--- a/nihav-llaudio/src/codecs/flac.rs
+++ b/nihav-llaudio/src/codecs/flac.rs
@@ -636,6 +636,7 @@ mod test {
     use nihav_codec_support::test::dec_video::*;
     use crate::llaudio_register_all_decoders;
     use crate::llaudio_register_all_demuxers;
+    // sample: https://samples.mplayerhq.hu/A-codecs/lossless/luckynight.flac
     #[test]
     fn test_flac() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-llaudio/src/codecs/flacenc.rs b/nihav-llaudio/src/codecs/flacenc.rs
index f9adc24..55c7eb0 100644
--- a/nihav-llaudio/src/codecs/flacenc.rs
+++ b/nihav-llaudio/src/codecs/flacenc.rs
@@ -599,6 +599,7 @@ mod test {
         let mut enc_reg = RegisteredEncoders::new();
         llaudio_register_all_encoders(&mut enc_reg);
 
+        // sample: https://samples.mplayerhq.hu/A-codecs/lossless/luckynight.flac
         let dec_config = DecoderTestParams {
                 demuxer:        "flac",
                 in_name:        "assets/LLaudio/luckynight.flac",
diff --git a/nihav-llaudio/src/codecs/tta.rs b/nihav-llaudio/src/codecs/tta.rs
index e88793e..d513064 100644
--- a/nihav-llaudio/src/codecs/tta.rs
+++ b/nihav-llaudio/src/codecs/tta.rs
@@ -341,6 +341,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         llaudio_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/A-codecs/lossless/luckynight.tta
         test_decoding("tta", "tta", "assets/LLaudio/luckynight.tta", Some(3), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0xce0fe9c4, 0xa69eefda, 0xe182008c, 0xe941db3f]));
     }
diff --git a/nihav-llaudio/src/codecs/wavpack.rs b/nihav-llaudio/src/codecs/wavpack.rs
index 0f561ac..31629e7 100644
--- a/nihav-llaudio/src/codecs/wavpack.rs
+++ b/nihav-llaudio/src/codecs/wavpack.rs
@@ -1063,6 +1063,7 @@ mod test {
     use nihav_codec_support::test::dec_video::*;
     use crate::llaudio_register_all_decoders;
     use crate::llaudio_register_all_demuxers;
+    // samples come from the official WavPack test samples set
     #[test]
     fn test_wavpack_8bit() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-llaudio/src/demuxers/ape.rs b/nihav-llaudio/src/demuxers/ape.rs
index bae9416..c58915b 100644
--- a/nihav-llaudio/src/demuxers/ape.rs
+++ b/nihav-llaudio/src/demuxers/ape.rs
@@ -251,6 +251,7 @@ mod 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 fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
diff --git a/nihav-llaudio/src/demuxers/flac.rs b/nihav-llaudio/src/demuxers/flac.rs
index 83208c4..13ab0e3 100644
--- a/nihav-llaudio/src/demuxers/flac.rs
+++ b/nihav-llaudio/src/demuxers/flac.rs
@@ -286,6 +286,7 @@ mod 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 fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
diff --git a/nihav-llaudio/src/demuxers/flacraw.rs b/nihav-llaudio/src/demuxers/flacraw.rs
index d86d14e..e8d1f4a 100644
--- a/nihav-llaudio/src/demuxers/flacraw.rs
+++ b/nihav-llaudio/src/demuxers/flacraw.rs
@@ -154,6 +154,7 @@ mod test {
 
     #[test]
     fn test_flac_raw_demux() {
+        // sample: https://samples.mplayerhq.hu/A-codecs/lossless/luckynight.flac
         let mut file = File::open("assets/LLaudio/luckynight.flac").unwrap();
         let mut fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
diff --git a/nihav-llaudio/src/demuxers/tta.rs b/nihav-llaudio/src/demuxers/tta.rs
index 25fac1b..8c2150c 100644
--- a/nihav-llaudio/src/demuxers/tta.rs
+++ b/nihav-llaudio/src/demuxers/tta.rs
@@ -124,6 +124,7 @@ mod 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 fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
diff --git a/nihav-llaudio/src/demuxers/wavpack.rs b/nihav-llaudio/src/demuxers/wavpack.rs
index e54ad7e..9d01089 100644
--- a/nihav-llaudio/src/demuxers/wavpack.rs
+++ b/nihav-llaudio/src/demuxers/wavpack.rs
@@ -279,6 +279,7 @@ mod 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 fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
diff --git a/nihav-llaudio/src/muxers/flac.rs b/nihav-llaudio/src/muxers/flac.rs
index 5c649a5..fb54a89 100644
--- a/nihav-llaudio/src/muxers/flac.rs
+++ b/nihav-llaudio/src/muxers/flac.rs
@@ -108,6 +108,7 @@ mod test {
     fn test_flac_muxer() {
         let mut dmx_reg = RegisteredDemuxers::new();
         llaudio_register_all_demuxers(&mut dmx_reg);
+        // sample: https://samples.mplayerhq.hu/A-codecs/lossless/luckynight.flac
         let dec_config = DecoderTestParams {
                 demuxer:        "flac",
                 in_name:        "assets/LLaudio/luckynight.flac",
diff --git a/nihav-mpeg/src/codecs/mpegaudio/mod.rs b/nihav-mpeg/src/codecs/mpegaudio/mod.rs
index e9400f6..0ca85f5 100644
--- a/nihav-mpeg/src/codecs/mpegaudio/mod.rs
+++ b/nihav-mpeg/src/codecs/mpegaudio/mod.rs
@@ -450,6 +450,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         mpeg_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/FLV/flash_video_5/i_004.flv
         let file = "assets/Flash/i_004.flv";
         test_decode_audio("flv", file, Some(6000), None/*Some("mp3_1")*/, &dmx_reg, &dec_reg);
     }
@@ -460,6 +461,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         mpeg_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/FLV/venture_030_ivcp_001_8bit.flv
         let file = "assets/Flash/venture_030_ivcp_001_8bit.flv";
         test_decode_audio("flv", file, Some(7200), None/*Some("mp3_2")*/, &dmx_reg, &dec_reg);
     }
@@ -470,12 +472,14 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         mpeg_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/FLV/flash_with_alpha/lection2-2.flv
         let file = "assets/Flash/lection2-2.flv";
         test_decode_audio("flv", file, Some(6000), None/*Some("mp3_3")*/, &dmx_reg, &dec_reg);
     }
     #[test]
     fn test_mpa_packetiser() {
         let mut buf = [0; 16384];
+        // sample from a private collection
         let mut file = std::fs::File::open("assets/MPEG/1.mp3").unwrap();
 
         let mut pkts = super::MPAPacketiser::new();
diff --git a/nihav-ms/src/codecs/imaadpcm.rs b/nihav-ms/src/codecs/imaadpcm.rs
index d58ef36..e0606e9 100644
--- a/nihav-ms/src/codecs/imaadpcm.rs
+++ b/nihav-ms/src/codecs/imaadpcm.rs
@@ -106,6 +106,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         ms_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/A-codecs/ima-adpcm/ima-adpcm-stutter/IMAG0006.AVI
         test_decoding("avi", "ima-adpcm-ms", "assets/MS/IMAG0006.AVI", None, &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x0cdc640f, 0xb00df235, 0x1ec4a280, 0x065b5e9e]));
     }
diff --git a/nihav-ms/src/codecs/imaadpcmenc.rs b/nihav-ms/src/codecs/imaadpcmenc.rs
index 45e8d21..f142646 100644
--- a/nihav-ms/src/codecs/imaadpcmenc.rs
+++ b/nihav-ms/src/codecs/imaadpcmenc.rs
@@ -341,6 +341,7 @@ mod test {
         let mut enc_reg = RegisteredEncoders::new();
         ms_register_all_encoders(&mut enc_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/VP4/ot171_vp40.avi
         let dec_config = DecoderTestParams {
                 demuxer:        "avi",
                 in_name:        "assets/Duck/ot171_vp40.avi",
diff --git a/nihav-ms/src/codecs/msadpcm.rs b/nihav-ms/src/codecs/msadpcm.rs
index 068dd41..6b6c63e 100644
--- a/nihav-ms/src/codecs/msadpcm.rs
+++ b/nihav-ms/src/codecs/msadpcm.rs
@@ -448,6 +448,7 @@ mod test {
         let mut enc_reg = RegisteredEncoders::new();
         ms_register_all_encoders(&mut enc_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/RT21/320x240/laser05.avi
         let dec_config = DecoderTestParams {
                 demuxer:        "avi",
                 in_name:        "assets/Indeo/laser05.avi",
diff --git a/nihav-ms/src/codecs/msrle.rs b/nihav-ms/src/codecs/msrle.rs
index 1cc3308..8637e03 100644
--- a/nihav-ms/src/codecs/msrle.rs
+++ b/nihav-ms/src/codecs/msrle.rs
@@ -261,6 +261,7 @@ mod test {
     use nihav_codec_support::test::dec_video::*;
     use crate::ms_register_all_decoders;
     use nihav_commonfmt::generic_register_all_demuxers;
+    // samples from https://samples.mplayerhq.hu/V-codecs/RLE
     #[test]
     fn test_ms_rle_8bit() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-ms/src/codecs/msvideo1.rs b/nihav-ms/src/codecs/msvideo1.rs
index 2fb7713..424eb3b 100644
--- a/nihav-ms/src/codecs/msvideo1.rs
+++ b/nihav-ms/src/codecs/msvideo1.rs
@@ -272,6 +272,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         ms_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/avi/palette_change/toon.avi
         test_decoding("avi", "msvideo1", "assets/MS/toon.avi", Some(66), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x0c26ec42, 0xb75bfea7, 0x1e6342ae, 0xb14dcfa3]));
     }
@@ -282,6 +283,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         ms_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/CRAM/clock-cram16.avi
         test_decoding("avi", "msvideo1", "assets/MS/clock-cram16.avi", None, &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x03381fa4, 0x5b294fec, 0xb97a7575, 0xa1a3ffe9]));
     }
diff --git a/nihav-ms/src/codecs/msvideo1enc.rs b/nihav-ms/src/codecs/msvideo1enc.rs
index 959c5d5..d716df0 100644
--- a/nihav-ms/src/codecs/msvideo1enc.rs
+++ b/nihav-ms/src/codecs/msvideo1enc.rs
@@ -582,6 +582,7 @@ mod test {
         let mut enc_reg = RegisteredEncoders::new();
         ms_register_all_encoders(&mut enc_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/UCOD/TalkingHead_352x288.avi
         let dec_config = DecoderTestParams {
                 demuxer:        "avi",
                 in_name:        "assets/Misc/TalkingHead_352x288.avi",
diff --git a/nihav-qt/src/codecs/alac.rs b/nihav-qt/src/codecs/alac.rs
index b29e9a2..a4f959d 100644
--- a/nihav-qt/src/codecs/alac.rs
+++ b/nihav-qt/src/codecs/alac.rs
@@ -460,6 +460,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         qt_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/A-codecs/lossless/luckynight.m4a
         test_decoding("mov", "alac", "assets/LLaudio/alac/luckynight.m4a", Some(48000 * 16), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x8b6562ac, 0x95981733, 0x47e14709, 0x45d4f05a]));
     }
@@ -470,6 +471,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         qt_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/A-codecs/lossless/ALAC/ALAC_6ch.mov
         test_decoding("mov", "alac", "assets/LLaudio/alac/ALAC_6ch.mov", None, &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x0356ff3d, 0x1ddd3684, 0xb4da8b00, 0x8e8671a7]));
     }
@@ -480,6 +482,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         qt_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/A-codecs/lossless/ALAC/ALAC_24bits2.mov
         test_decoding("mov", "alac", "assets/LLaudio/alac/ALAC_24bits2.mov", None, &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x15d58ed9, 0x9ee74f5e, 0x0fb82c0b, 0x27da35f9]));
     }
diff --git a/nihav-qt/src/codecs/imaadpcm.rs b/nihav-qt/src/codecs/imaadpcm.rs
index 636f882..74b31f9 100644
--- a/nihav-qt/src/codecs/imaadpcm.rs
+++ b/nihav-qt/src/codecs/imaadpcm.rs
@@ -103,6 +103,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         qt_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/A-codecs/ima-adpcm/shuffle-ima41.mov
         test_decoding("mov", "ima-adpcm-qt", "assets/QT/shuffle-ima41.mov", None, &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0xba2ad472, 0xd6aee026, 0xb915dd7d, 0xac51314c]));
     }
diff --git a/nihav-qt/src/codecs/mace.rs b/nihav-qt/src/codecs/mace.rs
index 1166d92..460dca9 100644
--- a/nihav-qt/src/codecs/mace.rs
+++ b/nihav-qt/src/codecs/mace.rs
@@ -183,6 +183,7 @@ mod test {
     use nihav_codec_support::test::dec_video::*;
     use crate::qt_register_all_decoders;
     use nihav_commonfmt::generic_register_all_demuxers;
+    // samples from https://samples.mplayerhq.hu/A-codecs/MACE/surge-samples/
     #[test]
     fn test_mace3() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-qt/src/codecs/qdm2.rs b/nihav-qt/src/codecs/qdm2.rs
index 5edd336..f573ac4 100644
--- a/nihav-qt/src/codecs/qdm2.rs
+++ b/nihav-qt/src/codecs/qdm2.rs
@@ -303,6 +303,7 @@ mod test {
         qt_register_all_decoders(&mut dec_reg);
 
         //test_decode_audio("mov", "assets/QT/0-22050HzSweep8kb.mov", None, Some("qdm2"), &dmx_reg, &dec_reg);
+        // sample: https://samples.mplayerhq.hu/A-codecs/QDM2/sweep/0-22050HzSweep10kb.mov
         test_decoding("mov", "qdesign-music2", "assets/QT/0-22050HzSweep10kb.mov", None, &dmx_reg, &dec_reg,
                       ExpectedTestResult::Decodes);
     }
diff --git a/nihav-qt/src/codecs/qdmc.rs b/nihav-qt/src/codecs/qdmc.rs
index cebf637..27ef4e6 100644
--- a/nihav-qt/src/codecs/qdmc.rs
+++ b/nihav-qt/src/codecs/qdmc.rs
@@ -396,6 +396,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         qt_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/A-codecs/QDMC/rumcoke.mov
         test_decoding("mov", "qdesign-music", "assets/QT/rumcoke.mov", Some(32), &dmx_reg, &dec_reg,
                       ExpectedTestResult::Decodes);
     }
diff --git a/nihav-qt/src/codecs/rle.rs b/nihav-qt/src/codecs/rle.rs
index 969c104..1ff1059 100644
--- a/nihav-qt/src/codecs/rle.rs
+++ b/nihav-qt/src/codecs/rle.rs
@@ -513,6 +513,7 @@ mod test {
     use nihav_codec_support::test::dec_video::*;
     use crate::qt_register_all_decoders;
     use nihav_commonfmt::generic_register_all_demuxers;
+    // samples from https://samples.mplayerhq.hu/V-codecs/QTRLE
     #[test]
     fn test_qt_rle_1bit() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-qt/src/codecs/rpza.rs b/nihav-qt/src/codecs/rpza.rs
index cbea562..b20cb91 100644
--- a/nihav-qt/src/codecs/rpza.rs
+++ b/nihav-qt/src/codecs/rpza.rs
@@ -204,7 +204,8 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         qt_register_all_decoders(&mut dec_reg);
 
-        test_decoding("mov", "apple-video", "assets/QT/aletrek-rpza.mov", Some(6), &dmx_reg, &dec_reg,
+        // sample: https://samples.mplayerhq.hu/V-codecs/RPZA/aletrek-rpza.mov
+        test_decoding("mov", "apple-video", "assets/QT/aletrek-rpza.mov", Some(6), &dmx_reg &dec_reg,
                       ExpectedTestResult::MD5Frames(vec![
                             [0xe7cfc941, 0xa448841b, 0x75afc888, 0x94aa064b],
                             [0xadaaec50, 0xff7319ff, 0xa1f3f64a, 0xc40c2985],
diff --git a/nihav-qt/src/codecs/smc.rs b/nihav-qt/src/codecs/smc.rs
index 5364b08..b53ca5c 100644
--- a/nihav-qt/src/codecs/smc.rs
+++ b/nihav-qt/src/codecs/smc.rs
@@ -293,6 +293,7 @@ mod test {
     use nihav_codec_support::test::dec_video::*;
     use crate::qt_register_all_decoders;
     use nihav_commonfmt::generic_register_all_demuxers;
+    // samples from https://samples.mplayerhq.hu/V-codecs/SMC
     #[test]
     fn test_smc() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-qt/src/codecs/svq1.rs b/nihav-qt/src/codecs/svq1.rs
index 4b5d8cd..e367145 100644
--- a/nihav-qt/src/codecs/svq1.rs
+++ b/nihav-qt/src/codecs/svq1.rs
@@ -504,6 +504,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         qt_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/A-codecs/ima-adpcm/adpcm-bug.mov
         test_decoding("mov", "sorenson-video", "assets/QT/adpcm-bug.mov", Some(6), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5Frames(vec![
                             [0x90c5eb74, 0xcb942d7d, 0x84c5e444, 0x7f1ba2c2],
diff --git a/nihav-qt/src/codecs/svq3.rs b/nihav-qt/src/codecs/svq3.rs
index d2cd385..07331c6 100644
--- a/nihav-qt/src/codecs/svq3.rs
+++ b/nihav-qt/src/codecs/svq3.rs
@@ -1230,6 +1230,7 @@ mod test {
 //let file = "assets/QT/broken_sword_Large.mov";
 //test_file_decoding("mov", file, Some(264), true, false, Some("svq3"), &dmx_reg, &dec_reg);
 //panic!("end");
+        // sample: https://samples.mplayerhq.hu/V-codecs/SVQ3/broken_sword_Large.mov
         test_decoding("mov", "sorenson-video3", "assets/QT/broken_sword_Large.mov", Some(40), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5Frames(vec![
                         [0x16924d18, 0xccc5a0b4, 0xc2bb9412, 0x93d41f10],
diff --git a/nihav-rad/src/codecs/bink2.rs b/nihav-rad/src/codecs/bink2.rs
index 21b48eb..a42b3d6 100644
--- a/nihav-rad/src/codecs/bink2.rs
+++ b/nihav-rad/src/codecs/bink2.rs
@@ -1970,6 +1970,7 @@ mod test {
 
         //let file = "assets/RAD/Open_Logos_partial.bik";
         //let file = "assets/RAD/sc13_01_partial.bk2";
+        // sample from a private collection
         let file = "assets/RAD/ge_video_86l.bk2";
         //let file = "assets/RAD/eg_club_0.bk2";
         test_file_decoding("bink", file, Some(8), true, false, None/*Some("bink2")*/, &dmx_reg, &dec_reg);
diff --git a/nihav-rad/src/codecs/binkaud.rs b/nihav-rad/src/codecs/binkaud.rs
index 1cdb0a1..039e441 100644
--- a/nihav-rad/src/codecs/binkaud.rs
+++ b/nihav-rad/src/codecs/binkaud.rs
@@ -308,6 +308,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         rad_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/game-formats/bink/ActivisionLogo.bik
         let file = "assets/RAD/ActivisionLogo.bik";
         test_decode_audio("bink", file, None, None/*Some("bink")*/, &dmx_reg, &dec_reg);
     }
@@ -318,6 +319,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         rad_register_all_decoders(&mut dec_reg);
 
+        // sample from Heroes of Might and Magic 3
         let file = "assets/RAD/NWCLOGO.BIK";
         test_decode_audio("bink", file, None, None/*Some("bink")*/, &dmx_reg, &dec_reg);
     }
diff --git a/nihav-rad/src/codecs/binkvid.rs b/nihav-rad/src/codecs/binkvid.rs
index 9c0dc9e..65ab3cf 100644
--- a/nihav-rad/src/codecs/binkvid.rs
+++ b/nihav-rad/src/codecs/binkvid.rs
@@ -1273,6 +1273,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         rad_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/game-formats/bink/bikb/NEW.BIK
         test_decoding("bink", "bink-video", "assets/RAD/NEW.BIK", Some(16), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5Frames(vec![
                             [0x00edef7e, 0x7efad3b1, 0x7e8bdd74, 0x3f6b00ba],
@@ -1300,6 +1301,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         rad_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/game-formats/bink/ActivisionLogo.bik
         test_decoding("bink", "bink-video", "assets/RAD/ActivisionLogo.bik", Some(42),
                       &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x41128884, 0x73a8c710, 0x5072ea4a, 0x8caca428]));
diff --git a/nihav-rad/src/codecs/smacker.rs b/nihav-rad/src/codecs/smacker.rs
index 0d681dc..c1b9fd6 100644
--- a/nihav-rad/src/codecs/smacker.rs
+++ b/nihav-rad/src/codecs/smacker.rs
@@ -625,6 +625,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         rad_register_all_decoders(&mut dec_reg);
 
+        // sample from Heroes of Might and Magic 2
         test_decoding("smacker", "smacker-video", "assets/RAD/credits.smk", None, &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5Frames(vec![
                             [0x0983944a, 0xa23503f8, 0x2602b589, 0x13b53480],
@@ -645,6 +646,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         rad_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/game-formats/smacker/wetlands/wetlogo.smk
         test_decoding("smacker", "smacker-audio", "assets/RAD/wetlogo.smk", None, &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0xc686b833, 0x0a203038, 0x012f6d9b, 0xa4186d44]));
     }
@@ -655,6 +657,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         rad_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/game-formats/smacker/20130507_audio-distortion.smk
         test_decoding("smacker", "smacker-audio", "assets/RAD/20130507_audio-distortion.smk", None, &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x942a0922, 0x182bb5fd, 0x94ab7a59, 0x2028d810]));
     }
diff --git a/nihav-rad/src/demuxers/bink.rs b/nihav-rad/src/demuxers/bink.rs
index dbf401f..cf576f3 100644
--- a/nihav-rad/src/demuxers/bink.rs
+++ b/nihav-rad/src/demuxers/bink.rs
@@ -205,6 +205,7 @@ mod 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();
diff --git a/nihav-rad/src/demuxers/smacker.rs b/nihav-rad/src/demuxers/smacker.rs
index 3a45826..fe64191 100644
--- a/nihav-rad/src/demuxers/smacker.rs
+++ b/nihav-rad/src/demuxers/smacker.rs
@@ -314,6 +314,7 @@ mod 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();
diff --git a/nihav-realmedia/src/codecs/cook.rs b/nihav-realmedia/src/codecs/cook.rs
index b4e17f3..24df7c7 100644
--- a/nihav-realmedia/src/codecs/cook.rs
+++ b/nihav-realmedia/src/codecs/cook.rs
@@ -702,6 +702,7 @@ mod test {
         realmedia_register_all_decoders(&mut dec_reg);
 
 //        let file = "assets/RV/rv30_weighted_mc.rm";
+        // sample: https://samples.mplayerhq.hu/real/AC-cook/cook_5.1/multichannel.rma
         let file = "assets/RV/multichannel.rma";
         test_decode_audio("realmedia", file, Some(2000), None/*Some("cook")*/, &dmx_reg, &dec_reg);
     }
diff --git a/nihav-realmedia/src/codecs/ra144.rs b/nihav-realmedia/src/codecs/ra144.rs
index 63d4d12..a28850f 100644
--- a/nihav-realmedia/src/codecs/ra144.rs
+++ b/nihav-realmedia/src/codecs/ra144.rs
@@ -335,6 +335,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         realmedia_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/real/AC-14_4/ra3_in_rm_file.rm
         let file = "assets/RV/ra3_in_rm_file.rm";
         test_decode_audio("realmedia", file, Some(5000), None/*Some("ra14.4")*/, &dmx_reg, &dec_reg);
     }
diff --git a/nihav-realmedia/src/codecs/ra288.rs b/nihav-realmedia/src/codecs/ra288.rs
index 624769d..822b1e5 100644
--- a/nihav-realmedia/src/codecs/ra288.rs
+++ b/nihav-realmedia/src/codecs/ra288.rs
@@ -225,6 +225,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         realmedia_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/real/AC-28_8/A0000044.rm
         let file = "assets/RV/A0000044.rm";
         test_decode_audio("realmedia", file, Some(5000), None/*Some("ra28.8")*/, &dmx_reg, &dec_reg);
     }
diff --git a/nihav-realmedia/src/codecs/ralf.rs b/nihav-realmedia/src/codecs/ralf.rs
index 7e832de..94443a9 100644
--- a/nihav-realmedia/src/codecs/ralf.rs
+++ b/nihav-realmedia/src/codecs/ralf.rs
@@ -495,6 +495,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         realmedia_register_all_decoders(&mut dec_reg);
 
+        // sample from a private collection
         test_decoding("realmedia", "ralf", "assets/RV/rv40_ralf.rmvb", None, &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x6cf18361, 0x9548b5ce, 0x5dfc0b5c, 0x2bd6f392]));
     }
diff --git a/nihav-realmedia/src/codecs/rv10.rs b/nihav-realmedia/src/codecs/rv10.rs
index 7c317af..317f356 100644
--- a/nihav-realmedia/src/codecs/rv10.rs
+++ b/nihav-realmedia/src/codecs/rv10.rs
@@ -485,6 +485,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         realmedia_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/real/VC-RV10/thankyou.rm
         test_decoding("realmedia", "realvideo1", "assets/RV/thankyou.rm",
                       Some(1000), &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0x8bba459c, 0xe6e8e01c, 0x36f90595, 0xb268adee],
@@ -503,6 +504,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         realmedia_register_all_decoders(&mut dec_reg);
 
+        // sample from a private collection
         test_decoding("realmedia", "realvideo1",
                       "assets/RV/rv10_dnet_640x352_realvideo_encoder_4.0.rm",
                       Some(1000), &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
diff --git a/nihav-realmedia/src/codecs/rv20.rs b/nihav-realmedia/src/codecs/rv20.rs
index 0781987..f25df6b 100644
--- a/nihav-realmedia/src/codecs/rv20.rs
+++ b/nihav-realmedia/src/codecs/rv20.rs
@@ -702,6 +702,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         realmedia_register_all_decoders(&mut dec_reg);
 
+        // sample from a private collection
         test_decoding("realmedia", "realvideo2",
                       "assets/RV/rv20_svt_atrc_640x352_realproducer_plus_8.51.rm",
                       Some(1000), &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
diff --git a/nihav-realmedia/src/codecs/rv30.rs b/nihav-realmedia/src/codecs/rv30.rs
index f5a894b..704b17e 100644
--- a/nihav-realmedia/src/codecs/rv30.rs
+++ b/nihav-realmedia/src/codecs/rv30.rs
@@ -189,6 +189,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         realmedia_register_all_decoders(&mut dec_reg);
 
+        // sample from a private collection
         test_decoding("realmedia", "realvideo3", "assets/RV/rv30_weighted_mc.rm", Some(700),
                       &dmx_reg, &dec_reg, ExpectedTestResult::MD5Frames(vec![
                             [0x2a4d13bf, 0x2f21f3c9, 0xcbd601be, 0x61a6405c],
@@ -206,6 +207,7 @@ mod test {
                             [0x7b38660e, 0xa46f4080, 0xa493f422, 0x36eaaa3b],
                             [0x6375934a, 0xf2a23087, 0x367f9738, 0xf2251e09],
                             [0x54bcefe7, 0xbbc91dc7, 0x0acec7d7, 0x95cf6d02]]));
+        // sample: https://samples.mplayerhq.hu/real/VC-RV30/simpsons-clip.rm
         test_decoding("realmedia", "realvideo3", "assets/RV/simpsons-clip.rm", Some(1337),
                       &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5([0x36604117, 0x415f95cc, 0xec38e776, 0x9818d3be]));
diff --git a/nihav-realmedia/src/codecs/rv40.rs b/nihav-realmedia/src/codecs/rv40.rs
index bcd600b..4971c7a 100644
--- a/nihav-realmedia/src/codecs/rv40.rs
+++ b/nihav-realmedia/src/codecs/rv40.rs
@@ -375,6 +375,7 @@ mod test {
     use nihav_codec_support::test::dec_video::*;
     use crate::realmedia_register_all_decoders;
     use crate::realmedia_register_all_demuxers;
+    // samples from a private collection
     #[test]
     fn test_rv40() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-realmedia/src/codecs/rv60.rs b/nihav-realmedia/src/codecs/rv60.rs
index c786b71..71668d7 100644
--- a/nihav-realmedia/src/codecs/rv60.rs
+++ b/nihav-realmedia/src/codecs/rv60.rs
@@ -1598,6 +1598,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         realmedia_register_all_decoders(&mut dec_reg);
 
+        // sample from a private collection
         test_decoding("realmedia", "realvideo6", "assets/RV/RV60.rmhd", Some(1000), &dmx_reg, &dec_reg,
                       ExpectedTestResult::MD5Frames(vec![
                             [0x2b1f1807, 0x09edef33, 0x0e6c78c1, 0x3b3c8179],
diff --git a/nihav-realmedia/src/demuxers/realmedia.rs b/nihav-realmedia/src/demuxers/realmedia.rs
index ad28fca..7a59f56 100644
--- a/nihav-realmedia/src/demuxers/realmedia.rs
+++ b/nihav-realmedia/src/demuxers/realmedia.rs
@@ -1709,6 +1709,7 @@ mod 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();
@@ -1741,6 +1742,7 @@ mod test {
     }
     #[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();
@@ -1763,6 +1765,7 @@ mod test {
     }
     #[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();
diff --git a/nihav-vivo/src/codecs/g723_1.rs b/nihav-vivo/src/codecs/g723_1.rs
index 42dda3a..2f650d8 100644
--- a/nihav-vivo/src/codecs/g723_1.rs
+++ b/nihav-vivo/src/codecs/g723_1.rs
@@ -984,6 +984,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         vivo_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/vivo/viv1/adalogo.viv
         let file = "assets/Misc/adalogo.viv";
         //let file = "assets/Misc/gr_al.viv";
         //test_decode_audio("vivo", file, Some(1500), None/*Some("g7231")*/, &dmx_reg, &dec_reg);
diff --git a/nihav-vivo/src/codecs/siren.rs b/nihav-vivo/src/codecs/siren.rs
index 0b23f18..d026ff3 100644
--- a/nihav-vivo/src/codecs/siren.rs
+++ b/nihav-vivo/src/codecs/siren.rs
@@ -404,6 +404,7 @@ mod test {
         let mut dec_reg = RegisteredDecoders::new();
         vivo_register_all_decoders(&mut dec_reg);
 
+        // sample: https://samples.mplayerhq.hu/vivo/vivo2/favmovie.viv
         let file = "assets/Misc/favmovie.viv";
         //let file = "assets/Misc/gr_al.viv";
         test_decode_audio("vivo", file, None, None/*Some("siren")*/, &dmx_reg, &dec_reg);
diff --git a/nihav-vivo/src/codecs/vivo.rs b/nihav-vivo/src/codecs/vivo.rs
index c1d78c9..64af5ff 100644
--- a/nihav-vivo/src/codecs/vivo.rs
+++ b/nihav-vivo/src/codecs/vivo.rs
@@ -729,6 +729,7 @@ mod test {
     use nihav_codec_support::test::dec_video::*;
     use crate::vivo_register_all_decoders;
     use crate::vivo_register_all_demuxers;
+    // samples from https://samples.mplayerhq.hu/vivo/
     #[test]
     fn test_vivo1() {
         let mut dmx_reg = RegisteredDemuxers::new();
diff --git a/nihav-vivo/src/demuxers/vivo.rs b/nihav-vivo/src/demuxers/vivo.rs
index 4a6f254..cd8e97d 100644
--- a/nihav-vivo/src/demuxers/vivo.rs
+++ b/nihav-vivo/src/demuxers/vivo.rs
@@ -262,6 +262,7 @@ mod 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 fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
-- 
2.39.5