diff options
Diffstat (limited to 'lvc/src/main.rs')
-rw-r--r-- | lvc/src/main.rs | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/lvc/src/main.rs b/lvc/src/main.rs index 48df911..7ecd4b8 100644 --- a/lvc/src/main.rs +++ b/lvc/src/main.rs @@ -6,7 +6,10 @@ use lvc::{ encode::{encode, EncodeConfig}, Block, Frame, Pixel, PixelValue, View, P2, }; -use std::io::{stdin, stdout, BufReader, BufWriter, Read, Write}; +use std::{ + io::{stdin, stdout, BufReader, BufWriter, Read, Write}, + time::Instant, +}; #[derive(Parser)] #[clap(about, version)] @@ -25,8 +28,10 @@ enum Action { // Compress video Encode { #[arg(short, long, default_value_t = 1024)] - block_size: usize, - #[arg(short, long, default_value_t = 10_000)] + max_block_size: usize, + #[arg(short, long, default_value_t = 10)] + iters: usize, + #[arg(short, long, default_value_t = 20_000)] threshold: u32, }, // Decompress video @@ -68,12 +73,14 @@ fn main() { } } Action::Encode { - block_size, + max_block_size, threshold, + iters, } => { let config = EncodeConfig { threshold, - max_block_size: block_size, + max_block_size, + iters, }; let mut last_frame = Frame::new(size); @@ -82,10 +89,12 @@ fn main() { let mut stdout = BufWriter::new(stdout()); for frame_number in 0.. { - eprintln!("encode frame {frame_number}"); let mut frame = read_frame(&mut stdin, size); + let t = Instant::now(); let b: Block = encode(&last_frame, &frame, View::all(size), &config); + eprintln!("frame {frame_number} took {:?}", t.elapsed()); + bincode::encode_into_std_write(&b, &mut stdout, standard()).unwrap(); decode(&last_frame, &mut frame, View::all(size), &b); |