Skip to main content

dvb_si/carousel/
mod.rs

1//! DSM-CC data-carousel download protocol — ISO/IEC 13818-6 §7.2/§7.3 as
2//! profiled by DVB (TR 101 202 §4.6/§4.7.5, TS 102 006 SSU, TS 102 809).
3//!
4//! Layer cake: [`crate::tables::dsmcc::DsmccSection`] frames the sections
5//! (table_id 0x3B control / 0x3C data); this module types their payloads —
6//! [`UnMessage`] (DSI/DII) and [`DownloadDataBlock`] — and
7//! [`ModuleReassembler`] collects DDB blocks into complete modules.
8//!
9//! Wire layouts are documented in `docs/iso_13818_6_carousel.md` (with
10//! provenance notes — ISO/IEC 13818-6 itself cannot be vendored) and pinned
11//! against a live capture by the `carousel_fixture` integration test.
12
13pub mod biop;
14pub mod messages;
15pub mod reassembler;
16
17pub use biop::{
18    Binding, BiopMessage, BiopProfileBody, CarouselFs, CarouselObject, CompressedModuleDescriptor,
19    ConnBinder, DirectoryMessage, FileMessage, Ior, LiteComponent, LiteOptionsProfileBody,
20    ModuleInfo, NameComponent, NsapAddress, ObjectKind, ObjectLocation, ServiceGatewayInfo,
21    ServiceLocation, TaggedProfile, Tap,
22};
23pub use messages::{
24    Dii, DiiModule, DownloadDataBlock, Dsi, GroupInfo, GroupInfoIndication, UnMessage,
25};
26pub use reassembler::{Module, ModuleKey, ModuleReassembler, DEFAULT_MAX_MODULE_SIZE};