X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-ms%2Fsrc%2Fcodecs%2Fmod.rs;h=e01a6bb946ae01c74f707ee7e23e1f6878026d4c;hp=0e1a2375f069d0e01c969534f2629dbc18854d77;hb=78fb6560c73965d834b215fb0b49505ae5443288;hpb=4abcd84283e5d7168cc495e41cbc443710bfbd5e diff --git a/nihav-ms/src/codecs/mod.rs b/nihav-ms/src/codecs/mod.rs index 0e1a237..e01a6bb 100644 --- a/nihav-ms/src/codecs/mod.rs +++ b/nihav-ms/src/codecs/mod.rs @@ -4,16 +4,21 @@ macro_rules! validate { ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DecoderError::InvalidData); } }; } +#[cfg(feature="decoder_msrle")] +pub mod msrle; + #[cfg(feature="decoder_msvideo1")] pub mod msvideo1; #[cfg(feature="decoder_ima_adpcm_ms")] pub mod imaadpcm; -#[cfg(feature="decoder_ms_adpcm")] +#[cfg(any(feature="decoder_ms_adpcm", feature="encoder_ms_adpcm"))] pub mod msadpcm; const MS_CODECS: &[DecoderInfo] = &[ +#[cfg(feature="decoder_msrle")] + DecoderInfo { name: "msrle", get_decoder: msrle::get_decoder }, #[cfg(feature="decoder_msvideo1")] DecoderInfo { name: "msvideo1", get_decoder: msvideo1::get_decoder }, #[cfg(feature="decoder_ima_adpcm_ms")] @@ -23,8 +28,25 @@ const MS_CODECS: &[DecoderInfo] = &[ ]; /// Registers all available codecs provided by this crate. -pub fn ms_register_all_codecs(rd: &mut RegisteredDecoders) { +pub fn ms_register_all_decoders(rd: &mut RegisteredDecoders) { for decoder in MS_CODECS.iter() { rd.add_decoder(decoder.clone()); } } + +#[cfg(feature="encoder_msvideo1")] +pub mod msvideo1enc; + +const MS_ENCODERS: &[EncoderInfo] = &[ +#[cfg(feature="encoder_msvideo1")] + EncoderInfo { name: "msvideo1", get_encoder: msvideo1enc::get_encoder }, +#[cfg(feature="encoder_ms_adpcm")] + EncoderInfo { name: "ms-adpcm", get_encoder: msadpcm::get_encoder }, +]; + +/// Registers all available encoders provided by this crate. +pub fn ms_register_all_encoders(re: &mut RegisteredEncoders) { + for encoder in MS_ENCODERS.iter() { + re.add_encoder(encoder.clone()); + } +}