]> git.nihav.org Git - nihav.git/blobdiff - src/demuxers/mod.rs
RealAudio demuxer
[nihav.git] / src / demuxers / mod.rs
index dad92469901247191730a542c1cf734284692cd9..42399bfac5fed16cbcfcf2269d6b591f63097689 100644 (file)
@@ -11,6 +11,7 @@ pub enum DemuxerError {
     IOError,
     NotImplemented,
     MemoryError,
+    TryAgain,
 }
 
 type DemuxerResult<T> = Result<T, DemuxerError>;
@@ -38,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 mut buf = Rc::make_mut(&mut refbuf);
+        let buf = Rc::make_mut(&mut refbuf);
         let res = self.read_buf(buf.as_mut_slice());
         if let Err(_) = res { return Err(DemuxerError::IOError); }
         Ok(())
@@ -200,7 +201,7 @@ pub trait DemuxerCreator {
 }
 
 macro_rules! validate {
-    ($a:expr) => { if !$a { return Err(DemuxerError::InvalidData); } };
+    ($a:expr) => { if !$a { println!("check failed at {}:{}", file!(), line!()); return Err(DemuxerError::InvalidData); } };
 }
 
 #[cfg(feature="demuxer_gdv")]
@@ -218,8 +219,8 @@ const DEMUXERS: &[&'static DemuxerCreator] = &[
     &gdv::GDVDemuxerCreator {},
 #[cfg(feature="demuxer_real")]
     &realmedia::RealMediaDemuxerCreator {},
-//#[cfg(feature="demuxer_real")]
-//    &realmedia::RealAudioDemuxerCreator {},
+#[cfg(feature="demuxer_real")]
+    &realmedia::RealAudioDemuxerCreator {},
 //#[cfg(feature="demuxer_real")]
 //    &realmedia::RealIVRDemuxerCreator {},
 ];
@@ -236,6 +237,6 @@ pub fn find_demuxer(name: &str) -> Option<&DemuxerCreator> {
 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();
-    dmx.open(&mut str)?;    
+    dmx.open(&mut str)?;
     Ok(Demuxer::new(dmx, str))
 }