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

Side by Side Diff: remoting/host/desktop_capturer_proxy.cc

Issue 2050353002: Update webrtc::DesktopCapturer clients to implement OnCaptureResult(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix chromeos Created 4 years, 6 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
« no previous file with comments | « remoting/host/desktop_capturer_proxy.h ('k') | remoting/host/desktop_session_agent.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "remoting/host/desktop_capturer_proxy.h" 5 #include "remoting/host/desktop_capturer_proxy.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 22 matching lines...) Expand all
33 33
34 void CreateCapturer(const webrtc::DesktopCaptureOptions& options); 34 void CreateCapturer(const webrtc::DesktopCaptureOptions& options);
35 35
36 void Start(); 36 void Start();
37 void SetSharedMemoryFactory( 37 void SetSharedMemoryFactory(
38 std::unique_ptr<webrtc::SharedMemoryFactory> shared_memory_factory); 38 std::unique_ptr<webrtc::SharedMemoryFactory> shared_memory_factory);
39 void Capture(const webrtc::DesktopRegion& rect); 39 void Capture(const webrtc::DesktopRegion& rect);
40 40
41 private: 41 private:
42 // webrtc::DesktopCapturer::Callback implementation. 42 // webrtc::DesktopCapturer::Callback implementation.
43 void OnCaptureCompleted(webrtc::DesktopFrame* frame) override; 43 void OnCaptureResult(webrtc::DesktopCapturer::Result result,
44 std::unique_ptr<webrtc::DesktopFrame> frame) override;
44 45
45 base::ThreadChecker thread_checker_; 46 base::ThreadChecker thread_checker_;
46 47
47 base::WeakPtr<DesktopCapturerProxy> proxy_; 48 base::WeakPtr<DesktopCapturerProxy> proxy_;
48 scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner_; 49 scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner_;
49 std::unique_ptr<webrtc::DesktopCapturer> capturer_; 50 std::unique_ptr<webrtc::DesktopCapturer> capturer_;
50 51
51 DISALLOW_COPY_AND_ASSIGN(Core); 52 DISALLOW_COPY_AND_ASSIGN(Core);
52 }; 53 };
53 54
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 if (capturer_) { 87 if (capturer_) {
87 capturer_->SetSharedMemoryFactory(std::move(shared_memory_factory)); 88 capturer_->SetSharedMemoryFactory(std::move(shared_memory_factory));
88 } 89 }
89 } 90 }
90 91
91 void DesktopCapturerProxy::Core::Capture(const webrtc::DesktopRegion& rect) { 92 void DesktopCapturerProxy::Core::Capture(const webrtc::DesktopRegion& rect) {
92 DCHECK(thread_checker_.CalledOnValidThread()); 93 DCHECK(thread_checker_.CalledOnValidThread());
93 if (capturer_) { 94 if (capturer_) {
94 capturer_->Capture(rect); 95 capturer_->Capture(rect);
95 } else { 96 } else {
96 OnCaptureCompleted(nullptr); 97 OnCaptureResult(webrtc::DesktopCapturer::Result::ERROR_PERMANENT, nullptr);
97 } 98 }
98 } 99 }
99 100
100 void DesktopCapturerProxy::Core::OnCaptureCompleted( 101 void DesktopCapturerProxy::Core::OnCaptureResult(
101 webrtc::DesktopFrame* frame) { 102 webrtc::DesktopCapturer::Result result,
103 std::unique_ptr<webrtc::DesktopFrame> frame) {
102 DCHECK(thread_checker_.CalledOnValidThread()); 104 DCHECK(thread_checker_.CalledOnValidThread());
103 105
104 caller_task_runner_->PostTask( 106 caller_task_runner_->PostTask(
105 FROM_HERE, base::Bind(&DesktopCapturerProxy::OnFrameCaptured, proxy_, 107 FROM_HERE, base::Bind(&DesktopCapturerProxy::OnFrameCaptured, proxy_,
106 base::Passed(base::WrapUnique(frame)))); 108 result, base::Passed(&frame)));
107 } 109 }
108 110
109 DesktopCapturerProxy::DesktopCapturerProxy( 111 DesktopCapturerProxy::DesktopCapturerProxy(
110 scoped_refptr<base::SingleThreadTaskRunner> capture_task_runner, 112 scoped_refptr<base::SingleThreadTaskRunner> capture_task_runner,
111 const webrtc::DesktopCaptureOptions& options) 113 const webrtc::DesktopCaptureOptions& options)
112 : capture_task_runner_(capture_task_runner), weak_factory_(this) { 114 : capture_task_runner_(capture_task_runner), weak_factory_(this) {
113 core_.reset(new Core(weak_factory_.GetWeakPtr())); 115 core_.reset(new Core(weak_factory_.GetWeakPtr()));
114 capture_task_runner_->PostTask( 116 capture_task_runner_->PostTask(
115 FROM_HERE, base::Bind(&Core::CreateCapturer, 117 FROM_HERE, base::Bind(&Core::CreateCapturer,
116 base::Unretained(core_.get()), options)); 118 base::Unretained(core_.get()), options));
(...skipping 28 matching lines...) Expand all
145 147
146 // Start() must be called before Capture(). 148 // Start() must be called before Capture().
147 DCHECK(callback_); 149 DCHECK(callback_);
148 150
149 capture_task_runner_->PostTask( 151 capture_task_runner_->PostTask(
150 FROM_HERE, 152 FROM_HERE,
151 base::Bind(&Core::Capture, base::Unretained(core_.get()), rect)); 153 base::Bind(&Core::Capture, base::Unretained(core_.get()), rect));
152 } 154 }
153 155
154 void DesktopCapturerProxy::OnFrameCaptured( 156 void DesktopCapturerProxy::OnFrameCaptured(
157 webrtc::DesktopCapturer::Result result,
155 std::unique_ptr<webrtc::DesktopFrame> frame) { 158 std::unique_ptr<webrtc::DesktopFrame> frame) {
156 DCHECK(thread_checker_.CalledOnValidThread()); 159 DCHECK(thread_checker_.CalledOnValidThread());
157 160
158 callback_->OnCaptureCompleted(frame.release()); 161 callback_->OnCaptureResult(result, std::move(frame));
159 } 162 }
160 163
161 } // namespace remoting 164 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/desktop_capturer_proxy.h ('k') | remoting/host/desktop_session_agent.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698