1 use nihav_core::codecs::*;
3 #[cfg(debug_assertions)]
4 macro_rules! validate {
5 ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DecoderError::InvalidData); } };
7 #[cfg(not(debug_assertions))]
8 macro_rules! validate {
9 ($a:expr) => { if !$a { return Err(DecoderError::InvalidData); } };
12 #[cfg(feature="decoder_mpeg4asp")]
15 #[cfg(feature="decoder_aac")]
16 #[allow(clippy::excessive_precision)]
18 #[cfg(feature="decoder_mpa")]
19 #[allow(clippy::excessive_precision)]
22 const DECODERS: &[DecoderInfo] = &[
23 #[cfg(feature="decoder_mpeg4asp")]
24 DecoderInfo { name: "mpeg4asp", get_decoder: mpeg4asp::get_decoder },
26 #[cfg(feature="decoder_aac")]
27 DecoderInfo { name: "aac", get_decoder: aac::get_decoder },
28 #[cfg(feature="decoder_mpa")]
29 DecoderInfo { name: "mp2", get_decoder: mpegaudio::get_decoder_mp2 },
30 #[cfg(feature="decoder_mpa")]
31 DecoderInfo { name: "mp3", get_decoder: mpegaudio::get_decoder_mp3 },
34 /// Registers all available codecs provided by this crate.
35 pub fn mpeg_register_all_decoders(rd: &mut RegisteredDecoders) {
36 for decoder in DECODERS.iter() {
37 rd.add_decoder(*decoder);
41 const PACKETISERS: &[PacketiserInfo] = &[
42 #[cfg(feature="decoder_mpa")]
43 PacketiserInfo { name: "mpa", get_packetiser: mpegaudio::get_packetiser },
44 #[cfg(feature="decoder_aac")]
45 PacketiserInfo { name: "adts", get_packetiser: aac::get_packetiser_adts },
48 /// Registers all available packetisers provided by this crate.
49 pub fn mpeg_register_all_packetisers(rp: &mut RegisteredPacketisers) {
50 for packetiser in PACKETISERS.iter() {
51 rp.add_packetiser(*packetiser);