fix(audio): probe-at-open for auxiliary sinks instead of isFormatSupported (#4641) - #2
Closed
wa2n-code wants to merge 1 commit into
Closed
fix(audio): probe-at-open for auxiliary sinks instead of isFormatSupported (#4641)#2wa2n-code wants to merge 1 commit into
wa2n-code wants to merge 1 commit into
Conversation
…orted (aethersdr#4641) AetherVoice playback, CW sidetone, and Quindar tones went silent on class-compliant multichannel USB output devices (e.g. Akai EIE) on Windows even though the same device played RX audio fine. isFormatSupported() answers against WASAPI's shared-mode mix format and false-negatives on these devices, so every rung of the negotiation ladder was rejected before anything was ever opened. AudioEngine's RX sink never trusted that query -- it opens each candidate format for real and keeps the first that starts. Bring ClientPuduMonitor, CwSidetoneQAudioSink, and QuindarLocalSink in line with that pattern.
Owner
Author
|
Opened against the wrong repo — the issue lives upstream. Correct PR: aethersdr#4654 |
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
Fixes aethersdr#4641.
AetherVoice recording played back nothing on a Dell Optiplex 9020 with an
Akai EIE (class-compliant multichannel USB interface) as the Windows output
device — the record button muted audio as expected, but no audio played
after release. RX audio played through the same device fine, so it wasn't a
wrong-device-selected issue (ruled out early in the issue thread).
Root cause
ClientPuduMonitor::startPlayback()(AetherVoice monitor playback),CwSidetoneQAudioSink::start()(CW sidetone), andQuindarLocalSink::start()(Quindar tones) all gated format selection on
QAudioDevice::isFormatSupported().On WASAPI that query answers against the shared-mode mix format and
false-negatives on class-compliant multichannel devices like the EIE, so
every rung of the negotiation ladder was rejected before the device was ever
actually opened — the play button just never fired.
AudioEngine's RX sink never trusted that query for exactly this reason: itopens each candidate format for real (
QAudioSink::start()) and keeps thefirst that starts. This brings the three auxiliary sinks in line with that
pattern instead of asking
isFormatSupported()for permission first.Test plan
the AetherSDR output device — AetherVoice recording now plays back through
the EIE as expected after the record button is released.
git diff --check🤖 Generated with Claude Code