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

Unified Diff: remoting/host/basic_desktop_environment.cc

Issue 1673723002: Use IpcVideoFrameCapturer on network thread instead of capturer thread. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/host/basic_desktop_environment.h ('k') | remoting/host/chromoting_host.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/basic_desktop_environment.cc
diff --git a/remoting/host/basic_desktop_environment.cc b/remoting/host/basic_desktop_environment.cc
index b65018e8bc82ae6093037a805425b0014aaf193b..cdaadf04dce153a2f601b5a0e39b57996883256c 100644
--- a/remoting/host/basic_desktop_environment.cc
+++ b/remoting/host/basic_desktop_environment.cc
@@ -10,7 +10,9 @@
#include "build/build_config.h"
#include "remoting/host/audio_capturer.h"
#include "remoting/host/client_session_control.h"
+#include "remoting/host/desktop_capturer_proxy.h"
#include "remoting/host/input_injector.h"
+#include "remoting/host/mouse_cursor_monitor_proxy.h"
#include "remoting/host/screen_controls.h"
#include "remoting/host/security_key/gnubby_auth_handler.h"
#include "remoting/protocol/capability_names.h"
@@ -52,12 +54,16 @@ scoped_ptr<ScreenControls> BasicDesktopEnvironment::CreateScreenControls() {
scoped_ptr<webrtc::MouseCursorMonitor>
BasicDesktopEnvironment::CreateMouseCursorMonitor() {
+ scoped_ptr<webrtc::MouseCursorMonitor> cursor_monitor;
+
#if defined(OS_CHROMEOS)
- return make_scoped_ptr(new MouseCursorMonitorAura());
+ cursor_monitor.reset(new MouseCursorMonitorAura());
#else
- return make_scoped_ptr(webrtc::MouseCursorMonitor::CreateForScreen(
+ cursor_monitor.reset(webrtc::MouseCursorMonitor::CreateForScreen(
*desktop_capture_options_, webrtc::kFullDesktopScreenId));
#endif
+ return make_scoped_ptr(new MouseCursorMonitorProxy(
+ video_capture_task_runner_, std::move(cursor_monitor)));
}
std::string BasicDesktopEnvironment::GetCapabilities() const {
@@ -79,27 +85,30 @@ scoped_ptr<webrtc::DesktopCapturer>
BasicDesktopEnvironment::CreateVideoCapturer() {
DCHECK(caller_task_runner_->BelongsToCurrentThread());
+ scoped_ptr<webrtc::DesktopCapturer> capturer;
+
#if defined(OS_CHROMEOS)
- return scoped_ptr<webrtc::DesktopCapturer>(new AuraDesktopCapturer());
+ capturer.reset(new AuraDesktopCapturer());
#else // !defined(OS_CHROMEOS)
- // The basic desktop environment does not use X DAMAGE, since it is
- // broken on many systems - see http://crbug.com/73423.
- return make_scoped_ptr(
- webrtc::ScreenCapturer::Create(*desktop_capture_options_));
+ capturer.reset(webrtc::ScreenCapturer::Create(*desktop_capture_options_));
#endif // !defined(OS_CHROMEOS)
+
+ return make_scoped_ptr(new DesktopCapturerProxy(video_capture_task_runner_,
+ std::move(capturer)));
}
BasicDesktopEnvironment::BasicDesktopEnvironment(
scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
+ scoped_refptr<base::SingleThreadTaskRunner> video_capture_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> input_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
bool supports_touch_events)
: caller_task_runner_(caller_task_runner),
+ video_capture_task_runner_(video_capture_task_runner),
input_task_runner_(input_task_runner),
ui_task_runner_(ui_task_runner),
- desktop_capture_options_(
- new webrtc::DesktopCaptureOptions(
- webrtc::DesktopCaptureOptions::CreateDefault())),
+ desktop_capture_options_(new webrtc::DesktopCaptureOptions(
+ webrtc::DesktopCaptureOptions::CreateDefault())),
supports_touch_events_(supports_touch_events) {
DCHECK(caller_task_runner_->BelongsToCurrentThread());
#if defined(USE_X11)
@@ -109,16 +118,16 @@ BasicDesktopEnvironment::BasicDesktopEnvironment(
BasicDesktopEnvironmentFactory::BasicDesktopEnvironmentFactory(
scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
+ scoped_refptr<base::SingleThreadTaskRunner> video_capture_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> input_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner)
: caller_task_runner_(caller_task_runner),
+ video_capture_task_runner_(video_capture_task_runner),
input_task_runner_(input_task_runner),
ui_task_runner_(ui_task_runner),
- supports_touch_events_(false) {
-}
+ supports_touch_events_(false) {}
-BasicDesktopEnvironmentFactory::~BasicDesktopEnvironmentFactory() {
-}
+BasicDesktopEnvironmentFactory::~BasicDesktopEnvironmentFactory() {}
bool BasicDesktopEnvironmentFactory::SupportsAudioCapture() const {
DCHECK(caller_task_runner_->BelongsToCurrentThread());
« no previous file with comments | « remoting/host/basic_desktop_environment.h ('k') | remoting/host/chromoting_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698