summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/platform/audio/audio_destination.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/audio/audio_destination.cc')
-rw-r--r--chromium/third_party/blink/renderer/platform/audio/audio_destination.cc16
1 files changed, 14 insertions, 2 deletions
diff --git a/chromium/third_party/blink/renderer/platform/audio/audio_destination.cc b/chromium/third_party/blink/renderer/platform/audio/audio_destination.cc
index fc176335163..0f776809408 100644
--- a/chromium/third_party/blink/renderer/platform/audio/audio_destination.cc
+++ b/chromium/third_party/blink/renderer/platform/audio/audio_destination.cc
@@ -270,15 +270,27 @@ void AudioDestination::Start() {
SetDeviceState(DeviceState::kRunning);
}
+void AudioDestination::SetWorkletTaskRunner(
+ scoped_refptr<base::SingleThreadTaskRunner> worklet_task_runner) {
+ DCHECK(IsMainThread());
+ TRACE_EVENT0("webaudio", "AudioDestination::SetWorkletTaskRunner");
+
+ if (worklet_task_runner_) {
+ DCHECK_EQ(worklet_task_runner_, worklet_task_runner);
+ return;
+ }
+
+ worklet_task_runner_ = std::move(worklet_task_runner);
+}
+
void AudioDestination::StartWithWorkletTaskRunner(
scoped_refptr<base::SingleThreadTaskRunner> worklet_task_runner) {
DCHECK(IsMainThread());
- DCHECK_EQ(worklet_task_runner_, nullptr);
TRACE_EVENT0("webaudio", "AudioDestination::StartWithWorkletTaskRunner");
if (device_state_ != DeviceState::kStopped)
return;
- worklet_task_runner_ = std::move(worklet_task_runner);
+ SetWorkletTaskRunner(worklet_task_runner);
web_audio_device_->Start();
SetDeviceState(DeviceState::kRunning);
}