aboutsummaryrefslogtreecommitdiff
path: root/evc/src/refsampler.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-12-07 17:55:27 +0100
committermetamuffin <metamuffin@disroot.org>2022-12-07 17:55:27 +0100
commit8ca219c6b0d5448fd4529713ccd093e89de4e252 (patch)
tree8fe02fd35ae337766d6f8e7533da170830162d14 /evc/src/refsampler.rs
parenta99674b911cb9b2fa398ccf61830d5933ccaf931 (diff)
downloadvideo-codec-experiments-8ca219c6b0d5448fd4529713ccd093e89de4e252.tar
video-codec-experiments-8ca219c6b0d5448fd4529713ccd093e89de4e252.tar.bz2
video-codec-experiments-8ca219c6b0d5448fd4529713ccd093e89de4e252.tar.zst
refactor
Diffstat (limited to 'evc/src/refsampler.rs')
-rw-r--r--evc/src/refsampler.rs17
1 files changed, 12 insertions, 5 deletions
diff --git a/evc/src/refsampler.rs b/evc/src/refsampler.rs
index 95e123b..db0ab6f 100644
--- a/evc/src/refsampler.rs
+++ b/evc/src/refsampler.rs
@@ -1,14 +1,21 @@
-use crate::{helpers::{matrix::Mat2, vector::Vec2}, frame::Frame};
+use crate::{
+ frame::Frame,
+ helpers::{matrix::Mat2, pixel::Pixel, vector::Vec2},
+};
+
+pub struct Sampler<'a> {
+ frame: &'a Frame,
-pub struct Sampler {
translation: Vec2<f32>,
transform: Mat2<f32>,
value_scale: f32,
}
-impl Sampler {
- pub fn sample(&self, frame: &Frame, p: Vec2<f32>) {
-
+impl Sampler<'_> {
+ pub fn sample(&self, p: Vec2<f32>) -> Pixel {
+ self.frame
+ .sample(self.translation + self.transform.transform(p))
+ .scale(self.value_scale)
}
}