Skip to main content

Crate dvb_stream

Crate dvb_stream 

Source
Expand description

Async/tokio stream adapters for DVB SI and T2-MI processing.

This crate wraps the synchronous dvb_si::demux::SiDemux and dvb_t2mi::pump::T2miPump as futures_core::Stream implementations, quarantining tokio and futures-core away from the parser crates.

§Streams

Both streams are also constructable from a UDP multicast socket (the dominant real-world DVB transport) via the bind_multicast constructor when the udp feature is enabled.

§Ownership and cancellation

The adapter owns the read buffer and feeds bytes into the synchronous pump on each poll_next call. Events are buffered in a small per-packet queue and drained before the next read is attempted. There are no internal tasks or spawning; cancellation is simply dropping the stream.

§188-byte TS framing and resync

The adapter reads raw bytes from the AsyncRead source and performs 188-byte TS packet alignment via a sync-byte (0x47) resync on the read buffer. The resync logic is implemented once in resync and shared by both streams.

§Feature flags

FeatureDefaultDescription
udponUDP/multicast constructors (bind_multicast) via tokio::net::UdpSocket.

§MSRV

dvb-stream 1.81 (mirrors the workspace). This crate is versioned and released independently from the dvb-si / dvb-t2mi lockstep because tokio’s own MSRV moves faster.

Re-exports§

pub use section_stream::SectionStream;
pub use t2mi_stream::T2miEventStream;

Modules§

resync
TS byte-stream resynchronisation helpers for dvb-stream.
section_stream
SectionStream — async futures_core::Stream of owned SI section events.
t2mi_stream
T2miEventStream — async futures_core::Stream of owned T2-MI events.

Structs§

ResyncStats
Statistics tracking resynchronisation events and discarded bytes in a TS byte stream.