From fd6bfc889ecf7015543cc59cc5b163cf30411cfa Mon Sep 17 00:00:00 2001
From: Luca Barbato <lu_zero@gentoo.org>
Date: Wed, 12 Sep 2018 05:07:31 +0200
Subject: [PATCH] Fix and improve the stats output

Store the frame_type in the packet and implement Display for it.
---
 src/api.rs        | 11 +++++++++--
 src/bin/common.rs |  3 +--
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/api.rs b/src/api.rs
index 6579eb5c..d8e2a716 100644
--- a/src/api.rs
+++ b/src/api.rs
@@ -69,7 +69,14 @@ pub enum EncoderStatus {
 pub struct Packet {
   pub data: Vec<u8>,
   pub rec: Frame,
-  pub number: usize
+  pub number: usize,
+  pub frame_type: FrameType
+}
+
+impl fmt::Display for Packet {
+  fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+    write!(f, "Frame {} - {} - {} bytes", self.number, self.frame_type, self.data.len())
+  }
 }
 
 impl Context {
@@ -139,7 +146,7 @@ impl Context {
 
       update_rec_buffer(&mut self.fi, fs);
 
-      Ok(Packet { data, rec, number })
+      Ok(Packet { data, rec, number, frame_type: self.fi.frame_type })
     } else {
       unimplemented!("Flushing not implemented")
     }
diff --git a/src/bin/common.rs b/src/bin/common.rs
index d43038ab..fa3739bd 100644
--- a/src/bin/common.rs
+++ b/src/bin/common.rs
@@ -126,10 +126,9 @@ pub fn process_frame(ctx: &mut Context,
                 _ => panic! ("unknown input bit depth!"),
             }
 
-            eprintln!("{}", ctx);
             let _ = ctx.send_frame(input);
-
             let pkt = ctx.receive_packet().unwrap();
+            eprintln!("{}", pkt);
             write_ivf_frame(output_file, pkt.number as u64, pkt.data.as_ref());
             if let Some(mut y4m_enc) = y4m_enc {
                 let pitch_y = if bit_depth > 8 {
-- 
GitLab