| Index: content/browser/renderer_host/media/media_stream_manager.cc
|
| diff --git a/content/browser/renderer_host/media/media_stream_manager.cc b/content/browser/renderer_host/media/media_stream_manager.cc
|
| index 86ce133bd3a006ac231a1124d3dd16d6cf289576..1665fe38db98e14ddab21b1cbccaf3bfac91a20d 100644
|
| --- a/content/browser/renderer_host/media/media_stream_manager.cc
|
| +++ b/content/browser/renderer_host/media/media_stream_manager.cc
|
| @@ -1227,7 +1227,7 @@ void MediaStreamManager::InitializeDeviceManagersOnIOThread() {
|
| FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| "457525 MediaStreamManager::InitializeDeviceManagersOnIOThread 2"));
|
| audio_input_device_manager_ = new AudioInputDeviceManager(audio_manager_);
|
| - audio_input_device_manager_->Register(this, device_task_runner_);
|
| + audio_input_device_manager_->RegisterListener(this);
|
|
|
| // TODO(dalecurtis): Remove ScopedTracker below once crbug.com/457525 is
|
| // fixed.
|
| @@ -1243,19 +1243,24 @@ void MediaStreamManager::InitializeDeviceManagersOnIOThread() {
|
| tracked_objects::ScopedTracker tracking_profile4(
|
| FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| "457525 MediaStreamManager::InitializeDeviceManagersOnIOThread 4"));
|
| - video_capture_manager_ =
|
| - new VideoCaptureManager(media::VideoCaptureDeviceFactory::CreateFactory(
|
| - BrowserThread::GetTaskRunnerForThread(BrowserThread::UI)));
|
| #if defined(OS_WIN)
|
| // Use an STA Video Capture Thread to try to avoid crashes on enumeration of
|
| // buggy third party Direct Show modules, http://crbug.com/428958.
|
| video_capture_thread_.init_com_with_mta(false);
|
| CHECK(video_capture_thread_.Start());
|
| - video_capture_manager_->Register(this, video_capture_thread_.task_runner());
|
| + video_capture_manager_ = new VideoCaptureManager(
|
| + media::VideoCaptureDeviceFactory::CreateFactory(
|
| + BrowserThread::GetTaskRunnerForThread(BrowserThread::UI)),
|
| + video_capture_thread_.task_runner());
|
| #else
|
| - video_capture_manager_->Register(this, device_task_runner_);
|
| + video_capture_manager_ = new VideoCaptureManager(
|
| + media::VideoCaptureDeviceFactory::CreateFactory(
|
| + BrowserThread::GetTaskRunnerForThread(BrowserThread::UI)),
|
| + device_task_runner_);
|
| #endif
|
|
|
| + video_capture_manager_->RegisterListener(this);
|
| +
|
| media_devices_manager_.reset(
|
| new MediaDevicesManager(audio_manager_, video_capture_manager_, this));
|
| }
|
| @@ -1543,18 +1548,18 @@ void MediaStreamManager::WillDestroyCurrentMessageLoop() {
|
| DVLOG(3) << "MediaStreamManager::WillDestroyCurrentMessageLoop()";
|
| DCHECK(CalledOnIOThread());
|
| DCHECK(requests_.empty());
|
| - if (device_task_runner_.get()) {
|
| + if (media_devices_manager_)
|
| media_devices_manager_->StopMonitoring();
|
| + if (video_capture_manager_)
|
| + video_capture_manager_->UnregisterListener();
|
| + if (audio_input_device_manager_)
|
| + audio_input_device_manager_->UnregisterListener();
|
|
|
| - video_capture_manager_->Unregister();
|
| - audio_input_device_manager_->Unregister();
|
| - device_task_runner_ = NULL;
|
| - }
|
| -
|
| - audio_input_device_manager_ = NULL;
|
| - video_capture_manager_ = NULL;
|
| - media_devices_manager_ = NULL;
|
| - g_media_stream_manager_tls_ptr.Pointer()->Set(NULL);
|
| + device_task_runner_ = nullptr;
|
| + audio_input_device_manager_ = nullptr;
|
| + video_capture_manager_ = nullptr;
|
| + media_devices_manager_ = nullptr;
|
| + g_media_stream_manager_tls_ptr.Pointer()->Set(nullptr);
|
| }
|
|
|
| void MediaStreamManager::NotifyDevicesChanged(
|
| @@ -1613,7 +1618,7 @@ MediaStreamProvider* MediaStreamManager::GetDeviceManager(
|
| else if (IsAudioInputMediaType(stream_type))
|
| return audio_input_device_manager();
|
| NOTREACHED();
|
| - return NULL;
|
| + return nullptr;
|
| }
|
|
|
| void MediaStreamManager::OnMediaStreamUIWindowId(MediaStreamType video_type,
|
|
|