mov: add support for MacBinary format
[nihav.git] / nihav-commonfmt / src / demuxers / mod.rs
... / ...
CommitLineData
1use nihav_core::demuxers::*;
2
3
4#[allow(unused_macros)]
5macro_rules! validate {
6 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } };
7}
8
9#[cfg(feature="demuxer_avi")]
10#[allow(clippy::cast_lossless)]
11mod avi;
12#[cfg(feature="demuxer_mov")]
13#[allow(clippy::cast_lossless)]
14mod mov;
15#[cfg(feature="demuxer_wav")]
16mod wav;
17#[cfg(feature="demuxer_y4m")]
18mod y4m;
19
20const DEMUXERS: &[&dyn DemuxerCreator] = &[
21#[cfg(feature="demuxer_avi")]
22 &avi::AVIDemuxerCreator {},
23#[cfg(feature="demuxer_mov")]
24 &mov::MOVDemuxerCreator {},
25#[cfg(feature="demuxer_mov")]
26 &mov::MacBinaryMOVDemuxerCreator {},
27#[cfg(feature="demuxer_wav")]
28 &wav::WAVDemuxerCreator {},
29#[cfg(feature="demuxer_y4m")]
30 &y4m::Y4MDemuxerCreator {},
31];
32
33/// Registers all available demuxers provided by this crate.
34pub fn generic_register_all_demuxers(rd: &mut RegisteredDemuxers) {
35 for demuxer in DEMUXERS.iter() {
36 rd.add_demuxer(*demuxer);
37 }
38}