Skip to main content

HardwareEncodeInput

Struct HardwareEncodeInput 

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

The coordinator’s half of a hardware session.

Implementations§

Source§

impl HardwareEncodeInput

Source

pub fn acquire_surface(&mut self) -> Result<EncoderSurface, EncodeError>

Takes one surface from the session’s pool.

The pool allocates on demand, so the number of backings it ever holds is the peak number outstanding; the caller bounds that.

§Errors

Returns an adapter failure when the pool cannot allocate.

Source

pub fn begin_frame( &mut self, surface: &EncoderSurface, ) -> Result<InputFrame, EncodeError>

Begins a frame bound for surface: waits until the planes it will be packed into are free. Call it before recording the render that packs the frame, render into Self::planes, and submit that render before Self::submit.

§Errors

Returns an error for a surface from another pool, or when the wait fails.

Source

pub fn planes(&self, frame: &InputFrame) -> (&Texture, &Texture)

The luma and interleaved chroma textures frame is packed into.

Source

pub fn submit( &mut self, frame: InputFrame, surface: &mut EncoderSurface, ) -> Result<(), EncodeError>

Moves frame’s packed planes into surface on the GPU. The encoder waits for that on the GPU too, so this does not.

§Errors

Returns an error for a surface from another pool, or when the handoff cannot be submitted.

Source

pub fn set_time(&self, surface: &mut EncoderSurface, time: MediaTime)

Stamps surface with its presentation time.

Source

pub fn stats(&self) -> EncoderPoolStats

This session’s pool counters so far.

Source

pub fn finish(self) -> Result<(), EncodeError>

Waits for every in-flight handoff and releases the input resources.

§Errors

On timeout or device loss the backend keeps what the GPU may still use rather than freeing it, and says so.

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, 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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,