@ VOUT_CROP_NONE
Definition: vout_internal.h:104
char vertical
Vectical alignment.
Definition: vlc_vout_display.h:79
Mouse state.
Definition: vlc_mouse.h:45
vout_display_sys_t * sys
Private data for the display module.
Definition: vlc_vout_display.h:369
vlc_decoder_device * vlc_video_context_HoldDevice(vlc_video_context *vctx)
Get the decoder device used by the device context.
Definition: decoder_helpers.c:287
size_t count
Definition: core.c:401
static bool vout_CropEqual(const struct vout_crop *a, const struct vout_crop *b)
Definition: vout_internal.h:126
picture_t * picture_pool_Get(picture_pool_t *pool)
Obtains a picture from a pool if any is immediately available.
Definition: picture_pool.c:175
void vout_display_SetSize(vout_display_t *vd, unsigned width, unsigned height)
Definition: display.c:578
Definition: vlc_filter.h:45
struct vout_display_cfg::@275 display
Display properties.
static int video_format_Copy(video_format_t *p_dst, const video_format_t *p_src)
Copy video_format_t including the palette.
Definition: vlc_es.h:415
unsigned width
Definition: vlc_vout_display.h:483
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
struct vlc_object_t obj
Definition: vlc_vout_display.h:317
void vout_display_PlacePicture(vout_display_place_t *place, const video_format_t *source, const vout_display_cfg_t *cfg)
Computes the intended picture placement inside the display.
Definition: display.c:122
@ VOUT_CROP_RATIO
Definition: vout_internal.h:104
void vout_SetDisplayViewpoint(vout_display_t *vd, const vlc_viewpoint_t *p_viewpoint)
Definition: display.c:645
bool b_double_click
Definition: vlc_mouse.h:53
#define VLC_CLIP(v, min, max)
Definition: vlc_common.h:551
static void video_format_Clean(video_format_t *p_src)
Cleanup and free palette of this video_format_t.
Definition: vlc_es.h:469
void(* close)(vout_display_t *)
Destroys the display.
Definition: vlc_vout_display.h:237
picture_t * filter_chain_VideoFilter(filter_chain_t *p_chain, picture_t *p_pic)
Apply the filter chain to a video picture.
Definition: filter_chain.c:443
@ VOUT_DISPLAY_CHANGE_SOURCE_CROP
Notifies a change of the source cropping.
Definition: vlc_vout_display.h:185
vlc_video_align_t align
Alignment of the video within the window.
Definition: vlc_vout_display.h:117
#define vlc_module_load(ctx, cap, name, strict,...)
Definition: vlc_modules.h:99
static void picture_Release(picture_t *picture)
Decrements the picture reference count.
Definition: vlc_picture.h:368
video_format_t source
Definition: display.c:273
enum vout_crop_mode mode
Definition: vout_internal.h:108
vout_display_owner_t owner
Definition: vlc_vout_display.h:362
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
const vout_display_cfg_t * cfg
User configuration.
Definition: vlc_vout_display.h:324
void vout_SetDisplayFilled(vout_display_t *vd, bool is_filled)
Definition: display.c:588
void vout_display_TranslateMouseState(vout_display_t *vd, vlc_mouse_t *video, const vlc_mouse_t *window)
Translates mouse state.
Definition: display.c:204
@ PROJECTION_MODE_RECTANGULAR
Definition: vlc_es.h:257
unsigned den
Definition: fourcc_gen.c:34
Vout owner structures.
Definition: vlc_vout_display.h:191
Viewpoints.
Definition: vlc_viewpoint.h:41
void picture_pool_Release(picture_pool_t *pool)
Releases a pool created by picture_pool_New() or picture_pool_NewFromFormat().
Definition: picture_pool.c:61
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 vout_display_GetDefaultDisplaySize(unsigned *width, unsigned *height, const video_format_t *source, const vout_display_cfg_t *cfg)
Computes the default display size given the source and the display configuration.
Definition: display.c:75
picture_t * vout_ConvertForDisplay(vout_display_t *vd, picture_t *picture)
Definition: display.c:401
vlc_video_context * vlc_video_context_Hold(vlc_video_context *vctx)
Definition: decoder_helpers.c:269
Definition: display.c:265
VLC_EXPORT bool vlc_ureduce(unsigned *, unsigned *, uint64_t, uint64_t, uint64_t)
static void vout_display_Reset(vout_display_t *vd)
Definition: display.c:432
Video picture.
Definition: vlc_picture.h:120
vout_display_info_t info
Definition: vlc_vout_display.h:356
void vout_FilterFlush(vout_display_t *vd)
Definition: display.c:424
int y
Definition: vlc_vout_display.h:482
@ VOUT_DISPLAY_CHANGE_DISPLAY_FILLED
Notifies a change of the display fill display flag by the user.
Definition: vlc_vout_display.h:158
static picture_t * VideoBufferNew(filter_t *filter)
Definition: display.c:50
es_format_t fmt_out
Definition: vlc_filter.h:228
@ ORIENT_BOTTOM_RIGHT
Rotated 180 degrees.
Definition: vlc_es.h:183
@ ORIENT_LEFT_TOP
Transposed.
Definition: vlc_es.h:184
unsigned height
Definition: vlc_vout_display.h:484
int(* vout_display_open_cb)(vout_display_t *vd, const vout_display_cfg_t *cfg, video_format_t *fmtp, vlc_video_context *context)
"vout display" open callback
Definition: vlc_vout_display.h:219
@ ORIENT_TOP_RIGHT
Flipped horizontally.
Definition: vlc_es.h:181
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
Video placement.
Definition: vlc_vout_display.h:480
#define filter_chain_NewVideo(a, b, c)
Definition: vlc_filter.h:492
void vout_SetDisplayZoom(vout_display_t *vd, unsigned num, unsigned den)
Definition: display.c:600
vlc_viewpoint_t viewpoint
Definition: vlc_vout_display.h:125
Definition: vlc_filter.h:65
vlc_video_context * src_vctx
Definition: display.c:275
Definition: picture_pool.c:42
#define VLC_VIDEO_ALIGN_TOP
Definition: vlc_vout_display.h:58
static int vout_UpdateSourceCrop(vout_display_t *vd)
Definition: display.c:452
@ VOUT_DISPLAY_CHANGE_DISPLAY_SIZE
Notifies a change in display size.
Definition: vlc_vout_display.h:150
int(* reset_pictures)(vout_display_t *, video_format_t *fmtp)
Reset the picture format handled by the module.
Definition: vlc_vout_display.h:304
const video_format_t * source
Source video format.
Definition: vlc_vout_display.h:335
Structure describing a filter.
Definition: vlc_filter.h:215
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
@ ORIENT_LEFT_BOTTOM
Rotated 90 degrees anti-clockwise.
Definition: vlc_es.h:185
Information from a vout_display_t to configure the core behaviour.
Definition: vlc_vout_display.h:135
void * sys
Definition: vlc_filter.h:78
Video subtitle.
Definition: vlc_subpicture.h:166
User configuration for a video output display (vout_display_t)
Definition: vlc_vout_display.h:94
void filter_chain_VideoFlush(filter_chain_t *p_chain)
Flush a video filter chain.
Definition: filter_chain.c:464
float yaw
Definition: vlc_viewpoint.h:42
Decoder context struct.
Definition: vlc_codec.h:566
void vout_SetDisplayAspect(vout_display_t *vd, unsigned dar_num, unsigned dar_den)
Definition: display.c:614
const struct vlc_display_operations * ops
Callbacks the display module must set on Open.
Definition: vlc_vout_display.h:374
float roll
Definition: vlc_viewpoint.h:44
void vlc_objres_clear(vlc_object_t *obj)
Releases all resources of an object.
Definition: objres.c:84
@ ORIENT_RIGHT_TOP
Rotated 90 degrees clockwise.
Definition: vlc_es.h:186
vlc_rational_t zoom
Zoom ratio.
Definition: vlc_vout_display.h:123
vout_display_t * vout_display_New(vlc_object_t *parent, const video_format_t *source, vlc_video_context *vctx, const vout_display_cfg_t *cfg, const char *module, const vout_display_owner_t *owner)
Creates video output display.
Definition: display.c:668
@ ORIENT_TOP_LEFT
Top line represents top, left column left.
Definition: vlc_es.h:180
int i_y
Definition: vlc_mouse.h:49
unsigned height
Requested display pixel height (0 by default).
Definition: vlc_vout_display.h:100
void vout_UpdateDisplaySourceProperties(vout_display_t *vd, const video_format_t *, const vlc_rational_t *forced_dar)
Definition: display.c:544
bool is_display_filled
Automatic scaling/fitting flag.
Definition: vlc_vout_display.h:120
static void VoutDisplayCropRatio(int *left, int *top, int *right, int *bottom, const video_format_t *source, unsigned num, unsigned den)
Definition: display.c:362
char horizontal
Horizontal alignment.
Definition: vlc_vout_display.h:71
struct vout_crop crop
Definition: display.c:270
void vout_SetDisplayCrop(vout_display_t *vd, const struct vout_crop *restrict crop)
Definition: display.c:632
Definition: fourcc_gen.c:34
picture_pool_t * vout_GetPool(vout_display_t *vd, unsigned count)
It retreives a picture pool from the display.
Definition: display.c:385
const struct filter_video_callbacks * video
Definition: vlc_filter.h:69
#define container_of(ptr, type, member)
Definition: vlc_common.h:1140
static vlc_decoder_device * DisplayHoldDecoderDevice(vlc_object_t *o, void *sys)
Definition: display.c:302
Definition: vout_internal.h:107
bool filter_chain_IsEmpty(const filter_chain_t *chain)
Checks if the filter chain is empty.
Definition: filter_chain.c:401
Definition: decoder_helpers.c:228
int(* control)(vout_display_t *, int query)
Performs a control request (mandatory).
Definition: vlc_vout_display.h:290
VLC object common members.
Definition: vlc_objects.h:43
void vout_UpdateDisplaySourceProperties(vout_display_t *vd, const video_format_t *source, const vlc_rational_t *forced_dar)
Definition: display.c:544
static int vout_display_Control(vout_display_t *vd, int query)
Definition: display.c:65
unsigned num
Definition: fourcc_gen.c:34
static int vout_SetSourceAspect(vout_display_t *vd, unsigned sar_num, unsigned sar_den)
Definition: display.c:513
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
Definition: filter_chain.c:46
int filter_chain_AppendConverter(filter_chain_t *chain, const es_format_t *fmt_out)
Append a conversion to the chain.
Definition: filter_chain.c:303
bool vout_IsDisplayFiltered(vout_display_t *vd)
Definition: display.c:394
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
#define ORIENT_IS_SWAP(orient)
If the orientation swaps dimensions.
Definition: vlc_es.h:206
filter_chain_t * converters
Definition: display.c:278
void VoutFixFormatAR(video_format_t *fmt)
Definition: display.c:534
#define VLC_VIDEO_ALIGN_RIGHT
Definition: vlc_vout_display.h:57
struct vout_crop::@121::@124 border
static int VoutDisplayCreateRender(vout_display_t *vd)
Definition: display.c:314
@ ORIENT_RIGHT_BOTTOM
Anti-transposed.
Definition: vlc_es.h:187
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 filter_chain_Reset(filter_chain_t *p_chain, const es_format_t *p_fmt_in, vlc_video_context *vctx_in, const es_format_t *p_fmt_out)
Filter chain reinitialisation.
Definition: filter_chain.c:188
void vout_display_Delete(vout_display_t *vd)
Destroys a video output display.
Definition: display.c:727
bool force
Module probe flag.
Definition: vlc_objects.h:58
static const struct filter_video_callbacks vout_display_filter_cbs
Definition: display.c:310
vout_display_t display
Definition: display.c:266
#define VLC_VIDEO_ALIGN_LEFT
Definition: vlc_vout_display.h:56
int i_x
Definition: vlc_mouse.h:48
const video_format_t * fmt
Picture format.
Definition: vlc_vout_display.h:350
static int vout_display_start(void *func, bool forced, va_list ap)
Definition: display.c:282
picture_pool_t * picture_pool_NewFromFormat(const video_format_t *fmt, unsigned count)
Allocates pictures from the heap and creates a picture pool with them.
Definition: picture_pool.c:128
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
@ VOUT_DISPLAY_CHANGE_ZOOM
Notifies a change of the user zoom factor.
Definition: vlc_vout_display.h:166
video_format_t display_fmt
Definition: display.c:274
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_objects.h:70
Definition: vlc_vout_display.h:316
@ VOUT_CROP_BORDER
Definition: vout_internal.h:104
vout_display_cfg_t cfg
Definition: display.c:269
struct vout_display_cfg::@276 window_props
Window properties.
int x
Definition: vlc_vout_display.h:481
vlc_rational_t ratio
Definition: vout_internal.h:110
struct vout_crop::@121::@123 window
#define VLC_VIDEO_ALIGN_BOTTOM
Definition: vlc_vout_display.h:59
void VoutFixFormatAR(video_format_t *)
Definition: display.c:534
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
@ VOUT_DISPLAY_CHANGE_SOURCE_ASPECT
Notifies a change of the sample aspect ratio.
Definition: vlc_vout_display.h:174
void vlc_video_context_Release(vlc_video_context *vctx)
Definition: decoder_helpers.c:275
int i_pressed
Definition: vlc_mouse.h:51
@ ORIENT_BOTTOM_LEFT
Flipped vertically.
Definition: vlc_es.h:182
vlc_rational_t sar
Requested sample aspect ratio.
Definition: vlc_vout_display.h:101
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:413
unsigned width
Requested display pixel width (0 by default).
Definition: vlc_vout_display.h:99
void filter_chain_Delete(filter_chain_t *p_chain)
Filter chain destruction.
Definition: filter_chain.c:174
float pitch
Definition: vlc_viewpoint.h:43
picture_pool_t * pool
Definition: display.c:279
@ VOUT_CROP_WINDOW
Definition: vout_internal.h:104
float fov
Definition: vlc_viewpoint.h:45
filter_owner_t owner
Private structure for the owner of the filter.
Definition: vlc_filter.h:241