diff options
author | metamuffin <metamuffin@disroot.org> | 2023-03-07 08:00:00 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-03-07 08:00:00 +0100 |
commit | 2167abcf72d978b4ac2f08fa7cbbddaada01f165 (patch) | |
tree | 3f384b868333271ba8e47ed583bae0a6af62b3fb /lvc/src/encode.rs | |
parent | 200f8064e1b1b96acc7d4a6f0f8321b2da5c2830 (diff) | |
download | video-codec-experiments-2167abcf72d978b4ac2f08fa7cbbddaada01f165.tar video-codec-experiments-2167abcf72d978b4ac2f08fa7cbbddaada01f165.tar.bz2 video-codec-experiments-2167abcf72d978b4ac2f08fa7cbbddaada01f165.tar.zst |
a
Diffstat (limited to 'lvc/src/encode.rs')
-rw-r--r-- | lvc/src/encode.rs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/lvc/src/encode.rs b/lvc/src/encode.rs new file mode 100644 index 0000000..7737626 --- /dev/null +++ b/lvc/src/encode.rs @@ -0,0 +1,49 @@ +use crate::diff::diff; +use crate::{Frame, Ref, View, P2}; + +pub fn encode(last_frame: &Frame, frame: &Frame, view: View) { + let rp = Ref::default(); + + let d = diff([last_frame, frame], view, rp); +} + +pub fn split(view: View) -> [View; 2] { + let s = view.size(); + if s.x > s.y { + let mid_x = (view.a.x + view.b.x) / 2; + [ + View { + a: view.a, + b: P2 { + x: mid_x, + y: view.b.y, + }, + }, + View { + a: P2 { + x: mid_x, + y: view.a.y, + }, + b: view.b, + }, + ] + } else { + let mid_y = (view.a.y + view.b.y) / 2; + [ + View { + a: view.a, + b: P2 { + x: view.b.x, + y: mid_y, + }, + }, + View { + a: P2 { + x: view.a.x, + y: mid_y, + }, + b: view.b, + }, + ] + } +} |