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

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

Issue 1545723002: Use std::move() instead of .Pass() in remoting/* (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@move_not_pass_host
Patch Set: Created 4 years, 12 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
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>
10
9 #include "base/callback_helpers.h" 11 #include "base/callback_helpers.h"
10 #include "base/stl_util.h" 12 #include "base/stl_util.h"
11 #include "ppapi/c/pp_codecs.h" 13 #include "ppapi/c/pp_codecs.h"
12 #include "ppapi/c/ppb_opengles2.h" 14 #include "ppapi/c/ppb_opengles2.h"
13 #include "ppapi/c/ppb_video_decoder.h" 15 #include "ppapi/c/ppb_video_decoder.h"
14 #include "ppapi/cpp/instance.h" 16 #include "ppapi/cpp/instance.h"
15 #include "ppapi/lib/gl/include/GLES2/gl2.h" 17 #include "ppapi/lib/gl/include/GLES2/gl2.h"
16 #include "ppapi/lib/gl/include/GLES2/gl2ext.h" 18 #include "ppapi/lib/gl/include/GLES2/gl2ext.h"
17 #include "remoting/proto/video.pb.h" 19 #include "remoting/proto/video.pb.h"
18 #include "remoting/protocol/performance_tracker.h" 20 #include "remoting/protocol/performance_tracker.h"
19 #include "remoting/protocol/session_config.h" 21 #include "remoting/protocol/session_config.h"
20 22
21 namespace remoting { 23 namespace remoting {
22 24
23 // The implementation here requires that the decoder allocates at least 3 25 // The implementation here requires that the decoder allocates at least 3
24 // pictures. PPB_VideoDecoder didn't support this parameter prior to 26 // pictures. PPB_VideoDecoder didn't support this parameter prior to
25 // 1.1, so we have to pass 0 for backwards compatibility with older versions of 27 // 1.1, so we have to pass 0 for backwards compatibility with older versions of
26 // the browser. Currently all API implementations allocate more than 3 buffers 28 // the browser. Currently all API implementations allocate more than 3 buffers
27 // by default. 29 // by default.
28 // 30 //
29 // TODO(sergeyu): Change this to 3 once PPB_VideoDecoder v1.1 is enabled on 31 // TODO(sergeyu): Change this to 3 once PPB_VideoDecoder v1.1 is enabled on
30 // stable channel (crbug.com/520323). 32 // stable channel (crbug.com/520323).
31 const uint32_t kMinimumPictureCount = 0; // 3 33 const uint32_t kMinimumPictureCount = 0; // 3
32 34
33 class PepperVideoRenderer3D::PendingPacket { 35 class PepperVideoRenderer3D::PendingPacket {
34 public: 36 public:
35 PendingPacket(scoped_ptr<VideoPacket> packet, const base::Closure& done) 37 PendingPacket(scoped_ptr<VideoPacket> packet, const base::Closure& done)
36 : packet_(packet.Pass()), 38 : packet_(std::move(packet)), done_runner_(done) {}
37 done_runner_(done) {
38 }
39 39
40 ~PendingPacket() {} 40 ~PendingPacket() {}
41 41
42 const VideoPacket* packet() const { return packet_.get(); } 42 const VideoPacket* packet() const { return packet_.get(); }
43 43
44 private: 44 private:
45 scoped_ptr<VideoPacket> packet_; 45 scoped_ptr<VideoPacket> packet_;
46 base::ScopedClosureRunner done_runner_; 46 base::ScopedClosureRunner done_runner_;
47 }; 47 };
48 48
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 if (packet->has_use_desktop_shape()) { 217 if (packet->has_use_desktop_shape()) {
218 if (packet->use_desktop_shape()) { 218 if (packet->use_desktop_shape()) {
219 scoped_ptr<webrtc::DesktopRegion> shape(new webrtc::DesktopRegion); 219 scoped_ptr<webrtc::DesktopRegion> shape(new webrtc::DesktopRegion);
220 for (int i = 0; i < packet->desktop_shape_rects_size(); ++i) { 220 for (int i = 0; i < packet->desktop_shape_rects_size(); ++i) {
221 Rect remoting_rect = packet->desktop_shape_rects(i); 221 Rect remoting_rect = packet->desktop_shape_rects(i);
222 shape->AddRect(webrtc::DesktopRect::MakeXYWH( 222 shape->AddRect(webrtc::DesktopRect::MakeXYWH(
223 remoting_rect.x(), remoting_rect.y(), remoting_rect.width(), 223 remoting_rect.x(), remoting_rect.y(), remoting_rect.width(),
224 remoting_rect.height())); 224 remoting_rect.height()));
225 } 225 }
226 if (!frame_shape_ || !frame_shape_->Equals(*shape)) { 226 if (!frame_shape_ || !frame_shape_->Equals(*shape)) {
227 frame_shape_ = shape.Pass(); 227 frame_shape_ = std::move(shape);
228 event_handler_->OnVideoShape(frame_shape_.get()); 228 event_handler_->OnVideoShape(frame_shape_.get());
229 } 229 }
230 } else if (frame_shape_) { 230 } else if (frame_shape_) {
231 frame_shape_ = nullptr; 231 frame_shape_ = nullptr;
232 event_handler_->OnVideoShape(nullptr); 232 event_handler_->OnVideoShape(nullptr);
233 } 233 }
234 } 234 }
235 235
236 // Report the dirty region, for debugging, if requested. 236 // Report the dirty region, for debugging, if requested.
237 if (debug_dirty_region_) { 237 if (debug_dirty_region_) {
238 webrtc::DesktopRegion dirty_region; 238 webrtc::DesktopRegion dirty_region;
239 for (int i = 0; i < packet->dirty_rects_size(); ++i) { 239 for (int i = 0; i < packet->dirty_rects_size(); ++i) {
240 Rect remoting_rect = packet->dirty_rects(i); 240 Rect remoting_rect = packet->dirty_rects(i);
241 dirty_region.AddRect(webrtc::DesktopRect::MakeXYWH( 241 dirty_region.AddRect(webrtc::DesktopRect::MakeXYWH(
242 remoting_rect.x(), remoting_rect.y(), 242 remoting_rect.x(), remoting_rect.y(),
243 remoting_rect.width(), remoting_rect.height())); 243 remoting_rect.width(), remoting_rect.height()));
244 } 244 }
245 event_handler_->OnVideoFrameDirtyRegion(dirty_region); 245 event_handler_->OnVideoFrameDirtyRegion(dirty_region);
246 } 246 }
247 247
248 pending_packets_.push_back( 248 pending_packets_.push_back(
249 new PendingPacket(packet.Pass(), done_runner.Release())); 249 new PendingPacket(std::move(packet), done_runner.Release()));
250 DecodeNextPacket(); 250 DecodeNextPacket();
251 } 251 }
252 252
253 void PepperVideoRenderer3D::OnInitialized(int32_t result) { 253 void PepperVideoRenderer3D::OnInitialized(int32_t result) {
254 // Assume that VP8 and VP9 codecs are always supported by the browser. 254 // Assume that VP8 and VP9 codecs are always supported by the browser.
255 CHECK_EQ(result, PP_OK) << "VideoDecoder::Initialize() failed: " << result; 255 CHECK_EQ(result, PP_OK) << "VideoDecoder::Initialize() failed: " << result;
256 initialization_finished_ = true; 256 initialization_finished_ = true;
257 257
258 // Start decoding in case a frame was received during decoder initialization. 258 // Start decoding in case a frame was received during decoder initialization.
259 DecodeNextPacket(); 259 DecodeNextPacket();
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 PaintIfNeeded(); 333 PaintIfNeeded();
334 GetNextPicture(); 334 GetNextPicture();
335 } 335 }
336 336
337 void PepperVideoRenderer3D::PaintIfNeeded() { 337 void PepperVideoRenderer3D::PaintIfNeeded() {
338 bool need_repaint = next_picture_ || (force_repaint_ && current_picture_); 338 bool need_repaint = next_picture_ || (force_repaint_ && current_picture_);
339 if (paint_pending_ || !need_repaint) 339 if (paint_pending_ || !need_repaint)
340 return; 340 return;
341 341
342 if (next_picture_) 342 if (next_picture_)
343 current_picture_ = next_picture_.Pass(); 343 current_picture_ = std::move(next_picture_);
344 344
345 force_repaint_ = false; 345 force_repaint_ = false;
346 346
347 const PP_VideoPicture& picture = current_picture_->picture(); 347 const PP_VideoPicture& picture = current_picture_->picture();
348 PP_Resource graphics_3d = graphics_.pp_resource(); 348 PP_Resource graphics_3d = graphics_.pp_resource();
349 349
350 EnsureProgramForTexture(picture.texture_target); 350 EnsureProgramForTexture(picture.texture_target);
351 351
352 gles2_if_->UseProgram(graphics_3d, shader_program_); 352 gles2_if_->UseProgram(graphics_3d, shader_program_);
353 353
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 gles2_if_->AttachShader(graphics_.pp_resource(), shader_program_, shader); 517 gles2_if_->AttachShader(graphics_.pp_resource(), shader_program_, shader);
518 gles2_if_->DeleteShader(graphics_.pp_resource(), shader); 518 gles2_if_->DeleteShader(graphics_.pp_resource(), shader);
519 } 519 }
520 520
521 void PepperVideoRenderer3D::CheckGLError() { 521 void PepperVideoRenderer3D::CheckGLError() {
522 GLenum error = gles2_if_->GetError(graphics_.pp_resource()); 522 GLenum error = gles2_if_->GetError(graphics_.pp_resource());
523 CHECK_EQ(error, static_cast<GLenum>(GL_NO_ERROR)) << "GL error: " << error; 523 CHECK_EQ(error, static_cast<GLenum>(GL_NO_ERROR)) << "GL error: " << error;
524 } 524 }
525 525
526 } // namespace remoting 526 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/client/plugin/pepper_video_renderer_2d.cc ('k') | remoting/client/server_log_entry_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698