make validate!() print message only in debug builds
[nihav.git] / nihav-llaudio / src / demuxers / mod.rs
index d1d38a203dff62268389f83eed3e781b91127050..4ccb8f18a414187c6f8f5f2cecf2362ba5a19110 100644 (file)
@@ -1,14 +1,21 @@
 use nihav_core::demuxers::*;
 
 #[allow(unused_macros)]
+#[cfg(debug_assertions)]
 macro_rules! validate {
     ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } };
 }
+#[cfg(not(debug_assertions))]
+macro_rules! validate {
+    ($a:expr) => { if !$a { return Err(DemuxerError::InvalidData); } };
+}
 
 #[cfg(feature="demuxer_ape")]
 mod ape;
 #[cfg(feature="demuxer_flac")]
 mod flac;
+#[cfg(feature="demuxer_flac")]
+mod flacraw;
 #[cfg(feature="demuxer_tta")]
 mod tta;
 #[cfg(feature="demuxer_wavpack")]
@@ -31,3 +38,15 @@ pub fn llaudio_register_all_demuxers(rd: &mut RegisteredDemuxers) {
         rd.add_demuxer(*demuxer);
     }
 }
+
+const LL_RAW_AUDIO_DEMUXERS: &[&dyn RawDemuxerCreator] = &[
+#[cfg(feature="demuxer_flac")]
+    &flacraw::FLACDemuxerCreator {},
+];
+
+/// Registers all available raw stream demuxers provided by this crate.
+pub fn llaudio_register_all_raw_demuxers(rd: &mut RegisteredRawDemuxers) {
+    for demuxer in LL_RAW_AUDIO_DEMUXERS.iter() {
+        rd.add_demuxer(*demuxer);
+    }
+}