23#ifndef VLC_VOUT_DISPLAY_H
24#define VLC_VOUT_DISPLAY_H 1
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
214#define set_callback_display(activate, priority) \
216 vout_display_open_cb open__ = activate; \
218 set_callback(activate) \
220 set_capability( "vout display", priority )
#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
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.