Skip to content

chore(quest): fold in the review findings the m0 replans merged past - #3350

Merged
kixelated merged 5 commits into
mainfrom
quest/review-followups
Sep 2, 2026
Merged

chore(quest): fold in the review findings the m0 replans merged past#3350
kixelated merged 5 commits into
mainfrom
quest/review-followups

Conversation

@kixelated

Copy link
Copy Markdown
Collaborator

#3346, #3347, and #3349 merged while their last review findings were still being addressed. These are the fixes for the findings that stand; each was verified against the code before editing.

  • Open GOP (chore(quest): plan the MPEG-TS and open-GOP quests #3346): the tests now include a latency skip into a later GOP, since an implementation that only trims the initial group would pass otherwise; and recovery_frame_cnt > 0 gets its own quest, quest/m0/open-gop-gradual-recovery.md, instead of a sentence that vanishes when the parent is deleted.
  • Audio gap and ladder (chore(quest): plan the transcode ladder and audio gap quests #3347): the gap tolerance keys on timestamp quantization rather than half a codec frame, because Opus packets vary from 2.5 ms to 60 ms and a half-frame rule from a 20 ms neighbour splices across a lost 2.5 ms packet. The encode::Producer skipped() correction is replaced by a pin: the producer already anchors to its first input and Resampler::process drops the startup delay, so subtracting it would shift PTS early. The ladder test now proves moq play reselects a rung.
  • GStreamer, libmoq, OBS (chore(quest): plan the GStreamer, libmoq, and OBS quests #3349): catalog finality is expressed by the hang publisher rejecting with NotFound, keeping moq-net's documented Dropped semantics for requests lost to failures; the C smoke client drains every callback registration before returning, since the consume registrations retain the stack context past session close; and a pad joining a new moqsink generation replays its sticky caps and rebuilds its producer before the first buffer, or push_buffer drops it.

quest check passes.

🤖 Generated with Claude Code

(written by Claude Fable 5.1)

kixelated and others added 3 commits September 2, 2026 14:10
Address the remaining review findings on #3346: the open-GOP tests now
include a latency skip into a later GOP, and the recovery_frame_cnt > 0
case gets its own quest instead of a sentence that would vanish with the
parent.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…e encoder epoch

Address the remaining review findings on #3347: a half-frame tolerance
cannot detect a lost 2.5 ms Opus packet after a 20 ms one, so the gap
policy keys on timestamp quantization; the encoder already anchors to its
first input and the resampler drops its own startup delay, so the skipped()
correction is replaced by a pin; and the ladder test now proves moq play
reselects a rung.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…s on flush

Address the remaining review findings on #3349: catalog finality is
expressed by the hang publisher rejecting with NotFound rather than by
moq-net folding it into the drop path; the smoke client drains every
callback registration before returning; and a pad joining a new moqsink
generation replays its sticky caps and rebuilds its producer before the
first buffer.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 3 minutes.

Check out review usage here.

View limit details

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

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: f3dcae39-5911-4098-b62b-eafe61cba03a

📥 Commits

Reviewing files that changed from the base of the PR and between dceb147 and 133263b.

📒 Files selected for processing (8)
  • quest/m0/2676-libmoq-process-exit-can-abort-in-glibcs-pthread-tpp.md
  • quest/m0/2799-moq-video-capture-negotiates-twice-so-a-window-resize.md
  • quest/m0/2981-moq-audio-nothing-in-the-decode-or-playback-path-models-a.md
  • quest/m0/3115-moqsink-the-publication-has-no-generation-so-a-flush.md
  • quest/m0/3139-moqsrc-a-rendition-nobody-answers-keeps-the-session-alive.md
  • quest/m0/README.md
  • quest/m0/open-gop-gradual-recovery.md
  • quest/m0/open-gop-leading-pictures.md

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

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-02T21:22:47.523000Z 133263b New commits
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

…play

Codex review on #3350: a gradual refresh needs every picture from the
recovery point decoded to build the recovery picture's references, so the
consumer suppresses presentation rather than skipping input, and finds the
recovery picture by frame_num progression per H.264 D.2.8 and RFC 6184.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1ae934eb50

ℹ️ 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".

Comment thread quest/m0/open-gop-gradual-recovery.md Outdated
Comment on lines +23 to +24
- On the first group after a non-continuous transition, the consumer skips
every picture until the recovery picture, in JS and in the Rust decode path,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Feed gradual-recovery frames to the decoder before trimming

When recovery_frame_cnt > 0, recovery depends on decoding the access unit carrying the SEI and the intervening pictures so they can rebuild reference state. In the inspected JS path, the container consumer is upstream of VideoDecoder, so implementing this instruction by skipping those encoded pictures prevents the decoder from reaching the advertised recovery point. Feed them into the decoder and suppress their decoded output until recovery instead, retaining the recovery picture itself as the first safe output. Because this quest's Plan is implementation guidance, the distinction needs to be explicit here.

AGENTS.md reference: quest/AGENTS.md:L43-L45

Useful? React with 👍 / 👎.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@kixelated
kixelated enabled auto-merge (squash) September 2, 2026 21:18
@kixelated
kixelated merged commit 17d5652 into main Sep 2, 2026
2 checks passed
@kixelated
kixelated deleted the quest/review-followups branch September 2, 2026 21:22

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 133263b7c4

ℹ️ 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".

Comment on lines +9 to +11
unsafe pictures sit at or after the keyframe timestamp. Recovery points with
`broken_link_flag` set are out of scope: there even a continuous viewer must
withhold display (H.264 D.2.8), which is a different rule with its own plan.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Track the excluded broken-link recovery case

When an H.264 stream sets broken_link_flag, this text identifies a separate correctness bug affecting continuous viewers but leaves it out of scope while claiming it has its own plan. A search of quest/ at this commit finds no other mention of the flag, so completing and deleting the two open-GOP quests would lose this known work. Add a separate related quest, or include the flag in this quest's recovery metadata and display rules. (Written by GPT-5.6 Sol)

AGENTS.md reference: AGENTS.md:L98-L104

Useful? React with 👍 / 👎.

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