1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//! A MPEG2 Transport Stream (TS) packet decoder.
//!
//! This crate provides low-level decoding of 188-byte MPEG-TS packets and
//! reassembly into PES (Packetized Elementary Stream) packets and PSI sections
//! (PAT / PMT).
//!
//! # Core types
//!
//! | Type | Description |
//! |------|-------------|
//! | [`TsPacket`] | A single 188-byte transport stream packet |
//! | [`TsPacketDecoder`] | A [`tokio_util::codec::Decoder`] that reads `TsPacket`s from a byte stream |
//! | [`PesPacket`] | A reassembled elementary stream item (video, audio, PAT, PMT, etc.) |
//! | [`PacketizedElementaryStream`] | A `Stream` adapter that reassembles `TsPacket`s into `PesPacket`s |
//! | [`PesAssembler`] | A pull-based assembler — same logic, but driven by an async callback |
//!
//! # Stream-based usage
//!
//! Wrap any `AsyncRead` source with [`TsPacketDecoder`] via `FramedRead`, then
//! feed the packet stream into [`PacketizedElementaryStream`]:
//!
//!
//! # Pull-based usage
//!
//! If you don't have a `Stream` or need finer control, use [`PesAssembler`]
//! with an async callback that provides `TsPacket`s on demand:
//!
use ;
use ;
pub use *;
use *;
pub use *;
pub use ;
pub use *;