X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-vivo%2Fsrc%2Fcodecs%2Fmod.rs;fp=nihav-vivo%2Fsrc%2Fcodecs%2Fmod.rs;h=b2ceb124897222fbe3ee181002d4412e497756db;hb=31cf33aceca7798294e1ce5c01702ef5e6ef7adc;hp=0000000000000000000000000000000000000000;hpb=8989305f27376e92ec3f0a77cf7edf65a5255183;p=nihav.git diff --git a/nihav-vivo/src/codecs/mod.rs b/nihav-vivo/src/codecs/mod.rs new file mode 100644 index 0000000..b2ceb12 --- /dev/null +++ b/nihav-vivo/src/codecs/mod.rs @@ -0,0 +1,31 @@ +use nihav_core::codecs::*; + +#[allow(unused_macros)] +macro_rules! validate { + ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DecoderError::InvalidData); } }; +} + +#[cfg(any(feature="decoder_vivo1", feature="decoder_vivo2"))] +mod vivo; +#[cfg(feature="decoder_g723_1")] +mod g723_1; +#[cfg(feature="decoder_siren")] +mod siren; + +const VIVO_CODECS: &[DecoderInfo] = &[ +#[cfg(feature="decoder_vivo1")] + DecoderInfo { name: "vivo1", get_decoder: vivo::get_decoder }, +#[cfg(feature="decoder_vivo2")] + DecoderInfo { name: "vivo2", get_decoder: vivo::get_decoder }, +#[cfg(feature="decoder_g723_1")] + DecoderInfo { name: "g723.1", get_decoder: g723_1::get_decoder }, +#[cfg(feature="decoder_siren")] + DecoderInfo { name: "siren", get_decoder: siren::get_decoder }, +]; + +/// Registers all available codecs provided by this crate. +pub fn vivo_register_all_codecs(rd: &mut RegisteredDecoders) { + for decoder in VIVO_CODECS.iter() { + rd.add_decoder(decoder.clone()); + } +}