diff options
author | metamuffin <metamuffin@disroot.org> | 2022-12-06 08:50:54 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-12-06 08:50:54 +0100 |
commit | d5179b3cc79bda5aa346f111be493f3f9b223d30 (patch) | |
tree | bf94b599f6e38abb62f239881900737a9e026095 /evc/src/block.rs | |
parent | cc1f02a71bd3ad5235ac92dec2d9c516c74f8b1c (diff) | |
download | video-codec-experiments-d5179b3cc79bda5aa346f111be493f3f9b223d30.tar video-codec-experiments-d5179b3cc79bda5aa346f111be493f3f9b223d30.tar.bz2 video-codec-experiments-d5179b3cc79bda5aa346f111be493f3f9b223d30.tar.zst |
works
Diffstat (limited to 'evc/src/block.rs')
-rw-r--r-- | evc/src/block.rs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/evc/src/block.rs b/evc/src/block.rs index 98e3b54..a3d040d 100644 --- a/evc/src/block.rs +++ b/evc/src/block.rs @@ -30,7 +30,7 @@ impl Block { a.write(sink)?; b.write(sink)?; } - BlockInner::Reference { translation } => { + BlockInner::Reference { translation: _ } => { sink.put(2u8)?; // sink.put(*translation)?; } @@ -42,14 +42,20 @@ impl Block { let inner = match source.get::<u8>()? { 0 => BlockInner::Literal(source.get()?), 1 => BlockInner::Split(Box::new({ - let subsize_left = if size.0 > size.1 { + let vert = size.0 > size.1; + let asize = if vert { (size.0 / 2, size.1) } else { (size.0, size.1 / 2) }; - let subsize_right = (size.0 - subsize_left.0, size.1 - subsize_left.1); - let a = Block::read(source, subsize_left)?; - let b = Block::read(source, subsize_right)?; + let bsize = if vert { + (size.0 - size.0 / 2, size.1) + } else { + (size.0, size.1 - size.1 / 2) + }; + + let a = Block::read(source, asize)?; + let b = Block::read(source, bsize)?; [a, b] })), 2 => BlockInner::Reference { |