Repository navigation
quest: plan a public texture readback and a bus source tap for the studio - #8027
Conversation
…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>
|
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 49 seconds. 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. |
kixelated
left a comment
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
✅ 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 privaterender::export::Readbackwith an encoder-free constructor that yields tightly packed RGBA, reusing the staging pool, row unpadding, and mapping lifecycle. The claims matchexport.rs: the type is private, the cited GPU-gated test exists,Exporter::copyrefuses a mismatched size or non-Rgba8Unormtexture, and theMIGRATE.mdnote is the right requirement.quest/m3/audio-strip-tap.md— plans a pre-delay, pre-gain/mute source tap asReader/Blockwith bus-clock positions. This matchesbus.rs, whereSourcegroups channels byStripand applies delay then gain,Block::positionis the bus clock, andReaderskips to the oldest retained block without stalling the bus.- Milestone indexes —
quest/m1/README.md:62andquest/m3/README.md:136link the quests with titles matching theirH1s, 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.
deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

Summary
Two quests for moq-dev/studio, which builds on moq through a submodule:
quest/m1/video-readback.md[S]: moq-video exposes its privaterender/export.rsReadbackpublicly, 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]: amoq_audio::buscaller reads one source's samples before its strip's delay, asBlocks with bus-clock positions. Consumer: the studio's clap-to-measure sync delay.Decisions (maintainer, 2026-11-05)
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 checkpasses.(Written by Claude Opus 5.5)