VLC 4.0.0-dev
Loading...
Searching...
No Matches
vlc_vout_display.h
Go to the documentation of this file.
1/*****************************************************************************
2 * vlc_vout_display.h: vout_display_t definitions
3 *****************************************************************************
4 * Copyright (C) 2009 Laurent Aimar
5 *
6 * Authors: Laurent Aimar <fenrir _AT_ videolan _DOT_ org>
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU Lesser General Public License as published by
10 * the Free Software Foundation; either version 2.1 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public License
19 * along with this program; if not, write to the Free Software Foundation,
20 * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
21 *****************************************************************************/
22
23#ifndef VLC_VOUT_DISPLAY_H
24#define VLC_VOUT_DISPLAY_H 1
25
26#include <vlc_es.h>
27#include <vlc_picture.h>
28#include <vlc_mouse.h>
29#include <vlc_vout.h>
30#include <vlc_window.h>
31#include <vlc_viewpoint.h>
32
34
35/**
36 * \defgroup video_display Video output display
37 * Video output display: output buffers and rendering
38 *
39 * \ingroup video_output
40 * @{
41 * \file
42 * Video output display modules interface
43 */
44
45typedef struct vout_display_t vout_display_t;
48/**
49 * \defgroup video_align Video alignment
50 * @{
51 */
52#define VLC_VIDEO_ALIGN_CENTER 0
53#define VLC_VIDEO_ALIGN_LEFT 1
54#define VLC_VIDEO_ALIGN_RIGHT 2
55#define VLC_VIDEO_ALIGN_TOP 1
56#define VLC_VIDEO_ALIGN_BOTTOM 2
58/**
59 * Video alignment within the display.
60 */
61typedef struct vlc_video_align {
62 /**
63 * Horizontal alignment.
64 *
65 * This must be one of \ref VLC_VIDEO_ALIGN_CENTER,
66 * \ref VLC_VIDEO_ALIGN_LEFT or \ref VLC_VIDEO_ALIGN_RIGHT.
67 */
68 char horizontal;
70 /**
71 * Vectical alignment.
72 *
73 * This must be one of \ref VLC_VIDEO_ALIGN_CENTER,
74 * \ref VLC_VIDEO_ALIGN_TOP or \ref VLC_VIDEO_ALIGN_BOTTOM.
75 */
76 char vertical;
78/** @} */
79
80/**
81 * Video automatic scale fitting.
82 */
84 VLC_VIDEO_FIT_NONE /**< No automatic scaling (use explicit zoom ratio) */,
85 VLC_VIDEO_FIT_SMALLER /**< Fit inside / to smallest dimension */,
86 VLC_VIDEO_FIT_LARGER /**< Fit outside / to largest dimension */,
87 VLC_VIDEO_FIT_WIDTH /**< Fit to width */,
88 VLC_VIDEO_FIT_HEIGHT /**< Fit to height */,
89};
90
91/**
92 * Display placement and zoom configuration.
93 */
95 unsigned width; /**< Requested display pixel width (0 by default). */
96 unsigned height; /**< Requested display pixel height (0 by default). */
97 vlc_rational_t sar; /**< Requested sample aspect ratio */
99 vlc_video_align_t align; /**< Alignment within the window */
100 enum vlc_video_fitting fitting; /**< Scaling/fitting mode */
101 vlc_rational_t zoom; /**< Zoom ratio (if fitting is disabled) */
102 bool full_fill; /**< whether the rendering will take the whole display */
104
105/**
106 * User configuration for a video output display (\ref vout_display_t)
107 *
108 * This primarily controls the size of the display area within the video
109 * window, as follows:
110 * - If \ref vout_display_placement::fitting is not disabled, ie. equals
111 * to \ref VLC_VIDEO_FIT_NONE, in \ref vout_display_cfg::display, the
112 * video size is fitted to the display size.
113 * - If \ref vout_display_cfg::window "window" size is valid, the video size
114 * is set to the window size,
115 * - Otherwise, the video size is determined from the original video format,
116 * multiplied by the zoom factor.
117 */
118typedef struct vout_display_cfg {
119 struct vlc_window *window; /**< Window */
120 struct vout_display_placement display; /**< Display placement properties */
121 vlc_icc_profile_t *icc_profile; /**< Currently active ICC profile */
125/**
126 * Information from a vout_display_t to configure
127 * the core behaviour.
128 *
129 * By default they are all false or NULL.
130 *
131 */
132typedef struct {
133 const vlc_fourcc_t *subpicture_chromas; /* List of supported chromas for subpicture rendering. */
135
136/**
137 * Control query for vout_display_t
138 */
140 /**
141 * Notifies a change in display size.
142 *
143 * \retval VLC_SUCCESS if the display handled the change
144 * \retval VLC_EGENERIC if a \ref vlc_display_operations::reset_pictures
145 * request is necessary
146 */
149 /**
150 * Notifies a change of the sample aspect ratio.
151 *
152 * \retval VLC_SUCCESS if the display handled the change
153 * \retval VLC_EGENERIC if a \ref vlc_display_operations::reset_pictures
154 * request is necessary
155 */
158 /**
159 * Notifies a change of the source cropping.
160 *
161 * The cropping requested is stored by source \ref video_format_t `i_x`/`y_offset`
162 * and `i_visible_width`/`height`
163 *
164 * \retval VLC_SUCCESS if the display handled the change
165 * \retval VLC_EGENERIC if a \ref vlc_display_operations::reset_pictures
166 * request is necessary
167 */
170 /**
171 * Notified when the source placement in the display has changed
172 *
173 * \retval VLC_SUCCESS if the display handled the change
174 * \retval VLC_EGENERIC if a \ref vlc_display_operations::reset_pictures
175 * request is necessary
176 */
179
180/**
181 * Vout owner structures
182 */
184 /* Private place holder for the vout_display_t creator
185 */
186 void *sys;
188 /* Event coming from the module
189 *
190 * This function is set prior to the module instantiation and must not
191 * be overwritten nor used directly (use the vout_display_SendEvent*
192 * wrapper.
193 *
194 * You can send it at any time i.e. from any vout_display_t functions or
195 * from another thread.
196 * Be careful, it does not ensure correct serialization if it is used
197 * from multiple threads.
198 */
199 void (*viewpoint_moved)(void *sys, const vlc_viewpoint_t *vp);
201
202/**
203 * "vout display" open callback
204 *
205 * @param vd vout display context
206 * @param fmtp It can be changed by the module to request a different format.
207 * @param context The video context to configure the display for.
208 * @return VLC_SUCCESS or a VLC error code
209 */
210typedef int (*vout_display_open_cb)(vout_display_t *vd,
212 vlc_video_context *context);
213
214#define set_callback_display(activate, priority) \
215 { \
216 vout_display_open_cb open__ = activate; \
217 (void) open__; \
218 set_callback(activate) \
219 } \
220 set_capability( "vout display", priority )
221
224 /**
225 * Destroys the display.
226 */
227 void (*close)(vout_display_t *);
229 /**
230 * Prepares a picture and an optional subpicture for display (optional).
231 *
232 * This callback is called once a picture buffer content is ready,
233 * as far in advance as possible to the intended display time,
234 * but only after the previous picture was displayed.
235 *
236 * The callback should perform any preprocessing operation that will not
237 * actually cause the picture to be shown, such as blending the subpicture
238 * or upload the picture to video memory. If supported, this can also
239 * queue the picture to be shown asynchronously at the given date.
240 *
241 *
242 * If \ref vlc_display_operations.prepare and
243 * \ref vlc_display_operations.display are not \c NULL, there is an
244 * implicit guarantee that display will be invoked with the exact same
245 * picture afterwards:
246 * prepare 1st picture, display 1st picture, prepare 2nd picture, display
247 * 2nd picture, and so on.
248 *
249 * \note The picture buffers may have multiple references.
250 * Therefore the pixel content of the picture or of the subpicture
251 * must not be changed.
252 *
253 * \param pic picture
254 * \param subpic subpicture to render over the picture
255 * \param date time when the picture is intended to be shown
256 */
257 void (*prepare)(vout_display_t *, picture_t *pic,
258 const struct vlc_render_subpicture *subpic, vlc_tick_t date);
259
260 /**
261 * Displays a picture.
262 *
263 * This callback is invoked at the time when the picture should be shown.
264 * The picture must be displayed as soon as possible.
265 *
266 * If NULL, prepare must be valid. In that case, the plugin can handle
267 * asynchronous display at the time given by the prepare call.
268 *
269 * \note The picture buffers may have multiple references.
270 * Therefore the pixel content of the picture or of the subpicture
271 * must not be changed.
272 */
273 void (*display)(vout_display_t *, picture_t *pic);
275 /**
276 * Performs a control request (mandatory).
277 *
278 * \param query request type
279 *
280 * See \ref vout_display_query for the list of request types.
281 */
282 int (*control)(vout_display_t *, int query);
284 /**
285 * Reset the picture format handled by the module.
286 * This occurs after a
287 * \ref VOUT_DISPLAY_CHANGE_DISPLAY_SIZE,
288 * \ref VOUT_DISPLAY_CHANGE_SOURCE_ASPECT,
289 * \ref VOUT_DISPLAY_CHANGE_SOURCE_CROP or
290 * \ref VOUT_DISPLAY_CHANGE_SOURCE_PLACE
291 * control query returns an error.
292 *
293 * \param ftmp video format that the module expects as input
294 */
297 /**
298 * Notifies a change of VR/360° viewpoint.
299 *
300 * May be NULL.
301 *
302 * \param vp viewpoint to use on the next render
303 */
304 int (*set_viewpoint)(vout_display_t *, const vlc_viewpoint_t *vp);
306 /**
307 * Notifies a change in output ICC profile.
308 *
309 * May be NULL. Memory owned by the caller.
310 *
311 * \param prof new ICC profile associated with display, or NULL for none
312 */
313 void (*set_icc_profile)(vout_display_t *, const vlc_icc_profile_t *prof);
315 /**
316 * Notifies a change in the input format.
317 *
318 * The format size is not expected to change.
319 *
320 * \param fmt the requested input format
321 * \param ctx the video context
322 * \return VLC_SUCCESS on success, another value on error
323 */
324 int (*update_format)(vout_display_t *, const video_format_t *fmt,
326};
327
328/**
329 * Video placement.
330 *
331 * This structure stores the result of a vout_display_PlacePicture() call.
332 */
333typedef struct vout_display_place_t {
334 int x; /*< Relative pixel offset from the display left edge */
335 int y; /*< Relative pixel offset from the display top edge */
336 unsigned width; /*< Picture pixel width */
337 unsigned height; /*< Picture pixel height */
340struct vout_display_t {
343 /**
344 * User configuration.
345 *
346 * This cannot be modified directly. It reflects the current values.
347 */
348 const vout_display_cfg_t *cfg;
350 /**
351 * Source video format.
352 *
353 * This is the format of the video that is being displayed (after decoding
354 * and filtering). It cannot be modified.
355 *
356 * \note
357 * Cropping is not requested while in the open function.
358 */
359 const video_format_t *source;
361 /**
362 * Placement of the source picture in the display. (cannot be NULL)
363 *
364 * This cannot be modified directly and cannot be NULL.
365 * It reflects the current values.
366 */
369 /**
370 * Picture format.
371 *
372 * This is the format of the pictures that are supplied to the
373 * \ref vlc_display_operations::prepare "prepare" and
374 * \ref vlc_display_operations::display "display" callbacks.
375 * Ideally, it should be identical or as close as possible as \ref source.
376 *
377 * This can only be changed from the display module activation callback,
378 * or within a \ref vlc_display_operations::reset_pictures "reset_pictures"
379 * request.
380 *
381 * By default, it is equal to \ref source except for the aspect ratio
382 * which is undefined(0) and is ignored.
383 */
384 const video_format_t *fmt;
386 /* Information
387 *
388 * You can only set them in the open function.
389 */
392 /* Reserved for the vout_display_t owner.
393 *
394 * It must not be overwritten nor used directly by a module.
395 */
398 /**
399 * Private data for the display module.
400 *
401 * A module is free to use it as it wishes.
402 */
403 void *sys;
405 /**
406 * Callbacks the display module must set on Open.
407 */
408 const struct vlc_display_operations *ops;
410
411/**
412 * Creates video output display.
413 */
417 const vout_display_cfg_t *, const char *module,
418 const vout_display_owner_t *);
419
420/**
421 * Destroys a video output display.
422 */
424
425/**
426 * Prepares a picture for display.
427 *
428 * This renders a picture for subsequent display, with vout_display_Display().
429 *
430 * \note A reference to the input picture is consumed by the function, which
431 * returns a reference to an output picture for display. The input and output
432 * picture may or may not be equal depending on the underlying display setup.
433 *
434 * \bug Currently, only one picture can be prepared at a time. It must be
435 * displayed with vout_display_Display() before any picture is prepared or
436 * before the display is destroyed with vout_display_Delete().
437 *
438 \ bug Rendering subpictures is not supported with this function yet.
439 * \c subpic must be @c NULL .
440 *
441 * \param vd display to prepare the picture for
442 * \param picture picure to be prepared
443 * \param subpic reserved, must be NULL
444 * \param date intended time to show the picture
445 * \return The prepared picture is returned, NULL on error.
446 */
448 const struct vlc_render_subpicture *subpic, vlc_tick_t date);
449
450/**
451 * Displays a picture.
452 */
453static inline void vout_display_Display(vout_display_t *vd, picture_t *picture)
455 if (vd->ops->display != NULL)
456 vd->ops->display(vd, picture);
457}
458
460void vout_display_SetSize(vout_display_t *vd, unsigned width, unsigned height);
461
462static inline void vout_display_SendEventMousePressed(vout_display_t *vd, int button)
465}
466static inline void vout_display_SendEventMouseReleased(vout_display_t *vd, int button)
472{
473 if (vd->owner.viewpoint_moved)
474 vd->owner.viewpoint_moved(vd->owner.sys, vp);
475}
476
477/**
478 * Helper function that applies the necessary transforms to the mouse position
479 * and then calls vout_display_SendEventMouseMoved.
480 *
481 * \param vd vout_display_t.
482 * \param m_x Mouse x position (relative to place, origin is top left).
483 * \param m_y Mouse y position (relative to place, origin is top left).
484 */
485static inline void vout_display_SendMouseMovedDisplayCoordinates(vout_display_t *vd, int m_x, int m_y)
487 vlc_window_ReportMouseMoved(vd->cfg->window, m_x, m_y);
488}
489
490static inline bool vout_display_cfg_IsWindowed(const vout_display_cfg_t *cfg)
492 return cfg->window->type != VLC_WINDOW_TYPE_DUMMY;
493}
494
495/**
496 * Computes the default display size given the source and
497 * the display configuration.
498 *
499 * This assumes that the picture is already cropped.
500 */
502void vout_display_GetDefaultDisplaySize(unsigned *width, unsigned *height,
503 const video_format_t *source,
504 const struct vout_display_placement *);
505
506/**
507 * Compares two \ref vout_display_place_t.
508 */
509static inline bool vout_display_PlaceEquals(const vout_display_place_t *p1,
511{
512 return p1->x == p2->x && p1->width == p2->width &&
513 p1->y == p2->y && p1->height == p2->height;
514}
515
516/**
517 * Computes the intended picture placement inside the display.
518 *
519 * This function computes where to show a picture inside the display with
520 * respect to the provided parameters, and returns the result
521 * in a \ref vout_display_place_t structure.
522 *
523 * This assumes that cropping is done by an external mean.
524 *
525 * \param place Storage space for the picture placement [OUT]
526 * \param source Video source format
527 * \param cfg Display configuration
528 */
531 const video_format_t *restrict source,
532 const struct vout_display_placement *cfg);
533
534/**
535 * Translates coordinates.
536 *
537 * This translates coordinates from window pixel coordinate space to
538 * original video sample coordinate space.
539 *
540 * \param x pointer to abscissa to be translated
541 * \param y pointer to ordinate to be translated
542 * \param fmt video format
543 * \param dp display configuration
544 */
545void vout_display_TranslateCoordinates(int *x, int *y,
546 const video_format_t *fmt,
547 const struct vout_display_placement *dp);
548
549/** @} */
550#endif /* VLC_VOUT_DISPLAY_H */
#define VLC_API
Definition fourcc_gen.c:31
uint32_t vlc_fourcc_t
Definition fourcc_gen.c:33
struct vlc_video_align vlc_video_align_t
Video alignment within the display.
void vout_display_GetDefaultDisplaySize(unsigned *width, unsigned *height, const video_format_t *source, const struct vout_display_placement *)
Computes the default display size given the source and the display configuration.
Definition display.c:56
int(* vout_display_open_cb)(vout_display_t *vd, video_format_t *fmtp, vlc_video_context *context)
"vout display" open callback
Definition vlc_vout_display.h:211
vout_display_t * vout_display_New(vlc_object_t *, const video_format_t *, vlc_video_context *, const vout_display_cfg_t *, const char *module, const vout_display_owner_t *)
Creates video output display.
Definition display.c:765
static void vout_display_SendMouseMovedDisplayCoordinates(vout_display_t *vd, int m_x, int m_y)
Helper function that applies the necessary transforms to the mouse position and then calls vout_displ...
Definition vlc_vout_display.h:486
static void vout_display_Display(vout_display_t *vd, picture_t *picture)
Displays a picture.
Definition vlc_vout_display.h:454
static bool vout_display_cfg_IsWindowed(const vout_display_cfg_t *cfg)
Definition vlc_vout_display.h:491
void vout_display_PlacePicture(vout_display_place_t *restrict place, const video_format_t *restrict source, const struct vout_display_placement *cfg)
Computes the intended picture placement inside the display.
static void vout_display_SendEventMouseReleased(vout_display_t *vd, int button)
Definition vlc_vout_display.h:467
vlc_video_fitting
Video automatic scale fitting.
Definition vlc_vout_display.h:84
vout_display_query
Control query for vout_display_t.
Definition vlc_vout_display.h:140
static void vout_display_SendEventMousePressed(vout_display_t *vd, int button)
Definition vlc_vout_display.h:463
static void vout_display_SendEventViewpointMoved(vout_display_t *vd, const vlc_viewpoint_t *vp)
Definition vlc_vout_display.h:471
static bool vout_display_PlaceEquals(const vout_display_place_t *p1, const vout_display_place_t *p2)
Compares two vout_display_place_t.
Definition vlc_vout_display.h:510
void vout_display_TranslateCoordinates(int *x, int *y, const video_format_t *fmt, const struct vout_display_placement *dp)
Translates coordinates.
void vout_display_SetSize(vout_display_t *vd, unsigned width, unsigned height)
Definition display.c:601
struct vout_display_cfg vout_display_cfg_t
User configuration for a video output display (vout_display_t)
void vout_display_Delete(vout_display_t *)
Destroys a video output display.
Definition display.c:854
picture_t * vout_display_Prepare(vout_display_t *vd, picture_t *picture, const struct vlc_render_subpicture *subpic, vlc_tick_t date)
Prepares a picture for display.
@ VLC_VIDEO_FIT_HEIGHT
Fit to height.
Definition vlc_vout_display.h:89
@ VLC_VIDEO_FIT_LARGER
Fit outside / to largest dimension.
Definition vlc_vout_display.h:87
@ VLC_VIDEO_FIT_NONE
No automatic scaling (use explicit zoom ratio)
Definition vlc_vout_display.h:85
@ VLC_VIDEO_FIT_SMALLER
Fit inside / to smallest dimension.
Definition vlc_vout_display.h:86
@ VLC_VIDEO_FIT_WIDTH
Fit to width.
Definition vlc_vout_display.h:88
@ VOUT_DISPLAY_CHANGE_DISPLAY_SIZE
Notifies a change in display size.
Definition vlc_vout_display.h:148
@ VOUT_DISPLAY_CHANGE_SOURCE_PLACE
Notified when the source placement in the display has changed.
Definition vlc_vout_display.h:178
@ VOUT_DISPLAY_CHANGE_SOURCE_ASPECT
Notifies a change of the sample aspect ratio.
Definition vlc_vout_display.h:157
@ VOUT_DISPLAY_CHANGE_SOURCE_CROP
Notifies a change of the source cropping.
Definition vlc_vout_display.h:169
static void vlc_window_ReportMouseReleased(vlc_window_t *window, int button)
Reports a mouse button release.
Definition vlc_window.h:696
static void vlc_window_ReportMouseMoved(vlc_window_t *window, int x, int y)
Reports a pointer movement.
Definition vlc_window.h:666
static void vlc_window_ReportMousePressed(vlc_window_t *window, int button)
Reports a mouse button press.
Definition vlc_window.h:681
@ VLC_WINDOW_TYPE_DUMMY
Dummy window (not an actual window)
Definition vlc_window.h:62
Video picture.
Definition vlc_picture.h:130
video format description
Definition vlc_es.h:356
Definition vlc_vout_display.h:224
int(* set_viewpoint)(vout_display_t *, const vlc_viewpoint_t *vp)
Notifies a change of VR/360° viewpoint.
Definition vlc_vout_display.h:305
void(* close)(vout_display_t *)
Destroys the display.
Definition vlc_vout_display.h:228
void(* display)(vout_display_t *, picture_t *pic)
Displays a picture.
Definition vlc_vout_display.h:274
int(* update_format)(vout_display_t *, const video_format_t *fmt, vlc_video_context *ctx)
Notifies a change in the input format.
Definition vlc_vout_display.h:325
int(* control)(vout_display_t *, int query)
Performs a control request (mandatory).
Definition vlc_vout_display.h:283
void(* set_icc_profile)(vout_display_t *, const vlc_icc_profile_t *prof)
Notifies a change in output ICC profile.
Definition vlc_vout_display.h:314
void(* prepare)(vout_display_t *, picture_t *pic, const struct vlc_render_subpicture *subpic, vlc_tick_t date)
Prepares a picture and an optional subpicture for display (optional).
Definition vlc_vout_display.h:258
int(* reset_pictures)(vout_display_t *, video_format_t *fmtp)
Reset the picture format handled by the module.
Definition vlc_vout_display.h:296
Definition vlc_ancillary.h:216
VLC object common members.
Definition vlc_objects.h:53
Definition fourcc_gen.c:34
Definition vlc_subpicture.h:218
Video alignment within the display.
Definition vlc_vout_display.h:62
char vertical
Vectical alignment.
Definition vlc_vout_display.h:77
char horizontal
Horizontal alignment.
Definition vlc_vout_display.h:69
Definition decoder_device.c:98
Viewpoints.
Definition vlc_viewpoint.h:41
Window object.
Definition vlc_window.h:373
unsigned type
Window handle type.
Definition vlc_window.h:385
User configuration for a video output display (vout_display_t)
Definition vlc_vout_display.h:119
struct vout_display_placement display
Display placement properties.
Definition vlc_vout_display.h:121
struct vlc_window * window
Window.
Definition vlc_vout_display.h:120
vlc_icc_profile_t * icc_profile
Currently active ICC profile.
Definition vlc_vout_display.h:122
vlc_viewpoint_t viewpoint
Definition vlc_vout_display.h:123
Information from a vout_display_t to configure the core behaviour.
Definition vlc_vout_display.h:133
const vlc_fourcc_t * subpicture_chromas
Definition vlc_vout_display.h:134
Vout owner structures.
Definition vlc_vout_display.h:184
void(* viewpoint_moved)(void *sys, const vlc_viewpoint_t *vp)
Definition vlc_vout_display.h:200
void * sys
Definition vlc_vout_display.h:187
Video placement.
Definition vlc_vout_display.h:334
unsigned width
Definition vlc_vout_display.h:337
int y
Definition vlc_vout_display.h:336
unsigned height
Definition vlc_vout_display.h:338
int x
Definition vlc_vout_display.h:335
Display placement and zoom configuration.
Definition vlc_vout_display.h:95
vlc_video_align_t align
Alignment within the window.
Definition vlc_vout_display.h:100
unsigned height
Requested display pixel height (0 by default).
Definition vlc_vout_display.h:97
bool full_fill
whether the rendering will take the whole display
Definition vlc_vout_display.h:103
vlc_rational_t sar
Requested sample aspect ratio.
Definition vlc_vout_display.h:98
vlc_rational_t zoom
Zoom ratio (if fitting is disabled)
Definition vlc_vout_display.h:102
enum vlc_video_fitting fitting
Scaling/fitting mode.
Definition vlc_vout_display.h:101
unsigned width
Requested display pixel width (0 by default).
Definition vlc_vout_display.h:96
Definition vlc_vout_display.h:341
const struct vlc_display_operations * ops
Callbacks the display module must set on Open.
Definition vlc_vout_display.h:409
struct vlc_object_t obj
Definition vlc_vout_display.h:342
const vout_display_cfg_t * cfg
User configuration.
Definition vlc_vout_display.h:349
void * sys
Private data for the display module.
Definition vlc_vout_display.h:404
vout_display_owner_t owner
Definition vlc_vout_display.h:397
const video_format_t * fmt
Picture format.
Definition vlc_vout_display.h:385
const video_format_t * source
Source video format.
Definition vlc_vout_display.h:360
vout_display_info_t info
Definition vlc_vout_display.h:391
const vout_display_place_t * place
Placement of the source picture in the display.
Definition vlc_vout_display.h:368
This file is a collection of common definitions and types.
This file defines the elementary streams format types.
This file defines picture structures and functions in vlc.
int64_t vlc_tick_t
High precision date or time interval.
Definition vlc_tick.h:48
Video and audio viewpoint struct and helpers.
Video output thread interface.
Window modules interface.