print more info for streams
authorKostya Shishkov <kostya.shishkov@gmail.com>
Sun, 14 May 2017 16:00:54 +0000 (18:00 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Sun, 14 May 2017 16:00:54 +0000 (18:00 +0200)
src/demuxers/mod.rs
src/frame.rs

index 14aac9380761bff34c4ff1fdb6161fca95f3b373..fac5c8251d43bd15a51ee152263130e957abb066 100644 (file)
@@ -13,6 +13,7 @@ pub enum StreamType {
     Audio,
     Subtitles,
     Data,
+    None,
 }
 
 impl fmt::Display for StreamType {
@@ -22,6 +23,7 @@ impl fmt::Display for StreamType {
             StreamType::Audio => write!(f, "Audio"),
             StreamType::Subtitles => write!(f, "Subtitles"),
             StreamType::Data => write!(f, "Data"),
+            StreamType::None => write!(f, "-"),
         }
     }
 }
@@ -48,7 +50,7 @@ impl NAStream {
 
 impl fmt::Display for NAStream {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        write!(f, "({}#{})", self.media_type, self.id)
+        write!(f, "({}#{} - {})", self.media_type, self.id, self.info.get_properties())
     }
 }
 
@@ -117,7 +119,6 @@ impl<'a> NAPacketReader for ByteReader<'a> {
         buf.resize(size, 0);
         let res = self.read_buf(buf.as_mut_slice());
         if let Err(_) = res { return Err(DemuxerError::IOError); }
-        if res.unwrap() < buf.len() { return Err(DemuxerError::IOError); }
         let pkt = NAPacket::new(str, pts, dts, dur, kf, buf);
         Ok(pkt)
     }
@@ -126,7 +127,6 @@ impl<'a> NAPacketReader for ByteReader<'a> {
         let mut buf = Rc::make_mut(&mut refbuf);
         let res = self.read_buf(buf.as_mut_slice());
         if let Err(_) = res { return Err(DemuxerError::IOError); }
-        if res.unwrap() < buf.len() { return Err(DemuxerError::IOError); }
         Ok(())
     }
 }
index 77a5c1730768d3e76dfeede9409779199b46b6bd..962198e84df7afba64412a1a179d2bf9c64dc326 100644 (file)
@@ -1,4 +1,5 @@
 use std::collections::HashMap;
+use std::fmt;
 use std::rc::Rc;
 use formats::*;
 
@@ -17,6 +18,12 @@ impl NAAudioInfo {
     }
 }
 
+impl fmt::Display for NAAudioInfo {
+    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+        write!(f, "{} Hz, {} ch", self.sample_rate, self.channels)
+    }
+}
+
 #[allow(dead_code)]
 #[derive(Clone,Copy)]
 pub struct NAVideoInfo {
@@ -32,6 +39,12 @@ impl NAVideoInfo {
     }
 }
 
+impl fmt::Display for NAVideoInfo {
+    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+        write!(f, "{}x{}", self.width, self.height)
+    }
+}
+
 #[derive(Clone,Copy)]
 pub enum NACodecTypeInfo {
     None,
@@ -39,6 +52,18 @@ pub enum NACodecTypeInfo {
     Video(NAVideoInfo),
 }
 
+impl fmt::Display for NACodecTypeInfo {
+    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+        let ret = match *self {
+            NACodecTypeInfo::None       => format!(""),
+            NACodecTypeInfo::Audio(fmt) => format!("{}", fmt),
+            NACodecTypeInfo::Video(fmt) => format!("{}", fmt),
+        };
+        write!(f, "{}", ret)
+    }
+}
+
+
 #[allow(dead_code)]
 pub struct NABuffer<'a> {
     id:   u64,