scuffle_transmuxer/
errors.rs1use 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}