Skip to content

docs(ts): an MPEG-TS guide with the evidence behind each claim - #8239

Merged
kixelated merged 5 commits into
mainfrom
quest/m1/ts-reliability/README
Nov 8, 2026
Merged

kixelated merged 5 commits into
mainfrom
quest/m1/ts-reliability/README

Conversation

@kixelated

@kixelated kixelated commented Nov 8, 2026 •

Copy link
Copy Markdown
Collaborator

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:
    • which mode to choose, as a side-by-side table
    • what the semantic import carries and refuses
    • how programs and PAT/PMT changes behave
    • what the export rebuilds
    • passthrough's contract: identity over the admitted interval, grouping, randomAccess, and pacing
    • acquisition: a MoQ group boundary is not a decoder acquisition point, especially in an MPTS
    • loss in both modes
  • Coverage table. Each claim links to its automated test and says when it runs: the Rust PR gate, nightly plus release PRs, or nightly only. A Not claimed list keeps the unmeasured cells explicit:
    • hardware IRDs and commercial analyzers
    • codecs the T-STD model has no parameters for
    • decoded content beyond H.264/H.265/AAC/MPEG-2 video
    • VBR sources
    • --program all through a relay
    • per-program passthrough
    • random datagram loss, which has a recipe but no CI step
    • physical-layer TR 101 290
  • The TS paragraphs moved out of doc/bin/cli.md instead of being repeated there, and srt.md, hang.md and moq-mux.md now link to the guide.
  • Fixed a stale line in test/ts/README.md. It said the T-STD model refuses MPEG-2 video and DVB E-AC-3, but compliance.py grades 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.
  • Deleted the quest and its links in quest/m1/README.md and 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 passed
  • just test ts: all checks pass, PCR accuracy 800/800 within 500 ns
  • just test ts --passthrough: pass, decoded content matches
  • just 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: pass

The 2026-11-07 nightly TS workflow passed every step, including the nightly-only lanes, on b5805859.

Other checks: just check origin/main and bun run check in doc/ (VitePress dead-link check) pass, and so does quest check --base origin/main.

Overlap

Choices made without asking

  • The guide lives at /bin/ts beside the CLI rather than under Concepts. import ts and export ts are CLI verbs, and SRT shares them.
  • The --follow/--stitch lifecycle stays in the CLI's "Retention and latency" section. Other pages link there, and the guide links to it rather than moving it.
  • Test links point at main on 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 review after each round.

  • Reviewer: Codex, gpt-6.1-sol, medium effort
  • Session: 01a1b9d2-a69f-7892-a0ed-3b65e2da98c2, round 1
  • Head: 7545e4a
  • Base: origin/main at 118cbb1
  • Score: 9/10, The 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.
  • Findings: none

kixelated and others added 2 commits November 7, 2026 17:20
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>
@kixelated kixelated changed the title TS fidelity and recovery docs(ts): an MPEG-TS guide with the evidence behind each claim Nov 8, 2026
…lagged

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated
kixelated marked this pull request as ready for review November 8, 2026 01:47
@coderabbitai

coderabbitai Bot commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You'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.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 1dedd949-c927-4252-8dd1-e4eb40cc0b27
Commits

Reviewing files that changed from the base of the PR and between 4b83dcd and 7545e4a.

Files selected for processing: 11

  • doc/.vitepress/config.ts
  • doc/bin/cli.md
  • doc/bin/srt.md
  • doc/bin/ts.md
  • doc/concept/hang.md
  • doc/lib/rs/moq-mux.md
  • quest/m1/README.md
  • quest/m1/ts-reliability/README.md
  • quest/m3/release/feature-review.md
  • quest/m3/ts-multi-program-restart.md
  • test/ts/README.md
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Share

@kixelated kixelated left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ No critical issues — one passthrough framing detail worth tightening.

Reviewed changes

  • New guide: doc/bin/ts.md covers 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 a just test ts* lane.
  • CLI trimmed: the MPEG-TS import, export, and passthrough paragraphs in doc/bin/cli.md now link into the guide instead of restating it.
  • Cross-links and nav: doc/bin/srt.md, doc/concept/hang.md, and doc/lib/rs/moq-mux.md point at the guide, and the page is added under moq-cli in doc/.vitepress/config.ts.
  • Harness README fix: test/ts/README.md now names MPEG-1 video, MPEG-4 part 2, and HEVC beyond Main/Main 10 as the profiles the T-STD model refuses, matching compliance.py; DVB E-AC-3 is graded.
  • Quest removal: quest/m1/ts-reliability/README.md is 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).

Pullfrog  | Fix all ➔ | Fix 👍s ➔ | View workflow run | Using deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

Comment thread doc/bin/ts.md Resolved
kixelated and others added 2 commits November 7, 2026 21:04

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ 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.md now says each passthrough frame runs from a clock-PID PCR to the next PCR or the next group start, matching Passthrough::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::Full path and the draft's #m2ts-groups rule.

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.

Pullfrog  | View workflow run | Using deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

@kixelated
kixelated added this pull request to the merge queue Nov 8, 2026
Merged via the queue into main with commit 033d7dc Nov 8, 2026
9 of 10 checks passed
@kixelated
kixelated deleted the quest/m1/ts-reliability/README branch November 8, 2026 06:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant