Adds support for new Windows ADM with limited API support.
Summary of what this CL does: Existing users can keep using the old ADM for Windows as before. A new ADM for Windows is created and a dedicated factory method is used to create it. The old way (using AudioDeviceImpl) is not utilized. The new ADM is based on a structure where most of the "action" takes place in new AudioInput/AudioOutput implementations. This is inline with our mobile platforms and also makes it easier to break out common parts into a base class. The AudioDevice unittest has always mainly focused on the "Start/Stop"- parts of the ADM and not the complete ADM interface. This new ADM supports all tests in AudioDeviceTest and is therefore tested in combination with the old version. A value-parametrized test us added for Windows builds. Improved readability, threading model and makes the code easier to maintain. Uses the previously landed methods in webrtc::webrtc_win::core_audio_utility. Bug: webrtc:9265 Change-Id: If2894b44528e74a181cf7ad1216f57386ee3a24d Reviewed-on: https://webrtc-review.googlesource.com/78060 Reviewed-by: Oskar Sundbom <ossu@webrtc.org> Commit-Queue: Henrik Andreassson <henrika@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23554}
This commit is contained in:
@ -31,8 +31,12 @@ namespace {
|
||||
// implementations.
|
||||
//
|
||||
// An instance can be created on any thread, but must then be used on one and
|
||||
// the same thread. All public methods must also be called on the same thread. A
|
||||
// thread checker will RTC_DCHECK if any method is called on an invalid thread.
|
||||
// the same thread. All public methods must also be called on the same thread.
|
||||
// A thread checker will RTC_DCHECK if any method is called on an invalid
|
||||
// thread.
|
||||
// TODO(henrika): it might be useful to also support a scenario where the ADM
|
||||
// is constructed on thread T1, used on thread T2 and destructed on T2 or T3.
|
||||
// If so, care must be taken to ensure that only T2 is a COM thread.
|
||||
class AndroidAudioDeviceModule : public AudioDeviceModule {
|
||||
public:
|
||||
// For use with UMA logging. Must be kept in sync with histograms.xml in
|
||||
|
||||
Reference in New Issue
Block a user