X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=src%2Fcodecs%2Fmod.rs;h=ff75af9fbd4a0c9532bc3d7f49e6b1b4b9d6573e;hb=70259941696929b91c6b3cbf2aeb476b2b34dda7;hp=782d4513a0d2dfe42b7cebeb0407373ca153e44c;hpb=3f7c7cfd270b5b75917508aee6ca5877433a984d;p=nihav.git diff --git a/src/codecs/mod.rs b/src/codecs/mod.rs index 782d451..ff75af9 100644 --- a/src/codecs/mod.rs +++ b/src/codecs/mod.rs @@ -42,3 +42,22 @@ pub trait NADecoder { fn decode(&mut self, pkt: &NAPacket) -> DecoderResult>; } +#[derive(Clone,Copy)] +pub struct DemuxerInfo { + name: &'static str, + get_decoder: fn () -> Box, +} + +const DECODERS: &[DemuxerInfo] = &[ +#[cfg(feature="decoder_indeo2")] + DemuxerInfo { name: "indeo2", get_decoder: indeo2::get_decoder }, +]; + +pub fn find_decoder(name: &str) -> Option Box> { + for &dec in DECODERS { + if dec.name == name { + return Some(dec.get_decoder); + } + } + None +}