pub enum HardwareDecodeFallback {
ContextUnavailable,
NoHardwareConfig,
UnsupportedColor,
UnsupportedProfile,
UnsupportedSurfaceFormat,
SourceUnavailable,
DecoderOpenFailed,
ReverseWindow,
UnsupportedCrop,
ImportFailed,
}Expand description
Why a video source is decoded in software instead of on the GPU.
Recorded per source so a run can report what prevented the hardware path rather than leaving an unexplained software fallback.
Variants§
No shared GPU decode context was created for this run.
NoHardwareConfig
The codec exposes no hardware configuration for this backend.
UnsupportedColor
The stream declares a color space the hardware path does not present.
UnsupportedProfile
The stream’s chroma subsampling or bit depth has no resident path on this device, such as 4:2:2, 4:4:4, or 10-bit without P010 support.
UnsupportedSurfaceFormat
The decoder produced a surface format that cannot be imported.
The container or stream could not be opened at all.
DecoderOpenFailed
The hardware decoder rejected this stream while opening.
ReverseWindow
Reverse playback keeps this cursor on the software decoder.
UnsupportedCrop
The stream’s SPS crops its left or top edge, which this backend’s
surfaces do not show: VideoToolbox hands back the coded picture’s
top-left corner with the crop cleared. A D3D12VA picture that reaches
past its surface is refused the same way.
ImportFailed
The renderer could not import a decoded surface, so its pixels were downloaded and uploaded from the CPU instead.
Implementations§
Trait Implementations§
Source§impl Clone for HardwareDecodeFallback
impl Clone for HardwareDecodeFallback
impl Copy for HardwareDecodeFallback
Source§impl Debug for HardwareDecodeFallback
impl Debug for HardwareDecodeFallback
impl Eq for HardwareDecodeFallback
Source§impl Hash for HardwareDecodeFallback
impl Hash for HardwareDecodeFallback
Source§impl Ord for HardwareDecodeFallback
impl Ord for HardwareDecodeFallback
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for HardwareDecodeFallback
impl PartialEq for HardwareDecodeFallback
Source§impl PartialOrd for HardwareDecodeFallback
impl PartialOrd for HardwareDecodeFallback
impl StructuralPartialEq for HardwareDecodeFallback
Auto Trait Implementations§
impl Freeze for HardwareDecodeFallback
impl RefUnwindSafe for HardwareDecodeFallback
impl Send for HardwareDecodeFallback
impl Sync for HardwareDecodeFallback
impl Unpin for HardwareDecodeFallback
impl UnsafeUnpin for HardwareDecodeFallback
impl UnwindSafe for HardwareDecodeFallback
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> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
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.