pub struct SpliceInfoSection<'a> {
pub sap_type: u8,
pub protocol_version: u8,
pub encrypted_packet: bool,
pub encryption_algorithm: u8,
pub pts_adjustment: u64,
pub cw_index: u8,
pub tier: u16,
pub clear: Option<ClearPayload<'a>>,
pub encrypted_payload: Option<&'a [u8]>,
}Expand description
splice_info_section() — §9.6, Table 5.
Fields§
§sap_type: u82-bit sap_type (§9.6.1, Table 6); 0x3 = SAP type not specified.
protocol_version: u88-bit protocol_version (0 is the only valid value at present).
encrypted_packet: boolencrypted_packet flag (§9.6.1).
encryption_algorithm: u86-bit encryption_algorithm (§11.3, Table 29). Undefined when not
encrypted.
pts_adjustment: u6433-bit pts_adjustment (90 kHz ticks), added (wrapping) to every
pts_time in the message.
cw_index: u88-bit cw_index. Undefined when not encrypted.
tier: u1612-bit tier (§9.6.1); 0xFFF shall be ignored downstream.
clear: Option<ClearPayload<'a>>The clear command + descriptor loop, present when encrypted_packet
is false.
encrypted_payload: Option<&'a [u8]>The raw encrypted region (splice_command_type through E_CRC_32),
present when encrypted_packet is true. Not decrypted by this crate.
Implementations§
Source§impl<'a> SpliceInfoSection<'a>
impl<'a> SpliceInfoSection<'a>
Sourcepub fn new_clear(command: AnyCommand<'a>, descriptor_loop: &'a [u8]) -> Self
pub fn new_clear(command: AnyCommand<'a>, descriptor_loop: &'a [u8]) -> Self
Build a clear (unencrypted) section from a command and a raw descriptor
loop, with pts_adjustment/tier defaulted to zero / 0x3 sap_type.
Sourcepub fn descriptors(&self) -> SpliceDescriptorIter<'a> ⓘ
pub fn descriptors(&self) -> SpliceDescriptorIter<'a> ⓘ
Walk the splice descriptor loop, yielding typed
AnySpliceDescriptors. Empty
when the section is encrypted.
Sourcepub fn pts_adjustment_duration(&self) -> Duration
pub fn pts_adjustment_duration(&self) -> Duration
The pts_adjustment decoded to a Duration.
Sourcepub fn set_pts_adjustment_duration(&mut self, d: Duration) -> Result<()>
pub fn set_pts_adjustment_duration(&mut self, d: Duration) -> Result<()>
Set pts_adjustment from a Duration
(truncating to 90 kHz ticks). Errors if it exceeds the 33-bit range.
Sourcepub fn tier_is_ignored(&self) -> bool
pub fn tier_is_ignored(&self) -> bool
True if tier == 0xFFF, which downstream equipment shall ignore.
Trait Implementations§
Source§impl<'a> Clone for SpliceInfoSection<'a>
impl<'a> Clone for SpliceInfoSection<'a>
Source§fn clone(&self) -> SpliceInfoSection<'a>
fn clone(&self) -> SpliceInfoSection<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'a> Debug for SpliceInfoSection<'a>
impl<'a> Debug for SpliceInfoSection<'a>
impl<'a> Eq for SpliceInfoSection<'a>
Source§impl<'a> Parse<'a> for SpliceInfoSection<'a>
impl<'a> Parse<'a> for SpliceInfoSection<'a>
Source§impl<'a> PartialEq for SpliceInfoSection<'a>
impl<'a> PartialEq for SpliceInfoSection<'a>
Source§fn eq(&self, other: &SpliceInfoSection<'a>) -> bool
fn eq(&self, other: &SpliceInfoSection<'a>) -> bool
self and other values to be equal, and is used by ==.Source§impl<'a> Serialize for SpliceInfoSection<'a>
impl<'a> Serialize for SpliceInfoSection<'a>
Source§impl Serialize for SpliceInfoSection<'_>
impl Serialize for SpliceInfoSection<'_>
Source§type Error = Error
type Error = Error
Parse impl, but need not be).Source§fn serialized_len(&self) -> usize
fn serialized_len(&self) -> usize
serialize_into will write.