#479 (Enhanced RTMP, SCTE 104) and #483 (SRT, RIST) both extend
joule-moq-ingest; both ingests are kept whole, on one set of types:
- frame.rs: one Codec with both sides' codecs (HEVC, VVC, AAC, FLAC; ALL is
nine), #479's WEBRTC constant and Option-returning to_str0m, #483's webrtc()
and aac_header; one Header whose audio rate is #479's `rate` (#483 called it
`samplerate`; its uses are renamed); unframe keeps #483's whole-ADTS check
for AAC; the module text names both ingests' codecs.
- package.rs: one packager. HEVC and VVC take an Enhanced RTMP track's hint, and
from a transport stream (no hint) the header or a default, as #483 did; AAC's
first header is its ADTS header where there is no hint (#483) and the hint's
otherwise (#479).
- catalog.rs: #479's (name per entry; the rate as above); contrib.rs's catalog
entry now names its layer, as #479 made every entry do.
- config.rs, gateway.rs (routes, the Gateway's fields and methods, the server's
listeners, srt_task and shutdown), rtc.rs, lib.rs, gateway.example.toml, the
README and live-ingest's status, header and test account: both sides.
- tests/common: watch_kinds -> watch_layers (#479) -> watch_tracks (#483),
one subscriber; Watched.layer is the track name where it is a number.
tests/ertmp.rs imports common::rtmp::adts by name, since common now has
#483's adts too.
- joule-code-conformance.yml's paths, the live-conformance README; CHANGELOG,
#483's entry on top.
cargo check --locked --all-targets of joule-moq-ingest (with rist),
joule-contrib (with rist), joule-moq-relay and joule-moq passes.
Co-Authored-By: Claude Opus 5.5 <[email protected]>