add VivoActive (imperfect) format family support
[nihav.git] / nihav-vivo / src / codecs / mod.rs
1 use nihav_core::codecs::*;
2
3 #[allow(unused_macros)]
4 macro_rules! validate {
5 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DecoderError::InvalidData); } };
6 }
7
8 #[cfg(any(feature="decoder_vivo1", feature="decoder_vivo2"))]
9 mod vivo;
10 #[cfg(feature="decoder_g723_1")]
11 mod g723_1;
12 #[cfg(feature="decoder_siren")]
13 mod siren;
14
15 const VIVO_CODECS: &[DecoderInfo] = &[
16 #[cfg(feature="decoder_vivo1")]
17 DecoderInfo { name: "vivo1", get_decoder: vivo::get_decoder },
18 #[cfg(feature="decoder_vivo2")]
19 DecoderInfo { name: "vivo2", get_decoder: vivo::get_decoder },
20 #[cfg(feature="decoder_g723_1")]
21 DecoderInfo { name: "g723.1", get_decoder: g723_1::get_decoder },
22 #[cfg(feature="decoder_siren")]
23 DecoderInfo { name: "siren", get_decoder: siren::get_decoder },
24 ];
25
26 /// Registers all available codecs provided by this crate.
27 pub fn vivo_register_all_codecs(rd: &mut RegisteredDecoders) {
28 for decoder in VIVO_CODECS.iter() {
29 rd.add_decoder(decoder.clone());
30 }
31 }