#include "third_party/blink/renderer/modules/webrtc/webrtc_audio_device_impl.h"
#include "base/containers/contains.h"
#include "base/logging.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/stringprintf.h"
#include "base/trace_event/trace_event.h"
#include "media/base/audio_bus.h"
#include "media/base/audio_parameters.h"
#include "media/base/audio_timestamp_helper.h"
#include "media/base/sample_rates.h"
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
#include "third_party/blink/renderer/modules/mediastream/processed_local_audio_source.h"
#include "third_party/blink/renderer/modules/webrtc/webrtc_audio_renderer.h"
AudioParameters;
ChannelLayout;
namespace blink {
namespace {
void SendLogMessage(const std::string& message) { … }
}
WebRtcAudioDeviceImpl::WebRtcAudioDeviceImpl()
: … { … }
WebRtcAudioDeviceImpl::~WebRtcAudioDeviceImpl() { … }
void WebRtcAudioDeviceImpl::RenderData(
media::AudioBus* audio_bus,
int sample_rate,
base::TimeDelta audio_delay,
base::TimeDelta* current_time,
const media::AudioGlitchInfo& glitch_info) { … }
void WebRtcAudioDeviceImpl::RemoveAudioRenderer(
blink::WebRtcAudioRenderer* renderer) { … }
void WebRtcAudioDeviceImpl::AudioRendererThreadStopped() { … }
void WebRtcAudioDeviceImpl::SetOutputDeviceForAec(
const String& output_device_id) { … }
int32_t WebRtcAudioDeviceImpl::RegisterAudioCallback(
webrtc::AudioTransport* audio_callback) { … }
int32_t WebRtcAudioDeviceImpl::Init() { … }
int32_t WebRtcAudioDeviceImpl::Terminate() { … }
bool WebRtcAudioDeviceImpl::Initialized() const { … }
int32_t WebRtcAudioDeviceImpl::PlayoutIsAvailable(bool* available) { … }
bool WebRtcAudioDeviceImpl::PlayoutIsInitialized() const { … }
int32_t WebRtcAudioDeviceImpl::RecordingIsAvailable(bool* available) { … }
bool WebRtcAudioDeviceImpl::RecordingIsInitialized() const { … }
int32_t WebRtcAudioDeviceImpl::StartPlayout() { … }
int32_t WebRtcAudioDeviceImpl::StopPlayout() { … }
bool WebRtcAudioDeviceImpl::Playing() const { … }
int32_t WebRtcAudioDeviceImpl::StartRecording() { … }
int32_t WebRtcAudioDeviceImpl::StopRecording() { … }
bool WebRtcAudioDeviceImpl::Recording() const { … }
int32_t WebRtcAudioDeviceImpl::PlayoutDelay(uint16_t* delay_ms) const { … }
bool WebRtcAudioDeviceImpl::SetAudioRenderer(
blink::WebRtcAudioRenderer* renderer) { … }
void WebRtcAudioDeviceImpl::AddAudioCapturer(
ProcessedLocalAudioSource* capturer) { … }
void WebRtcAudioDeviceImpl::RemoveAudioCapturer(
ProcessedLocalAudioSource* capturer) { … }
void WebRtcAudioDeviceImpl::AddPlayoutSink(
blink::WebRtcPlayoutDataSource::Sink* sink) { … }
void WebRtcAudioDeviceImpl::RemovePlayoutSink(
blink::WebRtcPlayoutDataSource::Sink* sink) { … }
std::optional<webrtc::AudioDeviceModule::Stats>
WebRtcAudioDeviceImpl::GetStats() const { … }
base::UnguessableToken
WebRtcAudioDeviceImpl::GetAuthorizedDeviceSessionIdForAudioRenderer() { … }
}