X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-realmedia%2Fsrc%2Fcodecs%2Fmod.rs;fp=nihav-realmedia%2Fsrc%2Fcodecs%2Fmod.rs;h=1fe37e03e8b353ea8ac41fa6c2d788dc259a050f;hb=5641dccfbf2a70d589cf094a0d4ed5a10f919f00;hp=0000000000000000000000000000000000000000;hpb=b74ff9fac35d41737d71d97227fad233aa4a4b49;p=nihav.git diff --git a/nihav-realmedia/src/codecs/mod.rs b/nihav-realmedia/src/codecs/mod.rs new file mode 100644 index 0000000..1fe37e0 --- /dev/null +++ b/nihav-realmedia/src/codecs/mod.rs @@ -0,0 +1,68 @@ +use nihav_core::codecs::*; + +macro_rules! validate { + ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DecoderError::InvalidData); } }; +} + +#[cfg(any(feature="decoder_realvideo3", feature="decoder_realvideo4"))] +mod rv3040; +#[cfg(any(feature="decoder_realvideo3", feature="decoder_realvideo4"))] +mod rv34codes; +#[cfg(any(feature="decoder_realvideo3", feature="decoder_realvideo4"))] +mod rv34dsp; + +#[cfg(feature="decoder_realvideo1")] +pub mod rv10; +#[cfg(feature="decoder_realvideo2")] +pub mod rv20; +#[cfg(feature="decoder_realvideo3")] +pub mod rv30; +#[cfg(feature="decoder_realvideo3")] +pub mod rv30dsp; +#[cfg(feature="decoder_realvideo4")] +pub mod rv40; +#[cfg(feature="decoder_realvideo4")] +pub mod rv40dsp; +#[cfg(feature="decoder_realvideo6")] +pub mod rv60; +#[cfg(feature="decoder_realvideo6")] +pub mod rv60codes; +#[cfg(feature="decoder_realvideo6")] +pub mod rv60dsp; + +#[cfg(feature="decoder_realaudio144")] +pub mod ra144; +#[cfg(feature="decoder_realaudio288")] +pub mod ra288; +#[cfg(feature="decoder_cook")] +pub mod cook; +#[cfg(feature="decoder_ralf")] +pub mod ralf; + +const RM_CODECS: &[DecoderInfo] = &[ +#[cfg(feature="decoder_realvideo1")] + DecoderInfo { name: "realvideo1", get_decoder: rv10::get_decoder }, +#[cfg(feature="decoder_realvideo2")] + DecoderInfo { name: "realvideo2", get_decoder: rv20::get_decoder }, +#[cfg(feature="decoder_realvideo3")] + DecoderInfo { name: "realvideo3", get_decoder: rv30::get_decoder }, +#[cfg(feature="decoder_realvideo4")] + DecoderInfo { name: "realvideo4", get_decoder: rv40::get_decoder }, +#[cfg(feature="decoder_realvideo6")] + DecoderInfo { name: "realvideo6", get_decoder: rv60::get_decoder }, + +#[cfg(feature="decoder_realaudio144")] + DecoderInfo { name: "ra14.4", get_decoder: ra144::get_decoder }, +#[cfg(feature="decoder_realaudio288")] + DecoderInfo { name: "ra28.8", get_decoder: ra288::get_decoder }, +#[cfg(feature="decoder_cook")] + DecoderInfo { name: "cook", get_decoder: cook::get_decoder }, +#[cfg(feature="decoder_ralf")] + DecoderInfo { name: "ralf", get_decoder: ralf::get_decoder }, +]; + +pub fn realmedia_register_all_codecs(rd: &mut RegisteredDecoders) { + for decoder in RM_CODECS.into_iter() { + rd.add_decoder(decoder.clone()); + } +}