#[non_exhaustive]pub enum CaError {
NoCaDescriptor {
program_number: u16,
},
Io(Error),
Serialize(Error),
PmtParse(Error),
Cat(Error),
}Expand description
Errors from the managed CAS-layer API (Driver::add_service and friends,
#763).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
NoCaDescriptor
The PMT carries no CA_descriptor (ETSI EN 300 468 §6.2.16, tag
0x09) at programme or elementary-stream level — there is nothing for
the CAM to descramble, so no ca_pmt is built or sent.
Io(Error)
Sending the built ca_pmt to the device failed.
Serialize(Error)
The ca_pmt projected from the caller’s PMT has no valid wire
encoding (a program_info_length/ES_info_length or version_number
out of its spec range — e.g. a source PMT whose descriptor loop is
corrupted past the section end) or its stored raw PMT no longer
re-parses. r10-W-20: Driver::add_service and the re-query timer
must reject such a PMT as an Err value rather than panic inside
the serialization.
PmtParse(Error)
The raw PMT bytes stored at add_service time no longer re-parse on
a re-query tick (corruption of the caller’s own state); the re-query
is reported as an error instead of panicking (r10-W-20). Shares the
dvb_si::error::Error payload of the Cat arm.
Cat(Error)
The CAT’s descriptor loop (ISO/IEC 13818-1 §2.4.4.5) carried a
truncated CA_descriptor (EN 300 468 §6.2.16) — Driver::set_cat
could not extract the CAID/EMM-PID map.
Trait Implementations§
Source§impl Error for CaError
impl Error for CaError
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()