Skip to main content

VideoEncoder

Struct VideoEncoder 

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

A hardware video encoder.

Feed source frames with encode, which may return the access unit of an earlier frame, and collect the rest with flush at the end of the stream.

Implementations§

Source§

impl VideoEncoder

Source

pub fn new(config: EncoderConfig) -> Result<Self>

Opens an encoder for config.

On Linux the first V4L2 memory-to-memory device that produces the codec and accepts the input format is used. Setting EDGEFIRST_CODEC_V4L2_ENCODER to a device node uses that node only.

§Errors

CodecError::InvalidConfig when config is invalid or the device rejects it, CodecError::UnsupportedFormat when no device accepts the input format, and CodecError::NoDevice when there is no encoder.

Source

pub fn encode( &mut self, src: &TensorDyn, opts: &FrameOptions, ) -> Result<Option<EncodedFrame>>

Encodes src.

src must have the configured input format and, without a crop, the configured size. DMA-BUF sources are read in place: the call returns once the device has finished reading src, so the caller may reuse it afterwards. Every source of one stream must have the same row stride.

Returns the next finished access unit, which may belong to an earlier frame, or None when none is ready yet.

Source

pub fn flush(&mut self) -> Result<Vec<EncodedFrame>>

Drains the encoder: returns every access unit not yet returned, in order. The encoder accepts new frames afterwards.

Source

pub fn device(&self) -> String

The device that encodes, for logs (a device node on Linux).

Trait Implementations§

Source§

impl Debug for VideoEncoder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

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