#include "third_party/blink/public/platform/web_audio_source_provider_impl.h"
#include <atomic>
#include <utility>
#include "base/check_op.h"
#include "base/functional/bind.h"
#include "base/logging.h"
#include "base/memory/raw_ptr.h"
#include "base/metrics/histogram_macros.h"
#include "base/notreached.h"
#include "base/task/bind_post_task.h"
#include "base/thread_annotations.h"
#include "media/base/audio_glitch_info.h"
#include "media/base/audio_timestamp_helper.h"
#include "media/base/media_log.h"
#include "third_party/blink/renderer/platform/media/web_audio_source_provider_client.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
class WebAudioSourceProviderImpl::TeeFilter
: public AudioRendererSink::RenderCallback { … };
WebAudioSourceProviderImpl::WebAudioSourceProviderImpl(
scoped_refptr<media::SwitchableAudioRendererSink> sink,
media::MediaLog* media_log,
base::OnceClosure on_set_client_callback )
: … { … }
WebAudioSourceProviderImpl::~WebAudioSourceProviderImpl() = default;
void WebAudioSourceProviderImpl::SetClient(
WebAudioSourceProviderClient* client) { … }
void WebAudioSourceProviderImpl::ProvideInput(
const WebVector<float*>& audio_data,
int number_of_frames) { … }
void WebAudioSourceProviderImpl::Initialize(
const media::AudioParameters& params,
RenderCallback* renderer) { … }
void WebAudioSourceProviderImpl::Start() { … }
void WebAudioSourceProviderImpl::Stop() { … }
void WebAudioSourceProviderImpl::Play() { … }
void WebAudioSourceProviderImpl::Pause() { … }
void WebAudioSourceProviderImpl::Flush() { … }
bool WebAudioSourceProviderImpl::SetVolume(double volume) { … }
media::OutputDeviceInfo WebAudioSourceProviderImpl::GetOutputDeviceInfo() { … }
void WebAudioSourceProviderImpl::GetOutputDeviceInfoAsync(
OutputDeviceInfoCB info_cb) { … }
bool WebAudioSourceProviderImpl::IsOptimizedForHardwareParameters() { … }
bool WebAudioSourceProviderImpl::CurrentThreadIsRenderingThread() { … }
void WebAudioSourceProviderImpl::SwitchOutputDevice(
const std::string& device_id,
media::OutputDeviceStatusCB callback) { … }
void WebAudioSourceProviderImpl::TaintOrigin() { … }
void WebAudioSourceProviderImpl::SetCopyAudioCallback(CopyAudioCB callback) { … }
void WebAudioSourceProviderImpl::ClearCopyAudioCallback() { … }
int WebAudioSourceProviderImpl::RenderForTesting(media::AudioBus* audio_bus) { … }
bool WebAudioSourceProviderImpl::IsAudioBeingCaptured() const { … }
void WebAudioSourceProviderImpl::OnSetFormat() { … }
}