Skip to main content

EventInformationTable

Struct EventInformationTable 

Source
pub struct EventInformationTable {
Show 13 fields pub service_id: u16, pub other_transport_stream: bool, pub schedule: bool, pub table_id: u8, pub version_number: u8, pub current_next_indicator: bool, pub section_number: u8, pub last_section_number: u8, pub transport_stream_id: u16, pub original_network_id: u16, pub segment_last_section_number: u8, pub last_table_id: u8, pub events: Vec<EitEvent>,
}
Expand description

Parsed DVB Event Information Table (ETSI EN 300 468 §5.2.4 Table 7).

The EIT carries chronological per-event metadata (start time, duration, running status, descriptors) for the services in a multiplex. It is carried on the fixed PID EIT_PID (0x0012) and distinguished from other tables by table_id:

  • 0x4E — present/following events on the actual TS.
  • 0x4F — present/following events on other TSs.
  • 0x500x5F — event schedule on the actual TS.
  • 0x600x6F — event schedule on other TSs.

The section shares the 8-byte long-form PSI header (CRC-verified the same way as PAT/PMT/SDT) where service_id lives in the table_id_extension slot. After the header the body carries transport_stream_id (16) + original_network_id (16) + segment_last_section_number (8) + last_table_id (8), then a loop of EitEvent entries, then the CRC.

The service_id equals the corresponding PMT program_number for normal services, so an EIT lets the oxideav remux bluray:// path attach human-readable event names (via the per-event short_event_descriptor) and time ranges to each program.

Fields§

§service_id: u16

service_id (from table_id_extension).

§other_transport_stream: bool

true when the section describes other TSs (table_id 0x4F or 0x600x6F); false for the actual TS (0x4E / 0x500x5F).

§schedule: bool

true when the section is event-schedule information (0x500x6F); false for present/following (0x4E / 0x4F).

§table_id: u8

Raw table_id of the parsed section.

§version_number: u8

5-bit version_number.

§current_next_indicator: bool

current_next_indicator.

§section_number: u8

section_number.

§last_section_number: u8

last_section_number.

§transport_stream_id: u16

transport_stream_id.

§original_network_id: u16

original_network_id.

§segment_last_section_number: u8

segment_last_section_number — last section of this segment of the sub_table (equals last_section_number for unsegmented sub_tables).

§last_table_id: u8

last_table_id — the largest table_id used by this service’s sub_table (per §5.2.4 may differ per service).

§events: Vec<EitEvent>

Event entries carried in this section, in chronological order.

Implementations§

Source§

impl EventInformationTable

Source

pub fn is_eit_table_id(table_id: u8) -> bool

true when table_id is any of the four EIT classifications (0x4E, 0x4F, 0x500x5F, 0x600x6F).

Source

pub fn parse(section: &[u8]) -> Result<Self, TsError>

Parse a single EIT section. The slice must run from table_id through the CRC trailer (i.e. the pointer_field has already been skipped). Accepts any of the four EIT table_id classifications.

Trait Implementations§

Source§

impl Clone for EventInformationTable

Source§

fn clone(&self) -> EventInformationTable

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for EventInformationTable

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for EventInformationTable

Source§

fn default() -> EventInformationTable

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.