Add a crate for handling Acorn ReplayMovie formats
[nihav.git] / nihav-acorn / src / demuxers / mod.rs
diff --git a/nihav-acorn/src/demuxers/mod.rs b/nihav-acorn/src/demuxers/mod.rs
new file mode 100644 (file)
index 0000000..2acc820
--- /dev/null
@@ -0,0 +1,27 @@
+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_armovie")]
+mod armovie;
+
+const RAW_DEMUXERS: &[&dyn RawDemuxerCreator] = &[
+#[cfg(feature="demuxer_armovie")]
+    &armovie::ARMovieDemuxerCreator {},
+];
+
+/// Registers all available demuxers provided by this crate.
+pub fn acorn_register_all_raw_demuxers(rd: &mut RegisteredRawDemuxers) {
+    for demuxer in RAW_DEMUXERS.iter() {
+        rd.add_demuxer(*demuxer);
+    }
+}