Open Bug 1590902 Opened 5 years ago Updated 8 months ago

Re-enable IAudioClient3 on Windows 10

Categories

(Core :: Audio/Video: cubeb, task, P2)

All
Windows 10
task

Tracking

()

Future

People

(Reporter: kinetik, Unassigned)

References

Details

We tried to ship this in bug 1575131 with some concern that it'd cause strange regressions in audio playback for some Windows 10 users. Bug 1590652 is one such regression. Paul has a patch in bug 1590652 to disable IAudioClient3 entirely for now.

To attempt shipping this feature again, we'll need to fix whatever causes bug 1590652 and add a hidden pref for disabling IAC3. We might also want to expose use of IAC3 via the media section in about:support.

Triaging, please adjust priority as needed -- I'm not that familiar with the domain.

Priority: -- → P2

Sorry, forgot to set when I filed. This is more like a P3, I think.

Priority: P2 → P3

It's possible that this only happens on duplex streams, in which case it must be something weird with mismatched buffer sizes on input vs. output.

See Also: → 1610647

Bug 1610647 covers a new case of this failure. Hardware in use: Realtek ALC899 configured for 48kHz stereo output and 44.1kHz stereo input.

Chromium is also using IAudioClient3 and appears to ship it enabled by default, so we may be able to learn from their implementation while fixing ours.

As far as I can tell, Chromium (also) only ever uses IAudioClient3 for output. Input explicitly uses IAudioClient only.

(In reply to Matthew Gregan [:kinetik] from comment #5)

Chromium is also using IAudioClient3 and appears to ship it enabled by default, so we may be able to learn from their implementation while fixing ours.

As far as I can tell, Chromium (also) only ever uses IAudioClient3 for output. Input explicitly uses IAudioClient only.

That's in Chromium's media/audio/win code. Paul pointed out WebRTC has separate audio code, for which there is preliminary IAudioClient3 input support, but it appears to be disabled by default: https://webrtc.googlesource.com/src.git/+/5b6afc0ce68fa562e37d6e3f1385e3bac00e0a0c%5E%21/

OS: Unspecified → Windows 10
Priority: P3 → P2
Severity: normal → S3
Hardware: Unspecified → All
Target Milestone: --- → Future

I have made an attempt at this, if you are still interested, testing would help.
I made it for the Dolphin emulator but getting feedback from the official devs, or getting it merged on master would be even better.
https://github.com/mozilla/cubeb/pull/740

You need to log in before you can comment on or make changes to this bug.