Skip to main content

HardwareEncoder

Enum HardwareEncoder 

Source
#[non_exhaustive]
pub enum HardwareEncoder { Auto, None, Nvenc, Qsv, Amf, VideoToolbox, Vaapi, }
Expand description

Hardware encoder type.

Specifies which hardware acceleration to use for encoding. Hardware encoding is generally faster and more power-efficient than software encoding, but may have slightly lower quality at the same bitrate.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Auto

Auto-detect available hardware encoder

§

None

Software encoding only (no hardware acceleration)

§

Nvenc

NVIDIA NVENC

§

Qsv

Intel Quick Sync Video

§

Amf

AMD Advanced Media Framework (AMF, formerly VCE)

§

VideoToolbox

Apple VideoToolbox

§

Vaapi

VA-API (Linux)

Implementations§

Source§

impl HardwareEncoder

Source

pub fn available() -> &'static [Self]

Get the list of available hardware encoders.

Queries FFmpeg for available hardware encoders on the system. This is useful for UI to show which hardware acceleration options the user can select.

The result is cached on first call for performance.

§Examples
use ff_encode::HardwareEncoder;

let available = HardwareEncoder::available();
for hw in available {
    println!("Available: {:?}", hw);
}
Source

pub fn is_available(self) -> bool

Check if this hardware encoder is available.

Queries FFmpeg to determine if the hardware encoder is available on the current system. This checks for both H.264 and H.265 support.

§Examples
use ff_encode::HardwareEncoder;

if HardwareEncoder::Nvenc.is_available() {
    println!("NVENC is available on this system");
}

Trait Implementations§

Source§

impl Clone for HardwareEncoder

Source§

fn clone(&self) -> HardwareEncoder

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for HardwareEncoder

Source§

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

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

impl Default for HardwareEncoder

Source§

fn default() -> HardwareEncoder

Returns the “default value” for a type. Read more
Source§

impl PartialEq for HardwareEncoder

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for HardwareEncoder

Source§

impl Eq for HardwareEncoder

Source§

impl StructuralPartialEq for HardwareEncoder

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

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.