Audio render-hook: document the echo fix (M1-M4 done, M5 manual)

- README: audio mirror is now the injected render-hook with process-loopback as
  automatic fallback; update Architecture/Limitations/Status/Roadmap and the
  manual run step (Source indicator + render-stream table). Add tests
  (audio_ring_test, audio_hook_test) and a lessons-learned note on COM vtable
  indices (IAudioClient::GetService is 14, not 13).
- plan doc: mark M1-M4 implemented/committed, M5 (real-game end-to-end) pending,
  and record the GetService index correction.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-19 14:21:38 +02:00
parent 31390d8c15
commit 2f1c036320
2 changed files with 50 additions and 14 deletions

View File

@@ -1,7 +1,12 @@
# Plan: fix the local audio echo via an injection render-hook (Option B)
Status: **scoped, not started.** This document is the green-lit design; implement
against it.
Status: **implemented (M1–M4), pending manual end-to-end (M5).** Milestones 1–4
below are built, committed, and covered by `audio_ring_test` + `audio_hook_test`
(in-process). The remaining step is M5: confirm in a real game with a guest that
there's no local echo, the guest still hears audio, and the stream count reads
correctly. This document is the green-lit design; the only correction applied
during implementation was the `IAudioClient::GetService` vtable index (14, not
13 — `SetEventHandle` is 13).
## Problem