switch to refcounted buffers
[nihav.git] / nihav-core / src / demuxers / mod.rs
index 56e670db986575f50bf2e0e52f85955e2833844b..48529d499b0e6a59d0bb3ac1f7d3e93698c1b740 100644 (file)
@@ -1,6 +1,6 @@
 use std::rc::Rc;
-use crate::frame::*;
-use crate::io::byteio::*;
+pub use crate::frame::*;
+pub use crate::io::byteio::*;
 
 #[derive(Debug,Clone,Copy,PartialEq)]
 #[allow(dead_code)]
@@ -39,7 +39,7 @@ impl<'a> NAPacketReader for ByteReader<'a> {
     }
     fn fill_packet(&mut self, pkt: &mut NAPacket) -> DemuxerResult<()> {
         let mut refbuf = pkt.get_buffer();
-        let buf = Rc::make_mut(&mut refbuf);
+        let buf = refbuf.as_mut().unwrap();
         let res = self.read_buf(buf.as_mut_slice());
         if let Err(_) = res { return Err(DemuxerError::IOError); }
         Ok(())
@@ -200,19 +200,6 @@ pub trait DemuxerCreator {
     fn get_name(&self) -> &'static str;
 }
 
-macro_rules! validate {
-    ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } };
-}
-
-#[cfg(feature="demuxer_avi")]
-mod avi;
-
-
-const DEMUXERS: &[&'static DemuxerCreator] = &[
-#[cfg(feature="demuxer_avi")]
-    &avi::AVIDemuxerCreator {},
-];
-
 pub fn create_demuxer<'a>(dmxcr: &DemuxerCreator, br: &'a mut ByteReader<'a>) -> DemuxerResult<Demuxer<'a>> {
     let mut dmx = dmxcr.new_demuxer(br);
     let mut str = StreamManager::new();
@@ -240,9 +227,3 @@ impl RegisteredDemuxers {
         None
     }
 }
-
-pub fn core_register_all_demuxers(rd: &mut RegisteredDemuxers) {
-    for demuxer in DEMUXERS.into_iter() {
-        rd.add_demuxer(*demuxer);
-    }
-}