]> git.nihav.org Git - nihav.git/blob - nihav-vivo/src/codecs/mod.rs
avimux: do not record palette change chunks in OpenDML index
[nihav.git] / nihav-vivo / src / codecs / mod.rs
1 use nihav_core::codecs::*;
2
3 #[allow(unused_macros)]
4 #[cfg(debug_assertions)]
5 macro_rules! validate {
6 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DecoderError::InvalidData); } };
7 }
8 #[cfg(not(debug_assertions))]
9 macro_rules! validate {
10 ($a:expr) => { if !$a { return Err(DecoderError::InvalidData); } };
11 }
12
13 #[cfg(any(feature="decoder_vivo1", feature="decoder_vivo2"))]
14 mod vivo;
15 #[cfg(feature="decoder_g723_1")]
16 mod g723_1;
17 #[cfg(feature="decoder_siren")]
18 #[allow(clippy::approx_constant)]
19 mod siren;
20
21 const VIVO_CODECS: &[DecoderInfo] = &[
22 #[cfg(feature="decoder_vivo1")]
23 DecoderInfo { name: "vivo1", get_decoder: vivo::get_decoder },
24 #[cfg(feature="decoder_vivo2")]
25 DecoderInfo { name: "vivo2", get_decoder: vivo::get_decoder },
26 #[cfg(feature="decoder_g723_1")]
27 DecoderInfo { name: "g723.1", get_decoder: g723_1::get_decoder },
28 #[cfg(feature="decoder_siren")]
29 DecoderInfo { name: "siren", get_decoder: siren::get_decoder },
30 ];
31
32 /// Registers all available codecs provided by this crate.
33 pub fn vivo_register_all_decoders(rd: &mut RegisteredDecoders) {
34 for decoder in VIVO_CODECS.iter() {
35 rd.add_decoder(*decoder);
36 }
37 }