Skip to main content

VideoFrameProcessor

Struct VideoFrameProcessor 

Source
pub struct VideoFrameProcessor { /* private fields */ }
Expand description

GPU-accelerated video frame processor.

Provides CPU-fallback implementations of common video frame operations that would execute on the GPU in production environments.

Implementations§

Source§

impl VideoFrameProcessor

Source

pub fn new(config: FrameProcessConfig) -> Self

Create a new VideoFrameProcessor with the given configuration.

Source

pub fn compute_histogram(&self, frame: &[u8]) -> Result<Vec<u32>>

Simulate GPU-accelerated frame histogram computation.

For each channel, counts pixel value occurrences (0-255). Returns a Vec of 256 * channels counts (interleaved per channel).

§Errors

Returns an error if the frame buffer size does not match the configured dimensions.

Source

pub fn adjust_brightness(&self, frame: &[u8], delta: i16) -> Result<Vec<u8>>

Simulate GPU-accelerated frame brightness adjustment.

Adds delta to each pixel value, clamping the result to [0, 255].

§Errors

Returns an error if the frame buffer size does not match the configured dimensions.

Source

pub fn adjust_contrast(&self, frame: &[u8], factor: f32) -> Result<Vec<u8>>

Simulate GPU-accelerated contrast adjustment.

For each pixel: clamp((pixel - 128) * factor + 128, 0, 255).

§Errors

Returns an error if the frame buffer size does not match the configured dimensions.

Source

pub fn adjust_saturation(&self, frame: &[u8], factor: f32) -> Result<Vec<u8>>

Simulate GPU-accelerated saturation adjustment for RGB frames (3 channels).

Converts each RGB pixel to HSL, multiplies the S component by factor, then converts back to RGB. For non-RGB frames this is a no-op copy.

§Errors

Returns an error if the frame buffer size does not match the configured dimensions.

Source

pub fn frame_difference( &self, frame_a: &[u8], frame_b: &[u8], ) -> Result<Vec<u8>>

Compute frame difference (absolute difference per pixel).

§Errors

Returns an error if either frame buffer size does not match the configured dimensions.

Source

pub fn mean_absolute_error(&self, frame_a: &[u8], frame_b: &[u8]) -> Result<f64>

Compute mean absolute error between two frames.

§Errors

Returns an error if either frame buffer size does not match the configured dimensions.

Source

pub fn config(&self) -> &FrameProcessConfig

Get the configuration.

Source

pub fn process_frame( &self, frame: &[u8], brightness_delta: i16, ) -> Result<FrameProcessResult>

Process a frame and return a FrameProcessResult with timing information.

This is a convenience wrapper that applies brightness adjustment and records the simulated GPU processing time.

§Errors

Returns an error if the frame buffer size does not match the configured dimensions.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more