]> git.nihav.org Git - nihav.git/blame_incremental - 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
1use nihav_core::demuxers::*;
2
3#[allow(unused_macros)]
4#[cfg(debug_assertions)]
5macro_rules! validate {
6 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } };
7}
8#[cfg(not(debug_assertions))]
9macro_rules! validate {
10 ($a:expr) => { if !$a { return Err(DemuxerError::InvalidData); } };
11}
12
13#[cfg(any(feature="demuxer_bmv",feature="demuxer_bmv3"))]
14mod bmv;
15#[cfg(feature="demuxer_gdv")]
16mod gdv;
17#[cfg(feature="demuxer_seq")]
18mod seq;
19#[cfg(feature="demuxer_sga")]
20mod sga;
21#[cfg(feature="demuxer_smush")]
22mod smush;
23#[cfg(feature="demuxer_vmd")]
24mod vmd;
25
26const 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 {},
43];
44
45/// Registers all available demuxers provided by this crate.
46pub fn game_register_all_demuxers(rd: &mut RegisteredDemuxers) {
47 for demuxer in GAME_DEMUXERS.iter() {
48 rd.add_demuxer(*demuxer);
49 }
50}