add Arxel Tribe video support
[nihav.git] / nihav-game / src / demuxers / mod.rs
1 use nihav_core::demuxers::*;
2
3 #[allow(unused_macros)]
4 macro_rules! validate {
5 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } };
6 }
7
8 #[cfg(any(feature="demuxer_bmv",feature="demuxer_bmv3"))]
9 mod bmv;
10 #[cfg(feature="demuxer_cnm")]
11 mod cnm;
12 #[cfg(any(feature="demuxer_fst",feature="demuxer_fcmp"))]
13 mod fst;
14 #[cfg(feature="demuxer_gdv")]
15 mod gdv;
16 #[cfg(feature="demuxer_hl_fmv")]
17 mod hl_fmv;
18 #[cfg(feature="demuxer_imax")]
19 mod imax;
20 #[cfg(feature="demuxer_q")]
21 mod q;
22 #[cfg(feature="demuxer_siff")]
23 mod siff;
24 #[cfg(feature="demuxer_smush")]
25 mod smush;
26 #[cfg(feature="demuxer_vmd")]
27 mod vmd;
28 #[cfg(feature="demuxer_vx")]
29 mod vx;
30
31 const GAME_DEMUXERS: &[&dyn DemuxerCreator] = &[
32 #[cfg(feature="demuxer_bmv")]
33 &bmv::BMVDemuxerCreator {},
34 #[cfg(feature="demuxer_bmv3")]
35 &bmv::BMV3DemuxerCreator {},
36 #[cfg(feature="demuxer_cnm")]
37 &cnm::CNMDemuxerCreator {},
38 #[cfg(feature="demuxer_fcmp")]
39 &fst::FCMPDemuxerCreator {},
40 #[cfg(feature="demuxer_fst")]
41 &fst::FSTDemuxerCreator {},
42 #[cfg(feature="demuxer_gdv")]
43 &gdv::GDVDemuxerCreator {},
44 #[cfg(feature="demuxer_hl_fmv")]
45 &hl_fmv::HighlanderFMVDemuxerCreator {},
46 #[cfg(feature="demuxer_imax")]
47 &imax::IMAXDemuxerCreator {},
48 #[cfg(feature="demuxer_q")]
49 &q::QDemuxerCreator {},
50 #[cfg(feature="demuxer_siff")]
51 &siff::SIFFDemuxerCreator {},
52 #[cfg(feature="demuxer_smush")]
53 &smush::SmushDemuxerCreator {},
54 #[cfg(feature="demuxer_smush")]
55 &smush::MCMPDemuxerCreator {},
56 #[cfg(feature="demuxer_vmd")]
57 &vmd::VMDDemuxerCreator {},
58 #[cfg(feature="demuxer_vx")]
59 &vx::VXDemuxerCreator {},
60 ];
61
62 /// Registers all available demuxers provided by this crate.
63 pub fn game_register_all_demuxers(rd: &mut RegisteredDemuxers) {
64 for demuxer in GAME_DEMUXERS.iter() {
65 rd.add_demuxer(*demuxer);
66 }
67 }