fix(pipewire): mute route-less virtual sources - #4250
Open
kvnloo wants to merge 1 commit into
Open
Conversation
|
Thanks for the mic fix :) |
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.
Summary
Mute route-less virtual audio sources (EasyEffects virtual microphones) by continuing past mixer-api to the existing SPA
PROP_mutenode write. Hardware sources that already have a DeviceRoute stay mixer-api-only.Audio/Source/Virtualis collapsed toAudio/Sourceafter #3846, so panel mute currently writes mixer-api, sets optimisticswMutefor the icon, and returns before SPA mute. That stops capture on routed hardware mics but leaves EasyEffects filter-graph capture live.Motivation
#4226 — muting the selected EasyEffects virtual microphone flips the muted icon while capture still passes. Hardware "Kreo Sonic Analog Stereo" mutes correctly. Virtual recognition (#3846) listed these sources; it did not make mute stop capture.
Type of Change
Related Issue
Closes #4226
Testing
clang-format22.1.8--dry-run --Werroronsrc/pipewire/pipewire_service.cpp: exit 0git diff --check: exit 0virtual_source_mute_test.cpp:-DBASELINE): exit 1 —route-less virtual source must receive a direct SPA node mute1736d19f75c37e177e18d2b2f9d3f6897842ef13: exit 0 — PASSPipeWireService::setNodeMutedonly.Manual Coverage
No live EasyEffects session was available on the verification host.
Screenshots / Videos
N/A — mute control-flow, no UI layout change.
Checklist
CONTRIBUTING.md.just formatwith clang-format v22+ installed, or this PR has no code changes.docs/user/when this PR changes documented behavior or configuration, or this PR does not require documentation changes.assets/translations/en.json, or this PR adds no new user-facing strings.Additional Notes
Candidate SHA
1736d19f75c37e177e18d2b2f9d3f6897842ef13on baselinea1a0e0ffc841af1f77901bc7ebc81c104ed8d56e. Does not implement #3274 (visual mute desync). Does not change default-device selection.