From fcc25d82096224ba0ba4c8b800038234fbeb82a9 Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Wed, 22 Apr 2020 17:56:00 +0200 Subject: [PATCH] core: introduce a function to print NABufferType metadata --- nihav-core/src/frame.rs | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/nihav-core/src/frame.rs b/nihav-core/src/frame.rs index 67f1727..29db180 100644 --- a/nihav-core/src/frame.rs +++ b/nihav-core/src/frame.rs @@ -182,6 +182,21 @@ impl NAVideoBuffer { pub fn into_ref(self) -> NABufferRef { NABufferRef::new(self) } + + fn print_contents(&self, datatype: &str) { + println!("{} video buffer size {}", datatype, self.data.len()); + println!(" format {}", self.info); + print!(" offsets:"); + for off in self.offs.iter() { + print!(" {}", *off); + } + println!(); + print!(" strides:"); + for stride in self.strides.iter() { + print!(" {}", *stride); + } + println!(); + } } /// A specialised type for reference-counted `NAVideoBuffer`. @@ -230,6 +245,17 @@ impl NAAudioBuffer { } /// Return the length of frame in samples. pub fn get_length(&self) -> usize { self.len } + + fn print_contents(&self, datatype: &str) { + println!("Audio buffer with {} data, stride {}, step {}", datatype, self.stride, self.step); + println!(" format {}", self.info); + println!(" channel map {}", self.chmap); + print!(" offsets:"); + for off in self.offs.iter() { + print!(" {}", *off); + } + println!(); + } } impl NAAudioBuffer { @@ -399,6 +425,22 @@ impl NABufferType { _ => None, } } + /// Prints internal buffer layout. + pub fn print_buffer_metadata(&self) { + match *self { + NABufferType::Video(ref buf) => buf.print_contents("8-bit"), + NABufferType::Video16(ref buf) => buf.print_contents("16-bit"), + NABufferType::Video32(ref buf) => buf.print_contents("32-bit"), + NABufferType::VideoPacked(ref buf) => buf.print_contents("packed"), + NABufferType::AudioU8(ref buf) => buf.print_contents("8-bit unsigned integer"), + NABufferType::AudioI16(ref buf) => buf.print_contents("16-bit integer"), + NABufferType::AudioI32(ref buf) => buf.print_contents("32-bit integer"), + NABufferType::AudioF32(ref buf) => buf.print_contents("32-bit float"), + NABufferType::AudioPacked(ref buf) => buf.print_contents("packed"), + NABufferType::Data(ref buf) => { println!("Data buffer, len = {}", buf.len()); }, + NABufferType::None => { println!("No buffer"); }, + }; + } } const NA_SIMPLE_VFRAME_COMPONENTS: usize = 4; -- 2.30.2