OLD | NEW |
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 "content/browser/renderer_host/media/media_stream_manager.h" | 5 #include "content/browser/renderer_host/media/media_stream_manager.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 if (!video_capture_provider) { | 414 if (!video_capture_provider) { |
415 scoped_refptr<base::SingleThreadTaskRunner> device_task_runner = | 415 scoped_refptr<base::SingleThreadTaskRunner> device_task_runner = |
416 audio_system_->GetTaskRunner(); | 416 audio_system_->GetTaskRunner(); |
417 #if defined(OS_WIN) | 417 #if defined(OS_WIN) |
418 // Use an STA Video Capture Thread to try to avoid crashes on enumeration of | 418 // Use an STA Video Capture Thread to try to avoid crashes on enumeration of |
419 // buggy third party Direct Show modules, http://crbug.com/428958. | 419 // buggy third party Direct Show modules, http://crbug.com/428958. |
420 video_capture_thread_.init_com_with_mta(false); | 420 video_capture_thread_.init_com_with_mta(false); |
421 CHECK(video_capture_thread_.Start()); | 421 CHECK(video_capture_thread_.Start()); |
422 device_task_runner = video_capture_thread_.task_runner(); | 422 device_task_runner = video_capture_thread_.task_runner(); |
423 #endif | 423 #endif |
424 video_capture_provider = base::MakeUnique<InProcessVideoCaptureProvider>( | |
425 base::MakeUnique<media::VideoCaptureSystemImpl>( | |
426 media::VideoCaptureDeviceFactory::CreateFactory( | |
427 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI))), | |
428 std::move(device_task_runner)); | |
429 if (base::FeatureList::IsEnabled(video_capture::kMojoVideoCapture)) { | 424 if (base::FeatureList::IsEnabled(video_capture::kMojoVideoCapture)) { |
430 video_capture_provider = base::MakeUnique<VideoCaptureProviderSwitcher>( | 425 video_capture_provider = base::MakeUnique<VideoCaptureProviderSwitcher>( |
431 base::MakeUnique<ServiceVideoCaptureProvider>(), | 426 base::MakeUnique<ServiceVideoCaptureProvider>(), |
432 std::move(video_capture_provider)); | 427 InProcessVideoCaptureProvider::CreateInstanceForNonDeviceCapture( |
| 428 std::move(device_task_runner))); |
| 429 } else { |
| 430 video_capture_provider = InProcessVideoCaptureProvider::CreateInstance( |
| 431 base::MakeUnique<media::VideoCaptureSystemImpl>( |
| 432 media::VideoCaptureDeviceFactory::CreateFactory( |
| 433 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI))), |
| 434 std::move(device_task_runner)); |
433 } | 435 } |
434 } | 436 } |
435 InitializeMaybeAsync(std::move(video_capture_provider)); | 437 InitializeMaybeAsync(std::move(video_capture_provider)); |
436 | 438 |
437 base::PowerMonitor* power_monitor = base::PowerMonitor::Get(); | 439 base::PowerMonitor* power_monitor = base::PowerMonitor::Get(); |
438 // BrowserMainLoop always creates the PowerMonitor instance before creating | 440 // BrowserMainLoop always creates the PowerMonitor instance before creating |
439 // MediaStreamManager, but power_monitor may be NULL in unit tests. | 441 // MediaStreamManager, but power_monitor may be NULL in unit tests. |
440 if (power_monitor) | 442 if (power_monitor) |
441 power_monitor->AddObserver(this); | 443 power_monitor->AddObserver(this); |
442 } | 444 } |
(...skipping 1338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1781 request->ui_proxy->OnStarted( | 1783 request->ui_proxy->OnStarted( |
1782 base::Bind(&MediaStreamManager::StopMediaStreamFromBrowser, | 1784 base::Bind(&MediaStreamManager::StopMediaStreamFromBrowser, |
1783 base::Unretained(this), label), | 1785 base::Unretained(this), label), |
1784 base::Bind(&MediaStreamManager::OnMediaStreamUIWindowId, | 1786 base::Bind(&MediaStreamManager::OnMediaStreamUIWindowId, |
1785 base::Unretained(this), request->video_type(), | 1787 base::Unretained(this), request->video_type(), |
1786 request->devices)); | 1788 request->devices)); |
1787 } | 1789 } |
1788 } | 1790 } |
1789 | 1791 |
1790 } // namespace content | 1792 } // namespace content |
OLD | NEW |