pub struct TransportStreamDescriptionTable {
pub version_number: u8,
pub current_next_indicator: bool,
pub section_number: u8,
pub last_section_number: u8,
pub descriptors: Vec<u8>,
}Expand description
Parsed Transport Stream Description Table per §2.4.4.12 / Table 2-30-1.
The TSDT is optional. When present it is carried on the fixed PID
TSDT_PID (0x0002) with table_id == TSDT_TABLE_ID (0x03)
and carries a single descriptor() loop (§2.6) that applies to the
entire Transport Stream rather than to one program or stream.
Structurally it mirrors the CAT: the long-form section header
(table_id … last_section_number), then a run of descriptors,
then the CRC. The 16 bits at byte offsets 3–4 are reserved per the
reserved (18 bits) field of Table 2-30-1 and carry no
table_id_extension meaning; like the CAT they are ignored on
parse. Sections may be segmented across the TSDT_PID stream and
reassembled with PsiSectionAssembler before parsing.
Fields§
§version_number: u85-bit version_number.
current_next_indicator: boolcurrent_next_indicator.
section_number: u8section_number.
last_section_number: u8last_section_number.
descriptors: Vec<u8>Raw bytes of the descriptor() loop carried in the TSDT body —
walk with Self::iter_descriptors to get typed records.
Implementations§
Source§impl TransportStreamDescriptionTable
impl TransportStreamDescriptionTable
Sourcepub fn parse(section: &[u8]) -> Result<Self, TsError>
pub fn parse(section: &[u8]) -> Result<Self, TsError>
Parse a single TSDT section. The slice must run from table_id
through the CRC trailer (i.e. the pointer_field has already been
skipped).
Sourcepub fn iter_descriptors(&self) -> DescriptorIter<'_> ⓘ
pub fn iter_descriptors(&self) -> DescriptorIter<'_> ⓘ
Walk the carried descriptor() loop as typed TLV records.
Trait Implementations§
Source§impl Clone for TransportStreamDescriptionTable
impl Clone for TransportStreamDescriptionTable
Source§fn clone(&self) -> TransportStreamDescriptionTable
fn clone(&self) -> TransportStreamDescriptionTable
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more