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
222#define set_callback_display(activate, priority) \
224 vout_display_open_cb open__ = activate; \
226 set_callback(activate) \
228 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:219
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:702
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:475
static void vout_display_Display(vout_display_t *vd, picture_t *picture)
Displays a picture.
Definition vlc_vout_display.h:443
static bool vout_display_cfg_IsWindowed(const vout_display_cfg_t *cfg)
Definition vlc_vout_display.h:480
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:456
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:139
static void vout_display_SendEventMousePressed(vout_display_t *vd, int button)
Definition vlc_vout_display.h:452
static void vout_display_SendEventViewpointMoved(vout_display_t *vd, const vlc_viewpoint_t *vp)
Definition vlc_vout_display.h:460
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:511
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:566
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:788
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_ZOOM
Notifies a change of the user zoom factor.
Definition vlc_vout_display.h:165
@ VOUT_DISPLAY_CHANGE_DISPLAY_SIZE
Notifies a change in display size.
Definition vlc_vout_display.h:147
@ VOUT_DISPLAY_CHANGE_DISPLAY_FILLED
Notifies a change of the display fitting mode by the user.
Definition vlc_vout_display.h:156
@ VOUT_DISPLAY_CHANGE_SOURCE_ASPECT
Notifies a change of the sample aspect ratio.
Definition vlc_vout_display.h:174
@ VOUT_DISPLAY_CHANGE_SOURCE_CROP
Notifies a change of the source cropping.
Definition vlc_vout_display.h:186
static void vlc_window_ReportMouseReleased(vlc_window_t *window, int button)
Reports a mouse button release.
Definition vlc_window.h:694
static void vlc_window_ReportMouseMoved(vlc_window_t *window, int x, int y)
Reports a pointer movement.
Definition vlc_window.h:664
static void vlc_window_ReportMousePressed(vlc_window_t *window, int button)
Reports a mouse button press.
Definition vlc_window.h:679
@ 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:232
int(* set_viewpoint)(vout_display_t *, const vlc_viewpoint_t *vp)
Notifies a change of VR/360° viewpoint.
Definition vlc_vout_display.h:314
void(* close)(vout_display_t *)
Destroys the display.
Definition vlc_vout_display.h:236
void(* display)(vout_display_t *, picture_t *pic)
Displays a picture.
Definition vlc_vout_display.h:282
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:334
int(* control)(vout_display_t *, int query)
Performs a control request (mandatory).
Definition vlc_vout_display.h:291
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:323
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:266
int(* reset_pictures)(vout_display_t *, video_format_t *fmtp)
Reset the picture format handled by the module.
Definition vlc_vout_display.h:305
Definition vlc_ancillary.h:216
VLC object common members.
Definition vlc_objects.h:53
Definition fourcc_gen.c:34
Definition vlc_subpicture.h:217
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:372
unsigned type
Window handle type.
Definition vlc_window.h:384
User configuration for a video output display (vout_display_t)
Definition vlc_vout_display.h:118
struct vout_display_placement display
Display placement properties.
Definition vlc_vout_display.h:120
struct vlc_window * window
Window.
Definition vlc_vout_display.h:119
vlc_icc_profile_t * icc_profile
Currently active ICC profile.
Definition vlc_vout_display.h:121
vlc_viewpoint_t viewpoint
Definition vlc_vout_display.h:122
Information from a vout_display_t to configure the core behaviour.
Definition vlc_vout_display.h:132
const vlc_fourcc_t * subpicture_chromas
Definition vlc_vout_display.h:133
Vout owner structures.
Definition vlc_vout_display.h:192
void(* viewpoint_moved)(void *sys, const vlc_viewpoint_t *vp)
Definition vlc_vout_display.h:208
void * sys
Definition vlc_vout_display.h:195
Video placement.
Definition vlc_vout_display.h:501
unsigned width
Definition vlc_vout_display.h:504
int y
Definition vlc_vout_display.h:503
unsigned height
Definition vlc_vout_display.h:505
int x
Definition vlc_vout_display.h:502
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
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:338
const struct vlc_display_operations * ops
Callbacks the display module must set on Open.
Definition vlc_vout_display.h:398
struct vlc_object_t obj
Definition vlc_vout_display.h:339
const vout_display_cfg_t * cfg
User configuration.
Definition vlc_vout_display.h:346
void * sys
Private data for the display module.
Definition vlc_vout_display.h:393
vout_display_owner_t owner
Definition vlc_vout_display.h:386
const video_format_t * fmt
Picture format.
Definition vlc_vout_display.h:374
const video_format_t * source
Source video format.
Definition vlc_vout_display.h:357
vout_display_info_t info
Definition vlc_vout_display.h:380
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.