pub struct PacketReassembler { /* private fields */ }Expand description
Per-PID T2-MI packet reassembler.
Accepts TS payload slices with PUSI state and emits complete T2-MI packets.
Implementations§
Source§impl PacketReassembler
impl PacketReassembler
Sourcepub fn feed(&mut self, payload: &[u8], pusi: bool)
pub fn feed(&mut self, payload: &[u8], pusi: bool)
Feed a TS payload slice with its PUSI state.
The reassembler is single-stream: the caller demultiplexes by PID
(typically 0x0006 data piping, or whatever the PMT assigns) and feeds
only the T2-MI PID’s payloads — one PacketReassembler per PID.
Per §6.1.1:
- If PUSI is set, byte 0 is
pointer_fieldindicating offset to next T2-MI packet. - T2-MI packets are packed back-to-back; a new one can start mid-payload.
- If PUSI is clear, continuation bytes extend the current packet.
Sourcepub fn pop_packet(&mut self) -> Option<Bytes>
pub fn pop_packet(&mut self) -> Option<Bytes>
Drain the next completed T2-MI packet.
Sourcepub fn drain_packets(&mut self) -> impl Iterator<Item = Bytes> + '_
pub fn drain_packets(&mut self) -> impl Iterator<Item = Bytes> + '_
Drain all pending packets.
Trait Implementations§
Source§impl Default for PacketReassembler
impl Default for PacketReassembler
Source§fn default() -> PacketReassembler
fn default() -> PacketReassembler
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for PacketReassembler
impl RefUnwindSafe for PacketReassembler
impl Send for PacketReassembler
impl Sync for PacketReassembler
impl Unpin for PacketReassembler
impl UnsafeUnpin for PacketReassembler
impl UnwindSafe for PacketReassembler
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more