diff options
author | metamuffin <metamuffin@disroot.org> | 2022-12-07 21:23:42 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-12-07 21:23:42 +0100 |
commit | 2ac18802b58d671c10538e78d50a620baad9a188 (patch) | |
tree | 17f924039fd8f3dae2801902d4bdeaac8ea74624 /evc/src/bin/decode.rs | |
parent | 9d7986bbfd44b69a623fa29528b5d13000b91c77 (diff) | |
download | video-codec-experiments-2ac18802b58d671c10538e78d50a620baad9a188.tar video-codec-experiments-2ac18802b58d671c10538e78d50a620baad9a188.tar.bz2 video-codec-experiments-2ac18802b58d671c10538e78d50a620baad9a188.tar.zst |
advanced transform
Diffstat (limited to 'evc/src/bin/decode.rs')
-rw-r--r-- | evc/src/bin/decode.rs | 50 |
1 files changed, 2 insertions, 48 deletions
diff --git a/evc/src/bin/decode.rs b/evc/src/bin/decode.rs index 9be1a16..7b44ede 100644 --- a/evc/src/bin/decode.rs +++ b/evc/src/bin/decode.rs @@ -4,13 +4,9 @@ use clap::Parser; use evc::{ block::Block, codec::decode::decode_block, - format::{ - header::Header, - ser::{map_scalar8, Source}, - }, + debug::draw_debug, + format::{header::Header, ser::Source}, frame::Frame, - helpers::{matrix::Mat2, pixel::Pixel, vector::Vec2}, - view::View, }; use log::info; use std::io::{BufReader, BufWriter}; @@ -54,45 +50,3 @@ fn main() -> anyhow::Result<()> { drop(input); Ok(()) } - -fn draw_debug(block: &Block, mut target: View<&mut Frame>) { - match &block { - Block::Literal(_) => { - target.draw_box(Pixel::GREEN); - } - Block::Split(box [a, b]) => { - let [at, bt] = target.split_mut_unsafe(); - draw_debug(a, at); - draw_debug(b, bt); - } - Block::Reference { translation } => { - target.draw_box(Pixel::BLUE); - target.frame.draw_line( - target.center().into(), - (target.center() + *translation).into(), - Pixel::RED, - ) - } - Block::AdvancedReference(r) => { - let mat = Mat2 { - a: map_scalar8(r.transform.a), - b: map_scalar8(r.transform.b), - c: map_scalar8(r.transform.c), - d: map_scalar8(r.transform.d), - }; - let translation = Vec2 { - x: map_scalar8(r.translation.x), - y: map_scalar8(r.translation.y), - }; - let tl = mat.transform(target.offset.into()) + translation; - let tr = mat.transform((target.offset + target.size.x_only()).into()) + translation; - let bl = mat.transform((target.offset + target.size.y_only()).into()) + translation; - let br = mat.transform((target.offset + target.size).into()) + translation; - target.frame.draw_line(tl, tr, Pixel::MAGENTA); - target.frame.draw_line(tr, br, Pixel::MAGENTA); - target.frame.draw_line(br, bl, Pixel::MAGENTA); - target.frame.draw_line(bl, tl, Pixel::MAGENTA); - target.draw_box(Pixel::CYAN); - } - } -} |