| 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 |