X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-ms%2Fsrc%2Fcodecs%2Fmod.rs;fp=nihav-ms%2Fsrc%2Fcodecs%2Fmod.rs;h=0e1a2375f069d0e01c969534f2629dbc18854d77;hb=4abcd84283e5d7168cc495e41cbc443710bfbd5e;hp=0000000000000000000000000000000000000000;hpb=f8d697207ac1373091df74002bdc72fd5b2d8944;p=nihav.git diff --git a/nihav-ms/src/codecs/mod.rs b/nihav-ms/src/codecs/mod.rs new file mode 100644 index 0000000..0e1a237 --- /dev/null +++ b/nihav-ms/src/codecs/mod.rs @@ -0,0 +1,30 @@ +use nihav_core::codecs::*; + +macro_rules! validate { + ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DecoderError::InvalidData); } }; +} + +#[cfg(feature="decoder_msvideo1")] +pub mod msvideo1; + +#[cfg(feature="decoder_ima_adpcm_ms")] +pub mod imaadpcm; + +#[cfg(feature="decoder_ms_adpcm")] +pub mod msadpcm; + +const MS_CODECS: &[DecoderInfo] = &[ +#[cfg(feature="decoder_msvideo1")] + DecoderInfo { name: "msvideo1", get_decoder: msvideo1::get_decoder }, +#[cfg(feature="decoder_ima_adpcm_ms")] + DecoderInfo { name: "ima-adpcm-ms", get_decoder: imaadpcm::get_decoder }, +#[cfg(feature="decoder_ms_adpcm")] + DecoderInfo { name: "ms-adpcm", get_decoder: msadpcm::get_decoder }, +]; + +/// Registers all available codecs provided by this crate. +pub fn ms_register_all_codecs(rd: &mut RegisteredDecoders) { + for decoder in MS_CODECS.iter() { + rd.add_decoder(decoder.clone()); + } +}