]> git.nihav.org Git - nihav.git/blame_incremental - nihav-commonfmt/src/demuxers/mod.rs
avimux: do not record palette change chunks in OpenDML index
[nihav.git] / nihav-commonfmt / src / demuxers / mod.rs
... / ...
CommitLineData
1use nihav_core::demuxers::*;
2
3
4#[allow(unused_macros)]
5#[cfg(debug_assertions)]
6macro_rules! validate {
7 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } };
8}
9#[cfg(not(debug_assertions))]
10macro_rules! validate {
11 ($a:expr) => { if !$a { return Err(DemuxerError::InvalidData); } };
12}
13
14#[cfg(feature="demuxer_avi")]
15mod avi;
16#[cfg(feature="demuxer_gif")]
17mod gif;
18#[cfg(feature="demuxer_mov")]
19mod mov;
20#[cfg(feature="demuxer_wav")]
21mod wav;
22#[cfg(feature="demuxer_y4m")]
23mod y4m;
24
25const DEMUXERS: &[&dyn DemuxerCreator] = &[
26#[cfg(feature="demuxer_avi")]
27 &avi::AVIDemuxerCreator {},
28#[cfg(feature="demuxer_gif")]
29 &gif::GIFDemuxerCreator {},
30#[cfg(feature="demuxer_mov")]
31 &mov::MOVDemuxerCreator {},
32#[cfg(feature="demuxer_mov")]
33 &mov::MacBinaryMOVDemuxerCreator {},
34#[cfg(feature="demuxer_mov")]
35 &mov::MacResForkMOVDemuxerCreator {},
36#[cfg(feature="demuxer_wav")]
37 &wav::WAVDemuxerCreator {},
38#[cfg(feature="demuxer_y4m")]
39 &y4m::Y4MDemuxerCreator {},
40];
41
42/// Registers all available demuxers provided by this crate.
43pub fn generic_register_all_demuxers(rd: &mut RegisteredDemuxers) {
44 for demuxer in DEMUXERS.iter() {
45 rd.add_demuxer(*demuxer);
46 }
47}