pub enum HwAccel {
Off,
Auto,
}Expand description
Hardware-acceleration preference for transcoding.
Variants§
Off
Always use a software encoder.
Auto
Use a hardware encoder if the local ffmpeg provides one for the target codec, otherwise fall back to a software encoder.
Hardware encoders are drawn from the NVENC and VideoToolbox families
only; QSV/VAAPI are not yet used. In practice that means GPU encoding is
available for H.264/H.265, and for AV1 on newer NVIDIA hardware. VP8/VP9
always fall back to software — their only GPU encoders are Intel QSV/VAAPI
(vp8_vaapi/vp9_vaapi/vp9_qsv), which are out of scope; NVENC and
VideoToolbox have no VP8/VP9 encoder at all.
Selection is by encoder presence only. An encoder that is listed but
non-functional at runtime (e.g. h264_nvenc on a machine with no NVIDIA
GPU or driver) is not detected here.
Trait Implementations§
impl Copy for HwAccel
impl Eq for HwAccel
impl StructuralPartialEq for HwAccel
Auto Trait Implementations§
impl Freeze for HwAccel
impl RefUnwindSafe for HwAccel
impl Send for HwAccel
impl Sync for HwAccel
impl Unpin for HwAccel
impl UnsafeUnpin for HwAccel
impl UnwindSafe for HwAccel
Blanket Implementations§
impl<T> Allocation for T
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> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
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.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more