Skip to content
File

Blob: firmware/vendor/str0m/src/packet/error.rs

rust53 lines
1use std::error::Error;
2use std::fmt;
3 
4/// Errors arising in packet- and depacketization.
5#[derive(Debug, PartialEq, Eq)]
6#[non_exhaustive]
7#[allow(missing_docs)]
8pub 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 
24impl 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 
52impl Error for PacketError {}