X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-game%2Fsrc%2Fdemuxers%2Fmod.rs;h=7895afd619b75348ce814e3cb03382a7c3654ca2;hb=e12dabcd04fc59677660fce8fc9437931d141e93;hp=236b3cf8d229f9a16e45d44f4e7757eeed6651a5;hpb=e64739f87a35f29be0bbbce366876180ba3eb57e;p=nihav.git diff --git a/nihav-game/src/demuxers/mod.rs b/nihav-game/src/demuxers/mod.rs index 236b3cf..7895afd 100644 --- a/nihav-game/src/demuxers/mod.rs +++ b/nihav-game/src/demuxers/mod.rs @@ -1,26 +1,71 @@ 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(any(feature="demuxer_bmv",feature="demuxer_bmv3"))] mod bmv; +#[cfg(feature="demuxer_cnm")] +mod cnm; +#[cfg(any(feature="demuxer_fst",feature="demuxer_fcmp"))] +mod fst; #[cfg(feature="demuxer_gdv")] mod gdv; +#[cfg(feature="demuxer_hl_fmv")] +mod hl_fmv; +#[cfg(feature="demuxer_imax")] +mod imax; +#[cfg(feature="demuxer_q")] +mod q; +#[cfg(feature="demuxer_sga")] +mod sga; +#[cfg(feature="demuxer_siff")] +mod siff; +#[cfg(feature="demuxer_smush")] +mod smush; #[cfg(feature="demuxer_vmd")] mod vmd; +#[cfg(feature="demuxer_vx")] +mod vx; -const GAME_DEMUXERS: &[&DemuxerCreator] = &[ +const GAME_DEMUXERS: &[&dyn DemuxerCreator] = &[ #[cfg(feature="demuxer_bmv")] &bmv::BMVDemuxerCreator {}, #[cfg(feature="demuxer_bmv3")] &bmv::BMV3DemuxerCreator {}, +#[cfg(feature="demuxer_cnm")] + &cnm::CNMDemuxerCreator {}, +#[cfg(feature="demuxer_fcmp")] + &fst::FCMPDemuxerCreator {}, +#[cfg(feature="demuxer_fst")] + &fst::FSTDemuxerCreator {}, #[cfg(feature="demuxer_gdv")] &gdv::GDVDemuxerCreator {}, +#[cfg(feature="demuxer_hl_fmv")] + &hl_fmv::HighlanderFMVDemuxerCreator {}, +#[cfg(feature="demuxer_imax")] + &imax::IMAXDemuxerCreator {}, +#[cfg(feature="demuxer_q")] + &q::QDemuxerCreator {}, +#[cfg(feature="demuxer_sga")] + &sga::SGADemuxerCreator {}, +#[cfg(feature="demuxer_siff")] + &siff::SIFFDemuxerCreator {}, +#[cfg(feature="demuxer_smush")] + &smush::SmushDemuxerCreator {}, +#[cfg(feature="demuxer_smush")] + &smush::MCMPDemuxerCreator {}, #[cfg(feature="demuxer_vmd")] &vmd::VMDDemuxerCreator {}, +#[cfg(feature="demuxer_vx")] + &vx::VXDemuxerCreator {}, ]; /// Registers all available demuxers provided by this crate.