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

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

Issue 1844143002: Add VideoLayout message. (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/host/client_session.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
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 const base::Closure& done) { 190 const base::Closure& done) {
191 base::ScopedClosureRunner done_runner(done); 191 base::ScopedClosureRunner done_runner(done);
192 192
193 perf_tracker_->RecordVideoPacketStats(*packet); 193 perf_tracker_->RecordVideoPacketStats(*packet);
194 194
195 // Don't need to do anything if the packet is empty. Host sends empty video 195 // Don't need to do anything if the packet is empty. Host sends empty video
196 // packets when the screen is not changing. 196 // packets when the screen is not changing.
197 if (!packet->data().size()) 197 if (!packet->data().size())
198 return; 198 return;
199 199
200 bool resolution_changed = false;
201
202 if (packet->format().has_screen_width() && 200 if (packet->format().has_screen_width() &&
203 packet->format().has_screen_height()) { 201 packet->format().has_screen_height()) {
204 webrtc::DesktopSize frame_size(packet->format().screen_width(), 202 frame_size_.set(packet->format().screen_width(),
205 packet->format().screen_height()); 203 packet->format().screen_height());
206 if (!frame_size_.equals(frame_size)) {
207 frame_size_ = frame_size;
208 resolution_changed = true;
209 }
210 } 204 }
211 205
212 if (packet->format().has_x_dpi() && packet->format().has_y_dpi()) {
213 webrtc::DesktopVector frame_dpi(packet->format().x_dpi(),
214 packet->format().y_dpi());
215 if (!frame_dpi_.equals(frame_dpi)) {
216 frame_dpi_ = frame_dpi;
217 resolution_changed = true;
218 }
219 }
220
221 if (resolution_changed)
222 event_handler_->OnVideoSize(frame_size_, frame_dpi_);
223
224 // Report the dirty region, for debugging, if requested. 206 // Report the dirty region, for debugging, if requested.
225 if (debug_dirty_region_) { 207 if (debug_dirty_region_) {
226 webrtc::DesktopRegion dirty_region; 208 webrtc::DesktopRegion dirty_region;
227 for (int i = 0; i < packet->dirty_rects_size(); ++i) { 209 for (int i = 0; i < packet->dirty_rects_size(); ++i) {
228 Rect remoting_rect = packet->dirty_rects(i); 210 Rect remoting_rect = packet->dirty_rects(i);
229 dirty_region.AddRect(webrtc::DesktopRect::MakeXYWH( 211 dirty_region.AddRect(webrtc::DesktopRect::MakeXYWH(
230 remoting_rect.x(), remoting_rect.y(), 212 remoting_rect.x(), remoting_rect.y(),
231 remoting_rect.width(), remoting_rect.height())); 213 remoting_rect.width(), remoting_rect.height()));
232 } 214 }
233 event_handler_->OnVideoFrameDirtyRegion(dirty_region); 215 event_handler_->OnVideoFrameDirtyRegion(dirty_region);
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 gles2_if_->AttachShader(graphics_.pp_resource(), shader_program_, shader); 487 gles2_if_->AttachShader(graphics_.pp_resource(), shader_program_, shader);
506 gles2_if_->DeleteShader(graphics_.pp_resource(), shader); 488 gles2_if_->DeleteShader(graphics_.pp_resource(), shader);
507 } 489 }
508 490
509 void PepperVideoRenderer3D::CheckGLError() { 491 void PepperVideoRenderer3D::CheckGLError() {
510 GLenum error = gles2_if_->GetError(graphics_.pp_resource()); 492 GLenum error = gles2_if_->GetError(graphics_.pp_resource());
511 CHECK_EQ(error, static_cast<GLenum>(GL_NO_ERROR)) << "GL error: " << error; 493 CHECK_EQ(error, static_cast<GLenum>(GL_NO_ERROR)) << "GL error: " << error;
512 } 494 }
513 495
514 } // namespace remoting 496 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/client/plugin/pepper_video_renderer_3d.h ('k') | remoting/host/client_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698