#[non_exhaustive]pub enum SignallingKind {
Bufs {
bufs: u16,
units: BufsUnit,
},
Tto {
tto_e: u8,
tto_m: u8,
tto_l: u8,
},
BufStat {
bufstat: u16,
units: BufsUnit,
},
Reserved(u32),
}Expand description
Decoded BUFS/TTO signalling — EN 302 755 Annex C, Table C.1.
The 11 prefix in the first ISSY byte selects one of two alternatives:
BUFS (buffer status) or TTO (time-to-output), indicated by bits [5:4].
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Bufs
BUFS — maximum size of the requested receiver buffer.
Fields: (bufs, units) where bufs is the 10-bit buffer status
and units is the 2-bit unit selector.
Tto
TTO — time-to-output (mantissa + exponent form).
The output time is TTO = (tto_m + tto_l / 256) * 2^tto_e
where tto_l is zero when ISCRshort is in use.
Fields
BufStat
BUFSTAT — actual receiver-buffer fill status (DVB-S2 only).
EN 302 307-1 Annex D Table D.1: selected by bits [5:4] = 0b10 (the
ISSY code range 0xE_XXXX). Same field layout as Self::Bufs — a
2-bit units selector and a 10-bit value (the number of filled bits,
scaled by units). Not used in DVB-T2, where EN 302 755 Annex C
reserves this code range (“shall not be transmitted in DVB-T2”) and
replaces it with Self::Tto; decoding it as BUFSTAT here is correct
for DVB-S2 streams and harmless for T2 (the range is not transmitted).
Fields
units: BufsUnit2-bit unit selector (EN 302 307-1 Annex D Table D.1; note S2 marks
0b11 reserved whereas T2’s BufsUnit::Kbits8 uses it).
Reserved(u32)
Reserved signalling type (bits [5:4] = 0b11).
Holds the low 20 bits of the signalling payload; the 2-bit kind
selector is not retained. This is a decode-only view — the wire bytes
live in Bbheader::issy_in_header and are serialized verbatim, so the
dropped selector does not affect round-trip fidelity.
Implementations§
Source§impl SignallingKind
impl SignallingKind
Sourcepub fn bufs_bits(&self) -> Option<u64>
pub fn bufs_bits(&self) -> Option<u64>
Decoded BUFS buffer size in bits, or None if this is not a BUFS variant.
bufs_bits = bufs × units.multiplier_bits()
See EN 302 755 Annex C Table C.1 + §BUFS/TTO semantics
(dvb-bbframe/docs/enums/en_302_755/bufs_unit.md).
§Note on encoders
Only decode accessors are provided. No set_* or from_* encoders are
added because the physical-value → mantissa/exponent TTO encoding is
lossy and the wire round-trip is already guaranteed by the existing
raw-field serialization in Bbheader. Use the raw-field constructors
(SignallingKind::Bufs { … } / SignallingKind::Tto { … }) for
encoding.
Sourcepub fn bufs_bytes(&self) -> Option<u64>
pub fn bufs_bytes(&self) -> Option<u64>
Decoded BUFS buffer size in bytes (integer floor), or None.
bufs_bytes = bufs_bits() / 8. Integer division is used: BUFS is a
maximum-size bound per the standard, so a floor is appropriate.
See EN 302 755 Annex C Table C.1 + §BUFS/TTO semantics
(dvb-bbframe/docs/enums/en_302_755/bufs_unit.md).
Sourcepub fn bufstat_bits(&self) -> Option<u64>
pub fn bufstat_bits(&self) -> Option<u64>
Decoded BUFSTAT fill status in bits, or None if this is not a BUFSTAT
variant (DVB-S2 only — EN 302 307-1 Annex D Table D.1).
bufstat_bits = bufstat × units.multiplier_bits()
Sourcepub fn bufstat_bytes(&self) -> Option<u64>
pub fn bufstat_bytes(&self) -> Option<u64>
Decoded BUFSTAT fill status in bytes (integer floor), or None.
Sourcepub fn tto_t_over_256(&self) -> Option<u64>
pub fn tto_t_over_256(&self) -> Option<u64>
Decoded time-to-output in units of T/256, or None if this is not a
TTO variant.
tto_t_over_256 = ((TTO_M × 256) + TTO_L) × 2^TTO_E
This is TTO × 256 in units of the elementary period T (see EN 302
755 §9.5 / Table 65). The TTO_L / 256 fractional term is preserved
exactly without floating point; consumers divide by 256.0 to obtain
TTO in units of T.
Per EN 302 755 Annex C Table C.1 + §8.3.3
(dvb-bbframe/docs/enums/en_302_755/bufs_unit.md).
Trait Implementations§
Source§impl Clone for SignallingKind
impl Clone for SignallingKind
Source§fn clone(&self) -> SignallingKind
fn clone(&self) -> SignallingKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SignallingKind
Source§impl Debug for SignallingKind
impl Debug for SignallingKind
Source§impl Display for SignallingKind
impl Display for SignallingKind
impl Eq for SignallingKind
Source§impl PartialEq for SignallingKind
impl PartialEq for SignallingKind
Source§impl Serialize for SignallingKind
Available on crate feature serde only.
impl Serialize for SignallingKind
serde only.