1 use nihav_core::demuxers::*;
3 #[allow(unused_macros)]
4 #[cfg(debug_assertions)]
5 macro_rules! validate {
6 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } };
8 #[cfg(not(debug_assertions))]
9 macro_rules! validate {
10 ($a:expr) => { if !$a { return Err(DemuxerError::InvalidData); } };
13 #[cfg(any(feature="demuxer_bmv",feature="demuxer_bmv3"))]
15 #[cfg(feature="demuxer_gdv")]
17 #[cfg(feature="demuxer_seq")]
19 #[cfg(feature="demuxer_sga")]
21 #[cfg(feature="demuxer_smush")]
23 #[cfg(feature="demuxer_vmd")]
26 const GAME_DEMUXERS: &[&dyn DemuxerCreator] = &[
27 #[cfg(feature="demuxer_bmv")]
28 &bmv::BMVDemuxerCreator {},
29 #[cfg(feature="demuxer_bmv3")]
30 &bmv::BMV3DemuxerCreator {},
31 #[cfg(feature="demuxer_gdv")]
32 &gdv::GDVDemuxerCreator {},
33 #[cfg(feature="demuxer_seq")]
34 &seq::SequenceDemuxerCreator {},
35 #[cfg(feature="demuxer_sga")]
36 &sga::SGADemuxerCreator {},
37 #[cfg(feature="demuxer_smush")]
38 &smush::SmushDemuxerCreator {},
39 #[cfg(feature="demuxer_smush")]
40 &smush::MCMPDemuxerCreator {},
41 #[cfg(feature="demuxer_vmd")]
42 &vmd::VMDDemuxerCreator {},
45 /// Registers all available demuxers provided by this crate.
46 pub fn game_register_all_demuxers(rd: &mut RegisteredDemuxers) {
47 for demuxer in GAME_DEMUXERS.iter() {
48 rd.add_demuxer(*demuxer);