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

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

Issue 1912143002: Delete video_render module. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Move -framework flags from legacy_objc_api_tests.gyp to legacy_objc_api.gyp. 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) 2012 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_VIDEO_RENDER_H_
12 #define WEBRTC_MODULES_VIDEO_RENDER_VIDEO_RENDER_H_
13
14 /*
15 * video_render.h
16 *
17 * This header file together with module.h and module_common_types.h
18 * contains all of the APIs that are needed for using the video render
19 * module class.
20 *
21 */
22
23 #include "webrtc/modules/include/module.h"
24 #include "webrtc/modules/video_render/video_render_defines.h"
25
26 namespace webrtc {
27
28 // Class definitions
29 class VideoRender: public Module
30 {
31 public:
32 /*
33 * Create a video render module object
34 *
35 * id - unique identifier of this video render module object
36 * window - pointer to the window to render to
37 * fullscreen - true if this is a fullscreen renderer
38 * videoRenderType - type of renderer to create
39 */
40 static VideoRender
41 * CreateVideoRender(
42 const int32_t id,
43 void* window,
44 const bool fullscreen,
45 const VideoRenderType videoRenderType =
46 kRenderDefault);
47
48 /*
49 * Destroy a video render module object
50 *
51 * module - object to destroy
52 */
53 static void DestroyVideoRender(VideoRender* module);
54
55 int64_t TimeUntilNextProcess() override = 0;
56 void Process() override = 0;
57
58 /**************************************************************************
59 *
60 * Window functions
61 *
62 *************************************************************************** /
63
64 /*
65 * Get window for this renderer
66 */
67 virtual void* Window() = 0;
68
69 /*
70 * Change render window
71 *
72 * window - the new render window, assuming same type as originally c reated.
73 */
74 virtual int32_t ChangeWindow(void* window) = 0;
75
76 /**************************************************************************
77 *
78 * Incoming Streams
79 *
80 *************************************************************************** /
81
82 /*
83 * Add incoming render stream
84 *
85 * streamID - id of the stream to add
86 * zOrder - relative render order for the streams, 0 = on top
87 * left - position of the stream in the window, [0.0f, 1.0f]
88 * top - position of the stream in the window, [0.0f, 1.0f]
89 * right - position of the stream in the window, [0.0f, 1.0f]
90 * bottom - position of the stream in the window, [0.0f, 1.0f]
91 *
92 * Return - callback class to use for delivering new frames to render .
93 */
94 virtual VideoRenderCallback
95 * AddIncomingRenderStream(const uint32_t streamId,
96 const uint32_t zOrder,
97 const float left, const float top,
98 const float right, const float bottom) = 0 ;
99 /*
100 * Delete incoming render stream
101 *
102 * streamID - id of the stream to add
103 */
104 virtual int32_t
105 DeleteIncomingRenderStream(const uint32_t streamId) = 0;
106
107 /*
108 * Add incoming render callback, used for external rendering
109 *
110 * streamID - id of the stream the callback is used for
111 * renderObject - the VideoRenderCallback to use for this stream, NULL to remove
112 *
113 * Return - callback class to use for delivering new frames to render .
114 */
115 virtual int32_t
116 AddExternalRenderCallback(const uint32_t streamId,
117 VideoRenderCallback* renderObject) = 0;
118
119 /*
120 * Get the porperties for an incoming render stream
121 *
122 * streamID - [in] id of the stream to get properties for
123 * zOrder - [out] relative render order for the streams, 0 = on top
124 * left - [out] position of the stream in the window, [0.0f, 1.0f]
125 * top - [out] position of the stream in the window, [0.0f, 1.0f]
126 * right - [out] position of the stream in the window, [0.0f, 1.0f]
127 * bottom - [out] position of the stream in the window, [0.0f, 1.0f]
128 */
129 virtual int32_t
130 GetIncomingRenderStreamProperties(const uint32_t streamId,
131 uint32_t& zOrder,
132 float& left, float& top,
133 float& right, float& bottom) const = 0;
134 /*
135 * The incoming frame rate to the module, not the rate rendered in the win dow.
136 */
137 virtual uint32_t
138 GetIncomingFrameRate(const uint32_t streamId) = 0;
139
140 /*
141 * Returns the number of incoming streams added to this render module
142 */
143 virtual uint32_t GetNumIncomingRenderStreams() const = 0;
144
145 /*
146 * Returns true if this render module has the streamId added, false otherw ise.
147 */
148 virtual bool
149 HasIncomingRenderStream(const uint32_t streamId) const = 0;
150
151 /*
152 * Registers a callback to get raw images in the same time as sent
153 * to the renderer. To be used for external rendering.
154 */
155 virtual int32_t
156 RegisterRawFrameCallback(const uint32_t streamId,
157 VideoRenderCallback* callbackObj) = 0;
158
159 /**************************************************************************
160 *
161 * Start/Stop
162 *
163 *************************************************************************** /
164
165 /*
166 * Starts rendering the specified stream
167 */
168 virtual int32_t StartRender(const uint32_t streamId) = 0;
169
170 /*
171 * Stops the renderer
172 */
173 virtual int32_t StopRender(const uint32_t streamId) = 0;
174
175 /*
176 * Resets the renderer
177 * No streams are removed. The state should be as after AddStream was call ed.
178 */
179 virtual int32_t ResetRender() = 0;
180
181 /**************************************************************************
182 *
183 * Properties
184 *
185 *************************************************************************** /
186
187 /*
188 * Returns the preferred render video type
189 */
190 virtual RawVideoType PreferredVideoType() const = 0;
191
192 /*
193 * Returns true if the renderer is in fullscreen mode, otherwise false.
194 */
195 virtual bool IsFullScreen() = 0;
196
197 /*
198 * Gets screen resolution in pixels
199 */
200 virtual int32_t
201 GetScreenResolution(uint32_t& screenWidth,
202 uint32_t& screenHeight) const = 0;
203
204 /*
205 * Get the actual render rate for this stream. I.e rendered frame rate,
206 * not frames delivered to the renderer.
207 */
208 virtual uint32_t RenderFrameRate(const uint32_t streamId) = 0;
209
210 /*
211 * Set cropping of incoming stream
212 */
213 virtual int32_t SetStreamCropping(const uint32_t streamId,
214 const float left,
215 const float top,
216 const float right,
217 const float bottom) = 0;
218
219 /*
220 * re-configure renderer
221 */
222
223 // Set the expected time needed by the graphics card or external renderer,
224 // i.e. frames will be released for rendering |delay_ms| before set render
225 // time in the video frame.
226 virtual int32_t SetExpectedRenderDelay(uint32_t stream_id,
227 int32_t delay_ms) = 0;
228
229 virtual int32_t ConfigureRenderer(const uint32_t streamId,
230 const unsigned int zOrder,
231 const float left,
232 const float top,
233 const float right,
234 const float bottom) = 0;
235
236 virtual int32_t SetTransparentBackground(const bool enable) = 0;
237
238 virtual int32_t FullScreenRender(void* window, const bool enable) = 0;
239
240 virtual int32_t SetBitmap(const void* bitMap,
241 const uint8_t pictureId,
242 const void* colorKey,
243 const float left, const float top,
244 const float right, const float bottom) = 0;
245
246 virtual int32_t SetText(const uint8_t textId,
247 const uint8_t* text,
248 const int32_t textLength,
249 const uint32_t textColorRef,
250 const uint32_t backgroundColorRef,
251 const float left, const float top,
252 const float right, const float bottom) = 0;
253 };
254 } // namespace webrtc
255 #endif // WEBRTC_MODULES_VIDEO_RENDER_VIDEO_RENDER_H_
OLDNEW
« no previous file with comments | « webrtc/modules/video_render/test/testAPI/testAPI_mac.mm ('k') | webrtc/modules/video_render/video_render.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698