# ECP-0049: TS Ingest, CMAF Canonical (Enforcement) ## Why HDHomeRun (and many tuner stacks) output MPEG-TS. We still want first-class, native ingest of TS sources. Separately, the network needs a single canonical chunk container so that hashing, signing, verification, relaying, and multi-variant manifests stay consistent. That canonical container is CMAF (fMP4). This ECP clarifies the boundary so "CMAF-only" does not get misread as "no TS support". ## Decisions - TS is an **ingest input** format. - CMAF (fMP4) is the **only** on-disk and on-wire chunk container inside every.channel: - `init.mp4` + `segment_*.m4s` - HLS playlists (`index.m3u8`) are allowed only as a **local playback compatibility artifact**. - They must reference the CMAF fragments above; playlists are not network objects. ## Implementation Notes - `ec-node ingest hdhr|linux-dvb|ts|hls` reads whatever the source provides and normalizes to CMAF fragments. - `ec-moq::HlsWriter` is CMAF-only (no TS segment writer). ## Reversibility Medium. Reintroducing TS chunks later would require explicit opt-in and a new manifest/object mode, but the default remains CMAF.