structure decoders a bit too
[nihav.git] / src / codecs / mod.rs
index 782d4513a0d2dfe42b7cebeb0407373ca153e44c..ff75af9fbd4a0c9532bc3d7f49e6b1b4b9d6573e 100644 (file)
@@ -42,3 +42,22 @@ pub trait NADecoder {
     fn decode(&mut self, pkt: &NAPacket) -> DecoderResult<Rc<NAFrame>>;
 }
 
+#[derive(Clone,Copy)]
+pub struct DemuxerInfo {
+    name: &'static str,
+    get_decoder: fn () -> Box<NADecoder>,
+}
+
+const DECODERS: &[DemuxerInfo] = &[
+#[cfg(feature="decoder_indeo2")]
+    DemuxerInfo { name: "indeo2", get_decoder: indeo2::get_decoder },
+];
+
+pub fn find_decoder(name: &str) -> Option<fn () -> Box<NADecoder>> {
+    for &dec in DECODERS {
+        if dec.name == name {
+            return Some(dec.get_decoder);
+        }
+    }
+    None
+}