X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fframe.rs;h=7455b72a393bd298819b054a680a2d0187f60fc3;hb=b58d7656167205d9e8f48739f58637689d369314;hp=77a5c1730768d3e76dfeede9409779199b46b6bd;hpb=fba6f8e46fbe906f5c7b372becc14c4400533eeb;p=nihav.git diff --git a/src/frame.rs b/src/frame.rs index 77a5c17..7455b72 100644 --- a/src/frame.rs +++ b/src/frame.rs @@ -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, @@ -48,17 +73,18 @@ pub struct NABuffer<'a> { #[allow(dead_code)] #[derive(Clone)] pub struct NACodecInfo { + name: &'static str, properties: NACodecTypeInfo, extradata: Option>>, } impl NACodecInfo { - pub fn new(p: NACodecTypeInfo, edata: Option>) -> Self { + pub fn new(name: &'static str, p: NACodecTypeInfo, edata: Option>) -> Self { let extradata = match edata { None => None, Some(vec) => Some(Rc::new(vec)), }; - NACodecInfo { properties: p, extradata: extradata } + NACodecInfo { name: name, properties: p, extradata: extradata } } pub fn get_properties(&self) -> NACodecTypeInfo { self.properties } pub fn get_extradata(&self) -> Option>> {