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

Side by Side Diff: media/audio/audio_manager_base.cc

Issue 16297002: Update media/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 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 | Annotate | Revision Log
« no previous file with comments | « media/audio/audio_input_controller_unittest.cc ('k') | media/audio/audio_output_controller.cc » ('j') | 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/audio_manager_base.h" 5 #include "media/audio/audio_manager_base.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/message_loop_proxy.h" 9 #include "base/message_loop_proxy.h"
10 #include "base/threading/thread.h" 10 #include "base/threading/thread.h"
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 params.sample_rate(), params.bits_per_sample(), 197 params.sample_rate(), params.bits_per_sample(),
198 params.frames_per_buffer()); 198 params.frames_per_buffer());
199 } 199 }
200 } 200 }
201 201
202 std::pair<AudioParameters, AudioParameters> dispatcher_key = 202 std::pair<AudioParameters, AudioParameters> dispatcher_key =
203 std::make_pair(params, output_params); 203 std::make_pair(params, output_params);
204 AudioOutputDispatchersMap::iterator it = 204 AudioOutputDispatchersMap::iterator it =
205 output_dispatchers_.find(dispatcher_key); 205 output_dispatchers_.find(dispatcher_key);
206 if (it != output_dispatchers_.end()) 206 if (it != output_dispatchers_.end())
207 return new AudioOutputProxy(it->second); 207 return new AudioOutputProxy(it->second.get());
208 208
209 const base::TimeDelta kCloseDelay = 209 const base::TimeDelta kCloseDelay =
210 base::TimeDelta::FromSeconds(kStreamCloseDelaySeconds); 210 base::TimeDelta::FromSeconds(kStreamCloseDelaySeconds);
211 211
212 if (output_params.format() != AudioParameters::AUDIO_FAKE) { 212 if (output_params.format() != AudioParameters::AUDIO_FAKE) {
213 scoped_refptr<AudioOutputDispatcher> dispatcher = 213 scoped_refptr<AudioOutputDispatcher> dispatcher =
214 new AudioOutputResampler(this, params, output_params, kCloseDelay); 214 new AudioOutputResampler(this, params, output_params, kCloseDelay);
215 output_dispatchers_[dispatcher_key] = dispatcher; 215 output_dispatchers_[dispatcher_key] = dispatcher;
216 return new AudioOutputProxy(dispatcher); 216 return new AudioOutputProxy(dispatcher.get());
217 } 217 }
218 218
219 scoped_refptr<AudioOutputDispatcher> dispatcher = 219 scoped_refptr<AudioOutputDispatcher> dispatcher =
220 new AudioOutputDispatcherImpl(this, output_params, kCloseDelay); 220 new AudioOutputDispatcherImpl(this, output_params, kCloseDelay);
221 output_dispatchers_[dispatcher_key] = dispatcher; 221 output_dispatchers_[dispatcher_key] = dispatcher;
222 return new AudioOutputProxy(dispatcher); 222 return new AudioOutputProxy(dispatcher.get());
223 #endif // defined(OS_IOS) 223 #endif // defined(OS_IOS)
224 } 224 }
225 225
226 void AudioManagerBase::ShowAudioInputSettings() { 226 void AudioManagerBase::ShowAudioInputSettings() {
227 } 227 }
228 228
229 void AudioManagerBase::GetAudioInputDeviceNames( 229 void AudioManagerBase::GetAudioInputDeviceNames(
230 media::AudioDeviceNames* device_names) { 230 media::AudioDeviceNames* device_names) {
231 } 231 }
232 232
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 #if defined(OS_IOS) 288 #if defined(OS_IOS)
289 return; 289 return;
290 #else 290 #else
291 // This should always be running on the audio thread, but since we've cleared 291 // This should always be running on the audio thread, but since we've cleared
292 // the audio_thread_ member pointer when we get here, we can't verify exactly 292 // the audio_thread_ member pointer when we get here, we can't verify exactly
293 // what thread we're running on. The method is not public though and only 293 // what thread we're running on. The method is not public though and only
294 // called from one place, so we'll leave it at that. 294 // called from one place, so we'll leave it at that.
295 AudioOutputDispatchersMap::iterator it = output_dispatchers_.begin(); 295 AudioOutputDispatchersMap::iterator it = output_dispatchers_.begin();
296 for (; it != output_dispatchers_.end(); ++it) { 296 for (; it != output_dispatchers_.end(); ++it) {
297 scoped_refptr<AudioOutputDispatcher>& dispatcher = (*it).second; 297 scoped_refptr<AudioOutputDispatcher>& dispatcher = (*it).second;
298 if (dispatcher) { 298 if (dispatcher.get()) {
299 dispatcher->Shutdown(); 299 dispatcher->Shutdown();
300 // All AudioOutputProxies must have been freed before Shutdown is called. 300 // All AudioOutputProxies must have been freed before Shutdown is called.
301 // If they still exist, things will go bad. They have direct pointers to 301 // If they still exist, things will go bad. They have direct pointers to
302 // both physical audio stream objects that belong to the dispatcher as 302 // both physical audio stream objects that belong to the dispatcher as
303 // well as the message loop of the audio thread that will soon go away. 303 // well as the message loop of the audio thread that will soon go away.
304 // So, better crash now than later. 304 // So, better crash now than later.
305 DCHECK(dispatcher->HasOneRef()) << "AudioOutputProxies are still alive"; 305 DCHECK(dispatcher->HasOneRef()) << "AudioOutputProxies are still alive";
306 dispatcher = NULL; 306 dispatcher = NULL;
307 } 307 }
308 } 308 }
(...skipping 24 matching lines...) Expand all
333 return GetPreferredOutputStreamParameters(AudioParameters()); 333 return GetPreferredOutputStreamParameters(AudioParameters());
334 } 334 }
335 335
336 AudioParameters AudioManagerBase::GetInputStreamParameters( 336 AudioParameters AudioManagerBase::GetInputStreamParameters(
337 const std::string& device_id) { 337 const std::string& device_id) {
338 NOTREACHED(); 338 NOTREACHED();
339 return AudioParameters(); 339 return AudioParameters();
340 } 340 }
341 341
342 } // namespace media 342 } // namespace media
OLDNEW
« no previous file with comments | « media/audio/audio_input_controller_unittest.cc ('k') | media/audio/audio_output_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698