split nihav-registry from nihav-core
[nihav.git] / nihav-allstuff / src / lib.rs
CommitLineData
5ed804ae 1//! Umbrella crate to register decoders and demuxers from all known NihAV crates.
5641dccf 2extern crate nihav_core;
38953fb5 3extern crate nihav_commonfmt;
8e4fa38a 4extern crate nihav_duck;
5641dccf
KS
5extern crate nihav_game;
6extern crate nihav_indeo;
606c448e 7extern crate nihav_rad;
5641dccf
KS
8extern crate nihav_realmedia;
9
38953fb5
KS
10use nihav_core::codecs::RegisteredDecoders;
11use nihav_core::demuxers::RegisteredDemuxers;
12
e64739f8
KS
13use nihav_commonfmt::generic_register_all_codecs;
14use nihav_commonfmt::generic_register_all_demuxers;
5641dccf 15
e64739f8 16use nihav_duck::duck_register_all_codecs;
8e4fa38a 17
e64739f8
KS
18use nihav_game::game_register_all_codecs;
19use nihav_game::game_register_all_demuxers;
5641dccf 20
e64739f8 21use nihav_indeo::indeo_register_all_codecs;
5641dccf 22
e64739f8
KS
23use nihav_rad::rad_register_all_codecs;
24use nihav_rad::rad_register_all_demuxers;
606c448e 25
e64739f8
KS
26use nihav_realmedia::realmedia_register_all_codecs;
27use nihav_realmedia::realmedia_register_all_demuxers;
5641dccf 28
5ed804ae 29/// Registers all known decoders.
5641dccf 30pub fn nihav_register_all_codecs(rd: &mut RegisteredDecoders) {
38953fb5 31 generic_register_all_codecs(rd);
8e4fa38a 32 duck_register_all_codecs(rd);
5641dccf
KS
33 game_register_all_codecs(rd);
34 indeo_register_all_codecs(rd);
606c448e 35 rad_register_all_codecs(rd);
5641dccf
KS
36 realmedia_register_all_codecs(rd);
37}
38
5ed804ae 39/// Registers all known demuxers.
5641dccf 40pub fn nihav_register_all_demuxers(rd: &mut RegisteredDemuxers) {
38953fb5 41 generic_register_all_demuxers(rd);
5641dccf 42 game_register_all_demuxers(rd);
606c448e 43 rad_register_all_demuxers(rd);
5641dccf
KS
44 realmedia_register_all_demuxers(rd);
45}
d10c9311 46
32f7cbe5
KS
47#[cfg(test)]
48extern crate nihav_registry;
49
d10c9311
KS
50#[cfg(test)]
51mod test {
52 use super::*;
32f7cbe5 53 use nihav_registry::register::get_codec_description;
d10c9311
KS
54
55 #[test]
56 fn test_descriptions() {
57 let mut rd = RegisteredDecoders::new();
58 nihav_register_all_codecs(&mut rd);
59 let mut has_missing = false;
60 for dec in rd.iter() {
61 print!("decoder {} - ", dec.name);
62 let ret = get_codec_description(dec.name);
63 if let Some(desc) = ret {
64 println!("{}", desc);
65 } else {
66 println!("missing!");
67 has_missing = true;
68 }
69 }
70 assert!(!has_missing);
71 }
72}