Repository navigation
docs(ts): an MPEG-TS guide with the evidence behind each claim - #8239
Conversation
Quest-Claim: 384e9fa6e8c86072
Adds doc/bin/ts.md: which mode to choose, what the semantic import carries and refuses, passthrough's admitted-interval identity, acquisition, loss, and a coverage table linking every claim to its automated test and CI cadence, with unmeasured cells listed. The TS paragraphs move out of the CLI page rather than being repeated. Finishes quest/m1/ts-reliability. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lagged Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 24 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed 85c34d9.
No actionable findings. Separating semantic preservation from passthrough byte identity over the admitted interval gives users a useful mode-selection contract. The acquisition caveats avoid equating a group boundary with decoder readiness, and the loss section correctly distinguishes padded holes from skipped PCR slots. Decoder availability and the explicit unmeasured profiles keep the claims appropriately bounded.
The linked TS workflow separates its release-PR lanes from nightly-only timing/congestion runs as described. Targeted checks of the passthrough implementation, recovery/release tests and compliance model support the corresponding guide claims, including MPEG-2 and DVB E-AC-3 model coverage. Consolidating the former CLI prose into one guide is the right direction.
Verification limits: GitHub-only static review of the documentation changes, workflow wiring and targeted implementation/test evidence. I did not reproduce the reported test results, run the TS harness, build the docs, or validate hardware receivers or every profile independently. Rechecked open/non-draft state, full head and published reviews immediately before this COMMENT.
There was a problem hiding this comment.
ℹ️ No critical issues — one passthrough framing detail worth tightening.
Reviewed changes
- New guide:
doc/bin/ts.mdcovers mode choice, semantic import/export, program and PMT/PAT changes, passthrough identity and grouping, acquisition, loss, and an evidence table linking each claim to a Rust test or ajust test ts*lane. - CLI trimmed: the MPEG-TS import, export, and passthrough paragraphs in
doc/bin/cli.mdnow link into the guide instead of restating it. - Cross-links and nav:
doc/bin/srt.md,doc/concept/hang.md, anddoc/lib/rs/moq-mux.mdpoint at the guide, and the page is added under moq-cli indoc/.vitepress/config.ts. - Harness README fix:
test/ts/README.mdnow names MPEG-1 video, MPEG-4 part 2, and HEVC beyond Main/Main 10 as the profiles the T-STD model refuses, matchingcompliance.py; DVB E-AC-3 is graded. - Quest removal:
quest/m1/ts-reliability/README.mdis deleted and its remaining references are repointed at the guide.
I verified every test name in the evidence tables exists, every referenced harness flag exists in test/ts/run.sh, the PR/Nightly labels match the step gating in .github/workflows/ts.yml, the in-page and cross-page anchors resolve, and the source behavior behind the load-bearing claims (192/204-byte refusal, --program/--pcr-pid constraints, 2 s mux-rate window, 1 s PCR delay, clock-step republish, no SRT passthrough, moq play codec support).
deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏
… the cache bound Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
Re-reviewed the single paragraph corrected since the prior pullfrog review at 85c34d9.
- Frames end at group starts too:
doc/bin/ts.mdnow says each passthrough frame runs from a clock-PID PCR to the next PCR or the next group start, matchingPassthrough::packet. - Cache-bound group start: the group-start list now names the cut that keeps a long GOP from outgrowing the cache, matching the
Start::Fullpath and the draft's#m2ts-groupsrule.
The applied text matches rs/moq-mux/src/container/ts/passthrough.rs and its doc block; the prior inline thread on this paragraph is resolved. No new findings.
deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

Finishes quest/m1/ts-reliability/README.md, the epic's own remaining work now that its last child (moq-dev/moq#8200) has merged.
Summary
doc/bin/ts.md, a new MPEG-TS guide (under moq-cli in the nav) covering:randomAccess, and pacing--program allthrough a relaydoc/bin/cli.mdinstead of being repeated there, andsrt.md,hang.mdandmoq-mux.mdnow link to the guide.test/ts/README.md. It said the T-STD model refuses MPEG-2 video and DVB E-AC-3, butcompliance.pygrades both (MPEG-2 since its leak-method model, DVB E-AC-3 since moq-dev/moq#5758). What it actually refuses is MPEG-1 video, MPEG-4 part 2, and HEVC beyond Main/Main 10.quest/m1/README.mdand two m3 quests. Those m3 quests now point at the guide.Integration proof
Every claim in the Plan already had an automated test and a CI invocation from the children; this PR adds no test. On current
main(which includes moq-dev/moq#8200) I re-ran the claims locally:just rs test -p moq-mux --lib -E 'test(/container::ts::/)': 762 passedjust test ts: all checks pass, PCR accuracy 800/800 within 500 nsjust test ts --passthrough: pass, decoded content matchesjust test ts --passthrough --mpts: pass. Capture and source fail T-STD the same way, as the guide says passthrough does.just test ts-passthrough-capture: passThe 2026-11-07 nightly TS workflow passed every step, including the nightly-only lanes, on b5805859.
Other checks:
just check origin/mainandbun run checkindoc/(VitePress dead-link check) pass, and so doesquest check --base origin/main.Overlap
Choices made without asking
/bin/tsbeside the CLI rather than under Concepts.import tsandexport tsare CLI verbs, and SRT shares them.--follow/--stitchlifecycle stays in the CLI's "Retention and latency" section. Other pages link there, and the guide links to it rather than moving it.mainon GitHub by file and test name, not line numbers, so they survive edits.Models
Size: M
Implementer: Claude Code, claude-opus-5-5, high effort
Impact
Docs and quests only. No public API or wire change.
🤖 Generated with Claude Code
(Written by Claude Opus 5.5 with high effort)
Review
Rewritten by
quest reviewafter each round.01a1b9d2-a69f-7892-a0ed-3b65e2da98c2, round 1The documentation-only change clearly separates mode guarantees and coverage limits, with no actionable defects found against the implementation and CI configuration; builds and tests were not run, as instructed.