![]() In AudioDeviceIOS, when we call Stop() on the VoiceProcessingAudioUnit, we do not always detach the I/O thread checker in preparation for a new start. This means that if we start up the VoiceProcessingAudioUnit - and subsequently a new AURemoteIO thread to deal with I/O operations - the DCHECK in OnDeliverRecordedData and OnGetPlayoutData will fail. Note that we want to detach the I/O thread checker regardless of whether Stop() returns with a success status or not. The success status is dictated by the iOS function AudioOutputUnitStop. The documentation of this function does not guarantee that the audio unit will not stop in the case the function returns with an error code. That is to say, it is possible the audio unit stops even if the function Stop() returns false. Therefore, it is safer to prepare the I/O thread checker for a new start in either case. Change-Id: Iee50a2457959aff2e6089e9a664c649dc4dbbbd6 Bug: webrtc:12382 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202945 Reviewed-by: Henrik Andreassson <henrika@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33063} |
||
---|---|---|
.. | ||
api | ||
base | ||
components | ||
Framework | ||
helpers | ||
native | ||
unittests | ||
DEPS | ||
Info.plist | ||
OWNERS | ||
README.md |
WebRTC Obj-C SDK
This directory contains the Obj-C SDK for WebRTC. This includes wrappers for the C++ PeerConnection API and some platform specific components for iOS and macOS.
Organization
-
api/
Wrappers around classes and functions in the C++ API for creating and configuring peer connections, etc.
-
base/
This directory contains some base protocols and classes that are used by both the platform specific components and the SDK wrappers.
-
components/
These are the platform specific components. Contains components for handling audio, capturing and rendering video, encoding and decoding using the platform's hardware codec implementation and for representing video frames in the platform's native format.
-
helpers/
These files are not WebRTC specific, but are general helper classes and utilities for the Cocoa platforms.
-
native/
APIs for wrapping the platform specific components and using them with the C++ API.
-
unittests/
This directory contains the tests.