Skip to content

quest: plan a public texture readback and a bus source tap for the studio - #8027

Merged
kixelated merged 1 commit into
mainfrom
quest-plan/studio-consumers
Nov 6, 2026
Merged

kixelated merged 1 commit into
mainfrom
quest-plan/studio-consumers

Conversation

@kixelated

@kixelated kixelated commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Two quests for moq-dev/studio, which builds on moq through a submodule:

  • quest/m1/video-readback.md [S]: moq-video exposes its private render/export.rs Readback publicly, copying a wgpu texture into packed RGBA with no encoder probe. Consumer: the studio's Linux virtual camera (moq-dev/studio#9), held on it since 2026-11-02.
  • quest/m3/audio-strip-tap.md [S]: a moq_audio::bus caller reads one source's samples before its strip's delay, as Blocks with bus-clock positions. Consumer: the studio's clap-to-measure sync delay.

Decisions (maintainer, 2026-11-05)

  • Readback milestone: ✅ m1 (additive, consumer waiting since 2026-11-02) / m3
  • What moq-audio exposes for clap sync: ✅ a sample tap; the consumer detects onsets / an onset detector in moq-audio
  • Tap milestone: ✅ m3 / m1

Public API and wire impact

None in this PR (quests only). Both planned changes are additive.

Review

Codex gpt-6.1-sol (medium effort) via quest review --base origin/main, round 1, head 3c3ed79: no findings. quest check passes.

(Written by Claude Opus 5.5)

…udio

moq-dev/studio's Linux virtual camera needs moq-video's readback without an
encoder (m1), and its clap-to-measure sync needs a tap of one bus source's
samples with bus-clock positions (m3).

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

coderabbitai Bot commented Nov 6, 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 49 seconds.

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: 992e8ddd-ad83-457e-8cc9-642b982ad2e6
Commits

Reviewing files that changed from the base of the PR and between 6b79a60 and 3c3ed79.

Files selected for processing: 4

  • quest/m1/README.md
  • quest/m1/video-readback.md
  • quest/m3/README.md
  • quest/m3/audio-strip-tap.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 head: 3c3ed79ccc6b9a2a1d87f8d0a3439426c667005a.

No actionable correctness findings in this planning-only diff.

Direction: the split fits the existing implementation and named consumers. Exposing the shared readback without the encoder probe preserves one staging/mapping path; reading source samples before strip delay with bus-clock positions gives the studio the timing information it needs without putting clap detection into moq-audio. The m1/m3 placements match the milestone policy and recorded decisions.

Checked all four changed files against the milestone definitions, rs/moq-video/src/render/export.rs (including the existing readback test), rs/moq-audio/src/bus.rs (source delay, gain, block positions, and reader retention), and the studio consumer quests.

Coordination note: the pin-audio-tap.md link does not exist on studio's main yet; its matching quest is present in companion moq-dev/studio#64. Keep those planning changes coordinated.

Limits: static review through GitHub only. I did not run quest context, quest check, builds, or GPU/audio tests, and this review does not validate the future implementations.

@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

Reviewed the four-file, single-commit docs diff at 3c3ed79: two new quests and their milestone index entries.

  • quest/m1/video-readback.md — plans publishing the private render::export::Readback with an encoder-free constructor that yields tightly packed RGBA, reusing the staging pool, row unpadding, and mapping lifecycle. The claims match export.rs: the type is private, the cited GPU-gated test exists, Exporter::copy refuses a mismatched size or non-Rgba8Unorm texture, and the MIGRATE.md note is the right requirement.
  • quest/m3/audio-strip-tap.md — plans a pre-delay, pre-gain/mute source tap as Reader/Block with bus-clock positions. This matches bus.rs, where Source groups channels by Strip and applies delay then gain, Block::position is the bus clock, and Reader skips to the oldest retained block without stalling the bus.
  • Milestone indexes — quest/m1/README.md:62 and quest/m3/README.md:136 link the quests with titles matching their H1s, and both placements match the recorded maintainer decisions.

The one unresolved cross-repo reference, quest/m3/audio-strip-tap.md:28 to studio's pin-audio-tap.md, resolves with the open companion moq-dev/studio#64; the earlier review on this PR already noted that pairing.

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 6, 2026
Merged via the queue into main with commit 1d6f92e Nov 6, 2026
10 checks passed
@kixelated
kixelated deleted the quest-plan/studio-consumers branch November 6, 2026 15:55
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