X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-ms%2Fsrc%2Fcodecs%2Fmod.rs;h=736884bcecf443bebb616c055b10ed54f6132dcc;hb=e6aaad5c5273cd814b5748b7faf3751835a37217;hp=f5939fd529821fd2f62001e1ab9a1ada16a84428;hpb=dab59886687a0c360a38743b9dc210e8ba269729;p=nihav.git diff --git a/nihav-ms/src/codecs/mod.rs b/nihav-ms/src/codecs/mod.rs index f5939fd..736884b 100644 --- a/nihav-ms/src/codecs/mod.rs +++ b/nihav-ms/src/codecs/mod.rs @@ -1,8 +1,16 @@ use nihav_core::codecs::*; +#[cfg(debug_assertions)] macro_rules! validate { ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DecoderError::InvalidData); } }; } +#[cfg(not(debug_assertions))] +macro_rules! validate { + ($a:expr) => { if !$a { return Err(DecoderError::InvalidData); } }; +} + +#[cfg(feature="decoder_msrle")] +pub mod msrle; #[cfg(feature="decoder_msvideo1")] pub mod msvideo1; @@ -10,10 +18,15 @@ pub mod msvideo1; #[cfg(feature="decoder_ima_adpcm_ms")] pub mod imaadpcm; +#[cfg(feature="encoder_ima_adpcm_ms")] +pub mod imaadpcmenc; + #[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,13 +36,14 @@ 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()); + rd.add_decoder(*decoder); } } #[cfg(feature="encoder_msvideo1")] +#[allow(clippy::collapsible_else_if)] pub mod msvideo1enc; const MS_ENCODERS: &[EncoderInfo] = &[ @@ -37,11 +51,13 @@ const MS_ENCODERS: &[EncoderInfo] = &[ EncoderInfo { name: "msvideo1", get_encoder: msvideo1enc::get_encoder }, #[cfg(feature="encoder_ms_adpcm")] EncoderInfo { name: "ms-adpcm", get_encoder: msadpcm::get_encoder }, +#[cfg(feature="encoder_ima_adpcm_ms")] + EncoderInfo { name: "ima-adpcm-ms", get_encoder: imaadpcmenc::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()); + re.add_encoder(*encoder); } }