make validate!() print message only in debug builds
[nihav.git] / nihav-commonfmt / src / codecs / mod.rs
index bf254eedb00683298e7ac7b63b503208b55ad35a..f69fc6441e5b6c70627713f2eed1350645bb33d5 100644 (file)
@@ -1,13 +1,20 @@
 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_cinepak")]
 mod cinepak;
 #[cfg(feature="decoder_clearvideo")]
 mod clearvideo;
+#[cfg(feature="decoder_jpeg")]
+mod jpeg;
 #[cfg(feature="decoder_rawvideo")]
 mod rawvideo;
 #[cfg(feature="decoder_rawvideo_ms")]
@@ -29,6 +36,7 @@ mod sipro;
 #[cfg(feature="decoder_ts102366")]
 mod ts102366;
 
+#[cfg(feature="decoders")]
 const DECODERS: &[DecoderInfo] = &[
 #[cfg(feature="decoder_cinepak")]
     DecoderInfo { name: "cinepak", get_decoder: cinepak::get_decoder },
@@ -36,6 +44,8 @@ const DECODERS: &[DecoderInfo] = &[
     DecoderInfo { name: "clearvideo", get_decoder: clearvideo::get_decoder },
 #[cfg(feature="decoder_clearvideo")]
     DecoderInfo { name: "clearvideo_rm", get_decoder: clearvideo::get_decoder_rm },
+#[cfg(feature="decoder_jpeg")]
+    DecoderInfo { name: "jpeg", get_decoder: jpeg::get_decoder },
 #[cfg(feature="decoder_rawvideo")]
     DecoderInfo { name: "rawvideo", get_decoder: rawvideo::get_decoder },
 #[cfg(feature="decoder_rawvideo_ms")]
@@ -58,6 +68,7 @@ const DECODERS: &[DecoderInfo] = &[
 ];
 
 /// Registers all available codecs provided by this crate.
+#[cfg(feature="decoders")]
 pub fn generic_register_all_decoders(rd: &mut RegisteredDecoders) {
     for decoder in DECODERS.iter() {
         rd.add_decoder(*decoder);
@@ -69,6 +80,7 @@ mod cinepakenc;
 #[cfg(feature="encoder_zmbv")]
 mod zmbvenc;
 
+#[cfg(feature="encoders")]
 const ENCODERS: &[EncoderInfo] = &[
 #[cfg(feature="encoder_cinepak")]
     EncoderInfo { name: "cinepak", get_encoder: cinepakenc::get_encoder },
@@ -80,6 +92,7 @@ const ENCODERS: &[EncoderInfo] = &[
 ];
 
 /// Registers all available encoders provided by this crate.
+#[cfg(feature="encoders")]
 pub fn generic_register_all_encoders(re: &mut RegisteredEncoders) {
     for encoder in ENCODERS.iter() {
         re.add_encoder(*encoder);