commit | eb8c4ca608486add9800f6bfb7a8ba3cf23e738e | [log] [tgz] |
---|---|---|
author | Anders Klemets <anderskl@microsoft.com> | Thu Dec 05 18:41:39 2019 -0800 |
committer | Commit Bot <commit-bot@chromium.org> | Fri Dec 06 10:09:03 2019 +0000 |
tree | a6814be56a5dbd070a659f7ca67cfbbd1a6ac8c9 | |
parent | cec2433c477f9dd9fd3e937ae5589e4160d8e99b [diff] |
Remove unnecessary checks from AudioDeviceWindowsCore::CoreAudioIsSupported This removes some code in the AudioDeviceWindowsCore::CoreAudioIsSupported function that was checking that every audio input and output device was functional. There are legitimate cases where some, or all, audio devices may not be accessible, and that was causing CoreAudioIsSupported to return false. If CoreAudioIsSupported returns false, a subsequent RTC_CHECK call fails, which causes the entire app to exit. After this change, the CoreAudioIsSupported() function simply checks if the Core Audio APIs are supported and no longer tries to do extra stuff unrelated to checking if the APIs are supported. Note that Core Audio is actually supported in all versions of Windows after Windows XP. There were log messages in the code saying that if CoreAudioIsSupported() returns false, WebRTC will use the Wave Audio APIs instead. But this is no longer the case. The Wave Audio APIs would only be needed for Windows XP, and this code appears to have already been removed from WebRTC. It is tempting to simply make CoreAudioIsSupported() do a "return true;" but for now I only removed the part of the logging messages that mentioned the Wave Audio APIs. I understand that there is a new Audio Device Module (ADM) called WindowsCoreAudio2, which is now recommended for use by apps. Apps are supposed to instantiate WindowsCoreAudio2 and pass it in to WebRTC. When the app supplies its own ADM, CoreAudioIsSupported() does not get invoked, which avoids the bug. To help make it clearer that using WindowsCoreAudio2 is an acceptable solution, I am removing a comment that says that kWindowsCoreAudio2 is "experimental". Bug: webrtc:11081 Change-Id: I7ed1684a276799f4c83006b45629e48814f0b18b Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161463 Commit-Queue: Henrik Andreassson <henrika@webrtc.org> Reviewed-by: Henrik Andreassson <henrika@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30025}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
See http://www.webrtc.org/native-code/development for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.