VLC  3.0.15
display.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * display.h: "vout display" management
3  *****************************************************************************
4  * Copyright (C) 2009 Laurent Aimar
5  * $Id: 34c39a35a891bea3797ef66b90a4789e6142cd4c $
6  *
7  * Authors: Laurent Aimar <fenrir _AT_ videolan _DOT_ org>
8  *
9  * This program is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23 
24 #include <vlc_vout_wrapper.h>
25 
27  const video_format_t *source,
28  const vout_display_state_t *state,
29  const char *module,
30  const char *splitter_module,
31  mtime_t double_click_timeout,
32  mtime_t hide_timeout);
33 
34 /* FIXME should not be there */
36 
39 void vout_SetDisplayWindowSize(vout_thread_t *, unsigned, unsigned);
41 
SplitterEvent
static void SplitterEvent(vout_display_t *vd, int event, va_list args)
Definition: display.c:1297
VOUT_DISPLAY_HIDE_MOUSE
Definition: vlc_vout_display.h:144
vlc_mouse_t
Mouse state.
Definition: vlc_mouse.h:45
filter_chain_Delete
void filter_chain_Delete(filter_chain_t *p_chain)
Filter chain destruction.
Definition: filter_chain.c:148
video_splitter_output_t
Structure describing a video splitter output properties.
Definition: vlc_video_splitter.h:42
vout_display_owner_sys_t::fit_window
signed char fit_window
Definition: display.c:393
SplitterManage
static void SplitterManage(vout_display_t *vd)
Definition: display.c:1370
vout_display_t::sys
vout_display_sys_t * sys
Definition: vlc_vout_display.h:339
vout_display_owner_sys_t::reset_pictures
bool reset_pictures
Definition: display.c:391
vout_SendEventMouseMoved
static void vout_SendEventMouseMoved(vout_thread_t *vout, int x, int y)
Definition: event.h:50
count
size_t count
Definition: core.c:461
vout_display_cfg_t::horizontal
int horizontal
Definition: vlc_vout_display.h:103
TAB_CLEAN
#define TAB_CLEAN(count, tab)
Definition: vlc_arrays.h:46
picture_pool_Get
picture_t * picture_pool_Get(picture_pool_t *pool)
Obtains a picture from a pool if any is immediately available.
Definition: picture_pool.c:212
vlc_mouse_HasButton
static bool vlc_mouse_HasButton(const vlc_mouse_t *p_old, const vlc_mouse_t *p_new)
Definition: vlc_mouse.h:128
picture_Hold
picture_t * picture_Hold(picture_t *p_picture)
This function will increase the picture reference count.
Definition: picture.c:290
video_format_TransformTo
void video_format_TransformTo(video_format_t *restrict fmt, video_orientation_t dst_orientation)
Definition: es_format.c:365
vout_display_SendMouseMovedDisplayCoordinates
void vout_display_SendMouseMovedDisplayCoordinates(vout_display_t *vd, video_orientation_t orient_display, int m_x, int m_y, vout_display_place_t *place)
Helper function that applies the necessary transforms to the mouse position and then calls vout_displ...
Definition: display.c:273
vout_display_owner_sys_t::sar_initial
vlc_rational_t sar_initial
Definition: display.c:335
vout_UpdateDisplaySourceProperties
void vout_UpdateDisplaySourceProperties(vout_display_t *vd, const video_format_t *source)
Definition: display.c:1001
es_format_t::video
video_format_t video
description of video format
Definition: vlc_es.h:609
SplitterPictureDel
static void SplitterPictureDel(video_splitter_t *splitter, picture_t *picture[])
Definition: display.c:1398
video_format_GetTransform
video_transform_t video_format_GetTransform(video_orientation_t src, video_orientation_t dst)
Returns the operation required to transform src into dst.
Definition: es_format.c:296
filter_chain_VideoFlush
void filter_chain_VideoFlush(filter_chain_t *p_chain)
Flush a video filter chain.
Definition: filter_chain.c:435
video_splitter_t::p_output
video_splitter_output_t * p_output
Definition: vlc_video_splitter.h:92
video_format_Copy
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:392
vout_window_t
Graphical window.
Definition: vlc_vout_window.h:130
VoutDisplayNewWindow
static vout_window_t * VoutDisplayNewWindow(vout_display_t *vd, unsigned type)
Definition: display.c:666
vout_display_owner_sys_t::state
vlc_mouse_t state
Definition: display.c:379
vout_display_owner_sys_t::cfg
vout_display_cfg_t cfg
Definition: display.c:334
vout_display_place_t::width
unsigned width
Definition: vlc_vout_display.h:450
vout_display_info_t::is_slow
bool is_slow
Definition: vlc_vout_display.h:129
vout_AreDisplayPicturesInvalid
bool vout_AreDisplayPicturesInvalid(vout_display_t *vd)
Definition: display.c:963
vout_display_info_t::subpicture_chromas
const vlc_fourcc_t * subpicture_chromas
Definition: vlc_vout_display.h:135
vlc_common.h
VOUT_DISPLAY_CHANGE_ZOOM
Definition: vlc_vout_display.h:169
vout_display_cfg_t::viewpoint
vlc_viewpoint_t viewpoint
Definition: vlc_vout_display.h:118
vout_display_t::pool
picture_pool_t *(* pool)(vout_display_t *, unsigned count)
Definition: vlc_vout_display.h:303
SplitterDisplay
static void SplitterDisplay(vout_display_t *vd, picture_t *picture, subpicture_t *subpicture)
Definition: display.c:1352
vout_display_t::manage
void(* manage)(vout_display_t *)
Definition: vlc_vout_display.h:333
vout_SendEventMouseDoubleClick
static void vout_SendEventMouseDoubleClick(vout_thread_t *vout)
Definition: event.h:105
video_format_t::i_y_offset
unsigned int i_y_offset
start offset of visible area
Definition: vlc_es.h:332
vlc_vout.h
event.h
vout_SetDisplayViewpoint
void vout_SetDisplayViewpoint(vout_display_t *vd, const vlc_viewpoint_t *p_viewpoint)
Definition: display.c:1107
vlc_mouse_t::b_double_click
bool b_double_click
Definition: vlc_mouse.h:53
vout_display_state_t
It holds a state for a vout display.
Definition: vlc_vout_wrapper.h:63
VOUT_DISPLAY_EVENT_CLOSE
Definition: vlc_vout_display.h:207
video_format_t::i_sar_num
unsigned int i_sar_num
sample/pixel aspect ratio
Definition: vlc_es.h:338
video_format_Clean
static void video_format_Clean(video_format_t *p_src)
Cleanup and free palette of this video_format_t.
Definition: vlc_es.h:438
vout_SendEventViewpointChangeable
static void vout_SendEventViewpointChangeable(vout_thread_t *vout, bool b_can_change)
Definition: event.h:110
vout_display_owner_sys_t::source
video_format_t source
Definition: display.c:370
VOUT_DISPLAY_CHANGE_VIEWPOINT
Definition: vlc_vout_display.h:183
vout_display_owner_sys_t::zoom
vlc_rational_t zoom
Definition: display.c:341
vout_thread_sys_t::chain_interactive
struct filter_chain_t * chain_interactive
Definition: vout_internal.h:125
vout_display_owner_sys_t::display_width
int display_width
Definition: display.c:396
vout_display_owner_sys_t::crop
struct vout_display_owner_sys_t::@84 crop
VOUT_DISPLAY_EVENT_MOUSE_MOVED
Definition: vlc_vout_display.h:217
vout_thread_sys_t::mouse
vlc_mouse_t mouse
Definition: vout_internal.h:130
vout_display_t::fmt
video_format_t fmt
Definition: vlc_vout_display.h:286
vout_display_SendEventMouseMoved
static void vout_display_SendEventMouseMoved(vout_display_t *vd, int x, int y)
Definition: vlc_vout_display.h:388
vout_display_cfg_t::align
struct vout_display_cfg_t::@211 align
vout_display_window_Detach
void vout_display_window_Detach(vout_window_t *window)
Detaches a window from a display.
Definition: window.c:221
vout_display_owner_sys_t::display_height
int display_height
Definition: display.c:397
vout_display_cfg_t::height
unsigned height
Definition: vlc_vout_display.h:95
TRANSFORM_TRANSPOSE
Definition: vlc_es.h:208
video_format_t
video format description
Definition: vlc_es.h:325
VLC_CODEC_J440
#define VLC_CODEC_J440
Definition: vlc_fourcc.h:254
video_splitter_t::p_owner
video_splitter_owner_t * p_owner
Definition: vlc_video_splitter.h:105
SplitterPictureNew
static int SplitterPictureNew(video_splitter_t *splitter, picture_t *picture[])
Definition: display.c:1378
TRANSFORM_HFLIP
Definition: vlc_es.h:203
video_splitter_Delete
void video_splitter_Delete(video_splitter_t *p_splitter)
Definition: filter.c:211
vout_thread_sys_t::lock
vlc_mutex_t lock
Definition: vout_internal.h:121
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:86
vout_display_t::owner
vout_display_owner_t owner
Definition: vlc_vout_display.h:345
vout_display_t::cfg
const vout_display_cfg_t * cfg
Definition: vlc_vout_display.h:268
es_format_Clean
void es_format_Clean(es_format_t *fmt)
This function will clean up a es_format_t and release all associated resources.
Definition: es_format.c:539
vout_SetDisplayFilled
void vout_SetDisplayFilled(vout_display_t *vd, bool is_filled)
Definition: display.c:1031
vout_display_info_t::has_pictures_invalid
bool has_pictures_invalid
Definition: vlc_vout_display.h:134
PROJECTION_MODE_RECTANGULAR
Definition: vlc_es.h:241
vlc_rational_t::den
unsigned den
Definition: fourcc_gen.c:33
vout_display_New
static vout_display_t * vout_display_New(vlc_object_t *obj, const char *module, bool load_module, const video_format_t *fmt, const vout_display_cfg_t *cfg, vout_display_owner_t *owner)
It creates a new vout_display_t using the given configuration.
Definition: display.c:73
TRANSFORM_R270
Definition: vlc_es.h:206
vout_display_owner_t
Vout owner structures.
Definition: vlc_vout_display.h:229
vlc_viewpoint_t
Viewpoints.
Definition: vlc_viewpoint.h:44
picture_pool_Release
void picture_pool_Release(picture_pool_t *pool)
Releases a pool created by picture_pool_NewExtended(), picture_pool_New() or picture_pool_NewFromForm...
Definition: picture_pool.c:64
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:350
vout_display_owner_sys_t
Definition: display.c:329
vlc_picture_pool.h
vout_display_owner_sys_t::last_moved
mtime_t last_moved
Definition: display.c:382
vout_display_sys_t::pool
picture_pool_t * pool
Definition: display.c:1260
video_splitter_output_t::fmt
video_format_t fmt
Definition: vlc_video_splitter.h:45
picture_Release
void picture_Release(picture_t *p_picture)
This function will release a picture.
Definition: picture.c:300
vout_display_owner_sys_t::ch_display_size
bool ch_display_size
Definition: display.c:395
vout_SendDisplayEventMouse
void vout_SendDisplayEventMouse(vout_thread_t *, const vlc_mouse_t *)
Definition: display.c:1511
vout_display_Pool
static picture_pool_t * vout_display_Pool(vout_display_t *vd, unsigned count)
It retreives a picture pool from the display.
Definition: vlc_vout_wrapper.h:34
es_format_InitFromVideo
void es_format_InitFromVideo(es_format_t *p_es, const video_format_t *p_fmt)
This function will initialize a es_format_t structure from a video_format_t.
Definition: es_format.c:454
vout_thread_sys_t::display
struct vout_thread_sys_t::@86 display
SplitterDelWindow
static void SplitterDelWindow(vout_display_t *vd, vout_window_t *window)
Definition: display.c:1288
vout_thread_sys_t::chain_static
struct filter_chain_t * chain_static
Definition: vout_internal.h:124
TRANSFORM_VFLIP
Definition: vlc_es.h:204
picture_t
Video picture.
Definition: vlc_picture.h:68
SplitterPrepare
static void SplitterPrepare(vout_display_t *vd, picture_t *picture, subpicture_t *subpicture)
Definition: display.c:1331
VLC_CODEC_J422
#define VLC_CODEC_J422
Definition: vlc_fourcc.h:252
vout_display_t::info
vout_display_info_t info
Definition: vlc_vout_display.h:292
vout_FilterFlush
void vout_FilterFlush(vout_display_t *vd)
Definition: display.c:993
vout_display_place_t::y
int y
Definition: vlc_vout_display.h:449
VOUT_DISPLAY_EVENT_KEY
Definition: vlc_vout_display.h:208
vout_SendEventMousePressed
static void vout_SendEventMousePressed(vout_thread_t *vout, int button)
Definition: event.h:62
TRANSFORM_R180
Definition: vlc_es.h:205
vout_SendEventViewpointMoved
static void vout_SendEventViewpointMoved(vout_thread_t *vout, const vlc_viewpoint_t *p_viewpoint)
Definition: event.h:54
vout_display_t::module
module_t * module
Definition: vlc_vout_display.h:260
video_format_ApplyRotation
void video_format_ApplyRotation(video_format_t *restrict out, const video_format_t *restrict in)
Definition: es_format.c:373
VideoBufferNew
static picture_t * VideoBufferNew(filter_t *filter)
Definition: display.c:52
video_format_CopyCrop
void video_format_CopyCrop(video_format_t *p_dst, const video_format_t *p_src)
It will copy the crop properties from a video_format_t to another.
Definition: es_format.c:225
video_format_t::projection_mode
video_projection_mode_t projection_mode
Multiview mode, 2D, 3D.
Definition: vlc_es.h:358
VOUT_DISPLAY_EVENT_VIEWPOINT_MOVED
Definition: vlc_vout_display.h:223
filter_t::fmt_out
es_format_t fmt_out
Definition: vlc_filter.h:77
vout_display_place_t::height
unsigned height
Definition: vlc_vout_display.h:451
vout_display_cfg_t::zoom
struct vout_display_cfg_t::@212 zoom
vout_display_owner_sys_t::lock
vlc_mutex_t lock
Definition: display.c:375
vout_display_cfg_t::display
struct vout_display_cfg_t::@210 display
lock
static vlc_mutex_t lock
Definition: interface.c:62
msg_Warn
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:84
vout_display_sys_t::display
vout_display_t ** display
Definition: display.c:1266
vout_display_cfg_t::width
unsigned width
Definition: vlc_vout_display.h:94
vout_display_place_t
Structure used to store the result of a vout_display_PlacePicture.
Definition: vlc_vout_display.h:447
filter_chain_NewVideo
#define filter_chain_NewVideo(a, b, c)
Definition: vlc_filter.h:331
vlc_object_release
#define vlc_object_release(a)
Definition: vlc_objects.h:63
vout_display_owner_sys_t::double_click_timeout
mtime_t double_click_timeout
Definition: display.c:387
vout_SetDisplayZoom
void vout_SetDisplayZoom(vout_display_t *vd, unsigned num, unsigned den)
Definition: display.c:1038
VOUT_DISPLAY_CHANGE_SOURCE_CROP
Definition: vlc_vout_display.h:179
vout_display_sys_t::splitter
video_splitter_t * splitter
Definition: display.c:1261
video_splitter_t::pf_picture_new
int(* pf_picture_new)(video_splitter_t *, picture_t *pp_picture[])
Definition: vlc_video_splitter.h:103
VOUT_DISPLAY_EVENT_MOUSE_PRESSED
Definition: vlc_vout_display.h:218
filter_owner_t
Definition: vlc_filter.h:41
video_format_t::i_width
unsigned int i_width
picture width
Definition: vlc_es.h:329
picture_pool_t
Definition: picture_pool.c:41
vout_thread_sys_t::spu
spu_t * spu
Definition: vout_internal.h:66
vout_DeleteDisplay
void vout_DeleteDisplay(vout_display_t *vd, vout_display_state_t *state)
It destroy a vout managed display.
Definition: display.c:1222
vout_display_owner_sys_t::den
unsigned den
Definition: display.c:362
VoutDisplayResetRender
static int VoutDisplayResetRender(vout_display_t *vd)
Definition: display.c:472
VOUT_DISPLAY_ALIGN_LEFT
Definition: vlc_vout_display.h:63
vout_display_t::source
video_format_t source
Definition: vlc_vout_display.h:275
vout_ManageDisplay
bool vout_ManageDisplay(vout_display_t *vd, bool allow_reset_pictures)
Definition: display.c:727
vout_display_owner_sys_t::filters
filter_chain_t * filters
Definition: display.c:371
TRANSFORM_ANTI_TRANSPOSE
Definition: vlc_es.h:209
SplitterClose
static void SplitterClose(vout_display_t *vd)
Definition: display.c:1405
video_format_t::i_x_offset
unsigned int i_x_offset
start offset of visible area
Definition: vlc_es.h:331
filter_t
Structure describing a filter.
Definition: vlc_filter.h:65
es_format_t
Definition: vlc_es.h:580
vlc_video_splitter.h
vout_SendDisplayEventMouse
void vout_SendDisplayEventMouse(vout_thread_t *vout, const vlc_mouse_t *m)
Definition: display.c:1511
vout_SetDisplayWindowSize
void vout_SetDisplayWindowSize(vout_thread_t *, unsigned, unsigned)
Definition: video_output.c:630
vout_display_owner_sys_t::bottom
int bottom
Definition: display.c:360
VOUT_DISPLAY_ALIGN_TOP
Definition: vlc_vout_display.h:66
vout_display_PlacePicture
void vout_display_PlacePicture(vout_display_place_t *place, const video_format_t *source, const vout_display_cfg_t *cfg, bool do_clipping)
Computes how to place a picture inside the display to respect the given parameters.
Definition: display.c:189
filter_owner_t::sys
void * sys
Definition: vlc_filter.h:43
VOUT_DISPLAY_ALIGN_BOTTOM
Definition: vlc_vout_display.h:67
subpicture_t
Video subtitle.
Definition: vlc_subpicture.h:153
vout_display_Control
static int vout_display_Control(vout_display_t *vd, int query,...)
It controls a vout_display_t.
Definition: display.c:135
SplitterControl
static int SplitterControl(vout_display_t *vd, int query, va_list args)
Definition: display.c:1365
vout_display_owner_sys_t::ch_zoom
bool ch_zoom
Definition: display.c:340
vout_display_owner_t::window_del
void(* window_del)(vout_display_t *, vout_window_t *)
Definition: vlc_vout_display.h:253
vout_thread_t::p
vout_thread_sys_t * p
Definition: vlc_vout.h:74
VLC_CODEC_J420
#define VLC_CODEC_J420
Definition: vlc_fourcc.h:250
vlc_filter.h
vout_display_info_t::needs_hide_mouse
bool needs_hide_mouse
Definition: vlc_vout_display.h:131
vlc_viewpoint_t::yaw
float yaw
Definition: vlc_viewpoint.h:45
vout_SetDisplayAspect
void vout_SetDisplayAspect(vout_display_t *vd, unsigned dar_num, unsigned dar_den)
Definition: display.c:1065
vout_SendEventMouseReleased
static void vout_SendEventMouseReleased(vout_thread_t *vout, int button)
Definition: event.h:93
vout_display_owner_sys_t::sar
vlc_rational_t sar
Definition: display.c:353
VLC_CLIP
#define VLC_CLIP(v, min, max)
Definition: vlc_common.h:485
video_splitter_New
video_splitter_t * video_splitter_New(vlc_object_t *p_this, const char *psz_name, const video_format_t *p_fmt)
Definition: filter.c:189
vout_thread_sys_t::filter
struct vout_thread_sys_t::@92 filter
vlc_viewpoint_t::roll
float roll
Definition: vlc_viewpoint.h:47
VOUT_DISPLAY_CHANGE_DISPLAY_SIZE
Definition: vlc_vout_display.h:161
vlc_vout_display.h
vout_display_cfg_t::sar
vlc_rational_t sar
Definition: vlc_vout_display.h:98
vout_NewSplitter
vout_display_t * vout_NewSplitter(vout_thread_t *vout, const video_format_t *source, const vout_display_state_t *state, const char *module, const char *splitter_module, mtime_t double_click_timeout, mtime_t hide_timeout)
Definition: display.c:1426
vout_display_owner_sys_t::ch_sar
bool ch_sar
Definition: display.c:352
TRANSFORM_R90
Definition: vlc_es.h:207
TAB_APPEND
#define TAB_APPEND(count, tab, p)
Definition: vlc_arrays.h:64
vout_SetDisplayCrop
void vout_SetDisplayCrop(vout_display_t *vd, unsigned crop_num, unsigned crop_den, unsigned left, unsigned top, int right, int bottom)
Definition: display.c:1085
vout_display_Display
static void vout_display_Display(vout_display_t *vd, picture_t *picture, subpicture_t *subpicture)
It display a picture.
Definition: vlc_vout_wrapper.h:53
VOUT_WINDOW_STATE_NORMAL
Definition: vlc_vout_display.h:74
vout_display_cfg_t::den
int den
Definition: vlc_vout_display.h:115
VOUT_DISPLAY_EVENT_MOUSE_DOUBLE_CLICK
Definition: vlc_vout_display.h:220
vout_display_owner_sys_t::right
int right
Definition: display.c:359
vlc_mouse_t::i_y
int i_y
Definition: vlc_mouse.h:49
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *p_mutex)
Initializes a fast mutex.
Definition: thread.c:85
VLC_CODEC_I440
#define VLC_CODEC_I440
Definition: vlc_fourcc.h:233
vlc_mouse_HasMoved
static bool vlc_mouse_HasMoved(const vlc_mouse_t *p_old, const vlc_mouse_t *p_new)
Definition: vlc_mouse.h:123
vout_NewSplitter
vout_display_t * vout_NewSplitter(vout_thread_t *vout, const video_format_t *source, const vout_display_state_t *state, const char *module, const char *splitter_module, mtime_t double_click_timeout, mtime_t hide_timeout)
Definition: display.c:1426
vout_display_window_New
vout_window_t * vout_display_window_New(vout_thread_t *vout, const vout_window_cfg_t *cfg)
Creates a video window, initially without any attached display.
Definition: window.c:171
vout_display_owner_sys_t::is_hidden
bool is_hidden
Definition: display.c:383
MOUSE_BUTTON_MAX
Definition: vlc_mouse.h:59
VoutDisplayCropRatio
static void VoutDisplayCropRatio(int *left, int *top, int *right, int *bottom, const video_format_t *source, unsigned num, unsigned den)
Definition: display.c:707
vout_display_owner_sys_t::num
unsigned num
Definition: display.c:361
vout_display_owner_sys_t::is_splitter
bool is_splitter
Definition: display.c:331
video_format_t::i_visible_height
unsigned int i_visible_height
height of visible area
Definition: vlc_es.h:334
vlc_vout_wrapper.h
vlc_rational_t
Definition: fourcc_gen.c:33
video_splitter_t::pf_picture_del
void(* pf_picture_del)(video_splitter_t *, picture_t *pp_picture[])
Definition: vlc_video_splitter.h:104
vout_display_window_Attach
void vout_display_window_Attach(vout_window_t *window, vout_display_t *vd)
Attaches a window to a display.
Definition: window.c:203
vlc_mouse_HasReleased
static bool vlc_mouse_HasReleased(const vlc_mouse_t *p_old, const vlc_mouse_t *p_new, int i_button)
Definition: vlc_mouse.h:140
video_format_t::i_sar_den
unsigned int i_sar_den
Definition: vlc_es.h:339
DisplayNew
static vout_display_t * DisplayNew(vout_thread_t *vout, const video_format_t *source, const vout_display_state_t *state, const char *module, bool is_splitter, mtime_t double_click_timeout, mtime_t hide_timeout, const vout_display_owner_t *owner_ptr)
Definition: display.c:1122
MOUSE_BUTTON_LEFT
Definition: vlc_mouse.h:52
VOUT_DISPLAY_RESET_PICTURES
Definition: vlc_vout_display.h:149
vout_display_window_Delete
void vout_display_window_Delete(vout_window_t *window)
Destroys a video window.
Definition: window.c:234
xmalloc
static void * xmalloc(size_t len)
Definition: vlc_common.h:970
vout_display_owner_sys_t::last_pressed
mtime_t last_pressed
Definition: display.c:381
vout_display_sys_t::picture
picture_t ** picture
Definition: display.c:1265
video_splitter_t
Structure describing a video splitter.
Definition: vlc_video_splitter.h:70
video_splitter_owner_t
Definition: display.c:1267
video_splitter_Filter
static int video_splitter_Filter(video_splitter_t *p_splitter, picture_t *pp_dst[], picture_t *p_src)
Definition: vlc_video_splitter.h:139
vlc_object_t
The main vlc_object_t structure.
Definition: vlc_objects.h:39
vout_display_state_t::sar
vlc_rational_t sar
Definition: vlc_vout_wrapper.h:68
vlc_rational_t::num
unsigned num
Definition: fourcc_gen.c:33
vout_display_t::control
int(* control)(vout_display_t *, int, va_list)
Definition: vlc_vout_display.h:330
vlc_mutex_t
pthread_mutex_t vlc_mutex_t
Mutex.
Definition: vlc_threads.h:267
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:349
video_format_t::i_visible_width
unsigned int i_visible_width
width of visible area
Definition: vlc_es.h:333
SplitterPool
static picture_pool_t * SplitterPool(vout_display_t *vd, unsigned count)
Definition: display.c:1324
VoutDisplayFitWindow
static void VoutDisplayFitWindow(vout_display_t *vd, bool default_size)
Definition: display.c:684
filter_chain_t
Definition: filter_chain.c:51
video_format_Print
void video_format_Print(vlc_object_t *p_this, const char *psz_text, const video_format_t *fmt)
It prints details about the given video_format_t.
Definition: es_format.c:420
display.h
vout_IsDisplayFiltered
bool vout_IsDisplayFiltered(vout_display_t *vd)
Definition: display.c:974
vout_window_cfg_t
Definition: vlc_vout_window.h:90
vout_display_Delete
static void vout_display_Delete(vout_display_t *vd)
It deletes a vout_display_t.
Definition: display.c:121
filter_chain_MouseFilter
int filter_chain_MouseFilter(filter_chain_t *p_chain, vlc_mouse_t *p_dst, const vlc_mouse_t *p_src)
Definition: filter_chain.c:474
filter_chain_IsEmpty
bool filter_chain_IsEmpty(const filter_chain_t *chain)
Checks if the filter chain is empty.
Definition: filter_chain.c:375
vlc_custom_create
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:108
ORIENT_IS_SWAP
#define ORIENT_IS_SWAP(orient)
If the orientation swaps dimensions.
Definition: vlc_es.h:192
vout_NewDisplay
vout_display_t * vout_NewDisplay(vout_thread_t *vout, const video_format_t *source, const vout_display_state_t *state, const char *module, mtime_t double_click_timeout, mtime_t hide_timeout)
It creates a vout managed display.
Definition: display.c:1245
filter_chain_VideoFilter
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:412
vlc_block.h
vout_display_owner_sys_t::is_display_filled
bool is_display_filled
Definition: display.c:338
vout_UpdateDisplaySourceProperties
void vout_UpdateDisplaySourceProperties(vout_display_t *vd, const video_format_t *)
Definition: display.c:1001
transform
static void transform(MD5_CONTEXT *ctx, const unsigned char *data)
Definition: md5.c:82
VOUT_DISPLAY_EVENT_PICTURES_INVALID
Definition: vlc_vout_display.h:197
vout_display_cfg_t::num
int num
Definition: vlc_vout_display.h:114
TAB_INIT
#define TAB_INIT(count, tab)
Definition: vlc_arrays.h:40
vout_display_cfg_t
Initial/Current configuration for a vout_display_t.
Definition: vlc_vout_display.h:83
vout_DeleteDisplayWindow
void vout_DeleteDisplayWindow(vout_thread_t *, vout_window_t *)
Definition: video_output.c:621
vout_display_owner_sys_t::vout
vout_thread_t * vout
Definition: display.c:330
vout_display_sys_t
Definition: display.c:1258
vout_display_owner_sys_t::ch_activity
bool ch_activity
Definition: display.c:384
vout_SendEventClose
static void vout_SendEventClose(vout_thread_t *vout)
Definition: event.h:39
vout_display_owner_sys_t::viewpoint
vlc_viewpoint_t viewpoint
Definition: display.c:366
VoutDisplayCreateRender
static int VoutDisplayCreateRender(vout_display_t *vd)
Definition: display.c:400
vlc_mutex_destroy
void vlc_mutex_destroy(vlc_mutex_t *p_mutex)
Deinitializes a mutex.
Definition: thread.c:110
spu_ProcessMouse
int spu_ProcessMouse(spu_t *, const vlc_mouse_t *, const video_format_t *)
Inform the SPU filters of mouse event.
Definition: vout_subpictures.c:1412
window.h
vout_display_sys_t::count
int count
Definition: display.c:1264
video_format_t::i_height
unsigned int i_height
picture height
Definition: vlc_es.h:330
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
vout_NewDisplayWindow
vout_window_t * vout_NewDisplayWindow(vout_thread_t *, unsigned type)
Definition: video_output.c:608
unlikely
#define unlikely(p)
Definition: vlc_common.h:114
vout_display_t::display
void(* display)(vout_display_t *, picture_t *, subpicture_t *)
Definition: vlc_vout_display.h:327
VoutDisplayDelWindow
static void VoutDisplayDelWindow(vout_display_t *vd, vout_window_t *window)
Definition: display.c:675
vlc_mouse_HasPressed
static bool vlc_mouse_HasPressed(const vlc_mouse_t *p_old, const vlc_mouse_t *p_new, int i_button)
Definition: vlc_mouse.h:133
vout_display_owner_sys_t::ch_viewpoint
bool ch_viewpoint
Definition: display.c:365
vout_display_owner_t::window_new
vout_window_t *(* window_new)(vout_display_t *, unsigned type)
Definition: vlc_vout_display.h:252
vlc_ureduce
bool vlc_ureduce(unsigned *, unsigned *, uint64_t, uint64_t, uint64_t)
VOUT_DISPLAY_EVENT_MOUSE_RELEASED
Definition: vlc_vout_display.h:219
vout_display_cfg_t::is_display_filled
bool is_display_filled
Definition: vlc_vout_display.h:108
vout_HideWindowMouse
int vout_HideWindowMouse(vout_thread_t *, bool)
Definition: video_output.c:647
vlc_mouse_t::i_x
int i_x
Definition: vlc_mouse.h:48
VOUT_DISPLAY_CHANGE_DISPLAY_FILLED
Definition: vlc_vout_display.h:165
VoutDisplayEvent
static void VoutDisplayEvent(vout_display_t *vd, int event, va_list args)
Definition: display.c:572
video_transform_t
video_transform_t
Definition: vlc_es.h:200
libvlc.h
vout_display_owner_sys_t::top
int top
Definition: display.c:358
picture_pool_NewFromFormat
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:157
vlc_assert_unreachable
#define vlc_assert_unreachable()
Definition: vlc_common.h:118
mtime_t
int64_t mtime_t
High precision date or time interval.
Definition: vlc_common.h:150
vout_display_state_t::cfg
vout_display_cfg_t cfg
Definition: vlc_vout_wrapper.h:64
video_format_t::i_chroma
vlc_fourcc_t i_chroma
picture chroma
Definition: vlc_es.h:327
video_splitter_output_t::psz_module
char * psz_module
Definition: vlc_video_splitter.h:64
SplitterNewWindow
static vout_window_t * SplitterNewWindow(vout_display_t *vd, unsigned type)
Definition: display.c:1271
vout_thread_t
Video output thread descriptor.
Definition: vlc_vout.h:70
vout_display_owner_t::event
void(* event)(vout_display_t *, int, va_list)
Definition: vlc_vout_display.h:245
vout_display_owner_sys_t::left
int left
Definition: display.c:357
VLC_OBJECT
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_common.h:464
VOUT_DISPLAY_EVENT_MOUSE_STATE
Definition: vlc_vout_display.h:214
VLC_CODEC_I422
#define VLC_CODEC_I422
Definition: vlc_fourcc.h:221
vout_display_t
Definition: vlc_vout_display.h:256
mdate
mtime_t mdate(void)
Precision monotonic clock.
Definition: thread.c:406
vout_internal.h
module_unneed
#define module_unneed(a, b)
Definition: vlc_modules.h:49
vout_display_place_t::x
int x
Definition: vlc_vout_display.h:448
vout_thread_sys_t::vd
vout_display_t * vd
Definition: vout_internal.h:81
filter_chain_Reset
void filter_chain_Reset(filter_chain_t *p_chain, const es_format_t *p_fmt_in, const es_format_t *p_fmt_out)
Filter chain reinitialisation.
Definition: filter_chain.c:161
VoutDisplayDestroyRender
static void VoutDisplayDestroyRender(vout_display_t *vd)
Definition: display.c:464
vout_display_Manage
static void vout_display_Manage(vout_display_t *vd)
Definition: display.c:147
video_orientation_t
video_orientation_t
Picture orientation.
Definition: vlc_es.h:165
vout_display_cfg_t::vertical
int vertical
Definition: vlc_vout_display.h:104
vout_display_owner_sys_t::hide_timeout
mtime_t hide_timeout
Definition: display.c:388
VLC_CODEC_J444
#define VLC_CODEC_J444
Definition: vlc_fourcc.h:256
vout_display_info_t::has_double_click
bool has_double_click
Definition: vlc_vout_display.h:130
VOUT_DISPLAY_ALIGN_RIGHT
Definition: vlc_vout_display.h:64
video_format_t::orientation
video_orientation_t orientation
picture orientation
Definition: vlc_es.h:349
VOUT_DISPLAY_CHANGE_SOURCE_ASPECT
Definition: vlc_vout_display.h:173
VLC_CODEC_I444
#define VLC_CODEC_I444
Definition: vlc_fourcc.h:235
vout_display_owner_sys_t::mouse
struct vout_display_owner_sys_t::@85 mouse
vout_display_Prepare
static void vout_display_Prepare(vout_display_t *vd, picture_t *picture, subpicture_t *subpicture)
It preparse a picture for display.
Definition: vlc_vout_wrapper.h:42
vout_display_owner_t::sys
void * sys
Definition: vlc_vout_display.h:232
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
vout_SendEventKey
static void vout_SendEventKey(vout_thread_t *vout, int key)
Definition: event.h:46
filter_chain_AppendConverter
int filter_chain_AppendConverter(filter_chain_t *chain, const es_format_t *fmt_in, const es_format_t *fmt_out)
Append a conversion to the chain.
Definition: filter_chain.c:274
vout_display_GetDefaultDisplaySize
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:154
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:82
video_splitter_owner_t::wrapper
vout_display_t * wrapper
Definition: display.c:1268
vlc_mouse_t::i_pressed
int i_pressed
Definition: vlc_mouse.h:51
vout_FilterDisplay
picture_t * vout_FilterDisplay(vout_display_t *vd, picture_t *picture)
Definition: display.c:981
VoutDisplayEventMouse
static void VoutDisplayEventMouse(vout_display_t *vd, int event, va_list args)
Definition: display.c:478
video_splitter_t::i_output
int i_output
Definition: vlc_video_splitter.h:91
picture_NewFromFormat
picture_t * picture_NewFromFormat(const video_format_t *p_fmt)
This function will create a new picture using the given format.
Definition: picture.c:271
vlc_viewpoint_t::pitch
float pitch
Definition: vlc_viewpoint.h:46
module_need
#define module_need(a, b, c, d)
Definition: vlc_modules.h:47
vlc_mouse_Init
static void vlc_mouse_Init(vlc_mouse_t *p_mouse)
Definition: vlc_mouse.h:56
VLC_CODEC_I420
#define VLC_CODEC_I420
Definition: vlc_fourcc.h:205
vout_display_owner_sys_t::ch_crop
bool ch_crop
Definition: display.c:355
vlc_modules.h
vlc_viewpoint_t::fov
float fov
Definition: vlc_viewpoint.h:48
filter_t::owner
filter_owner_t owner
Definition: vlc_filter.h:151
VOUT_DISPLAY_EVENT_DISPLAY_SIZE
Definition: vlc_vout_display.h:204
vout_display_t::prepare
void(* prepare)(vout_display_t *, picture_t *, subpicture_t *)
Definition: vlc_vout_display.h:315