VLC  3.0.15
window.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * window.h: window management for VLC video output
3  *****************************************************************************
4  * Copyright © 2014 Rémi Denis-Courmont
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation; either version 2.1 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
19  *****************************************************************************/
20 
22  const vout_window_cfg_t *);
vout_WindowMouseEvent
void vout_WindowMouseEvent(vout_thread_t *vout, const vout_window_mouse_event_t *mouse)
Definition: video_output.c:359
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
vlc_spu.h
SpuRenderCreateAndLoadScale
static filter_t * SpuRenderCreateAndLoadScale(vlc_object_t *object, vlc_fourcc_t src_chroma, vlc_fourcc_t dst_chroma, bool require_resize)
Definition: vout_subpictures.c:213
vout_CloseWrapper
void vout_CloseWrapper(vout_thread_t *vout, vout_display_state_t *state)
Definition: vout_wrapper.c:85
spu_ProcessMouse
int spu_ProcessMouse(spu_t *spu, const vlc_mouse_t *mouse, const video_format_t *fmt)
Inform the SPU filters of mouse event.
Definition: vout_subpictures.c:1412
vout_window_SetInhibition
void vout_window_SetInhibition(vout_window_t *window, bool enabled)
Definition: window.c:115
count
size_t count
Definition: core.c:461
spu_scale_t::h
int h
Definition: vout_subpictures.c:289
vout_display_window_ResizeNotify
static void vout_display_window_ResizeNotify(vout_window_t *window, unsigned width, unsigned height)
Definition: window.c:139
CropCallback
static int CropCallback(vlc_object_t *object, char const *var, vlc_value_t oldval, vlc_value_t newval, void *data)
Definition: vout_subpictures.c:1186
video_format_t::p_palette
video_palette_t * p_palette
video palette from demuxer
Definition: vlc_es.h:348
vlc_inhibit_Destroy
void vlc_inhibit_Destroy(vlc_inhibit_t *ih)
Definition: inhibit.c:56
IntegerCmp
static int IntegerCmp(int64_t i0, int64_t i1)
This function compares two 64 bits integers.
Definition: vout_subpictures.c:478
VIDEO_ES
Definition: vlc_es.h:566
picture_Hold
picture_t * picture_Hold(picture_t *p_picture)
This function will increase the picture reference count.
Definition: picture.c:290
picture_t::format
video_frame_format_t format
The properties of the picture.
Definition: vlc_picture.h:73
input_attachment_t
Definition: vlc_input.h:154
var_CreateGetInteger
#define var_CreateGetInteger(a, b)
Definition: vlc_variables.h:492
es_format_t::video
video_format_t video
description of video format
Definition: vlc_es.h:609
spu_private_t::height
int height
Definition: vout_subpictures.c:76
var_SetBool
#define var_SetBool(a, b, c)
Definition: vlc_variables.h:257
input_Control
int input_Control(input_thread_t *p_input, int i_query,...)
Control function for inputs.
Definition: control.c:52
VOUT_SPU_CHANNEL_OSD
#define VOUT_SPU_CHANNEL_OSD
Definition: vlc_vout.h:156
vout_window_t
Graphical window.
Definition: vlc_vout_window.h:130
subpicture_region_t::i_max_width
int i_max_width
try to balance wrapped text lines
Definition: vlc_subpicture.h:73
subpicture_region_New
subpicture_region_t * subpicture_region_New(const video_format_t *p_fmt)
This function will create a new subpicture region.
Definition: subpicture.c:206
vlc_module_load
#define vlc_module_load(o, c, n, s,...)
Definition: vlc_modules.h:39
vout_EndWrapper
void vout_EndWrapper(vout_thread_t *vout)
Definition: vout_wrapper.c:171
spu_private_t::filter_chain_update
char * filter_chain_update
Definition: vout_subpictures.c:89
filter_owner_t::video
struct filter_owner_t::@166::@168 video
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
spu_private_t::crop
struct spu_private_t::@96 crop
cropping
spu_private_t::force_palette
bool force_palette
force palette of subpicture
Definition: vout_subpictures.c:80
vout_display_window
Definition: window.c:130
vlc_common.h
spu_private_t::scale
filter_t * scale
scaling module (all but YUVP)
Definition: vout_subpictures.c:70
spu_private_t::source_chain_update
char * source_chain_update
Definition: vout_subpictures.c:85
vout_window_t::obj
struct vlc_common_members obj
Definition: vlc_vout_window.h:131
DISPLAY_PICTURE_COUNT
#define DISPLAY_PICTURE_COUNT
Definition: vout_wrapper.c:101
subpicture_region_t::i_y
int i_y
position of region, relative to alignment
Definition: vlc_subpicture.h:63
filter_t::p_module
module_t * p_module
Definition: vlc_filter.h:70
spu_private_t::filter_chain
filter_chain_t * filter_chain
Definition: vout_subpictures.c:91
video_format_t::i_y_offset
unsigned int i_y_offset
start offset of visible area
Definition: vlc_es.h:332
VLC_VAR_DOINHERIT
#define VLC_VAR_DOINHERIT
Creation flag.
Definition: vlc_variables.h:69
subpicture_region_t::p_text
text_segment_t * p_text
subtitle text, made of a list of segments
Definition: vlc_subpicture.h:68
vlc_vout.h
event.h
video_palette_t::i_entries
int i_entries
to keep the compatibility with libavcodec's palette
Definition: vlc_es.h:46
spu_private_t::palette
uint8_t palette[4][4]
forced palette
Definition: vout_subpictures.c:81
vout_display_state_t
It holds a state for a vout display.
Definition: vlc_vout_wrapper.h:63
video_format_t::i_sar_num
unsigned int i_sar_num
sample/pixel aspect ratio
Definition: vlc_es.h:338
spu_heap_entry_t::reject
bool reject
Definition: vout_subpictures.c:54
var_InheritInteger
#define var_InheritInteger(o, n)
Definition: vlc_variables.h:612
spu_private_t::heap
spu_heap_t heap
Definition: vout_subpictures.c:65
spu_ClearChannel
void spu_ClearChannel(spu_t *spu, int channel)
It clears all subpictures associated to a SPU channel.
Definition: vout_subpictures.c:1641
subpicture_t::i_original_picture_height
int i_original_picture_height
original height of the movie
Definition: vlc_subpicture.h:186
SpuHeapDeleteAt
static void SpuHeapDeleteAt(spu_heap_t *heap, int index)
Definition: vout_subpictures.c:125
spu_RegisterChannel
int spu_RegisterChannel(spu_t *spu)
It registers a new SPU channel.
Definition: vout_subpictures.c:1630
vout_window_owner::resized
void(* resized)(vout_window_t *, unsigned width, unsigned height)
Definition: vlc_vout_window.h:112
vout_window_t::owner
vout_window_owner_t owner
Definition: vlc_vout_window.h:199
picture_pool_GetSize
unsigned picture_pool_GetSize(const picture_pool_t *pool)
Definition: picture_pool.c:313
vout_window_SetSize
static int vout_window_SetSize(vout_window_t *window, unsigned width, unsigned height)
Configures the window display (i.e.
Definition: vlc_vout_window.h:256
vout_window_t::info
struct vout_window_t::@216 info
spu_private_t::scale_yuvp
filter_t * scale_yuvp
scaling module for YUVP
Definition: vout_subpictures.c:69
spu_private_t::input
vlc_object_t * input
Definition: vout_subpictures.c:63
filter_DelProxyCallbacks
#define filter_DelProxyCallbacks(a, b, c)
Definition: vlc_filter.h:252
vout_display_window_Detach
void vout_display_window_Detach(vout_window_t *window)
Detaches a window from a display.
Definition: window.c:221
spu_Create
spu_t * spu_Create(vlc_object_t *object, vout_thread_t *vout)
Creates the subpicture unit.
Definition: vout_subpictures.c:1283
subpicture_region_private_t::fmt
video_format_t fmt
Definition: subpicture.h:44
vout_display_cfg_t::height
unsigned height
Definition: vlc_vout_display.h:95
spu_private_t::source_chain_current
char * source_chain_current
Definition: vout_subpictures.c:84
var_InheritBool
#define var_InheritBool(o, n)
Definition: vlc_variables.h:601
vlc_value_t::p_address
void * p_address
Definition: vlc_common.h:331
filter_t::fmt_in
es_format_t fmt_in
Definition: vlc_filter.h:74
VLC_VAR_BOOL
#define VLC_VAR_BOOL
Definition: vlc_variables.h:49
video_format_t
video format description
Definition: vlc_es.h:325
subpicture_region_t::p_private
subpicture_region_private_t * p_private
Private data for spu_t only
Definition: vlc_subpicture.h:77
VLC_CODEC_TEXT
#define VLC_CODEC_TEXT
Definition: vlc_fourcc.h:531
spu_scale_create
static spu_scale_t spu_scale_create(int w, int h)
Definition: vout_subpictures.c:292
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:86
vout_display_t::cfg
const vout_display_cfg_t * cfg
Definition: vlc_vout_display.h:268
vlc_inhibit_Create
vlc_inhibit_t * vlc_inhibit_Create(vlc_object_t *parent)
Definition: inhibit.c:37
vout_display_info_t::has_pictures_invalid
bool has_pictures_invalid
Definition: vlc_vout_display.h:134
subpicture_region_t::i_x
int i_x
position of region, relative to alignment
Definition: vlc_subpicture.h:62
spu_ChangeMargin
void spu_ChangeMargin(spu_t *spu, int margin)
Definition: vout_subpictures.c:1701
vout_display_window_Delete
void vout_display_window_Delete(vout_window_t *)
Destroys a video window.
Definition: window.c:234
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
filter_t::pf_get_attachments
int(* pf_get_attachments)(filter_t *, input_attachment_t ***, int *)
Definition: vlc_filter.h:148
vout_window_t::handle
union vout_window_t::@214 handle
Window handle (mandatory)
es_format_Init
void es_format_Init(es_format_t *fmt, int i_cat, vlc_fourcc_t i_codec)
This function will initialize a es_format_t structure.
Definition: es_format.c:433
var_Get
#define var_Get(a, b, c)
Definition: vlc_variables.h:136
vout_display_window::vd
vout_display_t * vd
Definition: window.c:132
spu_Attach
void spu_Attach(spu_t *spu, vlc_object_t *input, bool attach)
Attach/Detach the SPU from any input.
Definition: vout_subpictures.c:1383
VLC_VAR_INTEGER
#define VLC_VAR_INTEGER
Definition: vlc_variables.h:50
video_format_t::transfer
video_transfer_func_t transfer
transfer function
Definition: vlc_es.h:351
picture_Release
void picture_Release(picture_t *p_picture)
This function will release a picture.
Definition: picture.c:300
vlc_input.h
subpicture_t::b_absolute
bool b_absolute
position is absolute
Definition: vlc_subpicture.h:184
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
vout_thread_sys_t::title
char * title
Definition: vout_internal.h:80
video_format_AdjustColorSpace
static void video_format_AdjustColorSpace(video_format_t *p_fmt)
Definition: vlc_es.h:405
vout_window_New
vout_window_t * vout_window_New(vlc_object_t *obj, const char *module, const vout_window_cfg_t *cfg, const vout_window_owner_t *owner)
Creates a new window.
Definition: window.c:52
vout_window_t::sys
vout_window_sys_t * sys
Definition: vlc_vout_window.h:197
spu_area_t::y
int y
Definition: vout_subpictures.c:332
vout_thread_sys_t::display
struct vout_thread_sys_t::@86 display
var_InheritString
#define var_InheritString(o, n)
Definition: vlc_variables.h:639
vout_display_window_New
vout_window_t * vout_display_window_New(vout_thread_t *, const vout_window_cfg_t *)
Creates a video window, initially without any attached display.
Definition: window.c:171
picture_t
Video picture.
Definition: vlc_picture.h:68
spu_area_create
static spu_area_t spu_area_create(int x, int y, int w, int h, spu_scale_t s)
Definition: vout_subpictures.c:339
spu_private_t::filter_chain_current
char * filter_chain_current
Definition: vout_subpictures.c:88
SpuAreaFixOverlap
static void SpuAreaFixOverlap(spu_area_t *dst, const spu_area_t *sub_array, int sub_count, int align)
Avoid area overlapping.
Definition: vout_subpictures.c:384
vout_display_t::info
vout_display_info_t info
Definition: vlc_vout_display.h:292
filter_chain_SubSource
void filter_chain_SubSource(filter_chain_t *p_chain, spu_t *spu, mtime_t display_date)
Generate subpictures from a chain of subpicture source "filters".
Definition: filter_chain.c:448
spu_ChangeFilters
void spu_ChangeFilters(spu_t *spu, const char *filters)
It changes the sub filters list.
Definition: vout_subpictures.c:1682
SubSourceInit
static int SubSourceInit(filter_t *filter, void *data)
Definition: vout_subpictures.c:1208
window_t
Definition: window.c:36
var_Create
#define var_Create(a, b, c)
Definition: vlc_variables.h:121
var_DelCallback
#define var_DelCallback(a, b, c, d)
Definition: vlc_variables.h:165
VOUT_WINDOW_TYPE_HWND
Win32 or OS/2 window.
Definition: vlc_vout_window.h:52
subpicture_t::i_alpha
int i_alpha
transparency
Definition: vlc_subpicture.h:187
spu_OffsetSubtitleDate
void spu_OffsetSubtitleDate(spu_t *spu, mtime_t duration)
This function will apply an offset on subtitle subpicture.
Definition: vout_subpictures.c:1611
video_format_t::primaries
video_color_primaries_t primaries
color primaries
Definition: vlc_es.h:350
COLOR_SPACE_SRGB
#define COLOR_SPACE_SRGB
Definition: vlc_es.h:301
vout_thread_sys_t::original
video_format_t original
Definition: vout_internal.h:55
RestartSubFilterCallback
static int RestartSubFilterCallback(vlc_object_t *obj, char const *psz_var, vlc_value_t oldval, vlc_value_t newval, void *p_data)
Definition: vout_subpictures.c:1230
spu_area_t::scale
spu_scale_t scale
Definition: vout_subpictures.c:336
filter_AddProxyCallbacks
#define filter_AddProxyCallbacks(a, b, c)
Definition: vlc_filter.h:241
spu_heap_t::entry
spu_heap_entry_t entry[(((((20)) >((INT64_C(1000000)/2)/5000)) ?((20)) :((INT64_C(1000000)/2)/5000)))]
Definition: vout_subpictures.c:58
VOUT_SPU_CHANNEL_INVALID
#define VOUT_SPU_CHANNEL_INVALID
Definition: vlc_vout.h:155
subpicture_t::i_channel
int i_channel
subpicture channel ID
Definition: vlc_subpicture.h:157
spu_private_t::channel
int channel
number of subpicture channels registered
Definition: vout_subpictures.c:67
spu_area_scaled
static spu_area_t spu_area_scaled(spu_area_t a)
Definition: vout_subpictures.c:344
filter_t::fmt_out
es_format_t fmt_out
Definition: vlc_filter.h:77
window_t::wnd
vout_window_t wnd
Definition: window.c:59
VOUT_WINDOW_TYPE_WAYLAND
Wayland surface.
Definition: vlc_vout_window.h:55
spu_heap_entry_t
Definition: vout_subpictures.c:52
vout_ManageWrapper
void vout_ManageWrapper(vout_thread_t *vout)
Definition: vout_wrapper.c:185
video_format_t::space
video_color_space_t space
YCbCr color space.
Definition: vlc_es.h:352
spu_area_t
A few area functions helpers.
Definition: vout_subpictures.c:330
NoDrInit
static void NoDrInit(vout_thread_t *vout)
Definition: vout_wrapper.c:103
video_palette_t
Definition: vlc_es.h:44
SpuRenderCreateAndLoadText
static filter_t * SpuRenderCreateAndLoadText(spu_t *spu)
Definition: vout_subpictures.c:186
vout_display_cfg_t::display
struct vout_display_cfg_t::@210 display
vlc_common_members::parent
vlc_object_t * parent
Parent object.
Definition: vlc_common.h:448
msg_Warn
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:84
vlc_value_t::b_bool
bool b_bool
Definition: vlc_common.h:328
vout_display_window::width
unsigned width
Definition: window.c:133
subpicture_Delete
void subpicture_Delete(subpicture_t *p_subpic)
This function delete a subpicture created by subpicture_New.
Definition: subpicture.c:83
vout_display_cfg_t::width
unsigned width
Definition: vlc_vout_display.h:94
SubFilterDelProxyCallbacks
static int SubFilterDelProxyCallbacks(filter_t *filter, void *opaque)
Definition: vout_subpictures.c:1245
vout_window_mouse_event_t
Window mouse event.
Definition: vlc_vout_window.h:82
vlc_object_release
#define vlc_object_release(a)
Definition: vlc_objects.h:63
vout_display_window_Detach
void vout_display_window_Detach(vout_window_t *)
Detaches a window from a display.
Definition: window.c:221
TRANSFER_FUNC_SRGB
Definition: vlc_es.h:276
video_format_t::i_width
unsigned int i_width
picture width
Definition: vlc_es.h:329
vout_display_window_CloseNotify
static void vout_display_window_CloseNotify(vout_window_t *window)
Definition: window.c:154
picture_pool_t
Definition: picture_pool.c:41
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_window_t::control
int(* control)(vout_window_t *, int query, va_list)
Control callback (mandatory)
Definition: vlc_vout_window.h:186
filter_chain_New
#define filter_chain_New(a, b, c)
Definition: vlc_filter.h:318
vout_thread_sys_t::dpb_size
unsigned dpb_size
Definition: vout_internal.h:56
COLOR_PRIMARIES_UNDEF
Definition: vlc_es.h:252
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
SUBPICTURE_ALIGN_LEFT
#define SUBPICTURE_ALIGN_LEFT
Definition: vlc_subpicture.h:81
SUBPICTURE_ALIGN_BOTTOM
#define SUBPICTURE_ALIGN_BOTTOM
Definition: vlc_subpicture.h:84
module_t
Internal module descriptor.
Definition: modules.h:79
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
vlc_inhibit_Set
static void vlc_inhibit_Set(vlc_inhibit_t *ih, unsigned flags)
Definition: vlc_inhibit.h:49
spu_scale_h
static int spu_scale_h(int v, const spu_scale_t s)
Definition: vout_subpictures.c:314
vout_thread_sys_t::use_dr
bool use_dr
Definition: vout_internal.h:82
vout_display_window_t
struct vout_display_window vout_display_window_t
spu_private_t::margin
int margin
force position of a subpicture
Definition: vout_subpictures.c:79
filter_owner_t::sys
void * sys
Definition: vlc_filter.h:43
SubFilterAddProxyCallbacks
static int SubFilterAddProxyCallbacks(filter_t *filter, void *opaque)
Definition: vout_subpictures.c:1238
subpicture_t
Video subtitle.
Definition: vlc_subpicture.h:153
var_Set
#define var_Set(a, b, c)
Definition: vlc_variables.h:133
SubSourceDelProxyCallbacks
static int SubSourceDelProxyCallbacks(filter_t *filter, void *opaque)
Definition: vout_subpictures.c:1267
vout_thread_t::p
vout_thread_sys_t * p
Definition: vlc_vout.h:74
subpicture_t::p_region
subpicture_region_t * p_region
region list composing this subtitle
Definition: vlc_subpicture.h:167
subpicture_region_private_t::p_picture
picture_t * p_picture
Definition: subpicture.h:45
vlc_filter.h
spu_area_t::x
int x
Definition: vout_subpictures.c:331
subpicture_region_t::i_align
int i_align
alignment flags of region
Definition: vlc_subpicture.h:64
VOUT_MAX_SUBPICTURES
#define VOUT_MAX_SUBPICTURES
Definition: vout_subpictures.c:49
spu_t
Subpicture unit descriptor.
Definition: vlc_spu.h:47
spu_scale_createq
static spu_scale_t spu_scale_createq(int64_t wn, int64_t wd, int64_t hn, int64_t hd)
Definition: vout_subpictures.c:305
var_Destroy
#define var_Destroy(a, b)
Definition: vlc_variables.h:124
vlc_vout_display.h
subpicture_region_t
Video subtitle region.
Definition: vlc_subpicture.h:57
vlc_plugin.h
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
SpuRenderRegion
static void SpuRenderRegion(spu_t *spu, subpicture_region_t **dst_ptr, spu_area_t *dst_area, subpicture_t *subpic, subpicture_region_t *region, const spu_scale_t scale_size, const vlc_fourcc_t *chroma_list, const video_format_t *fmt, const spu_area_t *subtitle_area, int subtitle_area_count, mtime_t render_date)
It will transform the provided region into another region suitable for rendering.
Definition: vout_subpictures.c:652
SpuHeapDeleteSubpicture
static int SpuHeapDeleteSubpicture(spu_heap_t *heap, subpicture_t *subpic)
Definition: vout_subpictures.c:135
filter_t::pf_render
int(* pf_render)(filter_t *, subpicture_region_t *, subpicture_region_t *, const vlc_fourcc_t *)
Render text (text render)
Definition: vlc_filter.h:104
subpicture_t::i_original_picture_width
int i_original_picture_width
original width of the movie
Definition: vlc_subpicture.h:185
filter_chain_ForEach
int filter_chain_ForEach(filter_chain_t *chain, int(*cb)(filter_t *, void *), void *opaque)
Definition: filter_chain.c:363
vout_window_cfg_t::width
unsigned width
Definition: vlc_vout_window.h:105
spu_private_t::vout
vout_thread_t * vout
Definition: vout_subpictures.c:95
video_palette_t::palette
uint8_t palette[256][4]
4-byte RGBA/YUVA palette
Definition: vlc_es.h:47
INPUT_GET_ATTACHMENTS
Definition: vlc_input.h:454
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *p_mutex)
Initializes a fast mutex.
Definition: thread.c:85
var_GetInteger
#define var_GetInteger(a, b)
Definition: vlc_variables.h:655
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
spu_scale_unit
static spu_scale_t spu_scale_unit(void)
Definition: vout_subpictures.c:301
SpuHeapClean
static void SpuHeapClean(spu_heap_t *heap)
Definition: vout_subpictures.c:149
var_SetInteger
#define var_SetInteger(a, b, c)
Definition: vlc_variables.h:256
SUBPICTURE_ALIGN_RIGHT
#define SUBPICTURE_ALIGN_RIGHT
Definition: vlc_subpicture.h:82
spu_private_t::source_chain_lock
vlc_mutex_t source_chain_lock
Definition: vout_subpictures.c:86
SpuHeapPush
static int SpuHeapPush(spu_heap_t *heap, subpicture_t *subpic)
Definition: vout_subpictures.c:110
spu_area_overlap
static bool spu_area_overlap(spu_area_t a, spu_area_t b)
Definition: vout_subpictures.c:372
subpicture_region_t::p_next
subpicture_region_t * p_next
vertical rendering/cropping target/limit
Definition: vlc_subpicture.h:76
vout_ControlChangeSubFilters
void vout_ControlChangeSubFilters(vout_thread_t *vout, const char *filters)
Definition: video_output.c:546
VOUT_SPU_CHANNEL_AVAIL_FIRST
#define VOUT_SPU_CHANNEL_AVAIL_FIRST
Definition: vlc_vout.h:157
video_format_t::i_visible_height
unsigned int i_visible_height
height of visible area
Definition: vlc_es.h:334
vlc_vout_wrapper.h
spu_t::p
spu_private_t * p
Definition: vlc_spu.h:51
vout_window_t::type
unsigned type
Window handle type.
Definition: vlc_vout_window.h:146
subpicture_t::b_subtitle
bool b_subtitle
the picture is a movie subtitle
Definition: vlc_subpicture.h:183
vlc_fourcc_IsYUV
bool vlc_fourcc_IsYUV(vlc_fourcc_t fcc)
It returns true if the given fourcc is YUV and false otherwise.
Definition: fourcc.c:643
window_t::module
module_t * module
Definition: window.c:60
spu_private_t::y
int y
Definition: vout_subpictures.c:74
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
vout_display_window_MouseEvent
static void vout_display_window_MouseEvent(vout_window_t *window, const vout_window_mouse_event_t *mouse)
Definition: window.c:161
subpicture_t::i_stop
mtime_t i_stop
end of display date
Definition: vlc_subpicture.h:172
VLC_CODEC_BGRA
#define VLC_CODEC_BGRA
Definition: vlc_fourcc.h:331
vlc_inhibit
Definition: vlc_inhibit.h:41
video_format_t::i_sar_den
unsigned int i_sar_den
Definition: vlc_es.h:339
spu_private_t::width
int width
Definition: vout_subpictures.c:75
vout_display_window_Delete
void vout_display_window_Delete(vout_window_t *window)
Destroys a video window.
Definition: window.c:234
SpuHeapInit
static void SpuHeapInit(spu_heap_t *heap)
Definition: vout_subpictures.c:100
vout_window_t::has_double_click
bool has_double_click
Whether double click events are sent, or need to be emulated.
Definition: vlc_vout_window.h:189
SubpictureCmp
static int SubpictureCmp(const void *s0, const void *s1)
This function compares 2 subpictures using the following properties (ordered by priority)
Definition: vout_subpictures.c:493
spu_private_t::filter_chain_lock
vlc_mutex_t filter_chain_lock
Definition: vout_subpictures.c:90
spu_scale_t
Definition: vout_subpictures.c:287
spu_heap_t
Definition: vout_subpictures.c:57
vout_window_Delete
void vout_window_Delete(vout_window_t *window)
Deletes a window created by vout_window_New().
Definition: window.c:99
vlc_object_t
The main vlc_object_t structure.
Definition: vlc_objects.h:39
spu_private_t::last_sort_date
mtime_t last_sort_date
Definition: vout_subpictures.c:94
subpicture_Update
void subpicture_Update(subpicture_t *p_subpicture, const video_format_t *p_fmt_src, const video_format_t *p_fmt_dst, mtime_t i_ts)
This function will update the content of a subpicture created with a non NULL subpicture_updater_t.
Definition: subpicture.c:150
VOUT_MAX_PICTURES
#define VOUT_MAX_PICTURES
Definition: vout_internal.h:43
subpicture_t::b_ephemer
bool b_ephemer
If this flag is set to true the subtitle will be displayed until the next one appear.
Definition: vlc_subpicture.h:173
VLC_UNUSED
#define VLC_UNUSED(x)
Definition: vlc_common.h:912
spu_area_t::width
int width
Definition: vout_subpictures.c:333
VLC_CODEC_YUVA
#define VLC_CODEC_YUVA
Definition: vlc_fourcc.h:261
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
spu_new_video_buffer
static picture_t * spu_new_video_buffer(filter_t *filter)
Definition: vout_subpictures.c:165
COLOR_SPACE_UNDEF
Definition: vlc_es.h:297
video_format_t::i_visible_width
unsigned int i_visible_width
width of visible area
Definition: vlc_es.h:333
spu_ChangeSources
void spu_ChangeSources(spu_t *spu, const char *filters)
It changes the sub sources list.
Definition: vout_subpictures.c:1663
strdup
char * strdup(const char *)
spu_area_unscaled
static spu_area_t spu_area_unscaled(spu_area_t a, spu_scale_t s)
Definition: vout_subpictures.c:357
filter_chain_t
Definition: filter_chain.c:51
subpicture_t::b_fade
bool b_fade
enable fading
Definition: vlc_subpicture.h:175
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
SpuRegionPlace
static void SpuRegionPlace(int *x, int *y, const subpicture_t *subpic, const subpicture_region_t *region)
Place a region.
Definition: vout_subpictures.c:449
vout_window_stop
static void vout_window_stop(void *func, va_list ap)
Definition: window.c:91
SubSourceClean
static int SubSourceClean(filter_t *filter, void *data)
Definition: vout_subpictures.c:1218
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
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
es_format_t::i_codec
vlc_fourcc_t i_codec
FOURCC value as used in vlc.
Definition: vlc_es.h:583
spu_private_t
Definition: vout_subpictures.c:61
spu_invscale_w
static int spu_invscale_w(int v, const spu_scale_t s)
Definition: vout_subpictures.c:318
subpicture_region_t::p_picture
picture_t * p_picture
picture comprising this region
Definition: vlc_subpicture.h:60
window_t::inhibit
vlc_inhibit_t * inhibit
Definition: window.c:61
inhibit.h
SubSourceAddProxyCallbacks
static int SubSourceAddProxyCallbacks(filter_t *filter, void *opaque)
Definition: vout_subpictures.c:1260
entry
Definition: fourcc_gen.c:50
spu_heap_entry_t::subpicture
subpicture_t * subpicture
Definition: vout_subpictures.c:53
SpuRenderSubpictures
static subpicture_t * SpuRenderSubpictures(spu_t *spu, unsigned int i_subpicture, subpicture_t **pp_subpicture, const vlc_fourcc_t *chroma_list, const video_format_t *fmt_dst, const video_format_t *fmt_src, mtime_t render_subtitle_date, mtime_t render_osd_date)
This function renders all sub picture units in the list.
Definition: vout_subpictures.c:1000
vout_window_start
static int vout_window_start(void *func, va_list ap)
Definition: window.c:43
vout_display_SendEventDisplaySize
static void vout_display_SendEventDisplaySize(vout_display_t *vd, int width, int height)
Definition: vlc_vout_display.h:356
SpuSelectSubpictures
static void SpuSelectSubpictures(spu_t *spu, unsigned int *subpicture_count, subpicture_t **subpicture_array, mtime_t render_subtitle_date, mtime_t render_osd_date, bool ignore_osd)
Definition: vout_subpictures.c:518
vout_thread_sys_t::display_pool
picture_pool_t * display_pool
Definition: vout_internal.h:134
VLC_CODEC_YUVP
#define VLC_CODEC_YUVP
Definition: vlc_fourcc.h:258
SPU_ES
Definition: vlc_es.h:568
vout_OpenWrapper
int vout_OpenWrapper(vout_thread_t *vout, const char *splitter_name, const vout_display_state_t *state)
Definition: vout_wrapper.c:46
vout_SendEventClose
static void vout_SendEventClose(vout_thread_t *vout)
Definition: event.h:39
vlc_mutex_destroy
void vlc_mutex_destroy(vlc_mutex_t *p_mutex)
Deinitializes a mutex.
Definition: thread.c:110
TRANSFER_FUNC_UNDEF
Definition: vlc_es.h:274
window.h
spu_Render
subpicture_t * spu_Render(spu_t *spu, const vlc_fourcc_t *chroma_list, const video_format_t *fmt_dst, const video_format_t *fmt_src, mtime_t render_subtitle_date, mtime_t render_osd_date, bool ignore_osd)
This function will return an unique subpicture containing the OSD and subtitles visibles at the reque...
Definition: vout_subpictures.c:1515
SpuAreaFitInside
static void SpuAreaFitInside(spu_area_t *area, const spu_area_t *boundary)
Definition: vout_subpictures.c:427
video_format_t::i_height
unsigned int i_height
picture height
Definition: vlc_es.h:330
spu_scale_w
static int spu_scale_w(int v, const spu_scale_t s)
Definition: vout_subpictures.c:310
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
SpuRenderText
static void SpuRenderText(spu_t *spu, bool *rerender_text, subpicture_region_t *region, const vlc_fourcc_t *chroma_list, mtime_t elapsed_time)
Definition: vout_subpictures.c:243
UpdateSPU
static void UpdateSPU(spu_t *spu, vlc_object_t *object)
Definition: vout_subpictures.c:1149
subpicture_t::i_start
mtime_t i_start
beginning of display date
Definition: vlc_subpicture.h:171
var_AddCallback
#define var_AddCallback(a, b, c, d)
Definition: vlc_variables.h:164
vout_window_owner
Definition: vlc_vout_window.h:110
SCALE_UNIT
#define SCALE_UNIT
A few scale functions helpers.
Definition: vout_subpictures.c:286
vlc_ureduce
bool vlc_ureduce(unsigned *, unsigned *, uint64_t, uint64_t, uint64_t)
vlc_vout_window.h
vout_display_window::lock
vlc_mutex_t lock
Definition: window.c:136
spu_PutSubpicture
void spu_PutSubpicture(spu_t *spu, subpicture_t *subpic)
Display a subpicture.
Definition: vout_subpictures.c:1433
libvlc.h
VLC_INHIBIT_NONE
Definition: vlc_inhibit.h:34
COLOR_PRIMARIES_SRGB
#define COLOR_PRIMARIES_SRGB
Definition: vlc_es.h:259
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
subpicture_region_t::i_alpha
int i_alpha
transparency
Definition: vlc_subpicture.h:65
mtime_t
int64_t mtime_t
High precision date or time interval.
Definition: vlc_common.h:150
vout_display_window::height
unsigned height
Definition: window.c:134
subpicture_New
subpicture_t * subpicture_New(const subpicture_updater_t *p_upd)
This function create a new empty subpicture.
Definition: subpicture.c:44
spu_invscale_h
static int spu_invscale_h(int v, const spu_scale_t s)
Definition: vout_subpictures.c:322
spu_scale_t::w
int w
Definition: vout_subpictures.c:288
vout_thread_sys_t::decoder_pool
picture_pool_t * decoder_pool
Definition: vout_internal.h:135
spu_Destroy
void spu_Destroy(spu_t *spu)
Destroy the subpicture unit.
Definition: vout_subpictures.c:1340
filter_chain_MouseEvent
int filter_chain_MouseEvent(filter_chain_t *p_chain, const vlc_mouse_t *p_mouse, const video_format_t *p_fmt)
Definition: filter_chain.c:499
subpicture_region_t::fmt
video_format_t fmt
format of the picture
Definition: vlc_subpicture.h:59
video_format_t::i_chroma
vlc_fourcc_t i_chroma
picture chroma
Definition: vlc_es.h:327
filter_owner_t::sub
struct filter_owner_t::@166::@169 sub
VOUT_WINDOW_TYPE_XID
X11 window.
Definition: vlc_vout_window.h:51
RestartSubSourceCallback
static int RestartSubSourceCallback(vlc_object_t *obj, char const *psz_var, vlc_value_t oldval, vlc_value_t newval, void *p_data)
Definition: vout_subpictures.c:1252
vout_thread_t
Video output thread descriptor.
Definition: vlc_vout.h:70
vlc_module_unload
#define vlc_module_unload(o, m, d,...)
Definition: vlc_modules.h:43
spu_private_t::text
filter_t * text
text renderer module
Definition: vout_subpictures.c:68
input_thread_t
Main structure representing an input thread.
Definition: vlc_input.h:221
VLC_OBJECT
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_common.h:464
spu_private_t::lock
vlc_mutex_t lock
Definition: vout_subpictures.c:62
vout_display_t
Definition: vlc_vout_display.h:256
vout_display_window_Attach
void vout_display_window_Attach(vout_window_t *, vout_display_t *)
Attaches a window to a display.
Definition: window.c:203
vout_internal.h
subpicture_region_private_Delete
void subpicture_region_private_Delete(subpicture_region_private_t *p_private)
Definition: subpicture.c:198
module_unneed
#define module_unneed(a, b)
Definition: vlc_modules.h:49
SUBPICTURE_ALIGN_TOP
#define SUBPICTURE_ALIGN_TOP
Definition: vlc_subpicture.h:83
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
filter_t::pf_video_filter
picture_t *(* pf_video_filter)(filter_t *, picture_t *)
Filter a picture (video filter)
Definition: vlc_filter.h:88
FilterRelease
static void FilterRelease(filter_t *filter)
Definition: vout_subpictures.c:158
spu_private_t::force_crop
bool force_crop
force cropping of subpicture
Definition: vout_subpictures.c:71
vlc_value_t
VLC value structure.
Definition: vlc_common.h:325
spu_get_attachments
static int spu_get_attachments(filter_t *filter, input_attachment_t ***attachment_ptr, int *attachment_count)
Definition: vout_subpictures.c:172
subpicture_region_private_New
subpicture_region_private_t * subpicture_region_private_New(video_format_t *p_fmt)
Definition: subpicture.c:181
vout_InitWrapper
int vout_InitWrapper(vout_thread_t *vout)
Definition: vout_wrapper.c:113
spu_area_t::height
int height
Definition: vout_subpictures.c:334
vout_thread_sys_t
Definition: vout_internal.h:46
vout_ControlChangeSubSources
void vout_ControlChangeSubSources(vout_thread_t *vout, const char *filters)
Definition: video_output.c:541
subpicture_region_t::i_max_height
int i_max_height
horizontal rendering/cropping target/limit
Definition: vlc_subpicture.h:74
subpicture_region_private_t
Definition: subpicture.h:23
vout_window_cfg_t::height
unsigned height
Definition: vlc_vout_window.h:106
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
vout_thread_sys_t::private_pool
picture_pool_t * private_pool
Definition: vout_internal.h:133
sub_new_buffer
static subpicture_t * sub_new_buffer(filter_t *filter)
Definition: vout_subpictures.c:1198
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:82
VLC_CODEC_ARGB
#define VLC_CODEC_ARGB
Definition: vlc_fourcc.h:329
subpicture_t::i_order
int64_t i_order
Definition: vlc_subpicture.h:163
filter_chain_SubFilter
subpicture_t * filter_chain_SubFilter(filter_chain_t *p_chain, subpicture_t *p_subpic)
Apply filter chain to subpictures.
Definition: filter_chain.c:460
spu_private_t::source_chain
filter_chain_t * source_chain
Definition: vout_subpictures.c:87
vout_window_owner::sys
void * sys
Definition: vlc_vout_window.h:111
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
var_GetBool
#define var_GetBool(a, b)
Definition: vlc_variables.h:656
module_need
#define module_need(a, b, c, d)
Definition: vlc_modules.h:47
VLC_CODEC_RGBA
#define VLC_CODEC_RGBA
Definition: vlc_fourcc.h:327
vlc_fourcc_t
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:32
vlc_modules.h
filter_t::owner
filter_owner_t owner
Definition: vlc_filter.h:151
VLC_INHIBIT_VIDEO
#define VLC_INHIBIT_VIDEO
Definition: vlc_inhibit.h:38
filter_chain_AppendFromString
int filter_chain_AppendFromString(filter_chain_t *chain, const char *str)
Append new filter to filter chain from string.
Definition: filter_chain.c:317
picture_pool_Reserve
picture_pool_t * picture_pool_Reserve(picture_pool_t *master, unsigned count)
Reserves pictures from a pool and creates a new pool with those.
Definition: picture_pool.c:181
spu_private_t::x
int x
Definition: vout_subpictures.c:73