+
+pub struct RegisteredDemuxers {
+ dmxs: Vec<&'static DemuxerCreator>,
+}
+
+impl RegisteredDemuxers {
+ pub fn new() -> Self {
+ Self { dmxs: Vec::new() }
+ }
+ pub fn add_demuxer(&mut self, dmx: &'static DemuxerCreator) {
+ self.dmxs.push(dmx);
+ }
+ pub fn find_demuxer(&self, name: &str) -> Option<&DemuxerCreator> {
+ for &dmx in self.dmxs.iter() {
+ if dmx.get_name() == name {
+ return Some(dmx);
+ }
+ }
+ None
+ }
+}
+
+pub fn core_register_all_demuxers(rd: &mut RegisteredDemuxers) {
+ for demuxer in DEMUXERS.into_iter() {
+ rd.add_demuxer(*demuxer);
+ }
+}