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

Side by Side Diff: webrtc/modules/video_render/video_render_impl.h

Issue 1929223003: Reland of Delete video_render module. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 7 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
(Empty)
1 /*
2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_VIDEO_RENDER_IMPL_H_
12 #define WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_VIDEO_RENDER_IMPL_H_
13
14 #include <map>
15
16 #include "webrtc/engine_configurations.h"
17 #include "webrtc/modules/video_render/video_render.h"
18
19 namespace webrtc {
20 class CriticalSectionWrapper;
21 class IncomingVideoStream;
22 class IVideoRender;
23
24 // Class definitions
25 class ModuleVideoRenderImpl: public VideoRender
26 {
27 public:
28 /*
29 * VideoRenderer constructor/destructor
30 */
31 ModuleVideoRenderImpl(const int32_t id,
32 const VideoRenderType videoRenderType,
33 void* window, const bool fullscreen);
34
35 virtual ~ModuleVideoRenderImpl();
36
37 virtual int64_t TimeUntilNextProcess();
38 virtual void Process();
39
40 /*
41 * Returns the render window
42 */
43 virtual void* Window();
44
45 /*
46 * Change render window
47 */
48 virtual int32_t ChangeWindow(void* window);
49
50 /*
51 * Returns module id
52 */
53 int32_t Id();
54
55 /**************************************************************************
56 *
57 * Incoming Streams
58 *
59 *************************************************************************** /
60
61 /*
62 * Add incoming render stream
63 */
64 virtual VideoRenderCallback
65 * AddIncomingRenderStream(const uint32_t streamId,
66 const uint32_t zOrder,
67 const float left, const float top,
68 const float right, const float bottom);
69 /*
70 * Delete incoming render stream
71 */
72 virtual int32_t
73 DeleteIncomingRenderStream(const uint32_t streamId);
74
75 /*
76 * Add incoming render callback, used for external rendering
77 */
78 virtual int32_t
79 AddExternalRenderCallback(const uint32_t streamId,
80 VideoRenderCallback* renderObject);
81
82 /*
83 * Get the porperties for an incoming render stream
84 */
85 virtual int32_t
86 GetIncomingRenderStreamProperties(const uint32_t streamId,
87 uint32_t& zOrder,
88 float& left, float& top,
89 float& right, float& bottom) const ;
90 /*
91 * Incoming frame rate for the specified stream.
92 */
93 virtual uint32_t GetIncomingFrameRate(const uint32_t streamId);
94
95 /*
96 * Returns the number of incoming streams added to this render module
97 */
98 virtual uint32_t GetNumIncomingRenderStreams() const;
99
100 /*
101 * Returns true if this render module has the streamId added, false otherw ise.
102 */
103 virtual bool HasIncomingRenderStream(const uint32_t streamId) const;
104
105 /*
106 *
107 */
108 virtual int32_t
109 RegisterRawFrameCallback(const uint32_t streamId,
110 VideoRenderCallback* callbackObj);
111
112 virtual int32_t SetExpectedRenderDelay(uint32_t stream_id,
113 int32_t delay_ms);
114
115 /**************************************************************************
116 *
117 * Start/Stop
118 *
119 *************************************************************************** /
120
121 /*
122 * Starts rendering the specified stream
123 */
124 virtual int32_t StartRender(const uint32_t streamId);
125
126 /*
127 * Stops the renderer
128 */
129 virtual int32_t StopRender(const uint32_t streamId);
130
131 /*
132 * Sets the renderer in start state, no streams removed.
133 */
134 virtual int32_t ResetRender();
135
136 /**************************************************************************
137 *
138 * Properties
139 *
140 *************************************************************************** /
141
142 /*
143 * Returns the prefered render video type
144 */
145 virtual RawVideoType PreferredVideoType() const;
146
147 /*
148 * Returns true if the renderer is in fullscreen mode, otherwise false.
149 */
150 virtual bool IsFullScreen();
151
152 /*
153 * Gets screen resolution in pixels
154 */
155 virtual int32_t
156 GetScreenResolution(uint32_t& screenWidth,
157 uint32_t& screenHeight) const;
158
159 /*
160 * Get the actual render rate for this stream. I.e rendered frame rate,
161 * not frames delivered to the renderer.
162 */
163 virtual uint32_t RenderFrameRate(const uint32_t streamId);
164
165 /*
166 * Set cropping of incoming stream
167 */
168 virtual int32_t SetStreamCropping(const uint32_t streamId,
169 const float left, const float top,
170 const float right, const float bottom);
171
172 virtual int32_t ConfigureRenderer(const uint32_t streamId,
173 const unsigned int zOrder,
174 const float left, const float top,
175 const float right, const float bottom);
176
177 virtual int32_t SetTransparentBackground(const bool enable);
178
179 virtual int32_t FullScreenRender(void* window, const bool enable);
180
181 virtual int32_t SetBitmap(const void* bitMap,
182 const uint8_t pictureId,
183 const void* colorKey,
184 const float left, const float top,
185 const float right, const float bottom);
186
187 virtual int32_t SetText(const uint8_t textId,
188 const uint8_t* text,
189 const int32_t textLength,
190 const uint32_t textColorRef,
191 const uint32_t backgroundColorRef,
192 const float left, const float top,
193 const float right, const float bottom);
194
195 private:
196 int32_t _id;
197 CriticalSectionWrapper& _moduleCrit;
198 void* _ptrWindow;
199 bool _fullScreen;
200
201 IVideoRender* _ptrRenderer;
202 typedef std::map<uint32_t, IncomingVideoStream*> IncomingVideoStreamMap;
203 IncomingVideoStreamMap _streamRenderMap;
204 };
205
206 } // namespace webrtc
207
208 #endif // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_VIDEO_RENDER_IMPL_H_
OLDNEW
« no previous file with comments | « webrtc/modules/video_render/video_render_defines.h ('k') | webrtc/modules/video_render/video_render_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698