diff options
author | metamuffin <metamuffin@disroot.org> | 2022-12-06 08:16:09 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-12-06 08:16:09 +0100 |
commit | 5002d0df81f74418665e4e99179ba56d8e78cbe1 (patch) | |
tree | 2ece906f886934dd0fc335a4aa31bc5363fa92e8 /evc/src/bin/encode.rs | |
parent | bafb1df8b7764a0a62f1c656eb52fbe7bfd8b8ac (diff) | |
download | video-codec-experiments-5002d0df81f74418665e4e99179ba56d8e78cbe1.tar video-codec-experiments-5002d0df81f74418665e4e99179ba56d8e78cbe1.tar.bz2 video-codec-experiments-5002d0df81f74418665e4e99179ba56d8e78cbe1.tar.zst |
more codde
Diffstat (limited to 'evc/src/bin/encode.rs')
-rw-r--r-- | evc/src/bin/encode.rs | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/evc/src/bin/encode.rs b/evc/src/bin/encode.rs index c426aba..1934e26 100644 --- a/evc/src/bin/encode.rs +++ b/evc/src/bin/encode.rs @@ -1,3 +1,4 @@ +use anyhow::Context; use clap::Parser; use evc::{ block::{Block, BlockInner}, @@ -6,7 +7,7 @@ use evc::{ ser::Sink, view::View, }; -use std::io::{self, BufReader, BufWriter}; +use std::io::{BufReader, BufWriter}; #[derive(Parser)] #[clap(about, version)] @@ -17,28 +18,32 @@ pub struct EncodeArgs { height: usize, } -fn main() -> io::Result<()> { +fn main() -> anyhow::Result<()> { let args = EncodeArgs::parse(); let mut input = BufReader::new(std::io::stdin()); let mut output = BufWriter::new(std::io::stdout()); let size = (args.width, args.height); - output.put(Header { - resolution: size, - frame_count: 0, - })?; + output + .put(Header { + resolution: size, + frame_count: 0, + }) + .context("writing header")?; let mut prev_frame = Frame::new(size); for i in 0.. { - println!("frame {i}"); - let frame = Frame::read(&mut input, size)?; + eprintln!("encode frame {i}"); + let frame = Frame::read(&mut input, size) + .context("reading raw frame") + .unwrap(); let v1 = frame.view((0, 0), size); let v2 = prev_frame.view((0, 0), size); let root = encode_block(v1, v2); - root.write(&mut output)?; + root.write(&mut output).context("writing encoded frame")?; prev_frame = frame; } @@ -48,7 +53,7 @@ fn main() -> io::Result<()> { fn encode_block(view: View<&Frame>, prev: View<&Frame>) -> Block { let diff = View::diff(&view, &prev) / view.area() as f64; - eprintln!("{:?} {diff}", view.size); + // eprintln!("{:?} {diff}", view.size); let inner = if diff < 0.5 { BlockInner::Reference { translation: (0, 0), |