Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(67)

Side by Side Diff: third_party/WebKit/Source/platform/audio/AudioDestination.cpp

Issue 2846843002: [blink] Unique pointers in Platform.h (Closed)
Patch Set: fix compilation (and again) Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 AudioUtilities::kRenderQuantumFrames, 73 AudioUtilities::kRenderQuantumFrames,
74 false)), 74 false)),
75 render_bus_(AudioBus::Create(number_of_output_channels, 75 render_bus_(AudioBus::Create(number_of_output_channels,
76 AudioUtilities::kRenderQuantumFrames)), 76 AudioUtilities::kRenderQuantumFrames)),
77 callback_(callback), 77 callback_(callback),
78 frames_elapsed_(0) { 78 frames_elapsed_(0) {
79 // Create WebAudioDevice. blink::WebAudioDevice is designed to support the 79 // Create WebAudioDevice. blink::WebAudioDevice is designed to support the
80 // local input (e.g. loopback from OS audio system), but Chromium's media 80 // local input (e.g. loopback from OS audio system), but Chromium's media
81 // renderer does not support it currently. Thus, we use zero for the number 81 // renderer does not support it currently. Thus, we use zero for the number
82 // of input channels. 82 // of input channels.
83 web_audio_device_ = WTF::WrapUnique(Platform::Current()->CreateAudioDevice( 83 web_audio_device_ = Platform::Current()->CreateAudioDevice(
84 0, number_of_output_channels, latency_hint, this, String(), 84 0, number_of_output_channels, latency_hint, this, String(),
85 std::move(security_origin))); 85 std::move(security_origin));
86 DCHECK(web_audio_device_); 86 DCHECK(web_audio_device_);
87 87
88 callback_buffer_size_ = web_audio_device_->FramesPerBuffer(); 88 callback_buffer_size_ = web_audio_device_->FramesPerBuffer();
89 if (!CheckBufferSize()) { 89 if (!CheckBufferSize()) {
90 NOTREACHED(); 90 NOTREACHED();
91 } 91 }
92 } 92 }
93 93
94 AudioDestination::~AudioDestination() { 94 AudioDestination::~AudioDestination() {
95 Stop(); 95 Stop();
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 } 169 }
170 170
171 frames_elapsed_ += frames_requested; 171 frames_elapsed_ += frames_requested;
172 } 172 }
173 173
174 void AudioDestination::Start() { 174 void AudioDestination::Start() {
175 DCHECK(IsMainThread()); 175 DCHECK(IsMainThread());
176 176
177 // Start the "audio device" after the rendering thread is ready. 177 // Start the "audio device" after the rendering thread is ready.
178 if (web_audio_device_ && !is_playing_) { 178 if (web_audio_device_ && !is_playing_) {
179 rendering_thread_ = WTF::WrapUnique( 179 rendering_thread_ =
180 Platform::Current()->CreateThread("WebAudio Rendering Thread")); 180 Platform::Current()->CreateThread("WebAudio Rendering Thread");
181 web_audio_device_->Start(); 181 web_audio_device_->Start();
182 is_playing_ = true; 182 is_playing_ = true;
183 } 183 }
184 } 184 }
185 185
186 void AudioDestination::Stop() { 186 void AudioDestination::Stop() {
187 DCHECK(IsMainThread()); 187 DCHECK(IsMainThread());
188 188
189 // This assumes stopping the "audio device" is synchronous and dumping the 189 // This assumes stopping the "audio device" is synchronous and dumping the
190 // rendering thread is safe after that. 190 // rendering thread is safe after that.
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 DCHECK(is_buffer_size_valid); 244 DCHECK(is_buffer_size_valid);
245 return is_buffer_size_valid; 245 return is_buffer_size_valid;
246 } 246 }
247 247
248 bool AudioDestination::IsRenderingThread() { 248 bool AudioDestination::IsRenderingThread() {
249 return static_cast<ThreadIdentifier>(rendering_thread_->ThreadId()) == 249 return static_cast<ThreadIdentifier>(rendering_thread_->ThreadId()) ==
250 CurrentThread(); 250 CurrentThread();
251 } 251 }
252 252
253 } // namespace blink 253 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698