#include "media/audio/clockless_audio_sink.h"
#include <memory>
#include "base/functional/bind.h"
#include "base/location.h"
#include "base/memory/raw_ptr.h"
#include "base/synchronization/waitable_event.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/single_thread_task_runner.h"
#include "base/threading/simple_thread.h"
#include "media/base/audio_glitch_info.h"
namespace media {
class ClocklessAudioSinkThread : public base::DelegateSimpleThread::Delegate { … };
ClocklessAudioSink::ClocklessAudioSink()
: … { … }
ClocklessAudioSink::ClocklessAudioSink(const OutputDeviceInfo& device_info)
: … { … }
ClocklessAudioSink::~ClocklessAudioSink() = default;
void ClocklessAudioSink::Initialize(const AudioParameters& params,
RenderCallback* callback) { … }
void ClocklessAudioSink::Start() { … }
void ClocklessAudioSink::Stop() { … }
void ClocklessAudioSink::Flush() { … }
void ClocklessAudioSink::Play() { … }
void ClocklessAudioSink::Pause() { … }
bool ClocklessAudioSink::SetVolume(double volume) { … }
OutputDeviceInfo ClocklessAudioSink::GetOutputDeviceInfo() { … }
void ClocklessAudioSink::GetOutputDeviceInfoAsync(OutputDeviceInfoCB info_cb) { … }
bool ClocklessAudioSink::IsOptimizedForHardwareParameters() { … }
bool ClocklessAudioSink::CurrentThreadIsRenderingThread() { … }
void ClocklessAudioSink::StartAudioHashForTesting() { … }
const AudioHash& ClocklessAudioSink::GetAudioHashForTesting() const { … }
void ClocklessAudioSink::SetIsOptimizedForHardwareParametersForTesting(
bool value) { … }
}