Skip to main content

NativeVideoEncoderProbe

Struct NativeVideoEncoderProbe 

Source
pub struct NativeVideoEncoderProbe {
Show 14 fields pub codec: NativeVideoCodec, pub encoder_name: String, pub class: NativeEncoderClass, pub hardware_accelerated: bool, pub capability_bits: u32, pub pixel_formats: Vec<String>, pub hardware_configs: Vec<NativeEncoderHardwareConfig>, pub accepts_yuv420p: bool, pub requires_hardware_frames: bool, pub advertised: bool, pub minimum_size: (u32, u32), pub software_open_error: Option<String>, pub software_packets: u32, pub rate_control: Vec<NativeRateControlProbe>,
}
Expand description

What one registered video encoder declares, and what happened when alpha2 opened it on this machine.

Registration, advertisement and instantiation are three different claims, and only the third is the one an export depends on. This probe makes all three observable in one place, per platform, without an export.

Fields§

§codec: NativeVideoCodec

Logical codec this encoder implements.

§encoder_name: String

FFmpeg short name.

§class: NativeEncoderClass

Class taken from the encoder’s own capability bits.

§hardware_accelerated: bool

Whether this row runs the encoder on the GPU.

§capability_bits: u32

Raw AV_CODEC_CAP_* bits, so an unexpected class can be traced.

§pixel_formats: Vec<String>

Pixel formats the encoder declares, or empty when it declares none.

§hardware_configs: Vec<NativeEncoderHardwareConfig>

Hardware configurations the encoder declares.

§accepts_yuv420p: bool

Whether AV_PIX_FMT_YUV420P is among the declared formats.

§requires_hardware_frames: bool

Whether every declared format is a hardware one, so a software frame can never be sent to it. This is what keeps h264_vulkan unadvertised.

§advertised: bool

Whether codec_capabilities advertises it for the YUV420P sink.

§minimum_size: (u32, u32)

Smallest frame the encoder accepts, as alpha2 records it.

§software_open_error: Option<String>

None when the encoder opened and produced at least one packet from a software YUV420P frame; otherwise why it did not.

§software_packets: u32

Packets drained from that attempt.

§rate_control: Vec<NativeRateControlProbe>

Which rate-control mechanisms opened, and with what options.

Trait Implementations§

Source§

impl Clone for NativeVideoEncoderProbe

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for NativeVideoEncoderProbe

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Eq for NativeVideoEncoderProbe

Source§

impl PartialEq for NativeVideoEncoderProbe

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for NativeVideoEncoderProbe

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,