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
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
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>,

§

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

§

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