Skip to main content

Indicator

Enum Indicator 

Source
#[non_exhaustive]
pub enum Indicator {
Show 28 variants TsSyncLoss, SyncByteError, PatError2, ContinuityCountError, PmtError2, PidError, TransportError, CrcError, PcrRepetitionError, PcrDiscontinuityError, PtsError, CatError, NitError, SiRepetitionError, UnreferencedPid, SdtError, EitError, RstError, TdtError, EitPfError, NitOtherError, SdtOtherError, EitOtherError, SiMinGapError, PcrAccuracyError, BufferError, EmptyBufferError, DataDelayError,
}
Expand description

A TR 101 290 measurement indicator.

#[non_exhaustive] — additional Priority-3 variants may be added later.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

TsSyncLoss

TR 101 290 v1.4.1 Table 5.0a indicator 1.1 — loss of synchronisation with hysteresis.

§

SyncByteError

TR 101 290 v1.4.1 Table 5.0a indicator 1.2 — sync_byte not equal 0x47.

§

PatError2

TR 101 290 v1.4.1 Table 5.0a indicator 1.3.a — PAT_error_2.

§

ContinuityCountError

TR 101 290 v1.4.1 Table 5.0a indicator 1.4 — Continuity_count_error.

§

PmtError2

TR 101 290 v1.4.1 Table 5.0a indicator 1.5.a — PMT_error_2.

§

PidError

TR 101 290 v1.4.1 Table 5.0a indicator 1.6 — PID_error.

§

TransportError

TR 101 290 v1.4.1 Table 5.0b indicator 2.1 — Transport_error.

§

CrcError

TR 101 290 v1.4.1 Table 5.0b indicator 2.2 — CRC_error.

§

PcrRepetitionError

TR 101 290 v1.4.1 Table 5.0b indicator 2.3a — PCR_repetition_error.

§

PcrDiscontinuityError

TR 101 290 v1.4.1 Table 5.0b indicator 2.3b — PCR_discontinuity_indicator_error.

§

PtsError

TR 101 290 v1.4.1 Table 5.0b indicator 2.5 — PTS_error.

§

CatError

TR 101 290 v1.4.1 Table 5.0b indicator 2.6 — CAT_error.

§

NitError

TR 101 290 v1.4.1 Table 5.0c indicator 3.1 — NIT_error (bad table_id on PID 0x0010 + NIT_actual absence).

§

SiRepetitionError

TR 101 290 v1.4.1 Table 5.0c indicator 3.2 — SI_repetition_error (maximum interval dimension).

§

UnreferencedPid

TR 101 290 v1.4.1 Table 5.0c indicator 3.4 — Unreferenced_PID: a PID persists longer than the presence threshold without being referenced by the PAT/CAT/a PMT or one of the well-known SI PIDs.

§

SdtError

TR 101 290 v1.4.1 Table 5.0c indicator 3.5 — SDT_error (bad table_id on PID 0x0011 + SDT_actual absence).

§

EitError

TR 101 290 v1.4.1 Table 5.0c indicator 3.6 — EIT_error (bad table_id on PID 0x0012 + EIT P/F actual absence).

§

RstError

TR 101 290 v1.4.1 Table 5.0c indicator 3.7 — RST_error (bad table_id on PID 0x0013).

§

TdtError

TR 101 290 v1.4.1 Table 5.0c indicator 3.8 — TDT_error (bad table_id on PID 0x0014 + TDT absence).

§

EitPfError

TR 101 290 v1.4.1 Table 5.0c indicator 3.6.c — EIT_PF_error: if either section (‘0’ P or ‘1’ F) of an EIT P/F sub-table is present, both should exist.

§

NitOtherError

TR 101 290 v1.4.1 Table 5.0c — NIT_other_error (3.1.b): interval between sections with the same section_number and table_id = 0x41 on PID 0x0010 longer than 10 s.

§

SdtOtherError

TR 101 290 v1.4.1 Table 5.0c — SDT_other_error (3.5.b): interval between sections with the same section_number and table_id = 0x46 on PID 0x0011 longer than 10 s.

§

EitOtherError

TR 101 290 v1.4.1 Table 5.0c — EIT_other_error (3.6.b): interval between EIT P/F other sections with the same section_number and table_id = 0x4F on PID 0x0012 longer than 10 s.

§

SiMinGapError

TR 101 290 v1.4.1 Table 5.0c — min-gap violation: two sections of the same (table_id, section_number) occurred closer together than the specified minimum interval (25 ms per Table 5.0c rows 3.1.a, 3.2, 3.5.a, 3.6.a, 3.7, 3.8).

§

PcrAccuracyError

TR 101 290 v1.4.1 Table 5.0b indicator 2.4 — PCR_accuracy_error.

Not implemented: requires hardware arrival timing with ±500 ns resolution (ISO/IEC 13818-1 §2.4.2.2). A packet-index-derived arrival estimate cannot honestly resolve 500 ns, and a false positive is worse than a gap (c.f. the withdrawn PtsCheck). This variant exists for documentation completeness only and is never emitted by the monitor.

§

BufferError

TR 101 290 v1.4.1 Table 5.0c indicator 3.3 — Buffer_error.

Currently checks TB_buffering_error (overflow of transport buffer TBn, 512 bytes per ISO/IEC 13818-1 §2.4.2.3) and TBsys_buffering_error (overflow of TBsys, 512 bytes). The remaining sub-checks — MB_buffering_error, EB_buffering_error, B_buffering_error, Bsys_buffering_error — require codec-dependent buffer sizes from descriptors (multiplex_buffer_descriptor, smoothing_buffer_descriptor) and are deferred until the monitor parses those descriptors.

§

EmptyBufferError

TR 101 290 v1.4.1 Table 5.0c indicator 3.9 — Empty_buffer_error.

Checks that TBn (transport buffer for each elementary stream) and TBsys (system-information transport buffer) are empty at least once per second. The MBn check (multiplexing buffer, leak method) is deferred — it requires the full MBn buffer model with leak-rate parameters from descriptors.

§

DataDelayError

TR 101 290 v1.4.1 Table 5.0c indicator 3.10 — Data_delay_error.

Checks that data delay through the T-STD transport buffers (TBn, TBsys) does not exceed 1 second (60 s for still-picture video). The full end-to-end delay through MBn/EBn/Bn is not modelled (deferred — see Buffer_error doc).

Implementations§

Source§

impl Indicator

Source

pub fn priority(self) -> Priority

The priority tier this indicator belongs to.

Source

pub fn name(self) -> &'static str

Verbatim indicator name from the TR 101 290 tables.

Source

pub fn clause(self) -> &'static str

Clause citation from the spec.

Trait Implementations§

Source§

impl Clone for Indicator

Source§

fn clone(&self) -> Indicator

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 Copy for Indicator

Source§

impl Debug for Indicator

Source§

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

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

impl Display for Indicator

Source§

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

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

impl Eq for Indicator

Source§

impl Hash for Indicator

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Indicator

Source§

fn eq(&self, other: &Indicator) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for Indicator

Available on crate feature serde only.
Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Indicator

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> DescriptorObject for T
where T: Debug + Any + Send + Sync + Serialize,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Borrow as &dyn Any so the caller can downcast to the concrete type.
Source§

impl<T> ExtensionObject for T
where T: Debug + Any + Send + Sync + Serialize,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Borrow as &dyn Any so the caller can downcast to the concrete type.
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> Serialize for T
where T: Serialize + ?Sized,

Source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

Source§

fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>

Source§

impl<T> TableObject for T
where T: Debug + Any + Send + Sync + Serialize,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Borrow as &dyn Any so the caller can downcast to the concrete type.
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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.