aboutsummaryrefslogtreecommitdiff
path: root/evc/src/header.rs
diff options
context:
space:
mode:
Diffstat (limited to 'evc/src/header.rs')
-rw-r--r--evc/src/header.rs21
1 files changed, 20 insertions, 1 deletions
diff --git a/evc/src/header.rs b/evc/src/header.rs
index 2b2725c..e5f008d 100644
--- a/evc/src/header.rs
+++ b/evc/src/header.rs
@@ -1,4 +1,23 @@
+use crate::ser::{Ser, Sink, Source};
+#[derive(Debug, Clone)]
pub struct Header {
-
+ pub resolution: (usize, usize),
+ pub frame_count: usize,
+}
+
+impl Ser for Header {
+ fn write(&self, sink: &mut impl std::io::Write) -> std::io::Result<()> {
+ sink.put([0x5eu8, 0xb1u8, 0xc3u8, 0x08u8])?;
+ sink.put((self.resolution, self.frame_count))?;
+ Ok(())
+ }
+
+ fn read(source: &mut impl std::io::Read) -> std::io::Result<Self> {
+ source.get::<[u8; 4]>()?;
+ Ok(Self {
+ resolution: source.get()?,
+ frame_count: source.get()?,
+ })
+ }
}