X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-duck%2Fsrc%2Fcodecs%2Fmod.rs;h=e4f115b7dc918a1c592ad20bc4cdf50a9da8c537;hb=71d7f39706f0f5004820f8d1d36c87d5f9ec3e97;hp=6086150d85831b39045da8705feec29214122864;hpb=92d9fb6993d2d3f6f7a016ee6796a98e6e989f21;p=nihav.git diff --git a/nihav-duck/src/codecs/mod.rs b/nihav-duck/src/codecs/mod.rs index 6086150..e4f115b 100644 --- a/nihav-duck/src/codecs/mod.rs +++ b/nihav-duck/src/codecs/mod.rs @@ -1,8 +1,13 @@ 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_truemotion1")] mod truemotion1; @@ -43,6 +48,8 @@ mod vp6; #[allow(clippy::needless_range_loop)] #[allow(clippy::useless_let_if_seq)] mod vp7; +#[cfg(any(feature="decoder_vp7", feature="encoder_vp7"))] +mod vp7data; #[cfg(any(feature="decoder_vp7", feature="decoder_vp8"))] mod vp78data; #[cfg(feature="decoder_vp7")] @@ -51,11 +58,11 @@ mod vp78data; #[allow(clippy::too_many_arguments)] #[allow(clippy::useless_let_if_seq)] mod vp7dsp; -#[cfg(any(feature="decoder_vp7", feature="decoder_vp8"))] +#[cfg(any(feature="decoder_vp7", feature="decoder_vp8", feature="encoder_vp7"))] #[allow(clippy::needless_range_loop)] #[allow(clippy::useless_let_if_seq)] mod vp78; -#[cfg(any(feature="decoder_vp7", feature="decoder_vp8"))] +#[cfg(any(feature="decoder_vp7", feature="decoder_vp8", feature="encoder_vp7"))] #[allow(clippy::erasing_op)] #[allow(clippy::needless_range_loop)] #[allow(clippy::too_many_arguments)] @@ -124,15 +131,27 @@ pub fn duck_register_all_decoders(rd: &mut RegisteredDecoders) { } } +#[cfg(feature="encoder_truemotionrt")] +mod truemotionrtenc; +#[cfg(feature="encoder_vp6")] +#[macro_use] +mod vpenc; #[cfg(feature="encoder_vp6")] #[allow(clippy::needless_range_loop)] mod vp6enc; +#[cfg(feature="encoder_vp7")] +#[allow(clippy::needless_range_loop)] +mod vp7enc; const DUCK_ENCODERS: &[EncoderInfo] = &[ +#[cfg(feature="encoder_truemotionrt")] + EncoderInfo { name: "truemotionrt", get_encoder: truemotionrtenc::get_encoder }, #[cfg(feature="encoder_vp6")] EncoderInfo { name: "vp6", get_encoder: vp6enc::get_encoder }, #[cfg(feature="encoder_vp6")] EncoderInfo { name: "vp6f", get_encoder: vp6enc::get_encoder_flv }, +#[cfg(feature="encoder_vp7")] + EncoderInfo { name: "vp7", get_encoder: vp7enc::get_encoder }, ]; /// Registers all available encoders provided by this crate.