GIF support
[nihav.git] / nihav-commonfmt / src / demuxers / mod.rs
CommitLineData
38953fb5
KS
1use nihav_core::demuxers::*;
2
3
674ebc33 4#[allow(unused_macros)]
71d7f397 5#[cfg(debug_assertions)]
38953fb5
KS
6macro_rules! validate {
7 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } };
8}
71d7f397
KS
9#[cfg(not(debug_assertions))]
10macro_rules! validate {
11 ($a:expr) => { if !$a { return Err(DemuxerError::InvalidData); } };
12}
38953fb5
KS
13
14#[cfg(feature="demuxer_avi")]
c83013a1 15#[allow(clippy::cast_lossless)]
38953fb5 16mod avi;
fc39649d
KS
17#[cfg(feature="demuxer_gif")]
18mod gif;
58309c73 19#[cfg(feature="demuxer_mov")]
61cab15b 20#[allow(clippy::cast_lossless)]
58309c73 21mod mov;
283abfa6
KS
22#[cfg(feature="demuxer_wav")]
23mod wav;
dbb2cbc9
KS
24#[cfg(feature="demuxer_y4m")]
25mod y4m;
38953fb5 26
ac818eac 27const DEMUXERS: &[&dyn DemuxerCreator] = &[
38953fb5
KS
28#[cfg(feature="demuxer_avi")]
29 &avi::AVIDemuxerCreator {},
fc39649d
KS
30#[cfg(feature="demuxer_gif")]
31 &gif::GIFDemuxerCreator {},
58309c73
KS
32#[cfg(feature="demuxer_mov")]
33 &mov::MOVDemuxerCreator {},
88fd1059
KS
34#[cfg(feature="demuxer_mov")]
35 &mov::MacBinaryMOVDemuxerCreator {},
283abfa6
KS
36#[cfg(feature="demuxer_wav")]
37 &wav::WAVDemuxerCreator {},
dbb2cbc9
KS
38#[cfg(feature="demuxer_y4m")]
39 &y4m::Y4MDemuxerCreator {},
38953fb5
KS
40];
41
e64739f8 42/// Registers all available demuxers provided by this crate.
38953fb5 43pub fn generic_register_all_demuxers(rd: &mut RegisteredDemuxers) {
c83013a1 44 for demuxer in DEMUXERS.iter() {
38953fb5
KS
45 rd.add_demuxer(*demuxer);
46 }
47}