File
Blob: firmware/vendor/str0m/src/packet/error.rs
| 1 | use std::error::Error; |
| 2 | use std::fmt; |
| 3 | |
| 4 | /// Errors arising in packet- and depacketization. |
| 5 | #[derive(Debug, PartialEq, Eq)] |
| 6 | #[non_exhaustive] |
| 7 | #[allow(missing_docs)] |
| 8 | pub enum PacketError { |
| 9 | ErrShortPacket, |
| 10 | ErrPayloadTooLarge, |
| 11 | ErrTooManySpatialLayers, |
| 12 | ErrTooManyPDiff, |
| 13 | ErrH265CorruptedPacket, |
| 14 | ErrH266CorruptedPacket, |
| 15 | ErrInvalidH265PacketType, |
| 16 | ErrH265PACIPHESTooLong, |
| 17 | StapASizeLargerThanBuffer(usize, usize), |
| 18 | NaluTypeIsNotHandled(u8), |
| 19 | ErrVP8CorruptedPacket, |
| 20 | ErrVP9CorruptedPacket, |
| 21 | ErrAv1CorruptedPacket, |
| 22 | } |
| 23 | |
| 24 | impl fmt::Display for PacketError { |
| 25 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { |
| 26 | match self { |
| 27 | PacketError::ErrShortPacket => write!(f, "Packet is too short"), |
| 28 | PacketError::ErrPayloadTooLarge => write!(f, "Payload exceeds the MTU"), |
| 29 | PacketError::ErrTooManySpatialLayers => write!(f, "Too many spatial layers"), |
| 30 | PacketError::ErrTooManyPDiff => write!(f, "Too many P-Diff"), |
| 31 | PacketError::ErrH265CorruptedPacket => write!(f, "H265 corrupted packet"), |
| 32 | PacketError::ErrH266CorruptedPacket => write!(f, "H266 corrupted packet"), |
| 33 | PacketError::ErrInvalidH265PacketType => write!(f, "H265 invalid packet type"), |
| 34 | PacketError::ErrH265PACIPHESTooLong => { |
| 35 | write!(f, "H265 PACI PHES field exceeds maximum size of 31 bytes") |
| 36 | } |
| 37 | PacketError::StapASizeLargerThanBuffer(size, buffer) => write!( |
| 38 | f, |
| 39 | "H264 StapA size larger than buffer: {} > {}", |
| 40 | size, buffer |
| 41 | ), |
| 42 | PacketError::NaluTypeIsNotHandled(nalu_type) => { |
| 43 | write!(f, "H264 NALU type is not handled: {}", nalu_type) |
| 44 | } |
| 45 | PacketError::ErrVP8CorruptedPacket => write!(f, "VP8 corrupted packet"), |
| 46 | PacketError::ErrVP9CorruptedPacket => write!(f, "VP9 corrupted packet"), |
| 47 | PacketError::ErrAv1CorruptedPacket => write!(f, "AV1 corrupted packet"), |
| 48 | } |
| 49 | } |
| 50 | } |
| 51 | |
| 52 | impl Error for PacketError {} |