aboutsummaryrefslogtreecommitdiff
path: root/evc/src/block.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-12-06 08:50:54 +0100
committermetamuffin <metamuffin@disroot.org>2022-12-06 08:50:54 +0100
commitd5179b3cc79bda5aa346f111be493f3f9b223d30 (patch)
treebf94b599f6e38abb62f239881900737a9e026095 /evc/src/block.rs
parentcc1f02a71bd3ad5235ac92dec2d9c516c74f8b1c (diff)
downloadvideo-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.rs16
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 {