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(any(feature="decoder_realvideo3", feature="decoder_realvideo4"))]
14 #[cfg(any(feature="decoder_realvideo3", feature="decoder_realvideo4"))]
15 #[allow(clippy::erasing_op)]
17 #[cfg(any(feature="decoder_realvideo3", feature="decoder_realvideo4"))]
18 #[allow(clippy::erasing_op)]
19 #[allow(clippy::many_single_char_names)]
22 #[cfg(feature="decoder_realvideo1")]
24 #[cfg(feature="decoder_realvideo2")]
26 #[cfg(feature="decoder_realvideo3")]
28 #[cfg(feature="decoder_realvideo3")]
29 #[allow(clippy::erasing_op)]
30 #[allow(clippy::many_single_char_names)]
31 #[allow(clippy::neg_multiply)]
33 #[cfg(feature="decoder_realvideo4")]
35 #[cfg(feature="decoder_realvideo4")]
36 #[allow(clippy::erasing_op)]
37 #[allow(clippy::many_single_char_names)]
39 #[cfg(feature="decoder_realvideo6")]
41 #[cfg(feature="decoder_realvideo6")]
43 #[cfg(feature="decoder_realvideo6")]
44 #[allow(clippy::erasing_op)]
45 #[allow(clippy::many_single_char_names)]
48 #[cfg(feature="decoder_realaudio144")]
49 #[allow(clippy::manual_memcpy)]
51 #[cfg(feature="decoder_realaudio288")]
53 #[cfg(feature="decoder_cook")]
55 #[cfg(feature="decoder_ralf")]
58 const RM_CODECS: &[DecoderInfo] = &[
59 #[cfg(feature="decoder_realvideo1")]
60 DecoderInfo { name: "realvideo1", get_decoder: rv10::get_decoder },
61 #[cfg(feature="decoder_realvideo2")]
62 DecoderInfo { name: "realvideo2", get_decoder: rv20::get_decoder },
63 #[cfg(feature="decoder_realvideo3")]
64 DecoderInfo { name: "realvideo3", get_decoder: rv30::get_decoder },
65 #[cfg(feature="decoder_realvideo4")]
66 DecoderInfo { name: "realvideo4", get_decoder: rv40::get_decoder },
67 #[cfg(feature="decoder_realvideo6")]
68 DecoderInfo { name: "realvideo6", get_decoder: rv60::get_decoder },
70 #[cfg(feature="decoder_realaudio144")]
71 DecoderInfo { name: "ra14.4", get_decoder: ra144::get_decoder },
72 #[cfg(feature="decoder_realaudio288")]
73 DecoderInfo { name: "ra28.8", get_decoder: ra288::get_decoder },
74 #[cfg(feature="decoder_cook")]
75 DecoderInfo { name: "cook", get_decoder: cook::get_decoder },
76 #[cfg(feature="decoder_ralf")]
77 DecoderInfo { name: "ralf", get_decoder: ralf::get_decoder },
80 /// Registers all available codecs provided by this crate.
81 pub fn realmedia_register_all_decoders(rd: &mut RegisteredDecoders) {
82 for decoder in RM_CODECS.iter() {
83 rd.add_decoder(*decoder);