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

Side by Side Diff: media/audio/win/audio_low_latency_input_win.cc

Issue 2914593002: Replace deprecated base::NonThreadSafe in media/audio in favor of SequenceChecker. (Closed)
Patch Set: Created 3 years, 6 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
« no previous file with comments | « media/audio/win/audio_low_latency_input_win.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/audio/win/audio_low_latency_input_win.h" 5 #include "media/audio/win/audio_low_latency_input_win.h"
6 6
7 #include <objbase.h> 7 #include <objbase.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 #include <memory> 10 #include <memory>
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 LARGE_INTEGER performance_frequency; 96 LARGE_INTEGER performance_frequency;
97 if (QueryPerformanceFrequency(&performance_frequency)) { 97 if (QueryPerformanceFrequency(&performance_frequency)) {
98 perf_count_to_100ns_units_ = 98 perf_count_to_100ns_units_ =
99 (10000000.0 / static_cast<double>(performance_frequency.QuadPart)); 99 (10000000.0 / static_cast<double>(performance_frequency.QuadPart));
100 } else { 100 } else {
101 DLOG(ERROR) << "High-resolution performance counters are not supported."; 101 DLOG(ERROR) << "High-resolution performance counters are not supported.";
102 } 102 }
103 } 103 }
104 104
105 WASAPIAudioInputStream::~WASAPIAudioInputStream() { 105 WASAPIAudioInputStream::~WASAPIAudioInputStream() {
106 DCHECK(CalledOnValidThread()); 106 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
107 } 107 }
108 108
109 bool WASAPIAudioInputStream::Open() { 109 bool WASAPIAudioInputStream::Open() {
110 DCHECK(CalledOnValidThread()); 110 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
111 DCHECK_EQ(OPEN_RESULT_OK, open_result_); 111 DCHECK_EQ(OPEN_RESULT_OK, open_result_);
112 112
113 // Verify that we are not already opened. 113 // Verify that we are not already opened.
114 if (opened_) 114 if (opened_)
115 return false; 115 return false;
116 116
117 // Obtain a reference to the IMMDevice interface of the capturing 117 // Obtain a reference to the IMMDevice interface of the capturing
118 // device with the specified unique identifier or role which was 118 // device with the specified unique identifier or role which was
119 // set at construction. 119 // set at construction.
120 HRESULT hr = SetCaptureDevice(); 120 HRESULT hr = SetCaptureDevice();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 hr = InitializeAudioEngine(); 153 hr = InitializeAudioEngine();
154 if (SUCCEEDED(hr) && converter_) 154 if (SUCCEEDED(hr) && converter_)
155 open_result_ = OPEN_RESULT_OK_WITH_RESAMPLING; 155 open_result_ = OPEN_RESULT_OK_WITH_RESAMPLING;
156 ReportOpenResult(); // Report before we assign a value to |opened_|. 156 ReportOpenResult(); // Report before we assign a value to |opened_|.
157 opened_ = SUCCEEDED(hr); 157 opened_ = SUCCEEDED(hr);
158 158
159 return opened_; 159 return opened_;
160 } 160 }
161 161
162 void WASAPIAudioInputStream::Start(AudioInputCallback* callback) { 162 void WASAPIAudioInputStream::Start(AudioInputCallback* callback) {
163 DCHECK(CalledOnValidThread()); 163 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
164 DCHECK(callback); 164 DCHECK(callback);
165 DLOG_IF(ERROR, !opened_) << "Open() has not been called successfully"; 165 DLOG_IF(ERROR, !opened_) << "Open() has not been called successfully";
166 if (!opened_) 166 if (!opened_)
167 return; 167 return;
168 168
169 if (started_) 169 if (started_)
170 return; 170 return;
171 171
172 if (device_id_ == AudioDeviceDescription::kLoopbackWithMuteDeviceId && 172 if (device_id_ == AudioDeviceDescription::kLoopbackWithMuteDeviceId &&
173 system_audio_volume_) { 173 system_audio_volume_) {
(...skipping 28 matching lines...) Expand all
202 HRESULT hr = audio_client_->Start(); 202 HRESULT hr = audio_client_->Start();
203 DLOG_IF(ERROR, FAILED(hr)) << "Failed to start input streaming."; 203 DLOG_IF(ERROR, FAILED(hr)) << "Failed to start input streaming.";
204 204
205 if (SUCCEEDED(hr) && audio_render_client_for_loopback_.Get()) 205 if (SUCCEEDED(hr) && audio_render_client_for_loopback_.Get())
206 hr = audio_render_client_for_loopback_->Start(); 206 hr = audio_render_client_for_loopback_->Start();
207 207
208 started_ = SUCCEEDED(hr); 208 started_ = SUCCEEDED(hr);
209 } 209 }
210 210
211 void WASAPIAudioInputStream::Stop() { 211 void WASAPIAudioInputStream::Stop() {
212 DCHECK(CalledOnValidThread()); 212 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
213 DVLOG(1) << "WASAPIAudioInputStream::Stop()"; 213 DVLOG(1) << "WASAPIAudioInputStream::Stop()";
214 if (!started_) 214 if (!started_)
215 return; 215 return;
216 216
217 // We have muted system audio for capturing, so we need to unmute it when 217 // We have muted system audio for capturing, so we need to unmute it when
218 // capturing stops. 218 // capturing stops.
219 if (device_id_ == AudioDeviceDescription::kLoopbackWithMuteDeviceId && 219 if (device_id_ == AudioDeviceDescription::kLoopbackWithMuteDeviceId &&
220 mute_done_) { 220 mute_done_) {
221 DCHECK(system_audio_volume_); 221 DCHECK(system_audio_volume_);
222 if (system_audio_volume_) { 222 if (system_audio_volume_) {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 if (!opened_) 271 if (!opened_)
272 return 0.0; 272 return 0.0;
273 273
274 // The effective volume value is always in the range 0.0 to 1.0, hence 274 // The effective volume value is always in the range 0.0 to 1.0, hence
275 // we can return a fixed value (=1.0) here. 275 // we can return a fixed value (=1.0) here.
276 return 1.0; 276 return 1.0;
277 } 277 }
278 278
279 void WASAPIAudioInputStream::SetVolume(double volume) { 279 void WASAPIAudioInputStream::SetVolume(double volume) {
280 DVLOG(1) << "SetVolume(volume=" << volume << ")"; 280 DVLOG(1) << "SetVolume(volume=" << volume << ")";
281 DCHECK(CalledOnValidThread()); 281 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
282 DCHECK_GE(volume, 0.0); 282 DCHECK_GE(volume, 0.0);
283 DCHECK_LE(volume, 1.0); 283 DCHECK_LE(volume, 1.0);
284 284
285 DLOG_IF(ERROR, !opened_) << "Open() has not been called successfully"; 285 DLOG_IF(ERROR, !opened_) << "Open() has not been called successfully";
286 if (!opened_) 286 if (!opened_)
287 return; 287 return;
288 288
289 // Set a new master volume level. Valid volume levels are in the range 289 // Set a new master volume level. Valid volume levels are in the range
290 // 0.0 to 1.0. Ignore volume-change events. 290 // 0.0 to 1.0. Ignore volume-change events.
291 HRESULT hr = 291 HRESULT hr =
(...skipping 18 matching lines...) Expand all
310 float level = 0.0f; 310 float level = 0.0f;
311 HRESULT hr = simple_audio_volume_->GetMasterVolume(&level); 311 HRESULT hr = simple_audio_volume_->GetMasterVolume(&level);
312 if (FAILED(hr)) 312 if (FAILED(hr))
313 DLOG(WARNING) << "Failed to get input master volume."; 313 DLOG(WARNING) << "Failed to get input master volume.";
314 314
315 return static_cast<double>(level); 315 return static_cast<double>(level);
316 } 316 }
317 317
318 bool WASAPIAudioInputStream::IsMuted() { 318 bool WASAPIAudioInputStream::IsMuted() {
319 DCHECK(opened_) << "Open() has not been called successfully"; 319 DCHECK(opened_) << "Open() has not been called successfully";
320 DCHECK(CalledOnValidThread()); 320 DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
321 if (!opened_) 321 if (!opened_)
322 return false; 322 return false;
323 323
324 // Retrieves the current muting state for the audio session. 324 // Retrieves the current muting state for the audio session.
325 BOOL is_muted = FALSE; 325 BOOL is_muted = FALSE;
326 HRESULT hr = simple_audio_volume_->GetMute(&is_muted); 326 HRESULT hr = simple_audio_volume_->GetMute(&is_muted);
327 if (FAILED(hr)) 327 if (FAILED(hr))
328 DLOG(WARNING) << "Failed to get input master volume."; 328 DLOG(WARNING) << "Failed to get input master volume.";
329 329
330 return is_muted != FALSE; 330 return is_muted != FALSE;
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after
829 OPEN_RESULT_MAX + 1); 829 OPEN_RESULT_MAX + 1);
830 } 830 }
831 831
832 double WASAPIAudioInputStream::ProvideInput(AudioBus* audio_bus, 832 double WASAPIAudioInputStream::ProvideInput(AudioBus* audio_bus,
833 uint32_t frames_delayed) { 833 uint32_t frames_delayed) {
834 fifo_->Consume()->CopyTo(audio_bus); 834 fifo_->Consume()->CopyTo(audio_bus);
835 return 1.0; 835 return 1.0;
836 } 836 }
837 837
838 } // namespace media 838 } // namespace media
OLDNEW
« no previous file with comments | « media/audio/win/audio_low_latency_input_win.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698