#[non_exhaustive]pub enum NativeEncoderClass {
Software,
Hardware,
Hybrid,
}Expand description
How a concrete encoder executes, as the linked runtime declares it.
Taken from capability bits rather than the name suffix:
AV_CODEC_CAP_HARDWARE and AV_CODEC_CAP_HYBRID are set by the encoder
itself, so a build that adds an encoder alpha2 has never heard of is still
classified correctly, and a hybrid encoder is not described as though it
were one or the other.
The one exception is a short list of encoders the pinned runtime
misdeclares (declared_encoder_class).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Software
Runs on the CPU and draws on the software codec thread budget.
Hardware
Runs on a hardware engine and ignores the thread budget.
Hybrid
Can do either. MediaFoundation’s _mf encoders are the shipped case:
hw_encoding=0 enumerates a synchronous software transform and
hw_encoding=1 an asynchronous hardware one.
Implementations§
Source§impl NativeEncoderClass
impl NativeEncoderClass
Sourcepub const fn as_str(self) -> &'static str
pub const fn as_str(self) -> &'static str
Stable identifier for diagnostics and the export result.
Sourcepub const fn modes(self, hybrid_hardware: bool) -> &'static [bool]
pub const fn modes(self, hybrid_hardware: bool) -> &'static [bool]
The ways alpha2 runs an encoder of this class, most preferred first:
true on the GPU, false on the CPU. A hybrid encoder runs on the
CPU unless hybrid_hardware asks for the GPU, and then still has the
CPU behind it, because a machine without a hardware transform cannot
run the GPU mode at all.
Trait Implementations§
Source§impl Clone for NativeEncoderClass
impl Clone for NativeEncoderClass
impl Copy for NativeEncoderClass
Source§impl Debug for NativeEncoderClass
impl Debug for NativeEncoderClass
impl Eq for NativeEncoderClass
Source§impl Hash for NativeEncoderClass
impl Hash for NativeEncoderClass
Source§impl PartialEq for NativeEncoderClass
impl PartialEq for NativeEncoderClass
impl StructuralPartialEq for NativeEncoderClass
Auto Trait Implementations§
impl Freeze for NativeEncoderClass
impl RefUnwindSafe for NativeEncoderClass
impl Send for NativeEncoderClass
impl Sync for NativeEncoderClass
impl Unpin for NativeEncoderClass
impl UnsafeUnpin for NativeEncoderClass
impl UnwindSafe for NativeEncoderClass
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.