add a crate for common MS formats
[nihav.git] / nihav-ms / src / codecs / mod.rs
CommitLineData
4abcd842
KS
1use nihav_core::codecs::*;
2
3macro_rules! validate {
4 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DecoderError::InvalidData); } };
5}
6
7#[cfg(feature="decoder_msvideo1")]
8pub mod msvideo1;
9
10#[cfg(feature="decoder_ima_adpcm_ms")]
11pub mod imaadpcm;
12
13#[cfg(feature="decoder_ms_adpcm")]
14pub mod msadpcm;
15
16const MS_CODECS: &[DecoderInfo] = &[
17#[cfg(feature="decoder_msvideo1")]
18 DecoderInfo { name: "msvideo1", get_decoder: msvideo1::get_decoder },
19#[cfg(feature="decoder_ima_adpcm_ms")]
20 DecoderInfo { name: "ima-adpcm-ms", get_decoder: imaadpcm::get_decoder },
21#[cfg(feature="decoder_ms_adpcm")]
22 DecoderInfo { name: "ms-adpcm", get_decoder: msadpcm::get_decoder },
23];
24
25/// Registers all available codecs provided by this crate.
26pub fn ms_register_all_codecs(rd: &mut RegisteredDecoders) {
27 for decoder in MS_CODECS.iter() {
28 rd.add_decoder(decoder.clone());
29 }
30}