#[non_exhaustive]pub enum Error {
BufferTooShort {
need: usize,
have: usize,
what: &'static str,
},
BadStartCode(u32),
BadTimestampMarker(&'static str),
BadTimestampPrefix(&'static str),
OptionalFieldsTooLarge(usize),
FieldOverflow(FieldOverflow),
BadHeaderMarker,
ForbiddenPtsDtsFlags,
}Expand description
A PES parse error.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
BufferTooShort
Input shorter than required.
Fields
BadStartCode(u32)
packet_start_code_prefix was not 0x000001.
BadTimestampMarker(&'static str)
A required marker_bit was not 1 in a PTS/DTS field.
BadTimestampPrefix(&'static str)
The PTS/DTS leading 4-bit prefix did not match the expected 0010/0011/0001.
OptionalFieldsTooLarge(usize)
optional_fields exceeds the 255-byte PES_header_data_length limit
(an 8-bit field) — cannot be serialized.
FieldOverflow(FieldOverflow)
A length or count field’s value does not fit its wire field
(see broadcast_common::len, #1129).
BadHeaderMarker
The two fixed marker bits of the first PES header flag byte were not
'10' (ISO/IEC 13818-1 Table 2-21): not an MPEG-2 PES header.
ForbiddenPtsDtsFlags
PTS_DTS_flags on the wire was 01 (ISO/IEC 13818-1 Table 2-21
reserves this combination — only 00/10/11 are defined), or a
PesHeader had dts.is_some() with pts.is_none() (the same
forbidden combination, one layer up, that serialize_into refuses
to write silently as PTS_DTS_flags=00).
Trait Implementations§
impl Eq for Error
Source§impl Error for Error
impl Error for Error
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()