From 2ffbf2abf0f565a036c1d2116b202619b60a9a32 Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Sat, 7 Nov 2026 09:12:54 -0800 Subject: [PATCH 1/2] quest: plan replay A/V sync, a follow-up of #93 Co-Authored-By: Claude Opus 5.5 --- quest/m0/README.md | 1 + quest/m0/replay-av-sync.md | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 quest/m0/replay-av-sync.md diff --git a/quest/m0/README.md b/quest/m0/README.md index df2f8742..04d08c13 100644 --- a/quest/m0/README.md +++ b/quest/m0/README.md @@ -101,6 +101,7 @@ repository. - [Virtual camera](/quest/m0/vcam/README.md) - the program or a published scene exposed as a system camera on Linux, Windows, and macOS - [Browser sources on the GPU under Mesa](/quest/m0/cef-headless.md) - shared-texture pages paint on Intel and AMD under Wayland, and a page that cannot paint fails loudly - [The UI keeps its frame rate while the program renders](/quest/m0/ui-frame-rate.md) - the editor draws without waiting on the program's render +- [A replay's sound plays with its pictures](/quest/m0/replay-av-sync.md) - replay sources write a bus latency ahead, as media and broadcast sources do - [The Apple signing identity is available](/quest/m0/signing.md) - the Apple credentials packaging and the macOS camera need; Windows ships unsigned - [Packaging](/quest/m0/packaging.md) - a signed macOS app, a Windows installer, and a Flatpak for Linux - [The persistable portal restore token is pinned](/quest/m0/pin-portal-token.md) - moq-video's restore token, for Wayland sources diff --git a/quest/m0/replay-av-sync.md b/quest/m0/replay-av-sync.md new file mode 100644 index 00000000..be34a706 --- /dev/null +++ b/quest/m0/replay-av-sync.md @@ -0,0 +1,20 @@ +# [S] A replay's sound plays with its pictures + +## Goal + +A replay source's sound plays in step with its own pictures in every output +(program, published scenes, recordings, and Listen), instead of a bus +latency (50 ms) behind them. + +## Plan + +From [moq-dev/studio#93](https://github.com/moq-dev/studio/pull/93), picked +2026-11-07 (maintainer away under /afk, recommended option), m0 by the rule +that fixes join m0. + +#93 moved media file sources to write their sound a bus latency ahead +through `playout::Writer`, with their pictures handed over at the same lead +and shown when due. Replay sources still write their sound when it is due, +so the bus mixes it 50 ms late. Apply the same fix (a replay has no loop to +handle) and test it the way #93's `a_media_files_sound_plays_with_its_pictures` +does. From da39db4abbcf8aa79e46b5ffe84ca5b96c34929c Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Sat, 7 Nov 2026 10:08:34 -0800 Subject: [PATCH 2/2] quest: replay sync is about normal speed Co-Authored-By: Claude Opus 5.5 --- quest/m0/replay-av-sync.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/quest/m0/replay-av-sync.md b/quest/m0/replay-av-sync.md index be34a706..b3d5a397 100644 --- a/quest/m0/replay-av-sync.md +++ b/quest/m0/replay-av-sync.md @@ -4,7 +4,8 @@ A replay source's sound plays in step with its own pictures in every output (program, published scenes, recordings, and Listen), instead of a bus -latency (50 ms) behind them. +latency (50 ms) behind them. This is about replays at normal speed; a slowed +replay stays silent, as it is today. ## Plan