23#ifndef VLC_VOUT_DISPLAY_H
24#define VLC_VOUT_DISPLAY_H 1
51#define VLC_VIDEO_ALIGN_CENTER 0
52#define VLC_VIDEO_ALIGN_LEFT 1
53#define VLC_VIDEO_ALIGN_RIGHT 2
54#define VLC_VIDEO_ALIGN_TOP 1
55#define VLC_VIDEO_ALIGN_BOTTOM 2
221#define set_callback_display(activate, priority) \
223 vout_display_open_cb open__ = activate; \
225 set_callback(activate) \
227 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:218
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:671
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:474
static void vout_display_Display(vout_display_t *vd, picture_t *picture)
Displays a picture.
Definition: vlc_vout_display.h:442
static bool vout_display_cfg_IsWindowed(const vout_display_cfg_t *cfg)
Definition: vlc_vout_display.h:479
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:455
vlc_video_fitting
Video automatic scale fitting.
Definition: vlc_vout_display.h:83
vout_display_query
Control query for vout_display_t.
Definition: vlc_vout_display.h:138
static void vout_display_SendEventMousePressed(vout_display_t *vd, int button)
Definition: vlc_vout_display.h:451
static void vout_display_SendEventViewpointMoved(vout_display_t *vd, const vlc_viewpoint_t *vp)
Definition: vlc_vout_display.h:459
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.
picture_t * vout_display_Prepare(vout_display_t *vd, picture_t *picture, subpicture_t *subpic, vlc_tick_t date)
Prepares a picture for display.
Definition: display.c:379
void vout_display_SetSize(vout_display_t *vd, unsigned width, unsigned height)
Definition: display.c:539
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:756
@ VLC_VIDEO_FIT_HEIGHT
Fit to height.
Definition: vlc_vout_display.h:88
@ VLC_VIDEO_FIT_LARGER
Fit outside / to largest dimension.
Definition: vlc_vout_display.h:86
@ VLC_VIDEO_FIT_NONE
No automatic scaling (use explicit zoom ratio)
Definition: vlc_vout_display.h:84
@ VLC_VIDEO_FIT_SMALLER
Fit inside / to smallest dimension.
Definition: vlc_vout_display.h:85
@ VLC_VIDEO_FIT_WIDTH
Fit to width.
Definition: vlc_vout_display.h:87
@ VOUT_DISPLAY_CHANGE_ZOOM
Notifies a change of the user zoom factor.
Definition: vlc_vout_display.h:164
@ VOUT_DISPLAY_CHANGE_DISPLAY_SIZE
Notifies a change in display size.
Definition: vlc_vout_display.h:146
@ VOUT_DISPLAY_CHANGE_DISPLAY_FILLED
Notifies a change of the display fitting mode by the user.
Definition: vlc_vout_display.h:155
@ VOUT_DISPLAY_CHANGE_SOURCE_ASPECT
Notifies a change of the sample aspect ratio.
Definition: vlc_vout_display.h:173
@ VOUT_DISPLAY_CHANGE_SOURCE_CROP
Notifies a change of the source cropping.
Definition: vlc_vout_display.h:185
static void vlc_window_ReportMouseReleased(vlc_window_t *window, int button)
Reports a mouse button release.
Definition: vlc_window.h:695
static void vlc_window_ReportMouseMoved(vlc_window_t *window, int x, int y)
Reports a pointer movement.
Definition: vlc_window.h:665
static void vlc_window_ReportMousePressed(vlc_window_t *window, int button)
Reports a mouse button press.
Definition: vlc_window.h:680
@ VLC_WINDOW_TYPE_DUMMY
Dummy window (not an actual window)
Definition: vlc_window.h:62
Video picture.
Definition: vlc_picture.h:130
Video subtitle.
Definition: vlc_subpicture.h:167
Definition: vlc_vout_display.h:231
int(* set_viewpoint)(vout_display_t *, const vlc_viewpoint_t *vp)
Notifies a change of VR/360° viewpoint.
Definition: vlc_vout_display.h:313
void(* close)(vout_display_t *)
Destroys the display.
Definition: vlc_vout_display.h:235
void(* prepare)(vout_display_t *, picture_t *pic, subpicture_t *subpic, vlc_tick_t date)
Prepares a picture and an optional subpicture for display (optional).
Definition: vlc_vout_display.h:265
void(* display)(vout_display_t *, picture_t *pic)
Displays a picture.
Definition: vlc_vout_display.h:281
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:333
int(* control)(vout_display_t *, int query)
Performs a control request (mandatory).
Definition: vlc_vout_display.h:290
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:322
int(* reset_pictures)(vout_display_t *, video_format_t *fmtp)
Reset the picture format handled by the module.
Definition: vlc_vout_display.h:304
Definition: vlc_ancillary.h:216
VLC object common members.
Definition: vlc_objects.h:45
Definition: fourcc_gen.c:34
Video alignment within the display.
Definition: vlc_vout_display.h:61
char vertical
Vectical alignment.
Definition: vlc_vout_display.h:76
char horizontal
Horizontal alignment.
Definition: vlc_vout_display.h:68
Definition: decoder_device.c:97
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:116
struct vout_display_placement display
Display placement properties.
Definition: vlc_vout_display.h:118
struct vlc_window * window
Window.
Definition: vlc_vout_display.h:117
vlc_icc_profile_t * icc_profile
Currently active ICC profile.
Definition: vlc_vout_display.h:119
vlc_viewpoint_t viewpoint
Definition: vlc_vout_display.h:120
Information from a vout_display_t to configure the core behaviour.
Definition: vlc_vout_display.h:130
bool can_scale_spu
Definition: vlc_vout_display.h:131
const vlc_fourcc_t * subpicture_chromas
Definition: vlc_vout_display.h:132
Vout owner structures.
Definition: vlc_vout_display.h:191
void(* viewpoint_moved)(void *sys, const vlc_viewpoint_t *vp)
Definition: vlc_vout_display.h:207
void * sys
Definition: vlc_vout_display.h:194
Video placement.
Definition: vlc_vout_display.h:500
unsigned width
Definition: vlc_vout_display.h:503
int y
Definition: vlc_vout_display.h:502
unsigned height
Definition: vlc_vout_display.h:504
int x
Definition: vlc_vout_display.h:501
Display placement and zoom configuration.
Definition: vlc_vout_display.h:94
vlc_video_align_t align
Alignment within the window.
Definition: vlc_vout_display.h:99
unsigned height
Requested display pixel height (0 by default).
Definition: vlc_vout_display.h:96
vlc_rational_t sar
Requested sample aspect ratio.
Definition: vlc_vout_display.h:97
vlc_rational_t zoom
Zoom ratio (if fitting is disabled)
Definition: vlc_vout_display.h:101
enum vlc_video_fitting fitting
Scaling/fitting mode.
Definition: vlc_vout_display.h:100
unsigned width
Requested display pixel width (0 by default).
Definition: vlc_vout_display.h:95
Definition: vlc_vout_display.h:337
const struct vlc_display_operations * ops
Callbacks the display module must set on Open.
Definition: vlc_vout_display.h:397
struct vlc_object_t obj
Definition: vlc_vout_display.h:338
const vout_display_cfg_t * cfg
User configuration.
Definition: vlc_vout_display.h:345
void * sys
Private data for the display module.
Definition: vlc_vout_display.h:392
vout_display_owner_t owner
Definition: vlc_vout_display.h:385
const video_format_t * fmt
Picture format.
Definition: vlc_vout_display.h:373
const video_format_t * source
Source video format.
Definition: vlc_vout_display.h:356
vout_display_info_t info
Definition: vlc_vout_display.h:379
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:45
Video and audio viewpoint struct and helpers.
Video output thread interface.
Window modules interface.