aboutsummaryrefslogtreecommitdiff
path: root/lvc/src/lib.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-03-07 08:00:00 +0100
committermetamuffin <metamuffin@disroot.org>2023-03-07 08:00:00 +0100
commit2167abcf72d978b4ac2f08fa7cbbddaada01f165 (patch)
tree3f384b868333271ba8e47ed583bae0a6af62b3fb /lvc/src/lib.rs
parent200f8064e1b1b96acc7d4a6f0f8321b2da5c2830 (diff)
downloadvideo-codec-experiments-2167abcf72d978b4ac2f08fa7cbbddaada01f165.tar
video-codec-experiments-2167abcf72d978b4ac2f08fa7cbbddaada01f165.tar.bz2
video-codec-experiments-2167abcf72d978b4ac2f08fa7cbbddaada01f165.tar.zst
a
Diffstat (limited to 'lvc/src/lib.rs')
-rw-r--r--lvc/src/lib.rs44
1 files changed, 44 insertions, 0 deletions
diff --git a/lvc/src/lib.rs b/lvc/src/lib.rs
new file mode 100644
index 0000000..ad284df
--- /dev/null
+++ b/lvc/src/lib.rs
@@ -0,0 +1,44 @@
+#![feature(portable_simd)]
+
+pub mod diff;
+pub mod encode;
+pub mod impls;
+
+pub type PixelValue = u8;
+
+#[repr(C, align(2))]
+#[derive(Debug, Clone, Copy, Default)]
+pub struct Pixel {
+ pub r: PixelValue,
+ pub g: PixelValue,
+ pub b: PixelValue,
+}
+
+#[derive(Debug, Clone, Copy, Default)]
+pub struct P2 {
+ pub x: i32,
+ pub y: i32,
+}
+
+pub struct Frame {
+ pub size: P2,
+ pub pixels: Vec<Pixel>,
+}
+
+pub struct View {
+ pub a: P2,
+ pub b: P2,
+}
+
+#[derive(Debug, Clone)]
+pub enum Block {
+ Lit(Vec<Pixel>),
+ Split([Box<Block>; 2]),
+ Ref(Ref),
+}
+
+#[derive(Debug, Clone, Default)]
+pub struct Ref {
+ pub pos_off: P2,
+ pub color_off: Pixel,
+}