| Index: media/audio/win/audio_manager_win.cc
|
| diff --git a/media/audio/win/audio_manager_win.cc b/media/audio/win/audio_manager_win.cc
|
| index a3d5ead202f401e31f25c54713b657e7a02c48fb..df7faf452eae1c6b2112968396fc299647bb0fac 100644
|
| --- a/media/audio/win/audio_manager_win.cc
|
| +++ b/media/audio/win/audio_manager_win.cc
|
| @@ -126,14 +126,19 @@ static int NumberOfWaveOutBuffers() {
|
| return (base::win::GetVersion() == base::win::VERSION_VISTA) ? 4 : 3;
|
| }
|
|
|
| -AudioManagerWin::AudioManagerWin(AudioLogFactory* audio_log_factory)
|
| - : AudioManagerBase(audio_log_factory),
|
| +AudioManagerWin::AudioManagerWin(
|
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner,
|
| + scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner,
|
| + AudioLogFactory* audio_log_factory)
|
| + : AudioManagerBase(std::move(task_runner),
|
| + std::move(worker_task_runner),
|
| + audio_log_factory),
|
| // |CoreAudioUtil::IsSupported()| uses static variables to avoid doing
|
| // multiple initializations. This is however not thread safe.
|
| // So, here we call it explicitly before we kick off the audio thread
|
| // or do any other work.
|
| - enumeration_type_(CoreAudioUtil::IsSupported() ?
|
| - kMMDeviceEnumeration : kWaveEnumeration) {
|
| + enumeration_type_(CoreAudioUtil::IsSupported() ? kMMDeviceEnumeration
|
| + : kWaveEnumeration) {
|
| SetMaxOutputStreamsAllowed(kMaxOutputStreams);
|
|
|
| // WARNING: This is executed on the UI loop, do not add any code here which
|
| @@ -147,10 +152,6 @@ AudioManagerWin::AudioManagerWin(AudioLogFactory* audio_log_factory)
|
| }
|
|
|
| AudioManagerWin::~AudioManagerWin() {
|
| - // It's safe to post a task here since Shutdown() will wait for all tasks to
|
| - // complete before returning.
|
| - GetTaskRunner()->PostTask(FROM_HERE, base::Bind(
|
| - &AudioManagerWin::ShutdownOnAudioThread, base::Unretained(this)));
|
| Shutdown();
|
| }
|
|
|
| @@ -174,11 +175,6 @@ void AudioManagerWin::InitializeOnAudioThread() {
|
| }
|
| }
|
|
|
| -void AudioManagerWin::ShutdownOnAudioThread() {
|
| - DCHECK(GetTaskRunner()->BelongsToCurrentThread());
|
| - output_device_listener_.reset();
|
| -}
|
| -
|
| base::string16 AudioManagerWin::GetAudioInputDeviceModel() {
|
| // Get the default audio capture device and its device interface name.
|
| DWORD device_id = 0;
|
| @@ -537,8 +533,13 @@ AudioInputStream* AudioManagerWin::CreatePCMWaveInAudioInputStream(
|
| }
|
|
|
| /// static
|
| -AudioManager* CreateAudioManager(AudioLogFactory* audio_log_factory) {
|
| - return new AudioManagerWin(audio_log_factory);
|
| +ScopedAudioManagerPtr CreateAudioManager(
|
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner,
|
| + scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner,
|
| + AudioLogFactory* audio_log_factory) {
|
| + return ScopedAudioManagerPtr(
|
| + new AudioManagerWin(std::move(task_runner), std::move(worker_task_runner),
|
| + audio_log_factory));
|
| }
|
|
|
| } // namespace media
|
|
|