Propagate TaskQueueFactory to AudioDeviceBuffer
keep using GlobalTaskQueueFactory in android/ios bindings.
Switch to DefaultTaskQueueFactory in tests.
Bug: webrtc:10284
Change-Id: I034c70542be5eeb830be86527830d51204fb2855
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130223
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27380}
diff --git a/modules/audio_device/audio_device_impl.cc b/modules/audio_device/audio_device_impl.cc
index 8bdc4b3..7b08a5a 100644
--- a/modules/audio_device/audio_device_impl.cc
+++ b/modules/audio_device/audio_device_impl.cc
@@ -13,6 +13,7 @@
#include <stddef.h>
#include "api/scoped_refptr.h"
+#include "api/task_queue/global_task_queue_factory.h"
#include "modules/audio_device/audio_device_config.h" // IWYU pragma: keep
#include "modules/audio_device/audio_device_generic.h"
#include "rtc_base/checks.h"
@@ -71,14 +72,23 @@
namespace webrtc {
rtc::scoped_refptr<AudioDeviceModule> AudioDeviceModule::Create(
- const AudioLayer audio_layer) {
+ AudioLayer audio_layer) {
RTC_LOG(INFO) << __FUNCTION__;
- return AudioDeviceModule::CreateForTest(audio_layer);
+ return AudioDeviceModule::CreateForTest(audio_layer,
+ &GlobalTaskQueueFactory());
+}
+
+rtc::scoped_refptr<AudioDeviceModule> AudioDeviceModule::Create(
+ AudioLayer audio_layer,
+ TaskQueueFactory* task_queue_factory) {
+ RTC_LOG(INFO) << __FUNCTION__;
+ return AudioDeviceModule::CreateForTest(audio_layer, task_queue_factory);
}
// static
rtc::scoped_refptr<AudioDeviceModuleForTest> AudioDeviceModule::CreateForTest(
- const AudioLayer audio_layer) {
+ AudioLayer audio_layer,
+ TaskQueueFactory* task_queue_factory) {
RTC_LOG(INFO) << __FUNCTION__;
// The "AudioDeviceModule::kWindowsCoreAudio2" audio layer has its own
@@ -91,7 +101,8 @@
// Create the generic reference counted (platform independent) implementation.
rtc::scoped_refptr<AudioDeviceModuleImpl> audioDevice(
- new rtc::RefCountedObject<AudioDeviceModuleImpl>(audio_layer));
+ new rtc::RefCountedObject<AudioDeviceModuleImpl>(audio_layer,
+ task_queue_factory));
// Ensure that the current platform is supported.
if (audioDevice->CheckPlatform() == -1) {
@@ -112,8 +123,10 @@
return audioDevice;
}
-AudioDeviceModuleImpl::AudioDeviceModuleImpl(const AudioLayer audioLayer)
- : audio_layer_(audioLayer) {
+AudioDeviceModuleImpl::AudioDeviceModuleImpl(
+ AudioLayer audio_layer,
+ TaskQueueFactory* task_queue_factory)
+ : audio_layer_(audio_layer), audio_device_buffer_(task_queue_factory) {
RTC_LOG(INFO) << __FUNCTION__;
}