pub enum Error {
Ffmpeg(Error),
PacketBuild(PacketBuildError),
NoCodec(u32),
BackendUnsupportedByCodec(Backend),
HwDeviceInitFailed(HwDeviceInitFailed),
AllBackendsFailed(AllBackendsFailed),
FallbackFailed(FallbackFailed),
}Expand description
Errors returned from crate::VideoDecoder.
Debug is derived; the variants that wrap a payload struct
(HwDeviceInitFailed, AllBackendsFailed, FallbackFailed)
delegate their Debug to the payload, which is hand-written
where needed because ffmpeg_next::Packet (carried by
AllBackendsFailed::unconsumed_packets /
FallbackFailed::unconsumed_packets) does not derive
Debug. Those payloads summarize the packet count rather
than dumping each packet’s fields, which would be both noisy
and useless for triage.
Variants§
Ffmpeg(Error)
An underlying FFmpeg error.
PacketBuild(PacketBuildError)
A portable packet could not be rebuilt as an AVPacket on its
way into a decoder — see crate::boundary::PacketBuildError.
NoCodec(u32)
avcodec_find_decoder returned null for the input codec id. The id
is reported as the raw integer (AVCodecID discriminant) — we do not
construct the bindgen AVCodecID enum from a runtime value, since
values outside our build’s discriminant set would invoke UB.
BackendUnsupportedByCodec(Backend)
The codec does not advertise a hardware configuration matching the
requested backend (via avcodec_get_hw_config).
HwDeviceInitFailed(HwDeviceInitFailed)
av_hwdevice_ctx_create failed for the requested backend. See
[HwDeviceInitFailed] for the payload details. #[from] gives
a free impl From<HwDeviceInitFailed> for Error, so inner
helpers that return Result<_, HwDeviceInitFailed> can be
?-propagated into Error directly.
AllBackendsFailed(AllBackendsFailed)
Auto-probe exhausted every backend in the platform’s order. See
[AllBackendsFailed] for the payload details (in particular the
unconsumed_packets history that callers should replay through
their own software decoder for non-seekable inputs). #[from]
gives a free impl From<AllBackendsFailed> for Error.
FallbackFailed(FallbackFailed)
Surfaced by crate::FfmpegVideoStreamDecoder when a HW->SW
fallback attempt itself fails. See [FallbackFailed] for the
payload details (in particular the rescued unconsumed_packets
the HW path had already consumed from the caller). #[from]
gives a free impl From<FallbackFailed> for Error.
Implementations§
Source§impl Error
impl Error
Sourcepub const fn is_ffmpeg(&self) -> bool
pub const fn is_ffmpeg(&self) -> bool
Returns true if this value is of type Ffmpeg. Returns false otherwise
Sourcepub const fn is_packet_build(&self) -> bool
pub const fn is_packet_build(&self) -> bool
Returns true if this value is of type PacketBuild. Returns false otherwise
Sourcepub const fn is_no_codec(&self) -> bool
pub const fn is_no_codec(&self) -> bool
Returns true if this value is of type NoCodec. Returns false otherwise
Sourcepub const fn is_backend_unsupported_by_codec(&self) -> bool
pub const fn is_backend_unsupported_by_codec(&self) -> bool
Returns true if this value is of type BackendUnsupportedByCodec. Returns false otherwise
Sourcepub const fn is_hw_device_init_failed(&self) -> bool
pub const fn is_hw_device_init_failed(&self) -> bool
Returns true if this value is of type HwDeviceInitFailed. Returns false otherwise
Sourcepub const fn is_all_backends_failed(&self) -> bool
pub const fn is_all_backends_failed(&self) -> bool
Returns true if this value is of type AllBackendsFailed. Returns false otherwise
Sourcepub const fn is_fallback_failed(&self) -> bool
pub const fn is_fallback_failed(&self) -> bool
Returns true if this value is of type FallbackFailed. Returns false otherwise
Source§impl Error
impl Error
Sourcepub fn unwrap_ffmpeg(self) -> Error
pub fn unwrap_ffmpeg(self) -> Error
Unwraps this value to the Error::Ffmpeg variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_ffmpeg_ref(&self) -> &Error
pub fn unwrap_ffmpeg_ref(&self) -> &Error
Unwraps this reference to the Error::Ffmpeg variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_ffmpeg_mut(&mut self) -> &mut Error
pub fn unwrap_ffmpeg_mut(&mut self) -> &mut Error
Unwraps this mutable reference to the Error::Ffmpeg variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_packet_build(self) -> PacketBuildError
pub fn unwrap_packet_build(self) -> PacketBuildError
Unwraps this value to the Error::PacketBuild variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_packet_build_ref(&self) -> &PacketBuildError
pub fn unwrap_packet_build_ref(&self) -> &PacketBuildError
Unwraps this reference to the Error::PacketBuild variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_packet_build_mut(&mut self) -> &mut PacketBuildError
pub fn unwrap_packet_build_mut(&mut self) -> &mut PacketBuildError
Unwraps this mutable reference to the Error::PacketBuild variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_no_codec(self) -> u32
pub fn unwrap_no_codec(self) -> u32
Unwraps this value to the Error::NoCodec variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_no_codec_ref(&self) -> &u32
pub fn unwrap_no_codec_ref(&self) -> &u32
Unwraps this reference to the Error::NoCodec variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_no_codec_mut(&mut self) -> &mut u32
pub fn unwrap_no_codec_mut(&mut self) -> &mut u32
Unwraps this mutable reference to the Error::NoCodec variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_backend_unsupported_by_codec(self) -> Backend
pub fn unwrap_backend_unsupported_by_codec(self) -> Backend
Unwraps this value to the Error::BackendUnsupportedByCodec variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_backend_unsupported_by_codec_ref(&self) -> &Backend
pub fn unwrap_backend_unsupported_by_codec_ref(&self) -> &Backend
Unwraps this reference to the Error::BackendUnsupportedByCodec variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_backend_unsupported_by_codec_mut(&mut self) -> &mut Backend
pub fn unwrap_backend_unsupported_by_codec_mut(&mut self) -> &mut Backend
Unwraps this mutable reference to the Error::BackendUnsupportedByCodec variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_hw_device_init_failed(self) -> HwDeviceInitFailed
pub fn unwrap_hw_device_init_failed(self) -> HwDeviceInitFailed
Unwraps this value to the Error::HwDeviceInitFailed variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_hw_device_init_failed_ref(&self) -> &HwDeviceInitFailed
pub fn unwrap_hw_device_init_failed_ref(&self) -> &HwDeviceInitFailed
Unwraps this reference to the Error::HwDeviceInitFailed variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_hw_device_init_failed_mut(&mut self) -> &mut HwDeviceInitFailed
pub fn unwrap_hw_device_init_failed_mut(&mut self) -> &mut HwDeviceInitFailed
Unwraps this mutable reference to the Error::HwDeviceInitFailed variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_all_backends_failed(self) -> AllBackendsFailed
pub fn unwrap_all_backends_failed(self) -> AllBackendsFailed
Unwraps this value to the Error::AllBackendsFailed variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_all_backends_failed_ref(&self) -> &AllBackendsFailed
pub fn unwrap_all_backends_failed_ref(&self) -> &AllBackendsFailed
Unwraps this reference to the Error::AllBackendsFailed variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_all_backends_failed_mut(&mut self) -> &mut AllBackendsFailed
pub fn unwrap_all_backends_failed_mut(&mut self) -> &mut AllBackendsFailed
Unwraps this mutable reference to the Error::AllBackendsFailed variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_fallback_failed(self) -> FallbackFailed
pub fn unwrap_fallback_failed(self) -> FallbackFailed
Unwraps this value to the Error::FallbackFailed variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_fallback_failed_ref(&self) -> &FallbackFailed
pub fn unwrap_fallback_failed_ref(&self) -> &FallbackFailed
Unwraps this reference to the Error::FallbackFailed variant.
Panics if this value is of any other type.
Sourcepub fn unwrap_fallback_failed_mut(&mut self) -> &mut FallbackFailed
pub fn unwrap_fallback_failed_mut(&mut self) -> &mut FallbackFailed
Unwraps this mutable reference to the Error::FallbackFailed variant.
Panics if this value is of any other type.
Source§impl Error
impl Error
Sourcepub fn try_unwrap_ffmpeg(self) -> Result<Error, TryUnwrapError<Self>>
pub fn try_unwrap_ffmpeg(self) -> Result<Error, TryUnwrapError<Self>>
Attempts to unwrap this value to the Error::Ffmpeg variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_ffmpeg_ref(&self) -> Result<&Error, TryUnwrapError<&Self>>
pub fn try_unwrap_ffmpeg_ref(&self) -> Result<&Error, TryUnwrapError<&Self>>
Attempts to unwrap this reference to the Error::Ffmpeg variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_ffmpeg_mut(
&mut self,
) -> Result<&mut Error, TryUnwrapError<&mut Self>>
pub fn try_unwrap_ffmpeg_mut( &mut self, ) -> Result<&mut Error, TryUnwrapError<&mut Self>>
Attempts to unwrap this mutable reference to the Error::Ffmpeg variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_packet_build(
self,
) -> Result<PacketBuildError, TryUnwrapError<Self>>
pub fn try_unwrap_packet_build( self, ) -> Result<PacketBuildError, TryUnwrapError<Self>>
Attempts to unwrap this value to the Error::PacketBuild variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_packet_build_ref(
&self,
) -> Result<&PacketBuildError, TryUnwrapError<&Self>>
pub fn try_unwrap_packet_build_ref( &self, ) -> Result<&PacketBuildError, TryUnwrapError<&Self>>
Attempts to unwrap this reference to the Error::PacketBuild variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_packet_build_mut(
&mut self,
) -> Result<&mut PacketBuildError, TryUnwrapError<&mut Self>>
pub fn try_unwrap_packet_build_mut( &mut self, ) -> Result<&mut PacketBuildError, TryUnwrapError<&mut Self>>
Attempts to unwrap this mutable reference to the Error::PacketBuild variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_no_codec(self) -> Result<u32, TryUnwrapError<Self>>
pub fn try_unwrap_no_codec(self) -> Result<u32, TryUnwrapError<Self>>
Attempts to unwrap this value to the Error::NoCodec variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_no_codec_ref(&self) -> Result<&u32, TryUnwrapError<&Self>>
pub fn try_unwrap_no_codec_ref(&self) -> Result<&u32, TryUnwrapError<&Self>>
Attempts to unwrap this reference to the Error::NoCodec variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_no_codec_mut(
&mut self,
) -> Result<&mut u32, TryUnwrapError<&mut Self>>
pub fn try_unwrap_no_codec_mut( &mut self, ) -> Result<&mut u32, TryUnwrapError<&mut Self>>
Attempts to unwrap this mutable reference to the Error::NoCodec variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_backend_unsupported_by_codec(
self,
) -> Result<Backend, TryUnwrapError<Self>>
pub fn try_unwrap_backend_unsupported_by_codec( self, ) -> Result<Backend, TryUnwrapError<Self>>
Attempts to unwrap this value to the Error::BackendUnsupportedByCodec variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_backend_unsupported_by_codec_ref(
&self,
) -> Result<&Backend, TryUnwrapError<&Self>>
pub fn try_unwrap_backend_unsupported_by_codec_ref( &self, ) -> Result<&Backend, TryUnwrapError<&Self>>
Attempts to unwrap this reference to the Error::BackendUnsupportedByCodec variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_backend_unsupported_by_codec_mut(
&mut self,
) -> Result<&mut Backend, TryUnwrapError<&mut Self>>
pub fn try_unwrap_backend_unsupported_by_codec_mut( &mut self, ) -> Result<&mut Backend, TryUnwrapError<&mut Self>>
Attempts to unwrap this mutable reference to the Error::BackendUnsupportedByCodec variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_hw_device_init_failed(
self,
) -> Result<HwDeviceInitFailed, TryUnwrapError<Self>>
pub fn try_unwrap_hw_device_init_failed( self, ) -> Result<HwDeviceInitFailed, TryUnwrapError<Self>>
Attempts to unwrap this value to the Error::HwDeviceInitFailed variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_hw_device_init_failed_ref(
&self,
) -> Result<&HwDeviceInitFailed, TryUnwrapError<&Self>>
pub fn try_unwrap_hw_device_init_failed_ref( &self, ) -> Result<&HwDeviceInitFailed, TryUnwrapError<&Self>>
Attempts to unwrap this reference to the Error::HwDeviceInitFailed variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_hw_device_init_failed_mut(
&mut self,
) -> Result<&mut HwDeviceInitFailed, TryUnwrapError<&mut Self>>
pub fn try_unwrap_hw_device_init_failed_mut( &mut self, ) -> Result<&mut HwDeviceInitFailed, TryUnwrapError<&mut Self>>
Attempts to unwrap this mutable reference to the Error::HwDeviceInitFailed variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_all_backends_failed(
self,
) -> Result<AllBackendsFailed, TryUnwrapError<Self>>
pub fn try_unwrap_all_backends_failed( self, ) -> Result<AllBackendsFailed, TryUnwrapError<Self>>
Attempts to unwrap this value to the Error::AllBackendsFailed variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_all_backends_failed_ref(
&self,
) -> Result<&AllBackendsFailed, TryUnwrapError<&Self>>
pub fn try_unwrap_all_backends_failed_ref( &self, ) -> Result<&AllBackendsFailed, TryUnwrapError<&Self>>
Attempts to unwrap this reference to the Error::AllBackendsFailed variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_all_backends_failed_mut(
&mut self,
) -> Result<&mut AllBackendsFailed, TryUnwrapError<&mut Self>>
pub fn try_unwrap_all_backends_failed_mut( &mut self, ) -> Result<&mut AllBackendsFailed, TryUnwrapError<&mut Self>>
Attempts to unwrap this mutable reference to the Error::AllBackendsFailed variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_fallback_failed(
self,
) -> Result<FallbackFailed, TryUnwrapError<Self>>
pub fn try_unwrap_fallback_failed( self, ) -> Result<FallbackFailed, TryUnwrapError<Self>>
Attempts to unwrap this value to the Error::FallbackFailed variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_fallback_failed_ref(
&self,
) -> Result<&FallbackFailed, TryUnwrapError<&Self>>
pub fn try_unwrap_fallback_failed_ref( &self, ) -> Result<&FallbackFailed, TryUnwrapError<&Self>>
Attempts to unwrap this reference to the Error::FallbackFailed variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Sourcepub fn try_unwrap_fallback_failed_mut(
&mut self,
) -> Result<&mut FallbackFailed, TryUnwrapError<&mut Self>>
pub fn try_unwrap_fallback_failed_mut( &mut self, ) -> Result<&mut FallbackFailed, TryUnwrapError<&mut Self>>
Attempts to unwrap this mutable reference to the Error::FallbackFailed variant.
Returns a [TryUnwrapError] with the original value if this value is of any other type.
Trait Implementations§
Source§impl Error for Error
impl Error for Error
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<Error> for AudioDecodeError
impl From<Error> for AudioDecodeError
Source§impl From<Error> for ResampleError
Available on crate feature resample only.
impl From<Error> for ResampleError
resample only.