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
impl EncoderSession for LibvdaEncoderSession
source§fn encode(
&mut self,
resource: GuestResource,
timestamp: u64,
force_keyframe: bool
) -> Result<u32, VideoError>
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>
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>
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>
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
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>
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§
impl RefUnwindSafe for LibvdaEncoderSession
impl !Send for LibvdaEncoderSession
impl !Sync for LibvdaEncoderSession
impl Unpin for LibvdaEncoderSession
impl UnwindSafe for LibvdaEncoderSession
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn 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>
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)
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)
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.