commit | 1655e45d85be0ecbf172115031bdbbc88a65c1b2 | [log] [tgz] |
---|---|---|
author | aleloi <aleloi@webrtc.org> | Mon Oct 24 13:56:56 2016 |
committer | Commit bot <commit-bot@chromium.org> | Mon Oct 24 13:57:03 2016 |
tree | ed2c063ce51f28c05f984aa8d751514cd2211e8f | |
parent | 2206c959f1e319234ad658506405f1e2459a6399 [diff] |
Elimiteted race condition in the AudioMixer. The mixer allocates an audio frame for each added data source. This audio frame was deallocated when a source was removed from the mixer. Source removal could happen during the mixing, and the existing locking scheme (and the Clang thread checker) was not sufficient to prevent a data race. After this change, the mixer doesn't release its lock until it is finished with the sources' Audio frames. Since multi-threaded access to the mixer only happens when a source is added or removed, we believe that this change wouldn't have any noticeable performance impact. NOTRY=True BUG=webrtc:6346 Review-Url: https://codereview.webrtc.org/2439283002 Cr-Commit-Position: refs/heads/master@{#14744}
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. This page is maintained by the Google Chrome team.
See http://www.webrtc.org/native-code/development for instructions on how to get started developing with the native code.