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

Side by Side Diff: remoting/client/plugin/pepper_video_renderer_2d.h

Issue 2101833002: [Remoting Android] DisplayUpdaterFactory cleanups (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reviewer's Feedback Created 4 years, 5 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 #ifndef REMOTING_CLIENT_PLUGIN_PEPPER_VIDEO_RENDERER_2D_H_ 5 #ifndef REMOTING_CLIENT_PLUGIN_PEPPER_VIDEO_RENDERER_2D_H_
6 #define REMOTING_CLIENT_PLUGIN_PEPPER_VIDEO_RENDERER_2D_H_ 6 #define REMOTING_CLIENT_PLUGIN_PEPPER_VIDEO_RENDERER_2D_H_
7 7
8 #include <list> 8 #include <list>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/memory/ref_counted.h" 12 #include "base/memory/ref_counted.h"
13 #include "base/memory/scoped_vector.h" 13 #include "base/memory/scoped_vector.h"
14 #include "base/memory/weak_ptr.h" 14 #include "base/memory/weak_ptr.h"
15 #include "base/threading/thread_checker.h" 15 #include "base/threading/thread_checker.h"
16 #include "ppapi/cpp/graphics_2d.h" 16 #include "ppapi/cpp/graphics_2d.h"
17 #include "ppapi/cpp/image_data.h" 17 #include "ppapi/cpp/image_data.h"
18 #include "ppapi/cpp/point.h" 18 #include "ppapi/cpp/point.h"
19 #include "ppapi/cpp/view.h" 19 #include "ppapi/cpp/view.h"
20 #include "ppapi/utility/completion_callback_factory.h" 20 #include "ppapi/utility/completion_callback_factory.h"
21 #include "remoting/client/plugin/pepper_video_renderer.h" 21 #include "remoting/client/plugin/pepper_video_renderer.h"
22 #include "remoting/client/software_video_renderer.h"
22 #include "remoting/protocol/frame_consumer.h" 23 #include "remoting/protocol/frame_consumer.h"
23 #include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h" 24 #include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
24 25
25 namespace base { 26 namespace base {
26 class ScopedClosureRunner; 27 class ScopedClosureRunner;
27 } // namespace base 28 } // namespace base
28 29
29 namespace webrtc { 30 namespace webrtc {
30 class DesktopFrame; 31 class DesktopFrame;
31 class SharedDesktopFrame; 32 class SharedDesktopFrame;
32 } // namespace webrtc 33 } // namespace webrtc
33 34
34 namespace remoting { 35 namespace remoting {
35 36
36 class SoftwareVideoRenderer; 37 class SoftwareVideoRenderer;
37 38
38 // Video renderer that wraps SoftwareVideoRenderer and displays it using Pepper 39 // Video renderer that wraps SoftwareVideoRenderer and displays it using Pepper
39 // 2D graphics API. 40 // 2D graphics API.
40 class PepperVideoRenderer2D : public PepperVideoRenderer, 41 class PepperVideoRenderer2D : public PepperVideoRenderer,
41 public protocol::FrameConsumer { 42 public protocol::FrameConsumer {
42 public: 43 public:
43 PepperVideoRenderer2D(); 44 PepperVideoRenderer2D();
44 ~PepperVideoRenderer2D() override; 45 ~PepperVideoRenderer2D() override;
45 46
46 // PepperVideoRenderer interface. 47 // PepperVideoRenderer interface.
47 bool Initialize(pp::Instance* instance, 48 void SetPepperContext(pp::Instance* instance,
48 const ClientContext& context, 49 EventHandler* event_handler) override;
49 EventHandler* event_handler,
50 protocol::PerformanceTracker* perf_tracker) override;
51 void OnViewChanged(const pp::View& view) override; 50 void OnViewChanged(const pp::View& view) override;
52 void EnableDebugDirtyRegion(bool enable) override; 51 void EnableDebugDirtyRegion(bool enable) override;
53 52
54 // VideoRenderer interface. 53 // VideoRenderer interface.
54 bool Initialize(const ClientContext& client_context,
55 protocol::PerformanceTracker* perf_tracker) override;
55 void OnSessionConfig(const protocol::SessionConfig& config) override; 56 void OnSessionConfig(const protocol::SessionConfig& config) override;
56 protocol::VideoStub* GetVideoStub() override; 57 protocol::VideoStub* GetVideoStub() override;
57 protocol::FrameConsumer* GetFrameConsumer() override; 58 protocol::FrameConsumer* GetFrameConsumer() override;
58 59
59 private: 60 private:
60 // protocol::FrameConsumer implementation. 61 // protocol::FrameConsumer implementation.
61 std::unique_ptr<webrtc::DesktopFrame> AllocateFrame( 62 std::unique_ptr<webrtc::DesktopFrame> AllocateFrame(
62 const webrtc::DesktopSize& size) override; 63 const webrtc::DesktopSize& size) override;
63 void DrawFrame(std::unique_ptr<webrtc::DesktopFrame> frame, 64 void DrawFrame(std::unique_ptr<webrtc::DesktopFrame> frame,
64 const base::Closure& done) override; 65 const base::Closure& done) override;
65 PixelFormat GetPixelFormat() override; 66 PixelFormat GetPixelFormat() override;
66 67
67 68
68 void Flush(); 69 void Flush();
69 void OnFlushDone(int result); 70 void OnFlushDone(int result);
70 71
71 // Parameters passed to Initialize(). 72 // Parameters passed to Initialize().
72 pp::Instance* instance_ = nullptr; 73 pp::Instance* instance_ = nullptr;
73 EventHandler* event_handler_ = nullptr; 74 EventHandler* event_handler_ = nullptr;
74 75
75 pp::Graphics2D graphics2d_; 76 pp::Graphics2D graphics2d_;
76 77
77 std::unique_ptr<SoftwareVideoRenderer> software_video_renderer_; 78 SoftwareVideoRenderer software_video_renderer_;
78 79
79 // View size in output pixels. 80 // View size in output pixels.
80 webrtc::DesktopSize view_size_; 81 webrtc::DesktopSize view_size_;
81 82
82 // Size of the most recent source frame in pixels. 83 // Size of the most recent source frame in pixels.
83 webrtc::DesktopSize source_size_; 84 webrtc::DesktopSize source_size_;
84 85
85 // Done callbacks for the frames that have been painted but not flushed. 86 // Done callbacks for the frames that have been painted but not flushed.
86 ScopedVector<base::ScopedClosureRunner> pending_frames_done_callbacks_; 87 ScopedVector<base::ScopedClosureRunner> pending_frames_done_callbacks_;
87 88
(...skipping 16 matching lines...) Expand all
104 105
105 pp::CompletionCallbackFactory<PepperVideoRenderer2D> callback_factory_; 106 pp::CompletionCallbackFactory<PepperVideoRenderer2D> callback_factory_;
106 base::WeakPtrFactory<PepperVideoRenderer2D> weak_factory_; 107 base::WeakPtrFactory<PepperVideoRenderer2D> weak_factory_;
107 108
108 DISALLOW_COPY_AND_ASSIGN(PepperVideoRenderer2D); 109 DISALLOW_COPY_AND_ASSIGN(PepperVideoRenderer2D);
109 }; 110 };
110 111
111 } // namespace remoting 112 } // namespace remoting
112 113
113 #endif // REMOTING_CLIENT_PLUGIN_PEPPER_VIDEO_RENDERER_2D_H_ 114 #endif // REMOTING_CLIENT_PLUGIN_PEPPER_VIDEO_RENDERER_2D_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698