feat: record PipeWire audio as Ogg on Linux - #116
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
mic.oggandsystem.oggOgg/Opus streamsSessionfacade used by the desktop runnerWhy
Linux previously returned
UnsupportedPlatform. This reaches the first usable Linux milestone: Wisp can capture local microphone audio and, where PipeWire exposes it, system audio, and persist valid Ogg files. Linux transcription remains explicitly out of scope and the session runs record-only.Impact
On Linux, the existing desktop session path can now start and stop PipeWire recording.
mic.oggis required;system.oggis always a valid aligned stream and contains silence when no sink monitor is available. macOS and Windows behavior is preserved.Validation
cargo test -p wisp-audiokit— 127 unit tests passedcargo clippy -p wisp-audiokit --all-targets -- -D warningscargo fmt --allgit diff --checknixfmt --check flake.nix nixThe local host is macOS, so Linux-only compilation and the ignored virtual-PipeWire smoke test could not run locally. The Ubuntu
nix flake checkPR job is the Linux-native compile/clippy/test gate for this draft.