| 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 3d506f7303b44a7f7696ea3368cb1b71317a6f77..0124f21297f8b4a311d4e42bf88b1ee92fe53458 100644
|
| --- a/content/browser/renderer_host/media/media_stream_manager.cc
|
| +++ b/content/browser/renderer_host/media/media_stream_manager.cc
|
| @@ -360,6 +360,9 @@ MediaStreamManager::EnumerationCache::~EnumerationCache() {
|
|
|
| MediaStreamManager::MediaStreamManager()
|
| : audio_manager_(NULL),
|
| +#if defined(OS_WIN)
|
| + video_capture_thread_("VideoCaptureThread"),
|
| +#endif
|
| monitoring_started_(false),
|
| #if defined(OS_CHROMEOS)
|
| has_checked_keyboard_mic_(false),
|
| @@ -369,6 +372,9 @@ MediaStreamManager::MediaStreamManager()
|
|
|
| MediaStreamManager::MediaStreamManager(media::AudioManager* audio_manager)
|
| : audio_manager_(audio_manager),
|
| +#if defined(OS_WIN)
|
| + video_capture_thread_("VideoCaptureThread"),
|
| +#endif
|
| monitoring_started_(false),
|
| #if defined(OS_CHROMEOS)
|
| has_checked_keyboard_mic_(false),
|
| @@ -1595,7 +1601,16 @@ void MediaStreamManager::InitializeDeviceManagersOnIOThread() {
|
| video_capture_manager_ =
|
| new VideoCaptureManager(media::VideoCaptureDeviceFactory::CreateFactory(
|
| BrowserThread::GetMessageLoopProxyForThread(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_.message_loop_proxy());
|
| +#else
|
| video_capture_manager_->Register(this, device_task_runner_);
|
| +#endif
|
| }
|
|
|
| void MediaStreamManager::Opened(MediaStreamType stream_type,
|
|
|