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