X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-itu%2Fsrc%2Fcodecs%2Fmod.rs;h=2014f0af26ea8e2183c9f22cc58a53203f9d1aa5;hb=HEAD;hp=d4167b566244ee3f3be60e0c21ada7f6631122ca;hpb=696e4e20bf7167121352f247893370cb83213d5c;p=nihav.git diff --git a/nihav-itu/src/codecs/mod.rs b/nihav-itu/src/codecs/mod.rs index d4167b5..2014f0a 100644 --- a/nihav-itu/src/codecs/mod.rs +++ b/nihav-itu/src/codecs/mod.rs @@ -1,9 +1,18 @@ 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); } }; +} +#[allow(clippy::collapsible_else_if)] +#[allow(clippy::manual_range_contains)] +#[allow(clippy::too_many_arguments)] +#[allow(clippy::upper_case_acronyms)] #[cfg(feature="decoder_h264")] mod h264; @@ -15,6 +24,18 @@ const ITU_CODECS: &[DecoderInfo] = &[ /// Registers all available codecs provided by this crate. pub fn itu_register_all_decoders(rd: &mut RegisteredDecoders) { for decoder in ITU_CODECS.iter() { - rd.add_decoder(decoder.clone()); + rd.add_decoder(*decoder); + } +} + +const ITU_MT_CODECS: &[MTDecoderInfo] = &[ +#[cfg(feature="decoder_h264")] + MTDecoderInfo { name: "h264", get_decoder: h264::get_decoder_mt }, +]; + +/// Registers all available multi-threaded decoders provided by this crate. +pub fn itu_register_all_mt_decoders(rd: &mut RegisteredMTDecoders) { + for decoder in ITU_MT_CODECS.iter() { + rd.add_decoder(*decoder); } }