X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-rad%2Fsrc%2Fcodecs%2Fmod.rs;fp=nihav-rad%2Fsrc%2Fcodecs%2Fmod.rs;h=4ce556391b12e84b67e00df80cdee7da112a0f61;hb=606c448ef167017c3171b49f9eb2af82c15079ce;hp=0000000000000000000000000000000000000000;hpb=9067c1f81447fe27bfa7e292e2dd21b29f5959cd;p=nihav.git diff --git a/nihav-rad/src/codecs/mod.rs b/nihav-rad/src/codecs/mod.rs new file mode 100644 index 0000000..4ce5563 --- /dev/null +++ b/nihav-rad/src/codecs/mod.rs @@ -0,0 +1,35 @@ +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_smkaud", feature="decoder_smkvid"))] +mod smacker; +#[cfg(feature="decoder_binkaud")] +mod binkaud; +#[cfg(feature="decoder_binkvid")] +mod binkvid; +#[cfg(feature="decoder_bink2")] +mod bink2; + +const RAD_CODECS: &[DecoderInfo] = &[ +#[cfg(feature="decoder_smkaud")] + DecoderInfo { name: "smacker-audio", get_decoder: smacker::get_decoder_audio }, +#[cfg(feature="decoder_smkvid")] + DecoderInfo { name: "smacker-video", get_decoder: smacker::get_decoder_video }, +#[cfg(feature="decoder_binkaud")] + DecoderInfo { name: "bink-audio-dct", get_decoder: binkaud::get_decoder_dct }, +#[cfg(feature="decoder_binkaud")] + DecoderInfo { name: "bink-audio-rdft", get_decoder: binkaud::get_decoder_rdft }, +#[cfg(feature="decoder_binkvid")] + DecoderInfo { name: "bink-video", get_decoder: binkvid::get_decoder }, +#[cfg(feature="decoder_bink2")] + DecoderInfo { name: "bink2-video", get_decoder: bink2::get_decoder }, +]; + +pub fn rad_register_all_codecs(rd: &mut RegisteredDecoders) { + for decoder in RAD_CODECS.into_iter() { + rd.add_decoder(decoder.clone()); + } +}