Move webrtc::AudioDeviceModule include to api/ folder
Bug: webrtc:15874
Change-Id: I5bdb19d5e710838b41e6ca283d406c9f1f21286b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/348060
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42137}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 2b484f8..152f2cb 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -80,12 +80,12 @@
":libjingle_peerconnection_api",
":scoped_refptr",
"../api/rtc_event_log:rtc_event_log_factory",
- "../modules/audio_device:audio_device_api",
"../pc:peer_connection_factory",
"../pc:webrtc_sdp",
"../rtc_base:threading",
"../rtc_base/system:rtc_export",
"../stats:rtc_stats",
+ "audio:audio_device",
"audio:audio_mixer_api",
"audio:audio_processing",
"audio_codecs:audio_codecs_api",
diff --git a/api/DEPS b/api/DEPS
index 0536d70..b34925e 100644
--- a/api/DEPS
+++ b/api/DEPS
@@ -75,6 +75,10 @@
"+rtc_base/socket_address.h",
],
+ "audio_device_defines\.h": [
+ "+rtc_base/strings/string_builder.h",
+ ],
+
"candidate\.h": [
"+rtc_base/network_constants.h",
"+rtc_base/socket_address.h",
diff --git a/api/audio/BUILD.gn b/api/audio/BUILD.gn
index 2fc4b19..de654c7 100644
--- a/api/audio/BUILD.gn
+++ b/api/audio/BUILD.gn
@@ -8,6 +8,22 @@
import("../../webrtc.gni")
+rtc_source_set("audio_device") {
+ visibility = [ "*" ]
+ sources = [
+ "audio_device.h",
+ "audio_device_defines.h",
+ ]
+ deps = [
+ "..:ref_count",
+ "..:scoped_refptr",
+ "../../rtc_base:checks",
+ "../../rtc_base:stringutils",
+ "../task_queue",
+ ]
+ absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
+}
+
rtc_library("audio_frame_api") {
visibility = [ "*" ]
sources = [
diff --git a/api/audio/audio_device.h b/api/audio/audio_device.h
new file mode 100644
index 0000000..65e5c5f
--- /dev/null
+++ b/api/audio/audio_device.h
@@ -0,0 +1,194 @@
+/*
+ * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef API_AUDIO_AUDIO_DEVICE_H_
+#define API_AUDIO_AUDIO_DEVICE_H_
+
+#include "absl/types/optional.h"
+#include "api/audio/audio_device_defines.h"
+#include "api/ref_count.h"
+#include "api/scoped_refptr.h"
+#include "api/task_queue/task_queue_factory.h"
+
+namespace webrtc {
+
+class AudioDeviceModuleForTest;
+
+class AudioDeviceModule : public webrtc::RefCountInterface {
+ public:
+ enum AudioLayer {
+ kPlatformDefaultAudio = 0,
+ kWindowsCoreAudio,
+ kWindowsCoreAudio2,
+ kLinuxAlsaAudio,
+ kLinuxPulseAudio,
+ kAndroidJavaAudio,
+ kAndroidOpenSLESAudio,
+ kAndroidJavaInputAndOpenSLESOutputAudio,
+ kAndroidAAudioAudio,
+ kAndroidJavaInputAndAAudioOutputAudio,
+ kDummyAudio,
+ };
+
+ enum WindowsDeviceType {
+ kDefaultCommunicationDevice = -1,
+ kDefaultDevice = -2
+ };
+
+ struct Stats {
+ // The fields below correspond to similarly-named fields in the WebRTC stats
+ // spec. https://w3c.github.io/webrtc-stats/#playoutstats-dict*
+ double synthesized_samples_duration_s = 0;
+ uint64_t synthesized_samples_events = 0;
+ double total_samples_duration_s = 0;
+ double total_playout_delay_s = 0;
+ uint64_t total_samples_count = 0;
+ };
+
+ public:
+ // Creates a default ADM for usage in production code.
+ static rtc::scoped_refptr<AudioDeviceModule> Create(
+ AudioLayer audio_layer,
+ TaskQueueFactory* task_queue_factory);
+ // Creates an ADM with support for extra test methods. Don't use this factory
+ // in production code.
+ static rtc::scoped_refptr<AudioDeviceModuleForTest> CreateForTest(
+ AudioLayer audio_layer,
+ TaskQueueFactory* task_queue_factory);
+
+ // Retrieve the currently utilized audio layer
+ virtual int32_t ActiveAudioLayer(AudioLayer* audioLayer) const = 0;
+
+ // Full-duplex transportation of PCM audio
+ virtual int32_t RegisterAudioCallback(AudioTransport* audioCallback) = 0;
+
+ // Main initialization and termination
+ virtual int32_t Init() = 0;
+ virtual int32_t Terminate() = 0;
+ virtual bool Initialized() const = 0;
+
+ // Device enumeration
+ virtual int16_t PlayoutDevices() = 0;
+ virtual int16_t RecordingDevices() = 0;
+ virtual int32_t PlayoutDeviceName(uint16_t index,
+ char name[kAdmMaxDeviceNameSize],
+ char guid[kAdmMaxGuidSize]) = 0;
+ virtual int32_t RecordingDeviceName(uint16_t index,
+ char name[kAdmMaxDeviceNameSize],
+ char guid[kAdmMaxGuidSize]) = 0;
+
+ // Device selection
+ virtual int32_t SetPlayoutDevice(uint16_t index) = 0;
+ virtual int32_t SetPlayoutDevice(WindowsDeviceType device) = 0;
+ virtual int32_t SetRecordingDevice(uint16_t index) = 0;
+ virtual int32_t SetRecordingDevice(WindowsDeviceType device) = 0;
+
+ // Audio transport initialization
+ virtual int32_t PlayoutIsAvailable(bool* available) = 0;
+ virtual int32_t InitPlayout() = 0;
+ virtual bool PlayoutIsInitialized() const = 0;
+ virtual int32_t RecordingIsAvailable(bool* available) = 0;
+ virtual int32_t InitRecording() = 0;
+ virtual bool RecordingIsInitialized() const = 0;
+
+ // Audio transport control
+ virtual int32_t StartPlayout() = 0;
+ virtual int32_t StopPlayout() = 0;
+ virtual bool Playing() const = 0;
+ virtual int32_t StartRecording() = 0;
+ virtual int32_t StopRecording() = 0;
+ virtual bool Recording() const = 0;
+
+ // Audio mixer initialization
+ virtual int32_t InitSpeaker() = 0;
+ virtual bool SpeakerIsInitialized() const = 0;
+ virtual int32_t InitMicrophone() = 0;
+ virtual bool MicrophoneIsInitialized() const = 0;
+
+ // Speaker volume controls
+ virtual int32_t SpeakerVolumeIsAvailable(bool* available) = 0;
+ virtual int32_t SetSpeakerVolume(uint32_t volume) = 0;
+ virtual int32_t SpeakerVolume(uint32_t* volume) const = 0;
+ virtual int32_t MaxSpeakerVolume(uint32_t* maxVolume) const = 0;
+ virtual int32_t MinSpeakerVolume(uint32_t* minVolume) const = 0;
+
+ // Microphone volume controls
+ virtual int32_t MicrophoneVolumeIsAvailable(bool* available) = 0;
+ virtual int32_t SetMicrophoneVolume(uint32_t volume) = 0;
+ virtual int32_t MicrophoneVolume(uint32_t* volume) const = 0;
+ virtual int32_t MaxMicrophoneVolume(uint32_t* maxVolume) const = 0;
+ virtual int32_t MinMicrophoneVolume(uint32_t* minVolume) const = 0;
+
+ // Speaker mute control
+ virtual int32_t SpeakerMuteIsAvailable(bool* available) = 0;
+ virtual int32_t SetSpeakerMute(bool enable) = 0;
+ virtual int32_t SpeakerMute(bool* enabled) const = 0;
+
+ // Microphone mute control
+ virtual int32_t MicrophoneMuteIsAvailable(bool* available) = 0;
+ virtual int32_t SetMicrophoneMute(bool enable) = 0;
+ virtual int32_t MicrophoneMute(bool* enabled) const = 0;
+
+ // Stereo support
+ virtual int32_t StereoPlayoutIsAvailable(bool* available) const = 0;
+ virtual int32_t SetStereoPlayout(bool enable) = 0;
+ virtual int32_t StereoPlayout(bool* enabled) const = 0;
+ virtual int32_t StereoRecordingIsAvailable(bool* available) const = 0;
+ virtual int32_t SetStereoRecording(bool enable) = 0;
+ virtual int32_t StereoRecording(bool* enabled) const = 0;
+
+ // Playout delay
+ virtual int32_t PlayoutDelay(uint16_t* delayMS) const = 0;
+
+ // Only supported on Android.
+ virtual bool BuiltInAECIsAvailable() const = 0;
+ virtual bool BuiltInAGCIsAvailable() const = 0;
+ virtual bool BuiltInNSIsAvailable() const = 0;
+
+ // Enables the built-in audio effects. Only supported on Android.
+ virtual int32_t EnableBuiltInAEC(bool enable) = 0;
+ virtual int32_t EnableBuiltInAGC(bool enable) = 0;
+ virtual int32_t EnableBuiltInNS(bool enable) = 0;
+
+ // Play underrun count. Only supported on Android.
+ // TODO(alexnarest): Make it abstract after upstream projects support it.
+ virtual int32_t GetPlayoutUnderrunCount() const { return -1; }
+
+ // Used to generate RTC stats. If not implemented, RTCAudioPlayoutStats will
+ // not be present in the stats.
+ virtual absl::optional<Stats> GetStats() const { return absl::nullopt; }
+
+// Only supported on iOS.
+#if defined(WEBRTC_IOS)
+ virtual int GetPlayoutAudioParameters(AudioParameters* params) const = 0;
+ virtual int GetRecordAudioParameters(AudioParameters* params) const = 0;
+#endif // WEBRTC_IOS
+
+ protected:
+ ~AudioDeviceModule() override {}
+};
+
+// Extends the default ADM interface with some extra test methods.
+// Intended for usage in tests only and requires a unique factory method.
+class AudioDeviceModuleForTest : public AudioDeviceModule {
+ public:
+ // Triggers internal restart sequences of audio streaming. Can be used by
+ // tests to emulate events corresponding to e.g. removal of an active audio
+ // device or other actions which causes the stream to be disconnected.
+ virtual int RestartPlayoutInternally() = 0;
+ virtual int RestartRecordingInternally() = 0;
+
+ virtual int SetPlayoutSampleRate(uint32_t sample_rate) = 0;
+ virtual int SetRecordingSampleRate(uint32_t sample_rate) = 0;
+};
+
+} // namespace webrtc
+
+#endif // API_AUDIO_AUDIO_DEVICE_H_
diff --git a/api/audio/audio_device_defines.h b/api/audio/audio_device_defines.h
new file mode 100644
index 0000000..304b876
--- /dev/null
+++ b/api/audio/audio_device_defines.h
@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef API_AUDIO_AUDIO_DEVICE_DEFINES_H_
+#define API_AUDIO_AUDIO_DEVICE_DEFINES_H_
+
+#include <stddef.h>
+
+#include <cstdint>
+#include <string>
+
+#include "absl/types/optional.h"
+#include "rtc_base/strings/string_builder.h"
+
+namespace webrtc {
+
+static const int kAdmMaxDeviceNameSize = 128;
+static const int kAdmMaxFileNameSize = 512;
+static const int kAdmMaxGuidSize = 128;
+
+static const int kAdmMinPlayoutBufferSizeMs = 10;
+static const int kAdmMaxPlayoutBufferSizeMs = 250;
+
+// ----------------------------------------------------------------------------
+// AudioTransport
+// ----------------------------------------------------------------------------
+
+class AudioTransport {
+ public:
+ // TODO(bugs.webrtc.org/13620) Deprecate this function
+ virtual int32_t RecordedDataIsAvailable(const void* audioSamples,
+ size_t nSamples,
+ size_t nBytesPerSample,
+ size_t nChannels,
+ uint32_t samplesPerSec,
+ uint32_t totalDelayMS,
+ int32_t clockDrift,
+ uint32_t currentMicLevel,
+ bool keyPressed,
+ uint32_t& newMicLevel) = 0; // NOLINT
+
+ virtual int32_t RecordedDataIsAvailable(
+ const void* audioSamples,
+ size_t nSamples,
+ size_t nBytesPerSample,
+ size_t nChannels,
+ uint32_t samplesPerSec,
+ uint32_t totalDelayMS,
+ int32_t clockDrift,
+ uint32_t currentMicLevel,
+ bool keyPressed,
+ uint32_t& newMicLevel,
+ absl::optional<int64_t> estimatedCaptureTimeNS) { // NOLINT
+ // TODO(webrtc:13620) Make the default behaver of the new API to behave as
+ // the old API. This can be pure virtual if all uses of the old API is
+ // removed.
+ return RecordedDataIsAvailable(
+ audioSamples, nSamples, nBytesPerSample, nChannels, samplesPerSec,
+ totalDelayMS, clockDrift, currentMicLevel, keyPressed, newMicLevel);
+ }
+
+ // Implementation has to setup safe values for all specified out parameters.
+ virtual int32_t NeedMorePlayData(size_t nSamples,
+ size_t nBytesPerSample,
+ size_t nChannels,
+ uint32_t samplesPerSec,
+ void* audioSamples,
+ size_t& nSamplesOut, // NOLINT
+ int64_t* elapsed_time_ms,
+ int64_t* ntp_time_ms) = 0; // NOLINT
+
+ // Method to pull mixed render audio data from all active VoE channels.
+ // The data will not be passed as reference for audio processing internally.
+ virtual void PullRenderData(int bits_per_sample,
+ int sample_rate,
+ size_t number_of_channels,
+ size_t number_of_frames,
+ void* audio_data,
+ int64_t* elapsed_time_ms,
+ int64_t* ntp_time_ms) = 0;
+
+ protected:
+ virtual ~AudioTransport() {}
+};
+
+// Helper class for storage of fundamental audio parameters such as sample rate,
+// number of channels, native buffer size etc.
+// Note that one audio frame can contain more than one channel sample and each
+// sample is assumed to be a 16-bit PCM sample. Hence, one audio frame in
+// stereo contains 2 * (16/8) = 4 bytes of data.
+class AudioParameters {
+ public:
+ // This implementation does only support 16-bit PCM samples.
+ static const size_t kBitsPerSample = 16;
+ AudioParameters()
+ : sample_rate_(0),
+ channels_(0),
+ frames_per_buffer_(0),
+ frames_per_10ms_buffer_(0) {}
+ AudioParameters(int sample_rate, size_t channels, size_t frames_per_buffer)
+ : sample_rate_(sample_rate),
+ channels_(channels),
+ frames_per_buffer_(frames_per_buffer),
+ frames_per_10ms_buffer_(static_cast<size_t>(sample_rate / 100)) {}
+ void reset(int sample_rate, size_t channels, size_t frames_per_buffer) {
+ sample_rate_ = sample_rate;
+ channels_ = channels;
+ frames_per_buffer_ = frames_per_buffer;
+ frames_per_10ms_buffer_ = static_cast<size_t>(sample_rate / 100);
+ }
+ size_t bits_per_sample() const { return kBitsPerSample; }
+ void reset(int sample_rate, size_t channels, double buffer_duration) {
+ reset(sample_rate, channels,
+ static_cast<size_t>(sample_rate * buffer_duration + 0.5));
+ }
+ void reset(int sample_rate, size_t channels) {
+ reset(sample_rate, channels, static_cast<size_t>(0));
+ }
+ int sample_rate() const { return sample_rate_; }
+ size_t channels() const { return channels_; }
+ size_t frames_per_buffer() const { return frames_per_buffer_; }
+ size_t frames_per_10ms_buffer() const { return frames_per_10ms_buffer_; }
+ size_t GetBytesPerFrame() const { return channels_ * kBitsPerSample / 8; }
+ size_t GetBytesPerBuffer() const {
+ return frames_per_buffer_ * GetBytesPerFrame();
+ }
+ // The WebRTC audio device buffer (ADB) only requires that the sample rate
+ // and number of channels are configured. Hence, to be "valid", only these
+ // two attributes must be set.
+ bool is_valid() const { return ((sample_rate_ > 0) && (channels_ > 0)); }
+ // Most platforms also require that a native buffer size is defined.
+ // An audio parameter instance is considered to be "complete" if it is both
+ // "valid" (can be used by the ADB) and also has a native frame size.
+ bool is_complete() const { return (is_valid() && (frames_per_buffer_ > 0)); }
+ size_t GetBytesPer10msBuffer() const {
+ return frames_per_10ms_buffer_ * GetBytesPerFrame();
+ }
+ double GetBufferSizeInMilliseconds() const {
+ if (sample_rate_ == 0)
+ return 0.0;
+ return frames_per_buffer_ / (sample_rate_ / 1000.0);
+ }
+ double GetBufferSizeInSeconds() const {
+ if (sample_rate_ == 0)
+ return 0.0;
+ return static_cast<double>(frames_per_buffer_) / (sample_rate_);
+ }
+ std::string ToString() const {
+ char ss_buf[1024];
+ rtc::SimpleStringBuilder ss(ss_buf);
+ ss << "AudioParameters: ";
+ ss << "sample_rate=" << sample_rate() << ", channels=" << channels();
+ ss << ", frames_per_buffer=" << frames_per_buffer();
+ ss << ", frames_per_10ms_buffer=" << frames_per_10ms_buffer();
+ ss << ", bytes_per_frame=" << GetBytesPerFrame();
+ ss << ", bytes_per_buffer=" << GetBytesPerBuffer();
+ ss << ", bytes_per_10ms_buffer=" << GetBytesPer10msBuffer();
+ ss << ", size_in_ms=" << GetBufferSizeInMilliseconds();
+ return ss.str();
+ }
+
+ private:
+ int sample_rate_;
+ size_t channels_;
+ size_t frames_per_buffer_;
+ size_t frames_per_10ms_buffer_;
+};
+
+} // namespace webrtc
+
+#endif // API_AUDIO_AUDIO_DEVICE_DEFINES_H_
diff --git a/api/create_peerconnection_factory.cc b/api/create_peerconnection_factory.cc
index 42bfa60..46105a2 100644
--- a/api/create_peerconnection_factory.cc
+++ b/api/create_peerconnection_factory.cc
@@ -13,6 +13,7 @@
#include <memory>
#include <utility>
+#include "api/audio/audio_device.h"
#include "api/audio/audio_processing.h"
#include "api/enable_media.h"
#include "api/peer_connection_interface.h"
@@ -20,7 +21,6 @@
#include "api/scoped_refptr.h"
#include "api/task_queue/default_task_queue_factory.h"
#include "api/transport/field_trial_based_config.h"
-#include "modules/audio_device/include/audio_device.h"
#include "rtc_base/thread.h"
namespace webrtc {
diff --git a/api/create_peerconnection_factory.h b/api/create_peerconnection_factory.h
index adb4de9..18febb6 100644
--- a/api/create_peerconnection_factory.h
+++ b/api/create_peerconnection_factory.h
@@ -13,6 +13,7 @@
#include <memory>
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/audio_decoder_factory.h"
@@ -33,7 +34,6 @@
namespace webrtc {
-class AudioDeviceModule;
class AudioFrameProcessor;
// Create a new instance of PeerConnectionFactoryInterface with optional video
diff --git a/api/voip/BUILD.gn b/api/voip/BUILD.gn
index f175c30..7cf9a7a 100644
--- a/api/voip/BUILD.gn
+++ b/api/voip/BUILD.gn
@@ -40,8 +40,8 @@
":voip_api",
"..:scoped_refptr",
"../../audio/voip:voip_core",
- "../../modules/audio_device:audio_device_api",
"../../rtc_base:logging",
+ "../audio:audio_device",
"../audio:audio_processing",
"../audio_codecs:audio_codecs_api",
"../task_queue",
diff --git a/api/voip/voip_engine_factory.h b/api/voip/voip_engine_factory.h
index 3abced7..1972fcd 100644
--- a/api/voip/voip_engine_factory.h
+++ b/api/voip/voip_engine_factory.h
@@ -13,13 +13,13 @@
#include <memory>
+#include "api/audio/audio_device.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/audio_decoder_factory.h"
#include "api/audio_codecs/audio_encoder_factory.h"
#include "api/scoped_refptr.h"
#include "api/task_queue/task_queue_factory.h"
#include "api/voip/voip_engine.h"
-#include "modules/audio_device/include/audio_device.h"
namespace webrtc {
diff --git a/audio/BUILD.gn b/audio/BUILD.gn
index 07a0006..ef5ec3d 100644
--- a/audio/BUILD.gn
+++ b/audio/BUILD.gn
@@ -49,6 +49,7 @@
"../api:sequence_checker",
"../api:transport_api",
"../api/audio:aec3_factory",
+ "../api/audio:audio_device",
"../api/audio:audio_frame_api",
"../api/audio:audio_frame_processor",
"../api/audio:audio_mixer_api",
@@ -130,10 +131,10 @@
deps = [
":audio",
"../api:simulated_network_api",
+ "../api/audio:audio_device",
"../api/task_queue",
"../call:fake_network",
"../call:simulated_network",
- "../modules/audio_device:audio_device_api",
"../modules/audio_device:test_audio_device_module",
"../system_wrappers",
"../test:test_common",
@@ -191,7 +192,6 @@
"../call:rtp_sender",
"../common_audio",
"../logging:mocks",
- "../modules/audio_device:audio_device_api",
"../modules/audio_device:audio_device_impl", # For TestAudioDeviceModule
"../modules/audio_device:mock_audio_device",
"../modules/audio_mixer:audio_mixer_impl",
@@ -235,11 +235,11 @@
deps = [
":audio",
"../api:mock_frame_transformer",
+ "../api/audio:audio_device",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/crypto:frame_decryptor_interface",
"../api/task_queue:default_task_queue_factory",
"../logging:mocks",
- "../modules/audio_device:audio_device_api",
"../modules/audio_device:mock_audio_device",
"../modules/rtp_rtcp",
"../modules/rtp_rtcp:rtp_rtcp_format",
diff --git a/audio/audio_state.cc b/audio/audio_state.cc
index 6f20e7b..a0861ee 100644
--- a/audio/audio_state.cc
+++ b/audio/audio_state.cc
@@ -15,12 +15,12 @@
#include <utility>
#include <vector>
+#include "api/audio/audio_device.h"
#include "api/sequence_checker.h"
#include "api/task_queue/task_queue_base.h"
#include "api/units/time_delta.h"
#include "audio/audio_receive_stream.h"
#include "audio/audio_send_stream.h"
-#include "modules/audio_device/include/audio_device.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
diff --git a/audio/audio_transport_impl.h b/audio/audio_transport_impl.h
index d7a4b7d..3012cc2 100644
--- a/audio/audio_transport_impl.h
+++ b/audio/audio_transport_impl.h
@@ -14,12 +14,12 @@
#include <memory>
#include <vector>
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/scoped_refptr.h"
#include "common_audio/resampler/include/push_resampler.h"
#include "modules/async_audio_processing/async_audio_processing.h"
-#include "modules/audio_device/include/audio_device.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/thread_annotations.h"
diff --git a/audio/channel_receive.cc b/audio/channel_receive.cc
index 17cf859..dc34d18 100644
--- a/audio/channel_receive.cc
+++ b/audio/channel_receive.cc
@@ -17,6 +17,7 @@
#include <utility>
#include <vector>
+#include "api/audio/audio_device.h"
#include "api/crypto/frame_decryptor_interface.h"
#include "api/frame_transformer_interface.h"
#include "api/rtc_event_log/rtc_event_log.h"
@@ -32,7 +33,6 @@
#include "logging/rtc_event_log/events/rtc_event_neteq_set_minimum_delay.h"
#include "modules/audio_coding/acm2/acm_receiver.h"
#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/pacing/packet_router.h"
#include "modules/rtp_rtcp/include/receive_statistics.h"
#include "modules/rtp_rtcp/include/remote_ntp_time_estimator.h"
diff --git a/audio/channel_receive_unittest.cc b/audio/channel_receive_unittest.cc
index 8ca1e9e..47ec37c 100644
--- a/audio/channel_receive_unittest.cc
+++ b/audio/channel_receive_unittest.cc
@@ -11,12 +11,12 @@
#include "audio/channel_receive.h"
#include "absl/strings/escaping.h"
+#include "api/audio/audio_device.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
#include "api/crypto/frame_decryptor_interface.h"
#include "api/task_queue/default_task_queue_factory.h"
#include "api/test/mock_frame_transformer.h"
#include "logging/rtc_event_log/mock/mock_rtc_event_log.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/audio_device/include/mock_audio_device.h"
#include "modules/rtp_rtcp/source/byte_io.h"
#include "modules/rtp_rtcp/source/rtcp_packet/receiver_report.h"
diff --git a/audio/test/audio_end_to_end_test.h b/audio/test/audio_end_to_end_test.h
index d326b79..a5a6397 100644
--- a/audio/test/audio_end_to_end_test.h
+++ b/audio/test/audio_end_to_end_test.h
@@ -14,9 +14,9 @@
#include <string>
#include <vector>
+#include "api/audio/audio_device.h"
#include "api/task_queue/task_queue_base.h"
#include "api/test/simulated_network.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/audio_device/include/test_audio_device.h"
#include "test/call_test.h"
diff --git a/audio/voip/BUILD.gn b/audio/voip/BUILD.gn
index 2b07179..a9a9a67 100644
--- a/audio/voip/BUILD.gn
+++ b/audio/voip/BUILD.gn
@@ -17,11 +17,11 @@
":audio_channel",
"..:audio",
"../../api:scoped_refptr",
+ "../../api/audio:audio_device",
"../../api/audio:audio_processing",
"../../api/audio_codecs:audio_codecs_api",
"../../api/task_queue",
"../../api/voip:voip_api",
- "../../modules/audio_device:audio_device_api",
"../../modules/audio_mixer:audio_mixer_impl",
"../../rtc_base:criticalsection",
"../../rtc_base:logging",
@@ -42,7 +42,6 @@
"../../api/audio_codecs:audio_codecs_api",
"../../api/task_queue",
"../../api/voip:voip_api",
- "../../modules/audio_device:audio_device_api",
"../../modules/rtp_rtcp",
"../../modules/rtp_rtcp:rtp_rtcp_format",
"../../rtc_base:criticalsection",
diff --git a/audio/voip/voip_core.h b/audio/voip/voip_core.h
index 2c7c7ee..4a6031d 100644
--- a/audio/voip/voip_core.h
+++ b/audio/voip/voip_core.h
@@ -17,6 +17,7 @@
#include <unordered_map>
#include <vector>
+#include "api/audio/audio_device.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/audio_decoder_factory.h"
#include "api/audio_codecs/audio_encoder_factory.h"
@@ -31,7 +32,6 @@
#include "api/voip/voip_volume_control.h"
#include "audio/audio_transport_impl.h"
#include "audio/voip/audio_channel.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/audio_mixer/audio_mixer_impl.h"
#include "rtc_base/synchronization/mutex.h"
diff --git a/call/BUILD.gn b/call/BUILD.gn
index 43e32a3..00fa602 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -50,6 +50,7 @@
"../api:scoped_refptr",
"../api:transport_api",
"../api/adaptation:resource_adaptation_api",
+ "../api/audio:audio_device",
"../api/audio:audio_frame_processor",
"../api/audio:audio_mixer_api",
"../api/audio:audio_processing",
@@ -560,6 +561,7 @@
":video_stream_api",
"../api:rtc_event_log_output_file",
"../api:simulated_network_api",
+ "../api/audio:audio_device",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../api/numerics",
"../api/rtc_event_log",
diff --git a/call/audio_state.h b/call/audio_state.h
index 8f6bc7d..bd43868 100644
--- a/call/audio_state.h
+++ b/call/audio_state.h
@@ -10,11 +10,11 @@
#ifndef CALL_AUDIO_STATE_H_
#define CALL_AUDIO_STATE_H_
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/scoped_refptr.h"
#include "modules/async_audio_processing/async_audio_processing.h"
-#include "modules/audio_device/include/audio_device.h"
#include "rtc_base/ref_count.h"
namespace webrtc {
diff --git a/call/call_perf_tests.cc b/call/call_perf_tests.cc
index 0df31c4..dfdfec8 100644
--- a/call/call_perf_tests.cc
+++ b/call/call_perf_tests.cc
@@ -15,6 +15,7 @@
#include "absl/flags/flag.h"
#include "absl/strings/string_view.h"
+#include "api/audio/audio_device.h"
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
#include "api/numerics/samples_stats_counter.h"
#include "api/rtc_event_log/rtc_event_log.h"
@@ -32,7 +33,6 @@
#include "media/engine/internal_encoder_factory.h"
#include "media/engine/simulcast_encoder_adapter.h"
#include "modules/audio_coding/include/audio_coding_module.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/audio_device/include/test_audio_device.h"
#include "modules/audio_mixer/audio_mixer_impl.h"
#include "modules/rtp_rtcp/source/rtp_packet.h"
diff --git a/examples/BUILD.gn b/examples/BUILD.gn
index c66f282..3d7d19c 100644
--- a/examples/BUILD.gn
+++ b/examples/BUILD.gn
@@ -689,6 +689,7 @@
"../api:media_stream_interface",
"../api:rtp_sender_interface",
"../api:scoped_refptr",
+ "../api/audio:audio_device",
"../api/audio:audio_mixer_api",
"../api/audio:audio_processing",
"../api/audio_codecs:audio_codecs_api",
diff --git a/examples/peerconnection/client/conductor.cc b/examples/peerconnection/client/conductor.cc
index 1dd9dcd..23e5781 100644
--- a/examples/peerconnection/client/conductor.cc
+++ b/examples/peerconnection/client/conductor.cc
@@ -19,6 +19,7 @@
#include "absl/memory/memory.h"
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/audio_decoder_factory.h"
@@ -41,7 +42,6 @@
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h"
#include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
#include "examples/peerconnection/client/defaults.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/video_capture/video_capture.h"
#include "modules/video_capture/video_capture_factory.h"
#include "p2p/base/port_allocator.h"
diff --git a/media/BUILD.gn b/media/BUILD.gn
index 6a13f78..5a0a5ef 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -577,6 +577,7 @@
"../api:scoped_refptr",
"../api:sequence_checker",
"../api:transport_api",
+ "../api/audio:audio_device",
"../api/audio:audio_frame_api",
"../api/audio:audio_frame_processor",
"../api/audio:audio_mixer_api",
diff --git a/media/base/media_engine.h b/media/base/media_engine.h
index 8d5b01c..63cc86f 100644
--- a/media/base/media_engine.h
+++ b/media/base/media_engine.h
@@ -30,7 +30,6 @@
#include "rtc_base/system/file_wrapper.h"
namespace webrtc {
-class AudioDeviceModule;
class AudioMixer;
class Call;
} // namespace webrtc
diff --git a/media/engine/adm_helpers.cc b/media/engine/adm_helpers.cc
index c349b7c..12dfbc9 100644
--- a/media/engine/adm_helpers.cc
+++ b/media/engine/adm_helpers.cc
@@ -10,7 +10,7 @@
#include "media/engine/adm_helpers.h"
-#include "modules/audio_device/include/audio_device.h"
+#include "api/audio/audio_device.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
diff --git a/media/engine/webrtc_voice_engine.h b/media/engine/webrtc_voice_engine.h
index d668287..502a062 100644
--- a/media/engine/webrtc_voice_engine.h
+++ b/media/engine/webrtc_voice_engine.h
@@ -24,6 +24,7 @@
#include "absl/functional/any_invocable.h"
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_frame_processor.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
@@ -59,7 +60,6 @@
#include "media/base/rtp_utils.h"
#include "media/base/stream_params.h"
#include "modules/async_audio_processing/async_audio_processing.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
#include "modules/rtp_rtcp/source/rtp_packet_received.h"
#include "rtc_base/buffer.h"
diff --git a/modules/audio_device/BUILD.gn b/modules/audio_device/BUILD.gn
index 359867e..d15071c 100644
--- a/modules/audio_device/BUILD.gn
+++ b/modules/audio_device/BUILD.gn
@@ -26,7 +26,7 @@
rtc_source_set("audio_device_default") {
visibility = [ "*" ]
sources = [ "include/audio_device_default.h" ]
- deps = [ ":audio_device_api" ]
+ deps = [ "../../api/audio:audio_device" ]
}
rtc_source_set("audio_device") {
@@ -47,15 +47,7 @@
"include/audio_device.h",
"include/audio_device_defines.h",
]
- deps = [
- "../../api:ref_count",
- "../../api:scoped_refptr",
- "../../api/task_queue",
- "../../rtc_base:checks",
- "../../rtc_base:refcount",
- "../../rtc_base:stringutils",
- ]
- absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
+ deps = [ "../../api/audio:audio_device" ]
}
rtc_library("audio_device_config") {
@@ -70,9 +62,9 @@
"fine_audio_buffer.h",
]
deps = [
- ":audio_device_api",
"../../api:array_view",
"../../api:sequence_checker",
+ "../../api/audio:audio_device",
"../../api/task_queue",
"../../common_audio:common_audio_c",
"../../rtc_base:buffer",
@@ -96,8 +88,8 @@
"audio_device_generic.h",
]
deps = [
- ":audio_device_api",
":audio_device_buffer",
+ "../../api/audio:audio_device",
"../../rtc_base:logging",
]
}
@@ -118,8 +110,8 @@
]
deps = [
- ":audio_device_api",
":audio_device_name",
+ "../../api/audio:audio_device",
"../../api/units:time_delta",
"../../rtc_base:checks",
"../../rtc_base:logging",
@@ -157,12 +149,12 @@
]
deps = [
- ":audio_device_api",
":audio_device_buffer",
":windows_core_audio_utility",
"../../api:make_ref_counted",
"../../api:scoped_refptr",
"../../api:sequence_checker",
+ "../../api/audio:audio_device",
"../../api/task_queue",
"../../rtc_base:checks",
"../../rtc_base:logging",
@@ -191,7 +183,6 @@
"test_audio_device_impl.h",
]
deps = [
- ":audio_device_api",
":audio_device_buffer",
":audio_device_default",
":audio_device_generic",
@@ -199,6 +190,7 @@
"../../api:array_view",
"../../api:make_ref_counted",
"../../api:scoped_refptr",
+ "../../api/audio:audio_device",
"../../api/task_queue",
"../../api/units:time_delta",
"../../common_audio",
@@ -228,9 +220,9 @@
"dummy/audio_device_dummy.h",
]
deps = [
- ":audio_device_api",
":audio_device_buffer",
":audio_device_generic",
+ "../../api/audio:audio_device",
]
}
@@ -267,7 +259,6 @@
rtc_library("audio_device_impl") {
visibility = [ "*" ]
deps = [
- ":audio_device_api",
":audio_device_buffer",
":audio_device_config",
":audio_device_default",
@@ -278,6 +269,7 @@
"../../api:refcountedbase",
"../../api:scoped_refptr",
"../../api:sequence_checker",
+ "../../api/audio:audio_device",
"../../api/task_queue",
"../../api/units:time_delta",
"../../common_audio",
@@ -450,6 +442,7 @@
":audio_device_buffer",
":audio_device_impl",
"../../api:make_ref_counted",
+ "../../api/audio:audio_device",
"../../test:test_support",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
@@ -474,6 +467,7 @@
"../../api:array_view",
"../../api:scoped_refptr",
"../../api:sequence_checker",
+ "../../api/audio:audio_device",
"../../api/task_queue",
"../../api/task_queue:default_task_queue_factory",
"../../api/units:time_delta",
diff --git a/modules/audio_device/audio_device_buffer.h b/modules/audio_device/audio_device_buffer.h
index b96696e..e9a90ab 100644
--- a/modules/audio_device/audio_device_buffer.h
+++ b/modules/audio_device/audio_device_buffer.h
@@ -17,10 +17,10 @@
#include <atomic>
#include <memory>
+#include "api/audio/audio_device_defines.h"
#include "api/sequence_checker.h"
#include "api/task_queue/task_queue_base.h"
#include "api/task_queue/task_queue_factory.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "rtc_base/buffer.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/thread_annotations.h"
diff --git a/modules/audio_device/audio_device_data_observer.cc b/modules/audio_device/audio_device_data_observer.cc
index 0524830..9643f75 100644
--- a/modules/audio_device/audio_device_data_observer.cc
+++ b/modules/audio_device/audio_device_data_observer.cc
@@ -10,8 +10,8 @@
#include "modules/audio_device/include/audio_device_data_observer.h"
+#include "api/audio/audio_device_defines.h"
#include "api/make_ref_counted.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "rtc_base/checks.h"
namespace webrtc {
diff --git a/modules/audio_device/audio_device_generic.h b/modules/audio_device/audio_device_generic.h
index 41e24eb..3fa3ed9 100644
--- a/modules/audio_device/audio_device_generic.h
+++ b/modules/audio_device/audio_device_generic.h
@@ -13,9 +13,9 @@
#include <stdint.h>
+#include "api/audio/audio_device.h"
+#include "api/audio/audio_device_defines.h"
#include "modules/audio_device/audio_device_buffer.h"
-#include "modules/audio_device/include/audio_device.h"
-#include "modules/audio_device/include/audio_device_defines.h"
namespace webrtc {
diff --git a/modules/audio_device/audio_device_impl.h b/modules/audio_device/audio_device_impl.h
index 46d91a4..1e84eda 100644
--- a/modules/audio_device/audio_device_impl.h
+++ b/modules/audio_device/audio_device_impl.h
@@ -17,9 +17,9 @@
#include <memory>
+#include "api/audio/audio_device.h"
#include "api/task_queue/task_queue_factory.h"
#include "modules/audio_device/audio_device_buffer.h"
-#include "modules/audio_device/include/audio_device.h"
namespace webrtc {
diff --git a/modules/audio_device/audio_device_unittest.cc b/modules/audio_device/audio_device_unittest.cc
index e03c116..8275f21 100644
--- a/modules/audio_device/audio_device_unittest.cc
+++ b/modules/audio_device/audio_device_unittest.cc
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "modules/audio_device/include/audio_device.h"
+#include "api/audio/audio_device.h"
#include <algorithm>
#include <cstring>
diff --git a/modules/audio_device/dummy/audio_device_dummy.h b/modules/audio_device/dummy/audio_device_dummy.h
index 2a25410..6550915 100644
--- a/modules/audio_device/dummy/audio_device_dummy.h
+++ b/modules/audio_device/dummy/audio_device_dummy.h
@@ -13,10 +13,10 @@
#include <stdint.h>
+#include "api/audio/audio_device.h"
+#include "api/audio/audio_device_defines.h"
#include "modules/audio_device/audio_device_buffer.h"
#include "modules/audio_device/audio_device_generic.h"
-#include "modules/audio_device/include/audio_device.h"
-#include "modules/audio_device/include/audio_device_defines.h"
namespace webrtc {
diff --git a/modules/audio_device/include/audio_device.h b/modules/audio_device/include/audio_device.h
index 47d2aec..3549e00 100644
--- a/modules/audio_device/include/audio_device.h
+++ b/modules/audio_device/include/audio_device.h
@@ -11,184 +11,8 @@
#ifndef MODULES_AUDIO_DEVICE_INCLUDE_AUDIO_DEVICE_H_
#define MODULES_AUDIO_DEVICE_INCLUDE_AUDIO_DEVICE_H_
-#include "absl/types/optional.h"
-#include "api/ref_count.h"
-#include "api/scoped_refptr.h"
-#include "api/task_queue/task_queue_factory.h"
-#include "modules/audio_device/include/audio_device_defines.h"
-
-namespace webrtc {
-
-class AudioDeviceModuleForTest;
-
-class AudioDeviceModule : public webrtc::RefCountInterface {
- public:
- enum AudioLayer {
- kPlatformDefaultAudio = 0,
- kWindowsCoreAudio,
- kWindowsCoreAudio2,
- kLinuxAlsaAudio,
- kLinuxPulseAudio,
- kAndroidJavaAudio,
- kAndroidOpenSLESAudio,
- kAndroidJavaInputAndOpenSLESOutputAudio,
- kAndroidAAudioAudio,
- kAndroidJavaInputAndAAudioOutputAudio,
- kDummyAudio,
- };
-
- enum WindowsDeviceType {
- kDefaultCommunicationDevice = -1,
- kDefaultDevice = -2
- };
-
- struct Stats {
- // The fields below correspond to similarly-named fields in the WebRTC stats
- // spec. https://w3c.github.io/webrtc-stats/#playoutstats-dict*
- double synthesized_samples_duration_s = 0;
- uint64_t synthesized_samples_events = 0;
- double total_samples_duration_s = 0;
- double total_playout_delay_s = 0;
- uint64_t total_samples_count = 0;
- };
-
- public:
- // Creates a default ADM for usage in production code.
- static rtc::scoped_refptr<AudioDeviceModule> Create(
- AudioLayer audio_layer,
- TaskQueueFactory* task_queue_factory);
- // Creates an ADM with support for extra test methods. Don't use this factory
- // in production code.
- static rtc::scoped_refptr<AudioDeviceModuleForTest> CreateForTest(
- AudioLayer audio_layer,
- TaskQueueFactory* task_queue_factory);
-
- // Retrieve the currently utilized audio layer
- virtual int32_t ActiveAudioLayer(AudioLayer* audioLayer) const = 0;
-
- // Full-duplex transportation of PCM audio
- virtual int32_t RegisterAudioCallback(AudioTransport* audioCallback) = 0;
-
- // Main initialization and termination
- virtual int32_t Init() = 0;
- virtual int32_t Terminate() = 0;
- virtual bool Initialized() const = 0;
-
- // Device enumeration
- virtual int16_t PlayoutDevices() = 0;
- virtual int16_t RecordingDevices() = 0;
- virtual int32_t PlayoutDeviceName(uint16_t index,
- char name[kAdmMaxDeviceNameSize],
- char guid[kAdmMaxGuidSize]) = 0;
- virtual int32_t RecordingDeviceName(uint16_t index,
- char name[kAdmMaxDeviceNameSize],
- char guid[kAdmMaxGuidSize]) = 0;
-
- // Device selection
- virtual int32_t SetPlayoutDevice(uint16_t index) = 0;
- virtual int32_t SetPlayoutDevice(WindowsDeviceType device) = 0;
- virtual int32_t SetRecordingDevice(uint16_t index) = 0;
- virtual int32_t SetRecordingDevice(WindowsDeviceType device) = 0;
-
- // Audio transport initialization
- virtual int32_t PlayoutIsAvailable(bool* available) = 0;
- virtual int32_t InitPlayout() = 0;
- virtual bool PlayoutIsInitialized() const = 0;
- virtual int32_t RecordingIsAvailable(bool* available) = 0;
- virtual int32_t InitRecording() = 0;
- virtual bool RecordingIsInitialized() const = 0;
-
- // Audio transport control
- virtual int32_t StartPlayout() = 0;
- virtual int32_t StopPlayout() = 0;
- virtual bool Playing() const = 0;
- virtual int32_t StartRecording() = 0;
- virtual int32_t StopRecording() = 0;
- virtual bool Recording() const = 0;
-
- // Audio mixer initialization
- virtual int32_t InitSpeaker() = 0;
- virtual bool SpeakerIsInitialized() const = 0;
- virtual int32_t InitMicrophone() = 0;
- virtual bool MicrophoneIsInitialized() const = 0;
-
- // Speaker volume controls
- virtual int32_t SpeakerVolumeIsAvailable(bool* available) = 0;
- virtual int32_t SetSpeakerVolume(uint32_t volume) = 0;
- virtual int32_t SpeakerVolume(uint32_t* volume) const = 0;
- virtual int32_t MaxSpeakerVolume(uint32_t* maxVolume) const = 0;
- virtual int32_t MinSpeakerVolume(uint32_t* minVolume) const = 0;
-
- // Microphone volume controls
- virtual int32_t MicrophoneVolumeIsAvailable(bool* available) = 0;
- virtual int32_t SetMicrophoneVolume(uint32_t volume) = 0;
- virtual int32_t MicrophoneVolume(uint32_t* volume) const = 0;
- virtual int32_t MaxMicrophoneVolume(uint32_t* maxVolume) const = 0;
- virtual int32_t MinMicrophoneVolume(uint32_t* minVolume) const = 0;
-
- // Speaker mute control
- virtual int32_t SpeakerMuteIsAvailable(bool* available) = 0;
- virtual int32_t SetSpeakerMute(bool enable) = 0;
- virtual int32_t SpeakerMute(bool* enabled) const = 0;
-
- // Microphone mute control
- virtual int32_t MicrophoneMuteIsAvailable(bool* available) = 0;
- virtual int32_t SetMicrophoneMute(bool enable) = 0;
- virtual int32_t MicrophoneMute(bool* enabled) const = 0;
-
- // Stereo support
- virtual int32_t StereoPlayoutIsAvailable(bool* available) const = 0;
- virtual int32_t SetStereoPlayout(bool enable) = 0;
- virtual int32_t StereoPlayout(bool* enabled) const = 0;
- virtual int32_t StereoRecordingIsAvailable(bool* available) const = 0;
- virtual int32_t SetStereoRecording(bool enable) = 0;
- virtual int32_t StereoRecording(bool* enabled) const = 0;
-
- // Playout delay
- virtual int32_t PlayoutDelay(uint16_t* delayMS) const = 0;
-
- // Only supported on Android.
- virtual bool BuiltInAECIsAvailable() const = 0;
- virtual bool BuiltInAGCIsAvailable() const = 0;
- virtual bool BuiltInNSIsAvailable() const = 0;
-
- // Enables the built-in audio effects. Only supported on Android.
- virtual int32_t EnableBuiltInAEC(bool enable) = 0;
- virtual int32_t EnableBuiltInAGC(bool enable) = 0;
- virtual int32_t EnableBuiltInNS(bool enable) = 0;
-
- // Play underrun count. Only supported on Android.
- // TODO(alexnarest): Make it abstract after upstream projects support it.
- virtual int32_t GetPlayoutUnderrunCount() const { return -1; }
-
- // Used to generate RTC stats. If not implemented, RTCAudioPlayoutStats will
- // not be present in the stats.
- virtual absl::optional<Stats> GetStats() const { return absl::nullopt; }
-
-// Only supported on iOS.
-#if defined(WEBRTC_IOS)
- virtual int GetPlayoutAudioParameters(AudioParameters* params) const = 0;
- virtual int GetRecordAudioParameters(AudioParameters* params) const = 0;
-#endif // WEBRTC_IOS
-
- protected:
- ~AudioDeviceModule() override {}
-};
-
-// Extends the default ADM interface with some extra test methods.
-// Intended for usage in tests only and requires a unique factory method.
-class AudioDeviceModuleForTest : public AudioDeviceModule {
- public:
- // Triggers internal restart sequences of audio streaming. Can be used by
- // tests to emulate events corresponding to e.g. removal of an active audio
- // device or other actions which causes the stream to be disconnected.
- virtual int RestartPlayoutInternally() = 0;
- virtual int RestartRecordingInternally() = 0;
-
- virtual int SetPlayoutSampleRate(uint32_t sample_rate) = 0;
- virtual int SetRecordingSampleRate(uint32_t sample_rate) = 0;
-};
-
-} // namespace webrtc
+// This is a transitional header forwarding to the new version in the api/
+// folder.
+#include "api/audio/audio_device.h"
#endif // MODULES_AUDIO_DEVICE_INCLUDE_AUDIO_DEVICE_H_
diff --git a/modules/audio_device/include/audio_device_data_observer.h b/modules/audio_device/include/audio_device_data_observer.h
index 36dc45f..2e8b79a 100644
--- a/modules/audio_device/include/audio_device_data_observer.h
+++ b/modules/audio_device/include/audio_device_data_observer.h
@@ -15,9 +15,9 @@
#include <stdint.h>
#include "absl/base/attributes.h"
+#include "api/audio/audio_device.h"
#include "api/scoped_refptr.h"
#include "api/task_queue/task_queue_factory.h"
-#include "modules/audio_device/include/audio_device.h"
namespace webrtc {
diff --git a/modules/audio_device/include/audio_device_default.h b/modules/audio_device/include/audio_device_default.h
index 3779d6f..fb146a9 100644
--- a/modules/audio_device/include/audio_device_default.h
+++ b/modules/audio_device/include/audio_device_default.h
@@ -11,7 +11,7 @@
#ifndef MODULES_AUDIO_DEVICE_INCLUDE_AUDIO_DEVICE_DEFAULT_H_
#define MODULES_AUDIO_DEVICE_INCLUDE_AUDIO_DEVICE_DEFAULT_H_
-#include "modules/audio_device/include/audio_device.h"
+#include "api/audio/audio_device.h"
namespace webrtc {
namespace webrtc_impl {
diff --git a/modules/audio_device/include/audio_device_defines.h b/modules/audio_device/include/audio_device_defines.h
index d677d41..d126f78 100644
--- a/modules/audio_device/include/audio_device_defines.h
+++ b/modules/audio_device/include/audio_device_defines.h
@@ -11,167 +11,8 @@
#ifndef MODULES_AUDIO_DEVICE_INCLUDE_AUDIO_DEVICE_DEFINES_H_
#define MODULES_AUDIO_DEVICE_INCLUDE_AUDIO_DEVICE_DEFINES_H_
-#include <stddef.h>
-
-#include <string>
-
-#include "rtc_base/checks.h"
-#include "rtc_base/strings/string_builder.h"
-
-namespace webrtc {
-
-static const int kAdmMaxDeviceNameSize = 128;
-static const int kAdmMaxFileNameSize = 512;
-static const int kAdmMaxGuidSize = 128;
-
-static const int kAdmMinPlayoutBufferSizeMs = 10;
-static const int kAdmMaxPlayoutBufferSizeMs = 250;
-
-// ----------------------------------------------------------------------------
-// AudioTransport
-// ----------------------------------------------------------------------------
-
-class AudioTransport {
- public:
- // TODO(bugs.webrtc.org/13620) Deprecate this function
- virtual int32_t RecordedDataIsAvailable(const void* audioSamples,
- size_t nSamples,
- size_t nBytesPerSample,
- size_t nChannels,
- uint32_t samplesPerSec,
- uint32_t totalDelayMS,
- int32_t clockDrift,
- uint32_t currentMicLevel,
- bool keyPressed,
- uint32_t& newMicLevel) = 0; // NOLINT
-
- virtual int32_t RecordedDataIsAvailable(
- const void* audioSamples,
- size_t nSamples,
- size_t nBytesPerSample,
- size_t nChannels,
- uint32_t samplesPerSec,
- uint32_t totalDelayMS,
- int32_t clockDrift,
- uint32_t currentMicLevel,
- bool keyPressed,
- uint32_t& newMicLevel,
- absl::optional<int64_t> estimatedCaptureTimeNS) { // NOLINT
- // TODO(webrtc:13620) Make the default behaver of the new API to behave as
- // the old API. This can be pure virtual if all uses of the old API is
- // removed.
- return RecordedDataIsAvailable(
- audioSamples, nSamples, nBytesPerSample, nChannels, samplesPerSec,
- totalDelayMS, clockDrift, currentMicLevel, keyPressed, newMicLevel);
- }
-
- // Implementation has to setup safe values for all specified out parameters.
- virtual int32_t NeedMorePlayData(size_t nSamples,
- size_t nBytesPerSample,
- size_t nChannels,
- uint32_t samplesPerSec,
- void* audioSamples,
- size_t& nSamplesOut, // NOLINT
- int64_t* elapsed_time_ms,
- int64_t* ntp_time_ms) = 0; // NOLINT
-
- // Method to pull mixed render audio data from all active VoE channels.
- // The data will not be passed as reference for audio processing internally.
- virtual void PullRenderData(int bits_per_sample,
- int sample_rate,
- size_t number_of_channels,
- size_t number_of_frames,
- void* audio_data,
- int64_t* elapsed_time_ms,
- int64_t* ntp_time_ms) = 0;
-
- protected:
- virtual ~AudioTransport() {}
-};
-
-// Helper class for storage of fundamental audio parameters such as sample rate,
-// number of channels, native buffer size etc.
-// Note that one audio frame can contain more than one channel sample and each
-// sample is assumed to be a 16-bit PCM sample. Hence, one audio frame in
-// stereo contains 2 * (16/8) = 4 bytes of data.
-class AudioParameters {
- public:
- // This implementation does only support 16-bit PCM samples.
- static const size_t kBitsPerSample = 16;
- AudioParameters()
- : sample_rate_(0),
- channels_(0),
- frames_per_buffer_(0),
- frames_per_10ms_buffer_(0) {}
- AudioParameters(int sample_rate, size_t channels, size_t frames_per_buffer)
- : sample_rate_(sample_rate),
- channels_(channels),
- frames_per_buffer_(frames_per_buffer),
- frames_per_10ms_buffer_(static_cast<size_t>(sample_rate / 100)) {}
- void reset(int sample_rate, size_t channels, size_t frames_per_buffer) {
- sample_rate_ = sample_rate;
- channels_ = channels;
- frames_per_buffer_ = frames_per_buffer;
- frames_per_10ms_buffer_ = static_cast<size_t>(sample_rate / 100);
- }
- size_t bits_per_sample() const { return kBitsPerSample; }
- void reset(int sample_rate, size_t channels, double buffer_duration) {
- reset(sample_rate, channels,
- static_cast<size_t>(sample_rate * buffer_duration + 0.5));
- }
- void reset(int sample_rate, size_t channels) {
- reset(sample_rate, channels, static_cast<size_t>(0));
- }
- int sample_rate() const { return sample_rate_; }
- size_t channels() const { return channels_; }
- size_t frames_per_buffer() const { return frames_per_buffer_; }
- size_t frames_per_10ms_buffer() const { return frames_per_10ms_buffer_; }
- size_t GetBytesPerFrame() const { return channels_ * kBitsPerSample / 8; }
- size_t GetBytesPerBuffer() const {
- return frames_per_buffer_ * GetBytesPerFrame();
- }
- // The WebRTC audio device buffer (ADB) only requires that the sample rate
- // and number of channels are configured. Hence, to be "valid", only these
- // two attributes must be set.
- bool is_valid() const { return ((sample_rate_ > 0) && (channels_ > 0)); }
- // Most platforms also require that a native buffer size is defined.
- // An audio parameter instance is considered to be "complete" if it is both
- // "valid" (can be used by the ADB) and also has a native frame size.
- bool is_complete() const { return (is_valid() && (frames_per_buffer_ > 0)); }
- size_t GetBytesPer10msBuffer() const {
- return frames_per_10ms_buffer_ * GetBytesPerFrame();
- }
- double GetBufferSizeInMilliseconds() const {
- if (sample_rate_ == 0)
- return 0.0;
- return frames_per_buffer_ / (sample_rate_ / 1000.0);
- }
- double GetBufferSizeInSeconds() const {
- if (sample_rate_ == 0)
- return 0.0;
- return static_cast<double>(frames_per_buffer_) / (sample_rate_);
- }
- std::string ToString() const {
- char ss_buf[1024];
- rtc::SimpleStringBuilder ss(ss_buf);
- ss << "AudioParameters: ";
- ss << "sample_rate=" << sample_rate() << ", channels=" << channels();
- ss << ", frames_per_buffer=" << frames_per_buffer();
- ss << ", frames_per_10ms_buffer=" << frames_per_10ms_buffer();
- ss << ", bytes_per_frame=" << GetBytesPerFrame();
- ss << ", bytes_per_buffer=" << GetBytesPerBuffer();
- ss << ", bytes_per_10ms_buffer=" << GetBytesPer10msBuffer();
- ss << ", size_in_ms=" << GetBufferSizeInMilliseconds();
- return ss.str();
- }
-
- private:
- int sample_rate_;
- size_t channels_;
- size_t frames_per_buffer_;
- size_t frames_per_10ms_buffer_;
-};
-
-} // namespace webrtc
+// This is a transitional header forwarding to the new version in the api/
+// folder.
+#include "api/audio/audio_device_defines.h"
#endif // MODULES_AUDIO_DEVICE_INCLUDE_AUDIO_DEVICE_DEFINES_H_
diff --git a/modules/audio_device/include/audio_device_factory.h b/modules/audio_device/include/audio_device_factory.h
index edd7686..4948c65 100644
--- a/modules/audio_device/include/audio_device_factory.h
+++ b/modules/audio_device/include/audio_device_factory.h
@@ -13,8 +13,8 @@
#include <memory>
+#include "api/audio/audio_device.h"
#include "api/task_queue/task_queue_factory.h"
-#include "modules/audio_device/include/audio_device.h"
namespace webrtc {
diff --git a/modules/audio_device/include/fake_audio_device.h b/modules/audio_device/include/fake_audio_device.h
index 2a30317..b348483 100644
--- a/modules/audio_device/include/fake_audio_device.h
+++ b/modules/audio_device/include/fake_audio_device.h
@@ -11,7 +11,7 @@
#ifndef MODULES_AUDIO_DEVICE_INCLUDE_FAKE_AUDIO_DEVICE_H_
#define MODULES_AUDIO_DEVICE_INCLUDE_FAKE_AUDIO_DEVICE_H_
-#include "modules/audio_device/include/audio_device.h"
+#include "api/audio/audio_device.h"
#include "modules/audio_device/include/audio_device_default.h"
namespace webrtc {
diff --git a/modules/audio_device/include/mock_audio_device.h b/modules/audio_device/include/mock_audio_device.h
index 73fbdd5..7142684 100644
--- a/modules/audio_device/include/mock_audio_device.h
+++ b/modules/audio_device/include/mock_audio_device.h
@@ -13,8 +13,8 @@
#include <string>
+#include "api/audio/audio_device.h"
#include "api/make_ref_counted.h"
-#include "modules/audio_device/include/audio_device.h"
#include "test/gmock.h"
namespace webrtc {
diff --git a/modules/audio_device/include/mock_audio_transport.h b/modules/audio_device/include/mock_audio_transport.h
index b886967..cde0e53 100644
--- a/modules/audio_device/include/mock_audio_transport.h
+++ b/modules/audio_device/include/mock_audio_transport.h
@@ -11,7 +11,7 @@
#ifndef MODULES_AUDIO_DEVICE_INCLUDE_MOCK_AUDIO_TRANSPORT_H_
#define MODULES_AUDIO_DEVICE_INCLUDE_MOCK_AUDIO_TRANSPORT_H_
-#include "modules/audio_device/include/audio_device_defines.h"
+#include "api/audio/audio_device_defines.h"
#include "test/gmock.h"
namespace webrtc {
diff --git a/modules/audio_device/include/test_audio_device.h b/modules/audio_device/include/test_audio_device.h
index 4b2d755..83954c8 100644
--- a/modules/audio_device/include/test_audio_device.h
+++ b/modules/audio_device/include/test_audio_device.h
@@ -18,10 +18,10 @@
#include "absl/strings/string_view.h"
#include "api/array_view.h"
+#include "api/audio/audio_device.h"
+#include "api/audio/audio_device_defines.h"
#include "api/scoped_refptr.h"
#include "api/task_queue/task_queue_factory.h"
-#include "modules/audio_device/include/audio_device.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "rtc_base/buffer.h"
namespace webrtc {
diff --git a/modules/audio_device/include/test_audio_device_unittest.cc b/modules/audio_device/include/test_audio_device_unittest.cc
index cca8297..165a4fb 100644
--- a/modules/audio_device/include/test_audio_device_unittest.cc
+++ b/modules/audio_device/include/test_audio_device_unittest.cc
@@ -17,12 +17,12 @@
#include "absl/types/optional.h"
#include "api/array_view.h"
+#include "api/audio/audio_device_defines.h"
#include "api/task_queue/task_queue_factory.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
#include "common_audio/wav_file.h"
#include "common_audio/wav_header.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
#include "rtc_base/synchronization/mutex.h"
diff --git a/modules/audio_device/linux/audio_device_pulse_linux.h b/modules/audio_device/linux/audio_device_pulse_linux.h
index 0cf89ef..d818caf 100644
--- a/modules/audio_device/linux/audio_device_pulse_linux.h
+++ b/modules/audio_device/linux/audio_device_pulse_linux.h
@@ -13,11 +13,11 @@
#include <memory>
+#include "api/audio/audio_device.h"
+#include "api/audio/audio_device_defines.h"
#include "api/sequence_checker.h"
#include "modules/audio_device/audio_device_buffer.h"
#include "modules/audio_device/audio_device_generic.h"
-#include "modules/audio_device/include/audio_device.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "modules/audio_device/linux/audio_mixer_manager_pulse_linux.h"
#include "modules/audio_device/linux/pulseaudiosymboltable_linux.h"
#include "rtc_base/event.h"
diff --git a/modules/audio_device/linux/audio_mixer_manager_alsa_linux.h b/modules/audio_device/linux/audio_mixer_manager_alsa_linux.h
index d982878..ec6c781 100644
--- a/modules/audio_device/linux/audio_mixer_manager_alsa_linux.h
+++ b/modules/audio_device/linux/audio_mixer_manager_alsa_linux.h
@@ -13,7 +13,7 @@
#include <alsa/asoundlib.h>
-#include "modules/audio_device/include/audio_device.h"
+#include "api/audio/audio_device.h"
#include "modules/audio_device/linux/alsasymboltable_linux.h"
#include "rtc_base/synchronization/mutex.h"
diff --git a/modules/audio_device/mac/audio_mixer_manager_mac.h b/modules/audio_device/mac/audio_mixer_manager_mac.h
index 0ccab48..6767d6c 100644
--- a/modules/audio_device/mac/audio_mixer_manager_mac.h
+++ b/modules/audio_device/mac/audio_mixer_manager_mac.h
@@ -13,7 +13,7 @@
#include <CoreAudio/CoreAudio.h>
-#include "modules/audio_device/include/audio_device.h"
+#include "api/audio/audio_device.h"
#include "rtc_base/logging.h"
#include "rtc_base/synchronization/mutex.h"
diff --git a/modules/audio_device/test_audio_device_impl.h b/modules/audio_device/test_audio_device_impl.h
index 84b4894..87fd9a9 100644
--- a/modules/audio_device/test_audio_device_impl.h
+++ b/modules/audio_device/test_audio_device_impl.h
@@ -14,12 +14,12 @@
#include <memory>
#include <vector>
+#include "api/audio/audio_device.h"
+#include "api/audio/audio_device_defines.h"
#include "api/task_queue/task_queue_base.h"
#include "api/task_queue/task_queue_factory.h"
#include "modules/audio_device/audio_device_buffer.h"
#include "modules/audio_device/audio_device_generic.h"
-#include "modules/audio_device/include/audio_device.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "modules/audio_device/include/test_audio_device.h"
#include "rtc_base/buffer.h"
#include "rtc_base/synchronization/mutex.h"
diff --git a/modules/audio_device/test_audio_device_impl_test.cc b/modules/audio_device/test_audio_device_impl_test.cc
index e81bb2f..ad15ad5 100644
--- a/modules/audio_device/test_audio_device_impl_test.cc
+++ b/modules/audio_device/test_audio_device_impl_test.cc
@@ -13,13 +13,13 @@
#include <utility>
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
+#include "api/audio/audio_device_defines.h"
#include "api/task_queue/task_queue_factory.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
#include "modules/audio_device/audio_device_buffer.h"
#include "modules/audio_device/audio_device_generic.h"
-#include "modules/audio_device/include/audio_device.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "modules/audio_device/include/test_audio_device.h"
#include "rtc_base/checks.h"
#include "rtc_base/synchronization/mutex.h"
diff --git a/modules/audio_device/win/audio_device_module_win.cc b/modules/audio_device/win/audio_device_module_win.cc
index a36c407..00f5443 100644
--- a/modules/audio_device/win/audio_device_module_win.cc
+++ b/modules/audio_device/win/audio_device_module_win.cc
@@ -13,10 +13,10 @@
#include <memory>
#include <utility>
+#include "api/audio/audio_device.h"
#include "api/make_ref_counted.h"
#include "api/sequence_checker.h"
#include "modules/audio_device/audio_device_buffer.h"
-#include "modules/audio_device/include/audio_device.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
#include "rtc_base/string_utils.h"
diff --git a/modules/audio_device/win/audio_device_module_win.h b/modules/audio_device/win/audio_device_module_win.h
index 1ed0b25..d7cd06b 100644
--- a/modules/audio_device/win/audio_device_module_win.h
+++ b/modules/audio_device/win/audio_device_module_win.h
@@ -14,9 +14,9 @@
#include <memory>
#include <string>
+#include "api/audio/audio_device.h"
#include "api/scoped_refptr.h"
#include "api/task_queue/task_queue_factory.h"
-#include "modules/audio_device/include/audio_device.h"
namespace webrtc {
diff --git a/modules/audio_device/win/core_audio_utility_win.h b/modules/audio_device/win/core_audio_utility_win.h
index 454e60b..37b90874 100644
--- a/modules/audio_device/win/core_audio_utility_win.h
+++ b/modules/audio_device/win/core_audio_utility_win.h
@@ -23,9 +23,9 @@
#include <string>
#include "absl/strings/string_view.h"
+#include "api/audio/audio_device_defines.h"
#include "api/units/time_delta.h"
#include "modules/audio_device/audio_device_name.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "rtc_base/logging.h"
#include "rtc_base/string_utils.h"
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 42763b4..18063ae 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -867,6 +867,7 @@
":rtp_transmission_manager",
":sctp_data_channel",
"../api:libjingle_peerconnection_api",
+ "../api/audio:audio_device",
"../call:call_interfaces",
"../modules/audio_device",
]
@@ -907,6 +908,7 @@
"../api:rtp_parameters",
"../api:scoped_refptr",
"../api:sequence_checker",
+ "../api/audio:audio_device",
"../api/audio:audio_processing_statistics",
"../api/task_queue:task_queue",
"../api/units:time_delta",
@@ -2145,6 +2147,7 @@
"../api:rtc_error",
"../api:rtc_stats_api",
"../api:scoped_refptr",
+ "../api/audio:audio_device",
"../api/audio:audio_mixer_api",
"../api/audio:audio_processing",
"../api/audio_codecs:audio_codecs_api",
@@ -2164,7 +2167,6 @@
"../api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
"../api/video_codecs:video_encoder_factory_template_open_h264_adapter",
"../media:rtc_media_tests_utils",
- "../modules/audio_device:audio_device_api",
"../p2p:basic_port_allocator",
"../p2p:connection",
"../p2p:p2p_test_utils",
@@ -2367,6 +2369,7 @@
"../api:rtp_transceiver_direction",
"../api:scoped_refptr",
"../api/adaptation:resource_adaptation_api",
+ "../api/audio:audio_device",
"../api/audio:audio_mixer_api",
"../api/audio:audio_processing",
"../api/audio:audio_processing_statistics",
@@ -2404,7 +2407,6 @@
"../media:rtc_data_sctp_transport_internal",
"../media:rtc_media_config",
"../media:stream_params",
- "../modules/audio_device:audio_device_api",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../p2p:basic_port_allocator",
"../p2p:connection",
@@ -2597,6 +2599,7 @@
"../api:rtp_sender_interface",
"../api:rtp_transceiver_direction",
"../api:scoped_refptr",
+ "../api/audio:audio_device",
"../api/audio:audio_mixer_api",
"../api/audio:audio_processing",
"../api/crypto:frame_decryptor_interface",
@@ -2620,7 +2623,6 @@
"../media:rtc_media_config",
"../media:rtc_media_tests_utils",
"../media:stream_params",
- "../modules/audio_device:audio_device_api",
"../modules/audio_processing:audioproc_test_utils",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../p2p:basic_port_allocator",
@@ -2748,6 +2750,7 @@
"../api:rtp_parameters",
"../api:scoped_refptr",
"../api:sequence_checker",
+ "../api/audio:audio_device",
"../api/audio:audio_mixer_api",
"../api/audio:audio_processing",
"../api/audio_codecs:audio_codecs_api",
diff --git a/pc/peer_connection_bundle_unittest.cc b/pc/peer_connection_bundle_unittest.cc
index 269f6c7..7208ba0 100644
--- a/pc/peer_connection_bundle_unittest.cc
+++ b/pc/peer_connection_bundle_unittest.cc
@@ -19,6 +19,7 @@
#include <utility>
#include <vector>
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
@@ -46,7 +47,6 @@
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h"
#include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
#include "media/base/stream_params.h"
-#include "modules/audio_device/include/audio_device.h"
#include "p2p/base/p2p_constants.h"
#include "p2p/base/port.h"
#include "p2p/base/port_allocator.h"
diff --git a/pc/peer_connection_crypto_unittest.cc b/pc/peer_connection_crypto_unittest.cc
index 57c6c1a..9ba20ca 100644
--- a/pc/peer_connection_crypto_unittest.cc
+++ b/pc/peer_connection_crypto_unittest.cc
@@ -19,6 +19,7 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
@@ -38,7 +39,6 @@
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp8_adapter.h"
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h"
#include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
-#include "modules/audio_device/include/audio_device.h"
#include "p2p/base/fake_port_allocator.h"
#include "p2p/base/port_allocator.h"
#include "p2p/base/transport_description.h"
diff --git a/pc/peer_connection_factory_unittest.cc b/pc/peer_connection_factory_unittest.cc
index d2e8938..eb10a6c 100644
--- a/pc/peer_connection_factory_unittest.cc
+++ b/pc/peer_connection_factory_unittest.cc
@@ -15,6 +15,7 @@
#include <utility>
#include <vector>
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
@@ -38,7 +39,6 @@
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h"
#include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
#include "media/base/fake_frame_source.h"
-#include "modules/audio_device/include/audio_device.h"
#include "p2p/base/fake_port_allocator.h"
#include "p2p/base/port.h"
#include "p2p/base/port_allocator.h"
diff --git a/pc/peer_connection_ice_unittest.cc b/pc/peer_connection_ice_unittest.cc
index a4b29af..59541e5 100644
--- a/pc/peer_connection_ice_unittest.cc
+++ b/pc/peer_connection_ice_unittest.cc
@@ -19,6 +19,7 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/candidate.h"
@@ -28,7 +29,6 @@
#include "api/peer_connection_interface.h"
#include "api/rtc_error.h"
#include "api/scoped_refptr.h"
-#include "modules/audio_device/include/audio_device.h"
#include "p2p/base/fake_port_allocator.h"
#include "p2p/base/ice_transport_internal.h"
#include "p2p/base/p2p_constants.h"
diff --git a/pc/peer_connection_interface_unittest.cc b/pc/peer_connection_interface_unittest.cc
index 97934ba..4d68246 100644
--- a/pc/peer_connection_interface_unittest.cc
+++ b/pc/peer_connection_interface_unittest.cc
@@ -19,6 +19,7 @@
#include "absl/strings/str_replace.h"
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
@@ -55,7 +56,6 @@
#include "media/base/stream_params.h"
#include "media/engine/webrtc_media_engine.h"
#include "media/sctp/sctp_transport_internal.h"
-#include "modules/audio_device/include/audio_device.h"
#include "p2p/base/fake_port_allocator.h"
#include "p2p/base/p2p_constants.h"
#include "p2p/base/port.h"
diff --git a/pc/peer_connection_internal.h b/pc/peer_connection_internal.h
index 6fc1222..4f6d6d2 100644
--- a/pc/peer_connection_internal.h
+++ b/pc/peer_connection_internal.h
@@ -18,9 +18,9 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
#include "api/peer_connection_interface.h"
#include "call/call.h"
-#include "modules/audio_device/include/audio_device.h"
#include "pc/jsep_transport_controller.h"
#include "pc/peer_connection_message_handler.h"
#include "pc/rtp_transceiver.h"
diff --git a/pc/peer_connection_jsep_unittest.cc b/pc/peer_connection_jsep_unittest.cc
index 786b519..fa033ae 100644
--- a/pc/peer_connection_jsep_unittest.cc
+++ b/pc/peer_connection_jsep_unittest.cc
@@ -20,6 +20,7 @@
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
#include "api/enable_media_with_defaults.h"
#include "api/field_trials_view.h"
#include "api/jsep.h"
@@ -40,7 +41,6 @@
#include "media/base/media_engine.h"
#include "media/base/stream_params.h"
#include "media/engine/webrtc_media_engine.h"
-#include "modules/audio_device/include/audio_device.h"
#include "p2p/base/p2p_constants.h"
#include "p2p/base/port_allocator.h"
#include "p2p/base/transport_info.h"
diff --git a/pc/peer_connection_rampup_tests.cc b/pc/peer_connection_rampup_tests.cc
index 60e7abc..08bc373 100644
--- a/pc/peer_connection_rampup_tests.cc
+++ b/pc/peer_connection_rampup_tests.cc
@@ -14,6 +14,7 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
@@ -40,7 +41,6 @@
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp8_adapter.h"
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h"
#include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
-#include "modules/audio_device/include/audio_device.h"
#include "p2p/base/port_allocator.h"
#include "p2p/base/port_interface.h"
#include "p2p/base/test_turn_server.h"
diff --git a/pc/peer_connection_rtp_unittest.cc b/pc/peer_connection_rtp_unittest.cc
index c162dfd..bde8e18 100644
--- a/pc/peer_connection_rtp_unittest.cc
+++ b/pc/peer_connection_rtp_unittest.cc
@@ -17,6 +17,7 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
@@ -46,7 +47,6 @@
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h"
#include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
#include "media/base/stream_params.h"
-#include "modules/audio_device/include/audio_device.h"
#include "p2p/base/port_allocator.h"
#include "pc/media_session.h"
#include "pc/peer_connection_wrapper.h"
diff --git a/pc/peer_connection_signaling_unittest.cc b/pc/peer_connection_signaling_unittest.cc
index 64d393a..b6ad190 100644
--- a/pc/peer_connection_signaling_unittest.cc
+++ b/pc/peer_connection_signaling_unittest.cc
@@ -24,6 +24,7 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
@@ -51,7 +52,6 @@
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h"
#include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
#include "media/base/codec.h"
-#include "modules/audio_device/include/audio_device.h"
#include "p2p/base/port_allocator.h"
#include "pc/peer_connection.h"
#include "pc/peer_connection_proxy.h"
diff --git a/pc/peer_connection_simulcast_unittest.cc b/pc/peer_connection_simulcast_unittest.cc
index b4b998a..53dcd2d 100644
--- a/pc/peer_connection_simulcast_unittest.cc
+++ b/pc/peer_connection_simulcast_unittest.cc
@@ -20,6 +20,7 @@
#include "absl/algorithm/container.h"
#include "absl/strings/match.h"
#include "absl/strings/string_view.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
@@ -51,7 +52,6 @@
#include "media/base/media_constants.h"
#include "media/base/rid_description.h"
#include "media/base/stream_params.h"
-#include "modules/audio_device/include/audio_device.h"
#include "pc/channel_interface.h"
#include "pc/peer_connection_wrapper.h"
#include "pc/sdp_utils.h"
diff --git a/pc/rtc_stats_collector.cc b/pc/rtc_stats_collector.cc
index 1342fff..06dc922 100644
--- a/pc/rtc_stats_collector.cc
+++ b/pc/rtc_stats_collector.cc
@@ -25,6 +25,7 @@
#include "absl/functional/bind_front.h"
#include "absl/strings/string_view.h"
#include "api/array_view.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_processing_statistics.h"
#include "api/candidate.h"
#include "api/dtls_transport_interface.h"
@@ -40,7 +41,6 @@
#include "common_video/include/quality_limitation_reason.h"
#include "media/base/media_channel.h"
#include "media/base/media_channel_impl.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/rtp_rtcp/include/report_block_data.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
#include "p2p/base/connection_info.h"
diff --git a/pc/rtc_stats_collector.h b/pc/rtc_stats_collector.h
index 505979c..17eaf7f 100644
--- a/pc/rtc_stats_collector.h
+++ b/pc/rtc_stats_collector.h
@@ -20,6 +20,7 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
#include "api/data_channel_interface.h"
#include "api/media_types.h"
#include "api/scoped_refptr.h"
@@ -28,7 +29,6 @@
#include "api/stats/rtcstats_objects.h"
#include "call/call.h"
#include "media/base/media_channel.h"
-#include "modules/audio_device/include/audio_device.h"
#include "pc/data_channel_utils.h"
#include "pc/peer_connection_internal.h"
#include "pc/rtp_receiver.h"
diff --git a/pc/rtc_stats_collector_unittest.cc b/pc/rtc_stats_collector_unittest.cc
index 7b3160e..0aa9a62 100644
--- a/pc/rtc_stats_collector_unittest.cc
+++ b/pc/rtc_stats_collector_unittest.cc
@@ -24,6 +24,7 @@
#include "absl/strings/str_replace.h"
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_processing_statistics.h"
#include "api/candidate.h"
#include "api/dtls_transport_interface.h"
@@ -46,7 +47,6 @@
#include "api/video_codecs/scalability_mode.h"
#include "common_video/include/quality_limitation_reason.h"
#include "media/base/media_channel.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/rtp_rtcp/include/report_block_data.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
#include "p2p/base/connection_info.h"
diff --git a/pc/sdp_offer_answer_unittest.cc b/pc/sdp_offer_answer_unittest.cc
index 2043ae8..e4324fa 100644
--- a/pc/sdp_offer_answer_unittest.cc
+++ b/pc/sdp_offer_answer_unittest.cc
@@ -13,6 +13,7 @@
#include <vector>
#include "absl/strings/str_replace.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
@@ -32,7 +33,6 @@
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp8_adapter.h"
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h"
#include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
-#include "modules/audio_device/include/audio_device.h"
#include "p2p/base/port_allocator.h"
#include "pc/peer_connection_wrapper.h"
#include "pc/session_description.h"
diff --git a/pc/test/fake_audio_capture_module.h b/pc/test/fake_audio_capture_module.h
index c04373c..f25d151 100644
--- a/pc/test/fake_audio_capture_module.h
+++ b/pc/test/fake_audio_capture_module.h
@@ -25,10 +25,10 @@
#include <memory>
+#include "api/audio/audio_device.h"
+#include "api/audio/audio_device_defines.h"
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
-#include "modules/audio_device/include/audio_device.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/thread_annotations.h"
diff --git a/pc/test/integration_test_helpers.h b/pc/test/integration_test_helpers.h
index b539a87..f1210fb 100644
--- a/pc/test/integration_test_helpers.h
+++ b/pc/test/integration_test_helpers.h
@@ -30,6 +30,7 @@
#include "absl/memory/memory.h"
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_processing.h"
#include "api/audio_options.h"
#include "api/candidate.h"
@@ -69,7 +70,6 @@
#include "media/base/media_engine.h"
#include "media/base/stream_params.h"
#include "media/engine/fake_webrtc_video_engine.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/audio_processing/test/audio_processing_builder_for_testing.h"
#include "p2p/base/fake_ice_transport.h"
#include "p2p/base/ice_transport_internal.h"
diff --git a/pc/test/mock_peer_connection_internal.h b/pc/test/mock_peer_connection_internal.h
index e586008..c9f896b 100644
--- a/pc/test/mock_peer_connection_internal.h
+++ b/pc/test/mock_peer_connection_internal.h
@@ -17,7 +17,7 @@
#include <string>
#include <vector>
-#include "modules/audio_device/include/audio_device.h"
+#include "api/audio/audio_device.h"
#include "pc/peer_connection_internal.h"
#include "test/gmock.h"
diff --git a/pc/test/peer_connection_test_wrapper.cc b/pc/test/peer_connection_test_wrapper.cc
index 068768b..e5c3811 100644
--- a/pc/test/peer_connection_test_wrapper.cc
+++ b/pc/test/peer_connection_test_wrapper.cc
@@ -19,6 +19,7 @@
#include "absl/strings/match.h"
#include "absl/types/optional.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_mixer.h"
#include "api/audio/audio_processing.h"
#include "api/create_peerconnection_factory.h"
@@ -38,7 +39,6 @@
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h"
#include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
#include "media/engine/simulcast_encoder_adapter.h"
-#include "modules/audio_device/include/audio_device.h"
#include "p2p/base/fake_port_allocator.h"
#include "p2p/base/port_allocator.h"
#include "pc/test/fake_periodic_video_source.h"
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 8dba298..7620217 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -234,7 +234,7 @@
deps = [
":audio_device",
"../api:make_ref_counted",
- "../modules/audio_device:audio_device_api",
+ "../api/audio:audio_device",
"../modules/audio_device:audio_device_generic",
"../rtc_base:checks",
"../rtc_base:logging",
@@ -298,10 +298,10 @@
"../api:array_view",
"../api:scoped_refptr",
"../api:sequence_checker",
+ "../api/audio:audio_device",
"../api/task_queue",
"../api/task_queue:default_task_queue_factory",
"../api/task_queue:pending_task_safety_flag",
- "../modules/audio_device:audio_device_api",
"../modules/audio_device:audio_device_buffer",
"../modules/audio_device:audio_device_config",
"../modules/audio_device:audio_device_generic",
@@ -497,9 +497,9 @@
"../api:refcountedbase",
"../api:scoped_refptr",
"../api:sequence_checker",
+ "../api/audio:audio_device",
"../api/task_queue",
"../api/task_queue:default_task_queue_factory",
- "../modules/audio_device:audio_device_api",
"../modules/audio_device:audio_device_buffer",
"../rtc_base:buffer",
"../rtc_base:checks",
@@ -525,7 +525,7 @@
":audio_device_api_objc",
":audio_device_objc",
"../api:make_ref_counted",
- "../modules/audio_device:audio_device_api",
+ "../api/audio:audio_device",
"../rtc_base:logging",
]
if (is_mac) {
@@ -1066,6 +1066,7 @@
"../api:rtp_parameters",
"../api:rtp_sender_interface",
"../api:scoped_refptr",
+ "../api/audio:audio_device",
"../api/audio:audio_processing",
"../api/audio_codecs:audio_codecs_api",
"../api/audio_codecs:builtin_audio_decoder_factory",
@@ -1081,7 +1082,6 @@
"../common_video",
"../media:media_constants",
"../media:rtc_media_base",
- "../modules/audio_device:audio_device_api",
"../modules/audio_processing",
"../modules/video_coding:video_codec_interface",
"../pc:peer_connection_factory",
@@ -1169,6 +1169,7 @@
":videosource_objc",
":videotoolbox_objc",
"../api:scoped_refptr",
+ "../api/audio:audio_device",
"../api/audio:audio_processing",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
@@ -1180,7 +1181,6 @@
"../media:codec",
"../media:rtc_media_base",
"../media:rtc_media_tests_utils",
- "../modules/audio_device:audio_device_api",
"../modules/video_coding:video_codec_interface",
"../rtc_base:gunit_helpers",
"../rtc_base:macromagic",
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index ea640ab..593ed36 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -782,6 +782,7 @@
"../../api:rtp_parameters",
"../../api:rtp_sender_interface",
"../../api:turn_customizer",
+ "../../api/audio:audio_device",
"../../api/audio:audio_processing",
"../../api/crypto:options",
"../../api/rtc_event_log:rtc_event_log_factory",
@@ -990,7 +991,7 @@
":native_api_jni",
":opensles_audio_device_module",
"../../api:scoped_refptr",
- "../../modules/audio_device:audio_device_api",
+ "../../api/audio:audio_device",
"../../rtc_base:checks",
"../../rtc_base:logging",
"../../rtc_base:refcount",
@@ -1172,9 +1173,9 @@
":native_api_jni",
"../../api:make_ref_counted",
"../../api:sequence_checker",
+ "../../api/audio:audio_device",
"../../api/task_queue",
"../../api/task_queue:default_task_queue_factory",
- "../../modules/audio_device:audio_device_api",
"../../modules/audio_device:audio_device_buffer",
"../../rtc_base:checks",
"../../rtc_base:logging",
@@ -1197,7 +1198,7 @@
":base_jni",
":generated_java_audio_device_module_native_jni",
"../../api:sequence_checker",
- "../../modules/audio_device:audio_device_api",
+ "../../api/audio:audio_device",
"../../modules/audio_device:audio_device_buffer",
"../../rtc_base:checks",
"../../rtc_base:logging",
@@ -1260,7 +1261,7 @@
"../../api:refcountedbase",
"../../api:scoped_refptr",
"../../api:sequence_checker",
- "../../modules/audio_device:audio_device_api",
+ "../../api/audio:audio_device",
"../../modules/audio_device:audio_device_buffer",
"../../rtc_base:checks",
"../../rtc_base:logging",
@@ -1647,6 +1648,7 @@
"../../api:enable_media_with_defaults",
"../../api:field_trials_view",
"../../api:scoped_refptr",
+ "../../api/audio:audio_device",
"../../api/environment",
"../../api/environment:environment_factory",
"../../api/rtc_event_log:rtc_event_log_factory",
diff --git a/sdk/android/native_api/audio_device_module/audio_device_android.h b/sdk/android/native_api/audio_device_module/audio_device_android.h
index b687dca..587d004 100644
--- a/sdk/android/native_api/audio_device_module/audio_device_android.h
+++ b/sdk/android/native_api/audio_device_module/audio_device_android.h
@@ -13,7 +13,7 @@
#include <jni.h>
-#include "modules/audio_device/include/audio_device.h"
+#include "api/audio/audio_device.h"
namespace webrtc {
diff --git a/sdk/android/native_unittests/audio_device/audio_device_unittest.cc b/sdk/android/native_unittests/audio_device/audio_device_unittest.cc
index 9047641..f75c596 100644
--- a/sdk/android/native_unittests/audio_device/audio_device_unittest.cc
+++ b/sdk/android/native_unittests/audio_device/audio_device_unittest.cc
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "modules/audio_device/include/audio_device.h"
+#include "api/audio/audio_device.h"
#include <list>
#include <memory>
diff --git a/sdk/android/src/jni/audio_device/aaudio_player.h b/sdk/android/src/jni/audio_device/aaudio_player.h
index 7286d6e..ddf948c 100644
--- a/sdk/android/src/jni/audio_device/aaudio_player.h
+++ b/sdk/android/src/jni/audio_device/aaudio_player.h
@@ -16,10 +16,10 @@
#include <memory>
#include "absl/types/optional.h"
+#include "api/audio/audio_device_defines.h"
#include "api/sequence_checker.h"
#include "api/task_queue/task_queue_base.h"
#include "modules/audio_device/audio_device_buffer.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "rtc_base/thread_annotations.h"
#include "sdk/android/src/jni/audio_device/aaudio_wrapper.h"
#include "sdk/android/src/jni/audio_device/audio_device_module.h"
diff --git a/sdk/android/src/jni/audio_device/aaudio_recorder.h b/sdk/android/src/jni/audio_device/aaudio_recorder.h
index 016c9b0..5d6881a 100644
--- a/sdk/android/src/jni/audio_device/aaudio_recorder.h
+++ b/sdk/android/src/jni/audio_device/aaudio_recorder.h
@@ -15,10 +15,10 @@
#include <memory>
+#include "api/audio/audio_device_defines.h"
#include "api/sequence_checker.h"
#include "api/task_queue/task_queue_base.h"
#include "modules/audio_device/audio_device_buffer.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "sdk/android/src/jni/audio_device/aaudio_wrapper.h"
#include "sdk/android/src/jni/audio_device/audio_device_module.h"
diff --git a/sdk/android/src/jni/audio_device/aaudio_wrapper.h b/sdk/android/src/jni/audio_device/aaudio_wrapper.h
index cbc78a0..d95353f 100644
--- a/sdk/android/src/jni/audio_device/aaudio_wrapper.h
+++ b/sdk/android/src/jni/audio_device/aaudio_wrapper.h
@@ -13,8 +13,8 @@
#include <aaudio/AAudio.h>
+#include "api/audio/audio_device_defines.h"
#include "api/sequence_checker.h"
-#include "modules/audio_device/include/audio_device_defines.h"
namespace webrtc {
diff --git a/sdk/android/src/jni/audio_device/audio_device_module.h b/sdk/android/src/jni/audio_device/audio_device_module.h
index e8acc90..92dbb21 100644
--- a/sdk/android/src/jni/audio_device/audio_device_module.h
+++ b/sdk/android/src/jni/audio_device/audio_device_module.h
@@ -14,7 +14,7 @@
#include <memory>
#include "absl/types/optional.h"
-#include "modules/audio_device/include/audio_device.h"
+#include "api/audio/audio_device.h"
#include "sdk/android/native_api/jni/scoped_java_ref.h"
namespace webrtc {
diff --git a/sdk/android/src/jni/audio_device/audio_record_jni.h b/sdk/android/src/jni/audio_device/audio_record_jni.h
index 49c905d..72e6157 100644
--- a/sdk/android/src/jni/audio_device/audio_record_jni.h
+++ b/sdk/android/src/jni/audio_device/audio_record_jni.h
@@ -15,9 +15,9 @@
#include <memory>
+#include "api/audio/audio_device_defines.h"
#include "api/sequence_checker.h"
#include "modules/audio_device/audio_device_buffer.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "sdk/android/src/jni/audio_device/audio_device_module.h"
namespace webrtc {
diff --git a/sdk/android/src/jni/audio_device/audio_track_jni.h b/sdk/android/src/jni/audio_device/audio_track_jni.h
index 5ca907c..10f3ee7 100644
--- a/sdk/android/src/jni/audio_device/audio_track_jni.h
+++ b/sdk/android/src/jni/audio_device/audio_track_jni.h
@@ -16,9 +16,9 @@
#include <memory>
#include "absl/types/optional.h"
+#include "api/audio/audio_device_defines.h"
#include "api/sequence_checker.h"
#include "modules/audio_device/audio_device_buffer.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "sdk/android/src/jni/audio_device/audio_common.h"
#include "sdk/android/src/jni/audio_device/audio_device_module.h"
diff --git a/sdk/android/src/jni/audio_device/opensles_player.h b/sdk/android/src/jni/audio_device/opensles_player.h
index 8a22432..3d63bd7 100644
--- a/sdk/android/src/jni/audio_device/opensles_player.h
+++ b/sdk/android/src/jni/audio_device/opensles_player.h
@@ -18,11 +18,11 @@
#include <memory>
#include "absl/types/optional.h"
+#include "api/audio/audio_device_defines.h"
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
#include "modules/audio_device/audio_device_buffer.h"
#include "modules/audio_device/fine_audio_buffer.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "sdk/android/src/jni/audio_device/audio_common.h"
#include "sdk/android/src/jni/audio_device/audio_device_module.h"
#include "sdk/android/src/jni/audio_device/opensles_common.h"
diff --git a/sdk/android/src/jni/audio_device/opensles_recorder.h b/sdk/android/src/jni/audio_device/opensles_recorder.h
index 93c4e4e..bffe086 100644
--- a/sdk/android/src/jni/audio_device/opensles_recorder.h
+++ b/sdk/android/src/jni/audio_device/opensles_recorder.h
@@ -17,11 +17,11 @@
#include <memory>
+#include "api/audio/audio_device_defines.h"
#include "api/scoped_refptr.h"
#include "api/sequence_checker.h"
#include "modules/audio_device/audio_device_buffer.h"
#include "modules/audio_device/fine_audio_buffer.h"
-#include "modules/audio_device/include/audio_device_defines.h"
#include "sdk/android/src/jni/audio_device/audio_common.h"
#include "sdk/android/src/jni/audio_device/audio_device_module.h"
#include "sdk/android/src/jni/audio_device/opensles_common.h"
diff --git a/sdk/android/src/jni/pc/peer_connection_factory.cc b/sdk/android/src/jni/pc/peer_connection_factory.cc
index ace3a56..9d4f94f 100644
--- a/sdk/android/src/jni/pc/peer_connection_factory.cc
+++ b/sdk/android/src/jni/pc/peer_connection_factory.cc
@@ -14,13 +14,13 @@
#include <utility>
#include "absl/memory/memory.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_processing.h"
#include "api/enable_media.h"
#include "api/rtc_event_log/rtc_event_log_factory.h"
#include "api/task_queue/default_task_queue_factory.h"
#include "api/video_codecs/video_decoder_factory.h"
#include "api/video_codecs/video_encoder_factory.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/utility/include/jvm_android.h"
#include "rtc_base/event_tracer.h"
#include "rtc_base/physical_socket_server.h"
diff --git a/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm b/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
index 6a393b0..eb03d68 100644
--- a/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
+++ b/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
@@ -31,6 +31,7 @@
#include "sdk/objc/native/api/ssl_certificate_verifier.h"
#include "system_wrappers/include/field_trial.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
@@ -41,7 +42,6 @@
#import "components/video_codec/RTCVideoDecoderFactoryH264.h"
#import "components/video_codec/RTCVideoEncoderFactoryH264.h"
#include "media/base/media_constants.h"
-#include "modules/audio_device/include/audio_device.h"
#include "sdk/objc/native/api/objc_audio_device_module.h"
#include "sdk/objc/native/api/video_decoder_factory.h"
diff --git a/sdk/objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.mm b/sdk/objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.mm
index caec4a6..28ded10 100644
--- a/sdk/objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.mm
+++ b/sdk/objc/api/peerconnection/RTCPeerConnectionFactoryBuilder.mm
@@ -11,12 +11,12 @@
#import "RTCPeerConnectionFactoryBuilder.h"
#import "RTCPeerConnectionFactory+Native.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/audio_decoder_factory.h"
#include "api/audio_codecs/audio_encoder_factory.h"
#include "api/video_codecs/video_decoder_factory.h"
#include "api/video_codecs/video_encoder_factory.h"
-#include "modules/audio_device/include/audio_device.h"
@implementation RTCPeerConnectionFactoryBuilder {
std::unique_ptr<webrtc::VideoEncoderFactory> _videoEncoderFactory;
diff --git a/sdk/objc/native/api/audio_device_module.h b/sdk/objc/native/api/audio_device_module.h
index 3405469..a58b085 100644
--- a/sdk/objc/native/api/audio_device_module.h
+++ b/sdk/objc/native/api/audio_device_module.h
@@ -13,7 +13,7 @@
#include <memory>
-#include "modules/audio_device/include/audio_device.h"
+#include "api/audio/audio_device.h"
namespace webrtc {
diff --git a/sdk/objc/native/api/objc_audio_device_module.h b/sdk/objc/native/api/objc_audio_device_module.h
index 0fe2dda..be1950e 100644
--- a/sdk/objc/native/api/objc_audio_device_module.h
+++ b/sdk/objc/native/api/objc_audio_device_module.h
@@ -11,8 +11,8 @@
#ifndef SDK_OBJC_NATIVE_API_OBJC_AUDIO_DEVICE_MODULE_H_
#define SDK_OBJC_NATIVE_API_OBJC_AUDIO_DEVICE_MODULE_H_
+#include "api/audio/audio_device.h"
#import "components/audio/RTCAudioDevice.h"
-#include "modules/audio_device/include/audio_device.h"
namespace webrtc {
diff --git a/sdk/objc/native/src/audio/audio_device_module_ios.h b/sdk/objc/native/src/audio/audio_device_module_ios.h
index 189d7e6..f4487a5 100644
--- a/sdk/objc/native/src/audio/audio_device_module_ios.h
+++ b/sdk/objc/native/src/audio/audio_device_module_ios.h
@@ -13,10 +13,10 @@
#include <memory>
+#include "api/audio/audio_device.h"
#include "api/task_queue/task_queue_factory.h"
#include "audio_device_ios.h"
#include "modules/audio_device/audio_device_buffer.h"
-#include "modules/audio_device/include/audio_device.h"
#include "rtc_base/checks.h"
namespace webrtc {
diff --git a/sdk/objc/native/src/objc_audio_device.h b/sdk/objc/native/src/objc_audio_device.h
index fcfe7a6..a9c1ae9 100644
--- a/sdk/objc/native/src/objc_audio_device.h
+++ b/sdk/objc/native/src/objc_audio_device.h
@@ -15,8 +15,8 @@
#import "components/audio/RTCAudioDevice.h"
+#include "api/audio/audio_device.h"
#include "modules/audio_device/audio_device_buffer.h"
-#include "modules/audio_device/include/audio_device.h"
#include "rtc_base/thread.h"
@class ObjCAudioDeviceDelegate;
diff --git a/sdk/objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm b/sdk/objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm
index 83dc38e..807c550 100644
--- a/sdk/objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm
+++ b/sdk/objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm
@@ -21,12 +21,12 @@
#import "api/peerconnection/RTCPeerConnectionFactoryBuilder+DefaultComponents.h"
#import "api/peerconnection/RTCPeerConnectionFactoryBuilder.h"
+#include "api/audio/audio_device.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
#include "api/video_codecs/video_decoder_factory.h"
#include "api/video_codecs/video_encoder_factory.h"
-#include "modules/audio_device/include/audio_device.h"
#include "rtc_base/gunit.h"
#include "rtc_base/system/unused.h"
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 26ada7f..d1554d7 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -1270,6 +1270,7 @@
"../api:rtp_parameters",
"../api:simulated_network_api",
"../api:transport_api",
+ "../api/audio:audio_device",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../api/environment",
@@ -1289,7 +1290,6 @@
"../call:simulated_network",
"../call:simulated_packet_receiver",
"../call:video_stream_api",
- "../modules/audio_device:audio_device_api",
"../modules/audio_device:test_audio_device_module",
"../modules/audio_mixer:audio_mixer_impl",
"../modules/rtp_rtcp",
diff --git a/test/call_test.cc b/test/call_test.cc
index b3a7e73..cb2c0f0 100644
--- a/test/call_test.cc
+++ b/test/call_test.cc
@@ -13,6 +13,7 @@
#include <algorithm>
#include <memory>
+#include "api/audio/audio_device.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
#include "api/environment/environment.h"
@@ -23,7 +24,6 @@
#include "call/fake_network_pipe.h"
#include "call/packet_receiver.h"
#include "call/simulated_network.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/audio_device/include/test_audio_device.h"
#include "modules/audio_mixer/audio_mixer_impl.h"
#include "rtc_base/checks.h"
diff --git a/test/call_test.h b/test/call_test.h
index decf02f..46ea7f7 100644
--- a/test/call_test.h
+++ b/test/call_test.h
@@ -17,6 +17,7 @@
#include "absl/types/optional.h"
#include "api/array_view.h"
+#include "api/audio/audio_device.h"
#include "api/environment/environment.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "api/task_queue/task_queue_base.h"
@@ -27,7 +28,6 @@
#include "api/units/time_delta.h"
#include "api/video/video_bitrate_allocator_factory.h"
#include "call/call.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/audio_device/include/test_audio_device.h"
#include "test/encoder_settings.h"
#include "test/fake_decoder.h"
diff --git a/test/scenario/BUILD.gn b/test/scenario/BUILD.gn
index 8d85f6e..33bd3d8 100644
--- a/test/scenario/BUILD.gn
+++ b/test/scenario/BUILD.gn
@@ -87,6 +87,7 @@
"../../api:sequence_checker",
"../../api:time_controller",
"../../api:transport_api",
+ "../../api/audio:audio_device",
"../../api/audio_codecs:builtin_audio_decoder_factory",
"../../api/audio_codecs:builtin_audio_encoder_factory",
"../../api/environment",
diff --git a/test/scenario/call_client.h b/test/scenario/call_client.h
index f3c483e..c5f5581 100644
--- a/test/scenario/call_client.h
+++ b/test/scenario/call_client.h
@@ -17,13 +17,13 @@
#include <vector>
#include "api/array_view.h"
+#include "api/audio/audio_device.h"
#include "api/environment/environment.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "api/rtp_parameters.h"
#include "api/test/time_controller.h"
#include "api/units/data_rate.h"
#include "call/call.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/congestion_controller/goog_cc/test/goog_cc_printer.h"
#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
#include "rtc_base/task_queue_for_test.h"
diff --git a/video/BUILD.gn b/video/BUILD.gn
index cf724b7..2f25d3a 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -520,6 +520,7 @@
"../api:rtc_event_log_output_file",
"../api:test_dependency_factory",
"../api:video_quality_test_fixture_api",
+ "../api/audio:audio_device",
"../api/environment",
"../api/numerics",
"../api/rtc_event_log:rtc_event_log_factory",
@@ -539,7 +540,6 @@
"../media:rtc_audio_video",
"../media:rtc_internal_video_codecs",
"../media:rtc_simulcast_encoder_adapter",
- "../modules/audio_device:audio_device_api",
"../modules/audio_device:audio_device_module_from_input_and_output",
"../modules/audio_device:windows_core_audio_utility",
"../modules/audio_mixer:audio_mixer_impl",
diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc
index 28bdca9..995fada 100644
--- a/video/video_quality_test.cc
+++ b/video/video_quality_test.cc
@@ -22,6 +22,7 @@
#include <string>
#include <vector>
+#include "api/audio/audio_device.h"
#include "api/fec_controller_override.h"
#include "api/rtc_event_log_output_file.h"
#include "api/task_queue/default_task_queue_factory.h"
@@ -37,7 +38,6 @@
#include "media/engine/internal_encoder_factory.h"
#include "media/engine/simulcast_encoder_adapter.h"
#include "media/engine/webrtc_video_engine.h"
-#include "modules/audio_device/include/audio_device.h"
#include "modules/audio_mixer/audio_mixer_impl.h"
#include "modules/video_coding/codecs/h264/include/h264.h"
#include "modules/video_coding/codecs/vp8/include/vp8.h"
diff --git a/webrtc_lib_link_test.cc b/webrtc_lib_link_test.cc
index 0148a54..e3a7a7b 100644
--- a/webrtc_lib_link_test.cc
+++ b/webrtc_lib_link_test.cc
@@ -8,6 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include "api/audio/audio_device.h"
#include "api/audio/audio_processing.h"
#include "api/audio_codecs/audio_decoder_factory_template.h"
#include "api/audio_codecs/audio_encoder_factory_template.h"
@@ -29,7 +30,6 @@
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp8_adapter.h"
#include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h"
#include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
-#include "modules/audio_device/include/audio_device.h"
namespace webrtc {