pub enum FormatError {
InvalidPixelFormat {
format: String,
},
InvalidSampleFormat {
format: String,
},
InvalidTimestamp {
pts: i64,
time_base: Rational,
},
PlaneIndexOutOfBounds {
index: usize,
max: usize,
},
ConversionFailed {
from: PixelFormat,
to: PixelFormat,
},
AudioConversionFailed {
from: SampleFormat,
to: SampleFormat,
},
InvalidFrameData(String),
}Expand description
Error type for format-related operations.
This is the main error type for the ff-format crate and is used for errors related to pixel formats, sample formats, timestamps, and format conversions.
§Error Variants
InvalidPixelFormat: Invalid or unsupported pixel format stringInvalidSampleFormat: Invalid or unsupported sample format stringInvalidTimestamp: Invalid timestamp with PTS and time basePlaneIndexOutOfBounds: Plane index exceeds available planesConversionFailed: Pixel format conversion failedAudioConversionFailed: Audio sample format conversion failedInvalidFrameData: General frame data validation error
§Examples
use ff_format::{FormatError, PixelFormat, Rational};
// Create an invalid timestamp error
let error = FormatError::InvalidTimestamp {
pts: -1,
time_base: Rational::new(1, 90000),
};
assert!(error.to_string().contains("pts=-1"));
// Create a plane index out of bounds error
let error = FormatError::PlaneIndexOutOfBounds {
index: 5,
max: 3,
};
assert!(error.to_string().contains("out of bounds"));Variants§
InvalidPixelFormat
Invalid or unrecognized pixel format string.
This error occurs when parsing a pixel format name that is not recognized or supported.
InvalidSampleFormat
Invalid or unrecognized sample format string.
This error occurs when parsing a sample format name that is not recognized or supported.
InvalidTimestamp
Invalid timestamp value.
This error occurs when a timestamp has an invalid PTS value or incompatible time base.
Fields
PlaneIndexOutOfBounds
Plane index exceeds the number of available planes.
This error occurs when trying to access a plane that doesn’t exist in the frame. For example, accessing plane 3 of an RGB image that only has plane 0.
ConversionFailed
Pixel format conversion failed.
This error occurs when attempting to convert between two pixel formats that is not supported or fails.
AudioConversionFailed
Audio sample format conversion failed.
This error occurs when attempting to convert between two audio sample formats that is not supported or fails.
InvalidFrameData(String)
Invalid or corrupted frame data.
This error occurs when frame data is invalid, corrupted, or doesn’t match the expected format parameters.
Implementations§
Source§impl FormatError
impl FormatError
Sourcepub fn invalid_pixel_format(format: impl Into<String>) -> Self
pub fn invalid_pixel_format(format: impl Into<String>) -> Self
Creates an InvalidPixelFormat error from a format string.
§Examples
use ff_format::FormatError;
let error = FormatError::invalid_pixel_format("unknown_format");
assert!(error.to_string().contains("unknown_format"));Sourcepub fn invalid_sample_format(format: impl Into<String>) -> Self
pub fn invalid_sample_format(format: impl Into<String>) -> Self
Creates an InvalidSampleFormat error from a format string.
§Examples
use ff_format::FormatError;
let error = FormatError::invalid_sample_format("unknown_format");
assert!(error.to_string().contains("unknown_format"));Sourcepub fn invalid_frame_data(reason: impl Into<String>) -> Self
pub fn invalid_frame_data(reason: impl Into<String>) -> Self
Creates an InvalidFrameData error with a description.
§Examples
use ff_format::FormatError;
let error = FormatError::invalid_frame_data("buffer size mismatch");
assert!(error.to_string().contains("buffer size"));Sourcepub fn plane_out_of_bounds(index: usize, max: usize) -> Self
pub fn plane_out_of_bounds(index: usize, max: usize) -> Self
Creates a PlaneIndexOutOfBounds error.
§Examples
use ff_format::FormatError;
let error = FormatError::plane_out_of_bounds(5, 3);
assert!(error.to_string().contains("5"));
assert!(error.to_string().contains("3"));Sourcepub fn conversion_failed(from: PixelFormat, to: PixelFormat) -> Self
pub fn conversion_failed(from: PixelFormat, to: PixelFormat) -> Self
Creates a ConversionFailed error for pixel format conversion.
§Examples
use ff_format::{FormatError, PixelFormat};
let error = FormatError::conversion_failed(PixelFormat::Yuv420p, PixelFormat::Rgba);
assert!(error.to_string().contains("Yuv420p"));
assert!(error.to_string().contains("Rgba"));Sourcepub fn audio_conversion_failed(from: SampleFormat, to: SampleFormat) -> Self
pub fn audio_conversion_failed(from: SampleFormat, to: SampleFormat) -> Self
Creates an AudioConversionFailed error for sample format conversion.
§Examples
use ff_format::{FormatError, SampleFormat};
let error = FormatError::audio_conversion_failed(SampleFormat::I16, SampleFormat::F32);
assert!(error.to_string().contains("I16"));
assert!(error.to_string().contains("F32"));Sourcepub fn invalid_timestamp(pts: i64, time_base: Rational) -> Self
pub fn invalid_timestamp(pts: i64, time_base: Rational) -> Self
Creates an InvalidTimestamp error.
§Examples
use ff_format::{FormatError, Rational};
let error = FormatError::invalid_timestamp(-1, Rational::new(1, 90000));
assert!(error.to_string().contains("-1"));Trait Implementations§
Source§impl Clone for FormatError
impl Clone for FormatError
Source§fn clone(&self) -> FormatError
fn clone(&self) -> FormatError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FormatError
impl Debug for FormatError
Source§impl Display for FormatError
impl Display for FormatError
Source§impl Error for FormatError
impl Error for FormatError
1.30.0 · 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()