Repository navigation
refactor(mux)!: remove export ts --sync - #6554
Conversation
`--sync` rebuilt byte-identical TS legs on a remuxed output so a downstream ST 2022-7 receiver could merge two exports. It only held within one publisher epoch, so it never covered failover between independent publishers, and `export ts --passthrough` already emits identical bytes on every leg. Meanwhile every TS feature (PMT revisions, restarts, H.265, reordered video) needed a second, leg-identical implementation. Removes the lanes, the counted decode clock, the H.264 buffering-period SEI anchor, the `overruns` and `late` release stats, the flag, its docs, and the sync-only quests (deterministic legs, H.265 anchor, RTP egress, restart tail, synced PMT revisions). 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 23 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. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 20936f19d8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Drops the sync hunks #6276 added to lane.rs and the TS export's rendition move, its synced_legs_agree_after_a_move test, and the ts-restart-gap-burst quest, whose gap slots belong to the removed synced grid. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Merge summary:
(Written by Claude Opus 5.5) |
|
Merge triage: head 1b208af is clean, all 10 checks pass, the Codex thumbs-up landed after the last commit, and there are no unresolved threads. (Written by Claude Sonnet 5.5) |
Main removed `export ts --sync` (#6554), so the counted clock, its tests and the sync docs go; the declared clock and its legs test stay, the latter on a B-pyramid Live re-added to the timing harness. Drop the inferred-clock-bound follow-up quest, which #6417 delivers, and unblock encoder-reorder. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Problem
moq export ts --sync(moq-dev/moq#5949) rebuilds byte-identical TS legs on a remuxed output, so a downstream SMPTE ST 2022-7 receiver could merge two exports. It costs more than it buys:--stitchprogram switch either way.export ts --passthroughwrites the source's packets unchanged, so two exporters emit the same bytes. That's the mode for 2022-7-style output.export ts --sync#5949 (+2.9k), moq-dev/moq#6542 (+1.3k, synced PMT revisions), moq-dev/moq#6304 (+1.5k, RTP egress) and three more quests (H.265 anchor, restart tail, PMT). It still has documented gaps (overruns, undeclared reorder depth, SI revisions), and needs about 20% rate headroom.Demux mode keeps failover with an explicit discontinuity. A same-epoch route failover stays hitless within
--delay.Change
Export::with_sync,lane.rs, the synced schedule grid,DecodeClock::pop_counted/discard,Reorder::{fields, pictures, MAX_DEPTH}, and the H.264 buffering-period SEI parser (initial_cpb_removal_delay). The reorder delay stays capped byMAX_REORDER, soMAX_DEPTHwas only there for frame counting.overrunsandlateexport release stats.export ts --sync#5949 factored out, which the plain export uses.doc/bin/cli.mdsection, and the stats rows.ts-hitless,ts-hitless-h265,ts-rtp-egress,ts-sync-restart-tail,ts-restart-gap-burst,pmt-export), and updatesdecode-order, which citedpop_counted.two_legs_render_a_skip_the_same_way, an ignored test waiting on the deterministic-legs follow-up, andsynced_legs_agree_after_a_movewith the sync hunks moq-dev/moq#6276 added to the rendition move.Public API and wire impact
moq_mux::container::ts::Export::with_syncandstats::Release::{overruns, late}are removed. CLI:moq export ts --syncis removed. None of these were in a crate release, so there are noMIGRATE.mdentries.overrunsorlate(both were--synconly).Follow-ups
lane.rs/decode.rsand will need to drop its sync hunks when it merges main.Checks
just check: Rust (3674, 518 and 225 tests) and JS pass, along with quest, markdown and shell lint. Interop was not run, since nothing in the wire, ffi or gateways changed.(Written by Claude Opus 5.5)
🤖 Generated with Claude Code