scuffle_transmuxer/
errors.rs

1use std::io;
2
3#[derive(Debug)]
4pub enum TransmuxError {
5    InvalidVideoDimensions,
6    InvalidVideoFrameRate,
7    InvalidAudioSampleRate,
8    InvalidAudioChannels,
9    InvalidAudioSampleSize,
10    InvalidHEVCDecoderConfigurationRecord,
11    InvalidAv1DecoderConfigurationRecord,
12    InvalidAVCDecoderConfigurationRecord,
13    NoSequenceHeaders,
14    IO(io::Error),
15}
16
17impl From<io::Error> for TransmuxError {
18    fn from(err: io::Error) -> Self {
19        Self::IO(err)
20    }
21}
22
23impl std::fmt::Display for TransmuxError {
24    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
25        match self {
26            Self::InvalidVideoDimensions => write!(f, "invalid video dimensions"),
27            Self::InvalidVideoFrameRate => write!(f, "invalid video frame rate"),
28            Self::InvalidAudioSampleRate => write!(f, "invalid audio sample rate"),
29            Self::InvalidAudioChannels => write!(f, "invalid audio channels"),
30            Self::InvalidAudioSampleSize => write!(f, "invalid audio sample size"),
31            Self::InvalidHEVCDecoderConfigurationRecord => {
32                write!(f, "invalid hevc decoder configuration record")
33            }
34            Self::InvalidAv1DecoderConfigurationRecord => {
35                write!(f, "invalid av1 decoder configuration record")
36            }
37            Self::InvalidAVCDecoderConfigurationRecord => {
38                write!(f, "invalid avc decoder configuration record")
39            }
40            Self::NoSequenceHeaders => write!(f, "no sequence headers"),
41            Self::IO(err) => write!(f, "io error: {}", err),
42        }
43    }
44}