X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-allstuff%2Fsrc%2Flib.rs;h=4c2214a82fd2be5a746e5e9eaa7a349cd01b91fd;hb=32f7cbe538d71574f7ac05aa51599d2678f5db3f;hp=88c5f451335da8d8c24d05904c948998e6ca7fd4;hpb=606c448ef167017c3171b49f9eb2af82c15079ce;p=nihav.git diff --git a/nihav-allstuff/src/lib.rs b/nihav-allstuff/src/lib.rs index 88c5f45..4c2214a 100644 --- a/nihav-allstuff/src/lib.rs +++ b/nihav-allstuff/src/lib.rs @@ -1,5 +1,7 @@ +//! Umbrella crate to register decoders and demuxers from all known NihAV crates. extern crate nihav_core; extern crate nihav_commonfmt; +extern crate nihav_duck; extern crate nihav_game; extern crate nihav_indeo; extern crate nihav_rad; @@ -8,31 +10,63 @@ extern crate nihav_realmedia; use nihav_core::codecs::RegisteredDecoders; use nihav_core::demuxers::RegisteredDemuxers; -use nihav_commonfmt::codecs::generic_register_all_codecs; -use nihav_commonfmt::demuxers::generic_register_all_demuxers; +use nihav_commonfmt::generic_register_all_codecs; +use nihav_commonfmt::generic_register_all_demuxers; -use nihav_game::codecs::game_register_all_codecs; -use nihav_game::demuxers::game_register_all_demuxers; +use nihav_duck::duck_register_all_codecs; -use nihav_indeo::codecs::indeo_register_all_codecs; +use nihav_game::game_register_all_codecs; +use nihav_game::game_register_all_demuxers; -use nihav_rad::codecs::rad_register_all_codecs; -use nihav_rad::demuxers::rad_register_all_demuxers; +use nihav_indeo::indeo_register_all_codecs; -use nihav_realmedia::codecs::realmedia_register_all_codecs; -use nihav_realmedia::demuxers::realmedia_register_all_demuxers; +use nihav_rad::rad_register_all_codecs; +use nihav_rad::rad_register_all_demuxers; +use nihav_realmedia::realmedia_register_all_codecs; +use nihav_realmedia::realmedia_register_all_demuxers; + +/// Registers all known decoders. pub fn nihav_register_all_codecs(rd: &mut RegisteredDecoders) { generic_register_all_codecs(rd); + duck_register_all_codecs(rd); game_register_all_codecs(rd); indeo_register_all_codecs(rd); rad_register_all_codecs(rd); realmedia_register_all_codecs(rd); } +/// Registers all known demuxers. pub fn nihav_register_all_demuxers(rd: &mut RegisteredDemuxers) { generic_register_all_demuxers(rd); game_register_all_demuxers(rd); rad_register_all_demuxers(rd); realmedia_register_all_demuxers(rd); } + +#[cfg(test)] +extern crate nihav_registry; + +#[cfg(test)] +mod test { + use super::*; + use nihav_registry::register::get_codec_description; + + #[test] + fn test_descriptions() { + let mut rd = RegisteredDecoders::new(); + nihav_register_all_codecs(&mut rd); + let mut has_missing = false; + for dec in rd.iter() { + print!("decoder {} - ", dec.name); + let ret = get_codec_description(dec.name); + if let Some(desc) = ret { + println!("{}", desc); + } else { + println!("missing!"); + has_missing = true; + } + } + assert!(!has_missing); + } +}