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

Side by Side Diff: remoting/client/plugin/pepper_video_renderer_3d.cc

Issue 1827043004: Remove shaped desktop support from remoting host and client. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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/client/plugin/pepper_video_renderer_3d.h ('k') | remoting/codec/video_decoder_vpx.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/client/plugin/pepper_video_renderer_3d.h" 5 #include "remoting/client/plugin/pepper_video_renderer_3d.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
11 #include "base/callback_helpers.h" 11 #include "base/callback_helpers.h"
12 #include "base/stl_util.h" 12 #include "base/stl_util.h"
13 #include "ppapi/c/pp_codecs.h" 13 #include "ppapi/c/pp_codecs.h"
14 #include "ppapi/c/ppb_opengles2.h" 14 #include "ppapi/c/ppb_opengles2.h"
15 #include "ppapi/c/ppb_video_decoder.h" 15 #include "ppapi/c/ppb_video_decoder.h"
16 #include "ppapi/cpp/instance.h" 16 #include "ppapi/cpp/instance.h"
17 #include "ppapi/lib/gl/include/GLES2/gl2.h" 17 #include "ppapi/lib/gl/include/GLES2/gl2.h"
18 #include "ppapi/lib/gl/include/GLES2/gl2ext.h" 18 #include "ppapi/lib/gl/include/GLES2/gl2ext.h"
19 #include "remoting/proto/video.pb.h" 19 #include "remoting/proto/video.pb.h"
20 #include "remoting/protocol/performance_tracker.h" 20 #include "remoting/protocol/performance_tracker.h"
21 #include "remoting/protocol/session_config.h" 21 #include "remoting/protocol/session_config.h"
22 #include "third_party/webrtc/modules/desktop_capture/desktop_region.h"
22 23
23 namespace remoting { 24 namespace remoting {
24 25
25 // The implementation here requires that the decoder allocates at least 3 26 // The implementation here requires that the decoder allocates at least 3
26 // pictures. PPB_VideoDecoder didn't support this parameter prior to 27 // pictures. PPB_VideoDecoder didn't support this parameter prior to
27 // 1.1, so we have to pass 0 for backwards compatibility with older versions of 28 // 1.1, so we have to pass 0 for backwards compatibility with older versions of
28 // the browser. Currently all API implementations allocate more than 3 buffers 29 // the browser. Currently all API implementations allocate more than 3 buffers
29 // by default. 30 // by default.
30 // 31 //
31 // TODO(sergeyu): Change this to 3 once PPB_VideoDecoder v1.1 is enabled on 32 // TODO(sergeyu): Change this to 3 once PPB_VideoDecoder v1.1 is enabled on
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 packet->format().y_dpi()); 214 packet->format().y_dpi());
214 if (!frame_dpi_.equals(frame_dpi)) { 215 if (!frame_dpi_.equals(frame_dpi)) {
215 frame_dpi_ = frame_dpi; 216 frame_dpi_ = frame_dpi;
216 resolution_changed = true; 217 resolution_changed = true;
217 } 218 }
218 } 219 }
219 220
220 if (resolution_changed) 221 if (resolution_changed)
221 event_handler_->OnVideoSize(frame_size_, frame_dpi_); 222 event_handler_->OnVideoSize(frame_size_, frame_dpi_);
222 223
223 // Process the frame shape, if supplied.
224 if (packet->has_use_desktop_shape()) {
225 if (packet->use_desktop_shape()) {
226 scoped_ptr<webrtc::DesktopRegion> shape(new webrtc::DesktopRegion);
227 for (int i = 0; i < packet->desktop_shape_rects_size(); ++i) {
228 Rect remoting_rect = packet->desktop_shape_rects(i);
229 shape->AddRect(webrtc::DesktopRect::MakeXYWH(
230 remoting_rect.x(), remoting_rect.y(), remoting_rect.width(),
231 remoting_rect.height()));
232 }
233 if (!frame_shape_ || !frame_shape_->Equals(*shape)) {
234 frame_shape_ = std::move(shape);
235 event_handler_->OnVideoShape(frame_shape_.get());
236 }
237 } else if (frame_shape_) {
238 frame_shape_ = nullptr;
239 event_handler_->OnVideoShape(nullptr);
240 }
241 }
242
243 // Report the dirty region, for debugging, if requested. 224 // Report the dirty region, for debugging, if requested.
244 if (debug_dirty_region_) { 225 if (debug_dirty_region_) {
245 webrtc::DesktopRegion dirty_region; 226 webrtc::DesktopRegion dirty_region;
246 for (int i = 0; i < packet->dirty_rects_size(); ++i) { 227 for (int i = 0; i < packet->dirty_rects_size(); ++i) {
247 Rect remoting_rect = packet->dirty_rects(i); 228 Rect remoting_rect = packet->dirty_rects(i);
248 dirty_region.AddRect(webrtc::DesktopRect::MakeXYWH( 229 dirty_region.AddRect(webrtc::DesktopRect::MakeXYWH(
249 remoting_rect.x(), remoting_rect.y(), 230 remoting_rect.x(), remoting_rect.y(),
250 remoting_rect.width(), remoting_rect.height())); 231 remoting_rect.width(), remoting_rect.height()));
251 } 232 }
252 event_handler_->OnVideoFrameDirtyRegion(dirty_region); 233 event_handler_->OnVideoFrameDirtyRegion(dirty_region);
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 gles2_if_->AttachShader(graphics_.pp_resource(), shader_program_, shader); 505 gles2_if_->AttachShader(graphics_.pp_resource(), shader_program_, shader);
525 gles2_if_->DeleteShader(graphics_.pp_resource(), shader); 506 gles2_if_->DeleteShader(graphics_.pp_resource(), shader);
526 } 507 }
527 508
528 void PepperVideoRenderer3D::CheckGLError() { 509 void PepperVideoRenderer3D::CheckGLError() {
529 GLenum error = gles2_if_->GetError(graphics_.pp_resource()); 510 GLenum error = gles2_if_->GetError(graphics_.pp_resource());
530 CHECK_EQ(error, static_cast<GLenum>(GL_NO_ERROR)) << "GL error: " << error; 511 CHECK_EQ(error, static_cast<GLenum>(GL_NO_ERROR)) << "GL error: " << error;
531 } 512 }
532 513
533 } // namespace remoting 514 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/client/plugin/pepper_video_renderer_3d.h ('k') | remoting/codec/video_decoder_vpx.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698