aboutsummaryrefslogtreecommitdiff
path: root/mtree-test/src/decode.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-05-24 12:10:11 +0200
committermetamuffin <metamuffin@disroot.org>2025-05-24 12:10:11 +0200
commitc259049ee9eff3a17a5a7d4e0ba49dd8d4a1b14e (patch)
tree14631817146af9162a883ba45be2b033401e465c /mtree-test/src/decode.rs
parent63bab9ce74a1d6d95154cf19d2a1c2d4977367b0 (diff)
downloadvideo-codec-experiments-c259049ee9eff3a17a5a7d4e0ba49dd8d4a1b14e.tar
video-codec-experiments-c259049ee9eff3a17a5a7d4e0ba49dd8d4a1b14e.tar.bz2
video-codec-experiments-c259049ee9eff3a17a5a7d4e0ba49dd8d4a1b14e.tar.zst
fix mtree, switch to nv12 pixfmtHEADmaster
Diffstat (limited to 'mtree-test/src/decode.rs')
-rw-r--r--mtree-test/src/decode.rs20
1 files changed, 9 insertions, 11 deletions
diff --git a/mtree-test/src/decode.rs b/mtree-test/src/decode.rs
index 9c29717..97557da 100644
--- a/mtree-test/src/decode.rs
+++ b/mtree-test/src/decode.rs
@@ -1,10 +1,10 @@
use crate::{BLOCK_SIZE, Frame, LastFrames, frame_to_frame_rect_copy};
use framework::BitstreamFilter;
-use glam::{I16Vec2, i16vec2};
+use glam::{IVec2, ivec2};
use std::collections::VecDeque;
pub struct Dec {
- res: I16Vec2,
+ res: IVec2,
last: LastFrames,
}
impl BitstreamFilter for Dec {
@@ -13,7 +13,7 @@ impl BitstreamFilter for Dec {
fn new(width: u32, height: u32) -> Self {
Self {
- res: i16vec2(width as i16, height as i16),
+ res: ivec2(width as i32, height as i32),
last: LastFrames {
frame_offset: 0,
frames: VecDeque::new(),
@@ -26,12 +26,11 @@ impl BitstreamFilter for Dec {
for bx in 0..self.res.x / BLOCK_SIZE {
for by in 0..self.res.y / BLOCK_SIZE {
- let boff = i16vec2(bx * BLOCK_SIZE, by * BLOCK_SIZE);
- let brect = boff..boff + I16Vec2::splat(BLOCK_SIZE);
+ let boff = ivec2(bx * BLOCK_SIZE, by * BLOCK_SIZE);
let kind = a[0];
a = &a[1..];
if kind == 0 {
- let size = frame.import_rect(self.res, brect, &a);
+ let size = frame.import_rect(boff, IVec2::splat(BLOCK_SIZE), &a);
a = &a[size..];
} else {
let rframeindex =
@@ -44,12 +43,11 @@ impl BitstreamFilter for Dec {
let rframe = &self.last.frames[(rframeindex - self.last.frame_offset) as usize];
frame_to_frame_rect_copy(
- self.res,
- &mut frame,
rframe,
- I16Vec2::splat(BLOCK_SIZE),
+ &mut frame,
+ IVec2::splat(BLOCK_SIZE),
+ ivec2(offx as i32, offy as i32),
boff,
- i16vec2(offx, offy),
);
}
}
@@ -57,6 +55,6 @@ impl BitstreamFilter for Dec {
self.last.frames.push_back(frame.clone());
- frame.0
+ frame.data
}
}