1 // Copyright 2019 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "remoting/host/desktop_capturer_checker.h"
6 
7 #include <stddef.h>
8 
9 #include <utility>
10 
11 #include "base/bind.h"
12 #include "base/check.h"
13 #include "base/location.h"
14 #include "base/macros.h"
15 #include "base/memory/ptr_util.h"
16 #include "base/single_thread_task_runner.h"
17 #include "base/threading/thread_task_runner_handle.h"
18 #include "build/build_config.h"
19 #include "remoting/host/client_session_control.h"
20 #include "remoting/proto/control.pb.h"
21 #include "third_party/webrtc/modules/desktop_capture/desktop_capture_options.h"
22 #include "third_party/webrtc/modules/desktop_capture/desktop_capturer.h"
23 #include "third_party/webrtc/modules/desktop_capture/desktop_capturer_differ_wrapper.h"
24 #include "third_party/webrtc/modules/desktop_capture/desktop_frame.h"
25 #include "third_party/webrtc/modules/desktop_capture/desktop_region.h"
26 
27 namespace remoting {
28 
DesktopCapturerChecker()29 DesktopCapturerChecker::DesktopCapturerChecker() {}
30 
~DesktopCapturerChecker()31 DesktopCapturerChecker::~DesktopCapturerChecker() {}
32 
TriggerSingleCapture()33 void DesktopCapturerChecker::TriggerSingleCapture() {
34   DCHECK(!capturer_);
35 
36   webrtc::DesktopCaptureOptions options =
37       webrtc::DesktopCaptureOptions::CreateDefault();
38   capturer_ = webrtc::DesktopCapturer::CreateScreenCapturer(options);
39   DCHECK(capturer_)
40       << "Failed to initialize screen capturer for DesktopCapturerChecker.";
41   capturer_->Start(this);
42   capturer_->CaptureFrame();
43 }
44 
OnCaptureResult(webrtc::DesktopCapturer::Result result,std::unique_ptr<webrtc::DesktopFrame> frame)45 void DesktopCapturerChecker::OnCaptureResult(
46     webrtc::DesktopCapturer::Result result,
47     std::unique_ptr<webrtc::DesktopFrame> frame) {
48   // Ignore capture result.
49 }
50 
51 }  // namespace remoting
52