Add remote microphone passthrough (Steam Streaming Microphone)#247
Add remote microphone passthrough (Steam Streaming Microphone)#247logabell wants to merge 8 commits into
Conversation
Use BOOST_MIN_VERSION and BOOST_FETCH_VERSION consistently in find_package and FetchContent after the partial rename on this branch. Set NPM from node.exe and npm-cli.js on Windows so the web-ui target invokes npm correctly.
Expose audio_control_t helpers needed by the mic backend factory and rename apollo_vmic to vibepollo_vmic for upstream branding.
Move Remote Microphone below the action cards, poll audio-debug less aggressively when idle, stop logging those requests, and remove the loading placeholder.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 020069266e
ℹ️ 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".
| find_file(NPM_CLI npm-cli.js | ||
| PATHS | ||
| "${CMAKE_PREFIX_PATH}" | ||
| "C:/msys64/ucrt64/lib/node_modules/npm/bin" | ||
| REQUIRED) |
There was a problem hiding this comment.
Restore npm lookup for standard Windows Node installs
Avoid hard-failing on npm-cli.js discovery in only CMAKE_PREFIX_PATH and C:/msys64/...: with a typical Node installer (C:\Program Files\nodejs), npm-cli.js lives under node_modules/npm/bin and this find_file() call does not search that nested path, so CMake configure fails before any build starts on many Windows hosts. This regresses source builds that previously worked via find_program(NPM npm).
Useful? React with 👍 / 👎.
| if (inserted && pending_packets.size() > max_queued_packets) { | ||
| pending_packets.erase(pending_packets.begin()); | ||
| trimmed_packet_queue = true; |
There was a problem hiding this comment.
Make mic jitter-buffer trimming sequence-wrap aware
Do not evict packets with pending_packets.erase(pending_packets.begin()) on a std::map<uint16_t,...> sequence key: once 16-bit RTP sequence numbers wrap, the numerically smallest key is often the newest packet, so overflow trimming drops fresh audio and keeps stale packets. Under jitter/backlog conditions around wrap time, this can cause sustained microphone dropouts and misordered playout.
Useful? React with 👍 / 👎.
Hello,
I didn't realize until this was submitted that xenstalker02 already submitted a similar PR. Looks like that one was based on my previous apollo fork. I know that this will require a separate client to work properly. Enabling this feature is a toggle within audio settings. I plan on maintaining Moonlight-qt / Artemis forks for compatibility, which are tested and work now.
Out of transparency, this PR was created with gpt-5.5 xhigh and reviewed with the new Composer 2.5 model.
Summary
stream.cpp).stream_mic/mic_backendconfiguration,GET /api/audio-debug, and a Remote Microphone panel on the Troubleshooting page.Client requirement
End-to-end mic passthrough needs compatible client builds with microphone redirection support:
Usage / Testing
Microphone (Steam Streaming Microphone)