]> git.nihav.org Git - nihav.git/blame - nihav-game/src/demuxers/mod.rs
avimux: do not record palette change chunks in OpenDML index
[nihav.git] / nihav-game / src / demuxers / mod.rs
CommitLineData
5641dccf
KS
1use nihav_core::demuxers::*;
2
674ebc33 3#[allow(unused_macros)]
71d7f397 4#[cfg(debug_assertions)]
5641dccf
KS
5macro_rules! validate {
6 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } };
7}
71d7f397
KS
8#[cfg(not(debug_assertions))]
9macro_rules! validate {
10 ($a:expr) => { if !$a { return Err(DemuxerError::InvalidData); } };
11}
5641dccf 12
ecda1cc1 13#[cfg(any(feature="demuxer_bmv",feature="demuxer_bmv3"))]
9067c1f8 14mod bmv;
5641dccf
KS
15#[cfg(feature="demuxer_gdv")]
16mod gdv;
f9fc73be
KS
17#[cfg(feature="demuxer_seq")]
18mod seq;
fead60e3
KS
19#[cfg(feature="demuxer_sga")]
20mod sga;
c17769db
KS
21#[cfg(feature="demuxer_smush")]
22mod smush;
9895bd7b
KS
23#[cfg(feature="demuxer_vmd")]
24mod vmd;
5641dccf 25
ac818eac 26const GAME_DEMUXERS: &[&dyn DemuxerCreator] = &[
9067c1f8
KS
27#[cfg(feature="demuxer_bmv")]
28 &bmv::BMVDemuxerCreator {},
ecda1cc1
KS
29#[cfg(feature="demuxer_bmv3")]
30 &bmv::BMV3DemuxerCreator {},
5641dccf
KS
31#[cfg(feature="demuxer_gdv")]
32 &gdv::GDVDemuxerCreator {},
f9fc73be
KS
33#[cfg(feature="demuxer_seq")]
34 &seq::SequenceDemuxerCreator {},
fead60e3
KS
35#[cfg(feature="demuxer_sga")]
36 &sga::SGADemuxerCreator {},
c17769db
KS
37#[cfg(feature="demuxer_smush")]
38 &smush::SmushDemuxerCreator {},
9e08bfdd
KS
39#[cfg(feature="demuxer_smush")]
40 &smush::MCMPDemuxerCreator {},
9895bd7b
KS
41#[cfg(feature="demuxer_vmd")]
42 &vmd::VMDDemuxerCreator {},
5641dccf
KS
43];
44
e64739f8 45/// Registers all available demuxers provided by this crate.
5641dccf 46pub fn game_register_all_demuxers(rd: &mut RegisteredDemuxers) {
e69b1148 47 for demuxer in GAME_DEMUXERS.iter() {
5641dccf
KS
48 rd.add_demuxer(*demuxer);
49 }
50}