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
//! CEA-608 / CEA-708 caption **decode** — the meaning of the caption byte pairs
//! that the [`crate::CcData`] carriage demuxes out of `cc_data()`.
//!
//! This layer sits above the carriage ([ETSI TS 101 154 Table B.9](crate)) and
//! interprets the line-21 (CEA-608) and DTVCC (CEA-708) byte streams into a
//! caption screen / window model whose displayed text can be extracted.
//!
//! - [`Cea608Decoder`] — fed the 608 byte-pairs (`cc_type` 0 = field 1, 1 =
//! field 2). Decodes the line-21 control-code state machine per ANSI/CTA-608-E
//! (`dvb-cc/docs/decode/cea608-decode.md`): pop-on (RCL/EOC), roll-up
//! (RU2/RU3/RU4/CR), paint-on (RDC), PACs, mid-row codes, the standard /
//! special / extended Western-European character sets, tab offsets, the four
//! data channels CC1–CC4, with control-code doubling and field-2 XDS skip.
//! - [`Cea708Decoder`] — fed the DTVCC `cc_data` bytes. Reassembles caption
//! channel packets, parses service blocks, and runs the C0/C1/G0/G1/G2/G3
//! command interpreter — the window and pen model — per ANSI/CTA-708-E
//! (`dvb-cc/docs/decode/cea708-decode.md`) and the 47 CFR §79.102 conformance
//! model (`cea708-conformance.md`). Exposes the six services' window text.
//!
//! The shared caption display model — typed colour / opacity / edge / font
//! enumerations ([`Color`], [`Opacity`], [`EdgeType`], [`FontStyle`], …) — is
//! re-exported here, per the conformance model.
//!
//! Decoders are **one-way** (bytes → caption state) and **panic-free** on
//! arbitrary input: malformed / truncated / over-length byte streams are ignored
//! rather than panicking.
pub use ;
pub use ;
pub use ;