From 6a3aaca8727d3f0292d62dbcd54e3bf87df74c0c Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 6 Dec 2022 15:52:08 +0100 Subject: split files --- evc/src/codec/decode.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 evc/src/codec/decode.rs (limited to 'evc/src/codec/decode.rs') diff --git a/evc/src/codec/decode.rs b/evc/src/codec/decode.rs new file mode 100644 index 0000000..9dc6a69 --- /dev/null +++ b/evc/src/codec/decode.rs @@ -0,0 +1,18 @@ +use crate::{ + block::{Block, BlockInner}, + frame::Frame, + view::View, +}; + +pub fn decode_block(block: &Block, mut target: View<&mut Frame>, prev: View<&Frame>) { + match &block.inner { + BlockInner::Literal(pixels) => target.set_pixels(pixels), + BlockInner::Split(box [a, b]) => { + let [at, bt] = target.split_mut_unsafe(); + let [ap, bp] = prev.split(); + decode_block(a, at, ap); + decode_block(b, bt, bp); + } + BlockInner::Reference { translation: _ } => target.copy_from(&prev), + } +} -- cgit v1.2.3-70-g09d2