Repository navigation
fix(moq-mux): ts passthrough shifts onto the catalog clock - #5117
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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. |
|
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 13 minutes. View limit detailsLimit details: You’ve used all 4 included reviews currently available. Review configuration: ⚙️ Run configuration
📒 Files selected for processing (2)
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 |
|
Grok review of Fixes the Blocking: none. Non-blocking
The new test is a good one: the clock isn't moved, the first object lands at now, and every object gets one offset across a flagged jump. Verdict: MERGE (once CI is green) This is an automated review, not the maintainer's decision |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit: a7103ad
No concrete introduced bugs found in the full two-file diff and the surrounding timestamp, reservation, and container-writing paths.
Direction: retaining the reservation's Timebase and applying its constant shift after PCR interpolation and the monotonic guard is the appropriate small fix. It preserves group boundaries and discontinuity deltas without reopening Producer::anchor. Public signatures, TS payloads, and framing stay unchanged; shared-clock timestamp values intentionally shift. The new paused-time regression checks the fixed clock and the same offset on every object across a flagged jump.
Verification limits: static GitHub-only review; I did not run builds or tests. Check, Test, macOS, Windows, and Android are still running on this head, so build/test success remains unverified.
(Written by OpenAI)
|
Summary before merge of
(Written by Claude Opus 5.5) |
Problem
mainno longer compilesmoq-mux: #5003 (import ts --passthrough) and #5082 (importers shift onto a catalog clock already in use) crossed. Passthrough still callscatalog::Producer::anchor(timestamp), which #5082 made private and reshaped (E0624atcontainer/ts/passthrough.rs:622).Approach
Passthrough follows #5082's shared-clock rule like the other importers: it keeps its reservation's
Timebaseand shifts every object's PCR time through it. The first object (always a group start) anchors the offset: zero when it places the clock, so timestamps stay verbatim; otherwise it lands at now on the clock already in use, which never moves.The shift is one constant applied after the PCR timeline is built, so passthrough's invariants hold unchanged: timestamps never step back, objects carry PCR time, and a flagged forward jump adds its step. Module docs say where the shift applies.
New test
an_import_shifts_onto_a_clock_already_in_use: a capture takes the clock, then a feed an hour in (with a flagged 20 s jump) imports onto it. The clock is unchanged, the first object lands at now, and every object equals the verbatim import shifted by one offset. It fails with the shift removed. The passthrough suite andts_passthrough_crosses_a_relay_through_a_flagged_jumppass.Impact
ts::Passthroughonto a catalog whose clock is already in use (taken, published, orConfig::with_clock) now shifts its timestamps onto that clock instead of re-anchoring it, like every other importer since feat(mux)!: importers shift onto a catalog clock already in use #5082.moq import ts --passthrough) places a fresh clock, so its timestamps stay verbatim PCR time anddraft-lcurley-moq-mpegtsis unchanged.Alternatives
Producer::anchoragain: would reintroduce the clock-moving behavior feat(mux)!: importers shift onto a catalog clock already in use #5082 removed.Follow-ups
draft-lcurley-moq-mpegts(both thepeslane's "timestamped with its PTS" and m2ts's "PCR time") describes the verbatim case only; feat(mux)!: importers shift onto a catalog clock already in use #5082 left the demuxed lane's wording alone too. Worth a sentence if the drafts should cover a shared clock.🤖 Generated with Claude Code
(Written by Claude Opus 5.5)