Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Side by Side Diff: content/browser/renderer_host/media/media_stream_manager.cc

Issue 2885653002: [Mojo Video Capture] Do not instantiate in-process VideoCaptureSystem when using service (Closed)
Patch Set: Remove |optional_| prefix Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698