Struct LibvdaEncoderSession

Source
pub struct LibvdaEncoderSession {
    session: Session,
    next_input_buffer_id: u32,
    next_output_buffer_id: u32,
}

Fields§

§session: Session§next_input_buffer_id: u32§next_output_buffer_id: u32

Trait Implementations§

Source§

impl EncoderSession for LibvdaEncoderSession

Source§

fn encode( &mut self, resource: GuestResource, timestamp: u64, force_keyframe: bool, ) -> Result<u32, VideoError>

Encodes the frame provided by resource. force_keyframe forces the frame to be encoded as a keyframe. When the buffer has been successfully processed, a ProcessedInputBuffer event will be readable from the event pipe, with the same InputBufferId as returned by this function. When the corresponding encoded data is ready, ProcessedOutputBuffer events will be readable from the event pipe, with the same timestamp as provided timestamp.
Source§

fn use_output_buffer( &mut self, resource: GuestResourceHandle, offset: u32, size: u32, ) -> Result<u32, VideoError>

Provides an output resource to store encoded output, where offset and size define the region of memory to use. When the buffer has been filled with encoded output, a ProcessedOutputBuffer event will be readable from the event pipe, with the same OutputBufferId as returned by this function.
Source§

fn flush(&mut self) -> Result<(), VideoError>

Requests the encoder to flush. When completed, an EncoderEvent::FlushResponse event will be readable from the event pipe.
Source§

fn request_encoding_params_change( &mut self, bitrate: Bitrate, framerate: u32, ) -> Result<(), VideoError>

Requests the encoder to use new encoding parameters provided by bitrate and framerate.
Source§

fn event_pipe(&self) -> &dyn AsRawDescriptor

Returns the event pipe on which the availability of events will be signaled. Note that the returned value is borrowed and only valid as long as the session is alive.
Source§

fn read_event(&mut self) -> Result<EncoderEvent, VideoError>

Performs a blocking read for an encoder event. This function should only be called when the file descriptor returned by event_pipe is readable.

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<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, 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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V