VLC  4.0.0-dev
vout_internal.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * vout_internal.h : Internal vout definitions
3  *****************************************************************************
4  * Copyright (C) 2008-2018 VLC authors and VideoLAN
5  * Copyright (C) 2008 Laurent Aimar
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 #ifndef LIBVLC_VOUT_INTERNAL_H
25 #define LIBVLC_VOUT_INTERNAL_H 1
26 
27 #include <vlc_vout_display.h>
28 
30 typedef struct vlc_clock_t vlc_clock_t;
31 
32 /* It should be high enough to absorbe jitter due to difficult picture(s)
33  * to decode but not too high as memory is not that cheap.
34  *
35  * It can be made lower at compilation time if needed, but performance
36  * may be degraded.
37  */
38 #define VOUT_MAX_PICTURES (20)
39 
40 /**
41  * Vout configuration
42  */
43 typedef struct {
48  void *mouse_opaque;
50 
51 /**
52  * Creates a video output.
53  */
55 
57 
58 /**
59  * Setup the vout for the given configuration and get an associated decoder device.
60  *
61  * \param vout the video configuration requested.
62  * \return pointer to a decoder device reference to use with the vout or NULL
63  */
65 
66 /**
67  * Returns a suitable vout or release the given one.
68  *
69  * If cfg->fmt is non NULL and valid, a vout will be returned, reusing cfg->vout
70  * is possible, otherwise it returns NULL.
71  * If cfg->vout is not used, it will be closed and released.
72  *
73  * You can release the returned value either by vout_Request() or vout_Close().
74  *
75  * \param cfg the video configuration requested.
76  * \param input used to get attachments for spu filters
77  * \param vctx pointer to the video context to use with the vout or NULL
78  * \retval 0 on success
79  * \retval -1 on error
80  */
82 
83 /**
84  * Disables a vout.
85  *
86  * This disables a vout, but keeps it for later reuse.
87  */
88 void vout_Stop(vout_thread_t *);
89 
90 /**
91  * Stop the display plugin, but keep its window plugin for later reuse.
92  */
94 
95 /**
96  * Set the new source format for a started vout
97  *
98  * \retval 0 on success
99  * \retval -1 on error, the vout needs to be restarted to handle the format
100  */
101 int vout_ChangeSource( vout_thread_t *p_vout, const video_format_t *fmt );
102 
105 };
106 
107 struct vout_crop {
109  union {
111  struct {
112  unsigned x;
113  unsigned y;
114  unsigned width;
115  unsigned height;
116  } window;
117  struct {
118  unsigned left;
119  unsigned right;
120  unsigned top;
121  unsigned bottom;
122  } border;
123  };
124 };
125 
126 static inline bool vout_CropEqual(const struct vout_crop *a,
127  const struct vout_crop *b)
128 {
129  if (a->mode != b->mode)
130  return false;
131 
132  switch (a->mode) {
133  case VOUT_CROP_NONE:
134  return true;
135  case VOUT_CROP_RATIO:
136  return a->ratio.num * b->ratio.den == b->ratio.num * a->ratio.den;
137  case VOUT_CROP_WINDOW:
138  return memcmp(&a->window, &b->window, sizeof (a->window)) == 0;
139  case VOUT_CROP_BORDER:
140  return memcmp(&a->border, &b->border, sizeof (a->border)) == 0;
141  default:
143  }
144 }
145 
146 bool vout_ParseCrop(struct vout_crop *, const char *crop_str);
147 bool GetAspectRatio(const char *ar_str, unsigned *num, unsigned *den);
148 
149 /* TODO to move them to vlc_vout.h */
150 void vout_ChangeFullscreen(vout_thread_t *, const char *id);
152 void vout_ChangeWindowState(vout_thread_t *, unsigned state);
153 void vout_ChangeDisplaySize(vout_thread_t *, unsigned width, unsigned height,
154  void (*ack_cb)(void *), void *opaque);
155 void vout_ChangeDisplayFilled(vout_thread_t *, bool is_filled);
156 void vout_ChangeZoom(vout_thread_t *, unsigned num, unsigned den);
157 void vout_ChangeDisplayAspectRatio(vout_thread_t *, unsigned num, unsigned den);
158 void vout_ChangeCrop(vout_thread_t *, const struct vout_crop *);
159 void vout_ControlChangeFilters(vout_thread_t *, const char *);
161 void vout_ControlChangeSubSources(vout_thread_t *, const char *);
162 void vout_ControlChangeSubFilters(vout_thread_t *, const char *);
165 
166 /* */
168 void vout_IntfInit( vout_thread_t * );
171 
172 /* */
174  vlc_clock_t *clock,
175  enum vlc_vout_order *out_order );
177 void spu_Attach( spu_t *, input_thread_t *input );
178 void spu_Detach( spu_t * );
179 void spu_SetClockDelay(spu_t *spu, size_t channel_id, vlc_tick_t delay);
180 void spu_SetClockRate(spu_t *spu, size_t channel_id, float rate);
183 
184 /**
185  * This function will (un)pause the display of pictures.
186  * It is thread safe
187  */
188 void vout_ChangePause( vout_thread_t *, bool b_paused, vlc_tick_t i_date );
189 
190 /**
191  * This function will change the rate of the vout
192  * It is thread safe
193  */
194 void vout_ChangeRate( vout_thread_t *, float rate );
195 
196 /**
197  * This function will change the delay of the vout
198  * It is thread safe
199  */
200 void vout_ChangeDelay( vout_thread_t *, vlc_tick_t delay );
201 
202 /**
203  * This function will change the rate of the spu channel
204  * It is thread safe
205  */
206 void vout_ChangeSpuRate( vout_thread_t *, size_t channel_id, float rate );
207 /**
208  * This function will change the delay of the spu channel
209  * It is thread safe
210  */
211 void vout_ChangeSpuDelay( vout_thread_t *, size_t channel_id, vlc_tick_t delay );
212 
213 
214 /**
215  * Updates the pointing device state.
216  */
217 void vout_MouseState(vout_thread_t *, const vlc_mouse_t *);
218 
219 /**
220  * This function will return and reset internal statistics.
221  */
222 void vout_GetResetStatistic( vout_thread_t *p_vout, unsigned *pi_displayed,
223  unsigned *pi_lost, unsigned *pi_late );
224 
225 /**
226  * This function will force to display the next picture while paused
227  */
228 void vout_NextPicture( vout_thread_t *p_vout, vlc_tick_t *pi_duration );
229 
230 /**
231  * This function will ask the display of the input title
232  */
233 void vout_DisplayTitle( vout_thread_t *p_vout, const char *psz_title );
234 
235 /**
236  * This function will return true if no more pictures are to be displayed.
237  */
238 bool vout_IsEmpty( vout_thread_t *p_vout );
239 
241 
242 #endif // LIBVLC_VOUT_INTERNAL_H
VOUT_CROP_NONE
@ VOUT_CROP_NONE
Definition: vout_internal.h:104
vout_thread_sys_t::date
vlc_tick_t date
Definition: video_output.c:133
GetAspectRatio
bool GetAspectRatio(const char *ar_str, unsigned *num, unsigned *den)
Definition: vout_intf.c:511
vout_Create
vout_thread_t * vout_Create(vlc_object_t *object)
Creates a video output.
Definition: video_output.c:1966
HEX2YUV
#define HEX2YUV(rgb)
Definition: vout_spuregion_helper.h:27
vout_thread_sys_t::control
vout_control_t control
Definition: video_output.c:128
vlc_video_align::vertical
char vertical
Vectical alignment.
Definition: vlc_vout_display.h:79
spu_Attach
void spu_Attach(spu_t *, input_thread_t *input)
Attach the SPU to an input.
Definition: vout_subpictures.c:1733
vout_thread_private_t
Definition: vout_private.h:34
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
VOUT_THREAD_TO_SYS
#define VOUT_THREAD_TO_SYS(vout)
Definition: video_output.c:169
vlc_mouse_t
Mouse state.
Definition: vlc_mouse.h:45
vout_thread_sys_t::dec_device
vlc_decoder_device * dec_device
Definition: video_output.c:170
vlc_spu.h
VLC_SYSDATA_DIR
@ VLC_SYSDATA_DIR
Global architecture-independent read-only data directory (e.g.
Definition: vlc_configuration.h:280
vlc_array_append_or_abort
static void vlc_array_append_or_abort(vlc_array_t *ar, void *elem)
Definition: vlc_arrays.h:347
picture_t::b_progressive
bool b_progressive
is it a progressive frame?
Definition: vlc_picture.h:143
vout_window_SetInhibition
void vout_window_SetInhibition(vout_window_t *window, bool enabled)
Inhibits or deinhibits the screensaver.
Definition: window.c:159
vout_thread_sys_t
struct vout_thread_sys_t vout_thread_sys_t
vlc_video_context_HoldDevice
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
vout_thread_sys_t::rate
float rate
Definition: video_output.c:105
vlc_epg_event_t::i_id
uint16_t i_id
Definition: vlc_epg.h:36
spu_RegisterChannel
ssize_t spu_RegisterChannel(spu_t *spu)
It registers a new SPU channel.
Definition: vout_subpictures.c:2033
vout_statistic_t
Definition: statistic.h:30
STYLE_NO_DEFAULTS
#define STYLE_NO_DEFAULTS
Definition: vlc_text_style.h:83
vout_thread_sys_t::new_interlaced
bool new_interlaced
Definition: video_output.c:181
vout_private.h
picture_fifo_Delete
void picture_fifo_Delete(picture_fifo_t *fifo)
It destroys a fifo created by picture_fifo_New.
Definition: picture_fifo.c:121
VOUT_ALIGN_LEFT
#define VOUT_ALIGN_LEFT
Definition: vlc_vout.h:60
vout_CropEqual
static bool vout_CropEqual(const struct vout_crop *a, const struct vout_crop *b)
Definition: vout_internal.h:126
vout_MouseState
void vout_MouseState(vout_thread_t *vout, const vlc_mouse_t *mouse)
Updates the pointing device state.
Definition: video_output.c:361
video_format_t::p_palette
video_palette_t * p_palette
video palette from demuxer
Definition: vlc_es.h:370
vlc_events.h
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:175
text_style_Create
text_style_t * text_style_Create(int i_defaults)
Create a text style.
Definition: text_style.c:213
var_Create
int() var_Create(vlc_object_t *p_this, const char *psz_name, int i_type)
Creates a VLC object variable.
Definition: variables.c:291
OSDRegion
static subpicture_region_t * OSDRegion(int x, int y, int width, int height)
Create a region with a white transparent picture.
Definition: video_widgets.c:115
vlc_mouse_HasButton
static bool vlc_mouse_HasButton(const vlc_mouse_t *p_old, const vlc_mouse_t *p_new)
Definition: vlc_mouse.h:136
osdwidget_spu_updater_sys_t::type
int type
Definition: video_widgets.c:249
vout_window_SetState
static void vout_window_SetState(vout_window_t *window, unsigned state)
Requests a new window state.
Definition: vlc_vout_window.h:457
VIDEO_ES
@ VIDEO_ES
Definition: vlc_es.h:603
picture_t::format
video_frame_format_t format
The properties of the picture.
Definition: vlc_picture.h:125
OSDEpgUpdate
static void OSDEpgUpdate(subpicture_t *subpic, const video_format_t *fmt_src, const video_format_t *fmt_dst, vlc_tick_t ts)
Definition: video_epg.c:513
OSDTextUpdate
static void OSDTextUpdate(subpicture_t *subpic, const video_format_t *fmt_src, const video_format_t *fmt_dst, vlc_tick_t ts)
Definition: video_text.c:52
EnableWindowLocked
static int EnableWindowLocked(vout_thread_sys_t *vout, const video_format_t *original)
Definition: video_output.c:2070
vout_snapshot_Destroy
void vout_snapshot_Destroy(vout_snapshot_t *snap)
Definition: snapshot.c:67
picture_fifo_Pop
picture_t * picture_fifo_Pop(picture_fifo_t *fifo)
It retreives a picture_t from the fifo.
Definition: picture_fifo.c:75
vout_configuration_t::fmt
const video_format_t * fmt
Definition: vout_internal.h:46
vlc_epg_t::psz_name
char * psz_name
Definition: vlc_epg.h:53
vout_ChangeDisplayAspectRatio
void vout_ChangeDisplayAspectRatio(vout_thread_t *vout, unsigned dar_num, unsigned dar_den)
Definition: video_output.c:625
vout_OSDImage
static subpicture_region_t * vout_OSDImage(vlc_object_t *p_obj, int x, int y, int w, int h, const char *psz_uri)
Definition: video_epg.c:224
vout_ReleaseDisplay
static void vout_ReleaseDisplay(vout_thread_sys_t *vout)
Definition: video_output.c:1803
video_format_CopyCropAr
static void video_format_CopyCropAr(video_format_t *dst, const video_format_t *src)
Definition: vlc_es.h:488
vout_display_SetSize
void vout_display_SetSize(vout_display_t *vd, unsigned width, unsigned height)
Definition: display.c:578
es_format_t::video
video_format_t video
description of video format
Definition: vlc_es.h:646
vlc_epg_SetCurrent
void vlc_epg_SetCurrent(vlc_epg_t *p_epg, int64_t i_start)
It set the current event of a vlc_epg_t given a start time.
Definition: epg.c:204
filter_video_callbacks
Definition: vlc_filter.h:45
vout_GetDevice
vlc_decoder_device * vout_GetDevice(vout_thread_t *vout)
Setup the vout for the given configuration and get an associated decoder device.
Definition: video_output.c:2186
vout_CreateVars
void vout_CreateVars(vout_thread_t *)
Definition: vout_intf.c:154
OSD_PAUSE_ICON
@ OSD_PAUSE_ICON
Definition: vlc_vout_osd.h:48
vout_thread_sys_t::src_fmt
video_format_t src_fmt
Definition: video_output.c:183
var_InheritBool
static bool var_InheritBool(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:675
vout_thread_sys_t::step
struct vout_thread_sys_t::@117 step
vout_display_cfg::display
struct vout_display_cfg::@275 display
Display properties.
VOUT_SPU_CHANNEL_OSD
#define VOUT_SPU_CHANNEL_OSD
Definition: vlc_vout.h:128
GRADIENT_COLORS
#define GRADIENT_COLORS
Definition: video_epg.c:90
picture_fifo_IsEmpty
bool picture_fifo_IsEmpty(picture_fifo_t *fifo)
It returns whether the fifo is empty or not.
Definition: picture_fifo.c:83
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:415
vout_thread_sys_t::mouse_opaque
void * mouse_opaque
Definition: video_output.c:163
vlc_decoder_device_Create
vlc_decoder_device * vlc_decoder_device_Create(vlc_object_t *o, vout_window_t *window)
Create a decoder device from a window.
Definition: decoder_helpers.c:181
text_segment_t
Text segment for subtitles.
Definition: vlc_text_style.h:140
subpicture_region_t::i_max_width
int i_max_width
try to balance wrapped text lines
Definition: vlc_subpicture.h:75
vout_GetPicture
picture_t * vout_GetPicture(vout_thread_t *vout)
Allocates a video output picture buffer.
Definition: video_output.c:450
text_segment_New
text_segment_t * text_segment_New(const char *psz_text)
This function will create a new text segment.
Definition: text_style.c:372
vout_spuregion_helper.h
picture_GetVideoContext
static vlc_video_context * picture_GetVideoContext(picture_t *pic)
Definition: vlc_picture.h:160
vout_thread_sys_t::display
vout_display_t * display
Definition: video_output.c:174
var_InheritURational
int() var_InheritURational(vlc_object_t *object, unsigned *num, unsigned *den, const char *var)
Inherit a string as a fractional value.
Definition: variables.c:1073
statistic.h
vout_display_place_t::width
unsigned width
Definition: vlc_vout_display.h:483
vlc_spu_highlight_t
Definition: vlc_subpicture.h:85
VOUT_MWAIT_TOLERANCE
#define VOUT_MWAIT_TOLERANCE
Definition: video_output.c:184
vout_thread_sys_t::crop
struct vout_crop crop
Definition: video_output.c:113
vout_display_SizeWindow
static void vout_display_SizeWindow(unsigned *restrict width, unsigned *restrict height, unsigned w, unsigned h, unsigned sar_num, unsigned sar_den, video_orientation_t orientation, const vout_display_cfg_t *restrict cfg)
Definition: video_output.c:215
OSDEPG_PADDING
#define OSDEPG_PADDING
Definition: video_epg.c:42
vlc_epg_event_t
Definition: vlc_epg.h:32
vout_display_info_t::subpicture_chromas
const vlc_fourcc_t * subpicture_chromas
Definition: vlc_vout_display.h:137
vlc_input_item.h
osdwidget_spu_updater_sys_t::position
int position
Definition: video_widgets.c:250
vout_thread_sys_t::clock
vlc_clock_t * clock
Definition: video_output.c:104
vout_window_SetSize
static void vout_window_SetSize(vout_window_t *window, unsigned width, unsigned height)
Requests a new window size.
Definition: vlc_vout_window.h:482
vout_thread_sys_t::decoder_fifo
picture_fifo_t * decoder_fifo
Definition: video_output.c:189
VLC_VIDEO_ALIGN_CENTER
#define VLC_VIDEO_ALIGN_CENTER
Definition: vlc_vout_display.h:55
unlikely
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
vout_chrono_t::avg
vlc_tick_t avg
Definition: chrono.h:50
vout_thread_sys_t::control_is_terminated
atomic_bool control_is_terminated
Definition: video_output.c:129
GetDefaultArtUri
static char * GetDefaultArtUri(void)
Definition: video_epg.c:77
vout_ChangeDisplayFilled
void vout_ChangeDisplayFilled(vout_thread_t *, bool is_filled)
Definition: video_output.c:567
vlc_common.h
subpicture_updater_t
Definition: vlc_subpicture.h:135
text_style_t::i_outline_alpha
uint8_t i_outline_alpha
The transparency of the outline.
Definition: vlc_text_style.h:79
EPGOSD_TEXTSIZE_NTWK
#define EPGOSD_TEXTSIZE_NTWK
Definition: video_epg.c:61
vout_ChangeCrop
void vout_ChangeCrop(vout_thread_t *, const struct vout_crop *)
filter_chain_AppendFilter
filter_t * filter_chain_AppendFilter(filter_chain_t *chain, const char *name, const config_chain_t *cfg, const es_format_t *fmt_out)
Append a filter to the chain.
Definition: filter_chain.c:295
vout_UpdateWindowSizeLocked
static void vout_UpdateWindowSizeLocked(vout_thread_sys_t *vout)
Definition: video_output.c:311
vout_Request
int vout_Request(const vout_configuration_t *cfg, vlc_video_context *vctx, input_thread_t *input)
Returns a suitable vout or release the given one.
Definition: video_output.c:2120
vout_display_PlacePicture
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
subpicture_region_t::i_y
int i_y
position of region, relative to alignment
Definition: vlc_subpicture.h:65
video_format_t::i_y_offset
unsigned int i_y_offset
start offset of visible area
Definition: vlc_es.h:357
VOUT_CROP_RATIO
@ VOUT_CROP_RATIO
Definition: vout_internal.h:104
SLIDER_MARGIN_BASE
#define SLIDER_MARGIN_BASE
Create the region for an OSD slider.
Definition: video_widgets.c:150
DrawTriangle
static void DrawTriangle(subpicture_region_t *r, int fill, uint8_t color, int x1, int y1, int x2, int y2)
Draws a triangle at the given position in the region.
Definition: video_widgets.c:87
subpicture_t::updater
subpicture_updater_t updater
Definition: vlc_subpicture.h:203
subpicture_region_t::p_text
text_segment_t * p_text
subtitle text, made of a list of segments
Definition: vlc_subpicture.h:70
VoutCheckFormat
static bool VoutCheckFormat(const video_format_t *src)
Definition: video_output.c:187
vlc_vout.h
filter_chain_ForEach
int filter_chain_ForEach(filter_chain_t *chain, int(*cb)(filter_t *, void *), void *opaque)
Definition: filter_chain.c:389
OSDEpgDestroy
static void OSDEpgDestroy(subpicture_t *subpic)
Definition: video_epg.c:536
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:240
video_palette_t::i_entries
int i_entries
to keep the compatibility with libavcodec's palette
Definition: vlc_es.h:45
vlc_epg.h
vlc_mutex_assert
#define vlc_mutex_assert(m)
Asserts that a mutex is locked by the calling thread.
Definition: vlc_threads.h:328
filter_DeleteBlend
void filter_DeleteBlend(vlc_blender_t *p_blend)
It destroys a blend filter created by filter_NewBlend.
Definition: filter.c:173
vout_SetDisplayViewpoint
void vout_SetDisplayViewpoint(vout_display_t *vd, const vlc_viewpoint_t *p_viewpoint)
Definition: display.c:645
vlc_mouse_t::b_double_click
bool b_double_click
Definition: vlc_mouse.h:53
vout_configuration_t::mouse_event
vlc_mouse_event mouse_event
Definition: vout_internal.h:47
VLC_CLIP
#define VLC_CLIP(v, min, max)
Definition: vlc_common.h:551
ThreadChangeFilters
static void ThreadChangeFilters(vout_thread_sys_t *vout)
Definition: video_output.c:844
video_format_t::i_sar_num
unsigned int i_sar_num
sample/pixel aspect ratio
Definition: vlc_es.h:363
vlc_clock_SetDelay
vlc_tick_t vlc_clock_SetDelay(vlc_clock_t *clock, vlc_tick_t delay)
This functions change the clock delay.
Definition: clock.c:497
STYLE_HAS_FONT_COLOR
#define STYLE_HAS_FONT_COLOR
Definition: vlc_text_style.h:85
input_item_t
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:77
msg_Info
#define msg_Info(p_this,...)
Definition: vlc_messages.h:100
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:469
vout_Stop
void vout_Stop(vout_thread_t *)
Disables a vout.
Definition: video_output.c:1874
vout_crop::x
unsigned x
Definition: vout_internal.h:112
vout_ChangeRate
void vout_ChangeRate(vout_thread_t *, float rate)
This function will change the rate of the vout It is thread safe.
Definition: video_output.c:1583
vout_thread_sys_t::static_filter
vout_chrono_t static_filter
Definition: video_output.c:191
vout_thread_sys_t::source
struct vout_thread_sys_t::@115 source
vout_thread_sys_t::chain_interactive
struct filter_chain_t * chain_interactive
Definition: video_output.c:186
es_format_IsSimilar
bool es_format_IsSimilar(const es_format_t *p_fmt1, const es_format_t *p_fmt2)
This function will check if the first ES format is similar to the second one.
Definition: es_format.c:532
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:443
vout_configuration_t::mouse_opaque
void * mouse_opaque
Definition: vout_internal.h:48
vout_ChangeSpuRate
void vout_ChangeSpuRate(vout_thread_t *vout, size_t channel_id, float rate)
This function will change the rate of the spu channel It is thread safe.
Definition: video_output.c:1602
subpicture_updater_t::p_sys
void * p_sys
Definition: vlc_subpicture.h:153
vout_thread_private_t::has_deint
bool has_deint
Definition: vout_private.h:38
vlc_tick_from_samples
static vlc_tick_t vlc_tick_from_samples(int64_t samples, int samp_rate)
Definition: vlc_tick.h:101
subpicture_t::i_original_picture_height
int i_original_picture_height
original height of the movie
Definition: vlc_subpicture.h:199
input_item_t::i_epg_time
int64_t i_epg_time
Definition: vlc_input_item.h:103
OSDEPG_WIDTH
#define OSDEPG_WIDTH
Definition: video_epg.c:43
EPGOSD_TEXTSIZE_PROG
#define EPGOSD_TEXTSIZE_PROG
Definition: video_epg.c:60
vout_configuration_t::clock
vlc_clock_t * clock
Definition: vout_internal.h:45
EPGOSD_TEXTSIZE_NAME
#define EPGOSD_TEXTSIZE_NAME
Definition: video_epg.c:59
OSDSlider
static subpicture_region_t * OSDSlider(int type, int position, const video_format_t *fmt)
Definition: video_widgets.c:151
text_segment_t::p_next
text_segment_t * p_next
next segment
Definition: vlc_text_style.h:143
epg_spu_updater_sys_t::time
int64_t time
Definition: video_epg.c:72
vout_thread_sys_t::src_vctx
vlc_video_context * src_vctx
Definition: video_output.c:184
input_item_t::lock
vlc_mutex_t lock
Lock for the item.
Definition: vlc_input_item.h:112
vout_thread_sys_t::splitter_name
char * splitter_name
Definition: video_output.c:102
vout_display_cfg::align
vlc_video_align_t align
Alignment of the video within the window.
Definition: vlc_vout_display.h:117
vout_thread_sys_t::mouse
vlc_mouse_t mouse
Definition: video_output.c:161
filter_DelProxyCallbacks
#define filter_DelProxyCallbacks(a, b, c)
Definition: vlc_filter.h:387
OSDTextValidate
static int OSDTextValidate(subpicture_t *subpic, bool has_src_changed, const video_format_t *fmt_src, bool has_dst_changed, const video_format_t *fmt_dst, vlc_tick_t ts)
Definition: video_text.c:38
vlc_atomic_rc_dec
static bool vlc_atomic_rc_dec(vlc_atomic_rc_t *rc)
Decrement the RC and return true if it reaches 0.
Definition: vlc_atomic.h:61
vout_thread_sys_t::pause
struct vout_thread_sys_t::@118 pause
vout_ChangeDelay
void vout_ChangeDelay(vout_thread_t *vout, vlc_tick_t delay)
This function will change the delay of the vout It is thread safe.
Definition: video_output.c:1571
vout_MouseState
void vout_MouseState(vout_thread_t *, const vlc_mouse_t *)
Updates the pointing device state.
Definition: video_output.c:361
vout_thread_sys_t::dar
vlc_rational_t dar
Definition: video_output.c:112
vout_OSDSegmentSetNoWrap
static void vout_OSDSegmentSetNoWrap(text_segment_t *p_segment)
Definition: video_epg.c:190
vout_InitInterlacingSupport
void vout_InitInterlacingSupport(vout_thread_t *vout, vout_thread_private_t *sys)
Definition: interlacing.c:93
picture_Release
static void picture_Release(picture_t *picture)
Decrements the picture reference count.
Definition: vlc_picture.h:368
vout_statistic_AddDisplayed
static void vout_statistic_AddDisplayed(vout_statistic_t *stat, int displayed)
Definition: statistic.h:59
vlc_epg_t::i_event
size_t i_event
Definition: vlc_epg.h:56
spu_PutSubpicture
void spu_PutSubpicture(spu_t *spu, subpicture_t *subpic)
Display a subpicture.
Definition: vout_subpictures.c:1792
vout_DisplayTitle
void vout_DisplayTitle(vout_thread_t *vout, const char *title)
This function will ask the display of the input title.
Definition: video_output.c:348
vout_IsEmpty
bool vout_IsEmpty(vout_thread_t *p_vout)
This function will return true if no more pictures are to be displayed.
Definition: video_output.c:338
STYLE_HAS_FONT_ALPHA
#define STYLE_HAS_FONT_ALPHA
Definition: vlc_text_style.h:86
vout_OSDSlider
void vout_OSDSlider(vout_thread_t *vout, int channel, int position, short type)
Display a slider on the video output.
Definition: video_widgets.c:330
vout_thread_sys_t::configuration
char * configuration
Definition: video_output.c:182
spu_UnregisterChannel
void spu_UnregisterChannel(spu_t *spu, size_t channel_id)
Definition: vout_subpictures.c:2063
vout_ChangeZoom
void vout_ChangeZoom(vout_thread_t *vout, unsigned num, unsigned den)
Definition: video_output.c:584
video_format_t
video format description
Definition: vlc_es.h:350
picture_Export
int picture_Export(vlc_object_t *p_obj, block_t **pp_image, video_format_t *p_fmt, picture_t *p_picture, vlc_fourcc_t i_format, int i_override_width, int i_override_height, bool b_crop)
This function will export a picture to an encoded bitstream.
Definition: picture.c:462
vout_crop::mode
enum vout_crop_mode mode
Definition: vout_internal.h:108
vout_filter_t
Definition: video_output.c:839
VOUT_ALIGN_BOTTOM
#define VOUT_ALIGN_BOTTOM
Definition: vlc_vout.h:64
subpicture_region_t::b_balanced_text
bool b_balanced_text
if the decoder sends row/cols based output
Definition: vlc_subpicture.h:74
MS_FROM_VLC_TICK
#define MS_FROM_VLC_TICK(vtk)
Definition: vlc_tick.h:123
ThreadDelFilterCallbacks
static int ThreadDelFilterCallbacks(filter_t *filter, void *opaque)
Definition: video_output.c:783
vout_Request
int vout_Request(const vout_configuration_t *cfg, vlc_video_context *vctx, input_thread_t *input)
Returns a suitable vout or release the given one.
Definition: video_output.c:2120
vout_crop::right
unsigned right
Definition: vout_internal.h:119
vout_thread_sys_t::display_cfg
vout_display_cfg_t display_cfg
Definition: video_output.c:173
vout_chrono_t
Definition: chrono.h:28
vout_thread_sys_t::lock
vlc_mutex_t lock
Definition: video_output.c:179
VLC_CODEC_TEXT
#define VLC_CODEC_TEXT
Definition: vlc_fourcc.h:593
VOUT_REDISPLAY_DELAY
#define VOUT_REDISPLAY_DELAY
Definition: video_output.c:176
vout_Release
void vout_Release(vout_thread_t *vout)
Definition: video_output.c:1906
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
vout_display_t::cfg
const vout_display_cfg_t * cfg
User configuration.
Definition: vlc_vout_display.h:324
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:509
vout_configuration_t::vout
vout_thread_t * vout
Definition: vout_internal.h:44
vout_SetDisplayFilled
void vout_SetDisplayFilled(vout_display_t *vd, bool is_filled)
Definition: display.c:588
subpicture_region_t::i_x
int i_x
position of region, relative to alignment
Definition: vlc_subpicture.h:64
vout_display_TranslateMouseState
void vout_display_TranslateMouseState(vout_display_t *vd, vlc_mouse_t *video, const vlc_mouse_t *window)
Translates mouse state.
Definition: display.c:204
vout_ChangePause
void vout_ChangePause(vout_thread_t *vout, bool is_paused, vlc_tick_t date)
This function will (un)pause the display of pictures.
Definition: video_output.c:1478
vlc_rational_t::den
unsigned den
Definition: fourcc_gen.c:34
vout_IntfDeinit
void vout_IntfDeinit(vlc_object_t *)
Definition: vout_intf.c:322
vlc_epg_New
vlc_epg_t * vlc_epg_New(uint32_t i_id, uint16_t i_source_id)
It creates a new vlc_epg_t*.
Definition: epg.c:190
var_InheritString
static char * var_InheritString(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:705
OSDWidgetValidate
static int OSDWidgetValidate(subpicture_t *subpic, bool has_src_changed, const video_format_t *fmt_src, bool has_dst_changed, const video_format_t *fmt_dst, vlc_tick_t ts)
Definition: video_widgets.c:253
vout_BuildOSDEpg
static subpicture_region_t * vout_BuildOSDEpg(epg_spu_updater_sys_t *p_sys, int x, int y, int visible_width, int visible_height)
Definition: video_epg.c:413
osd_spu_updater_sys_t
Definition: video_text.c:33
vout_OSDEpgSlider
static subpicture_region_t * vout_OSDEpgSlider(int x, int y, int width, int height, float ratio)
Definition: video_epg.c:121
vlc_viewpoint_t
Viewpoints.
Definition: vlc_viewpoint.h:41
picture_t::date
vlc_tick_t date
display date
Definition: vlc_picture.h:134
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
vout_ControlChangeFilters
void vout_ControlChangeFilters(vout_thread_t *vout, const char *filters)
Definition: video_output.c:662
spuregion_CreateFromPicture
static subpicture_region_t * spuregion_CreateFromPicture(vlc_object_t *p_this, video_format_t *p_fmt, const char *psz_uri)
Definition: vout_spuregion_helper.h:66
spu_SetClockDelay
void spu_SetClockDelay(spu_t *spu, size_t channel_id, vlc_tick_t delay)
Definition: vout_subpictures.c:1761
picture_Reset
void picture_Reset(picture_t *p_picture)
This function will reset a picture information (properties and quantizers).
Definition: picture.c:91
VLC_VAR_STRING
#define VLC_VAR_STRING
Definition: vlc_variables.h:51
subpicture_t::i_start
vlc_tick_t i_start
beginning of display date
Definition: vlc_subpicture.h:184
spu_SetHighlight
void spu_SetHighlight(spu_t *, const vlc_spu_highlight_t *)
Definition: vout_subpictures.c:2132
vout_ConvertForDisplay
picture_t * vout_ConvertForDisplay(vout_display_t *vd, picture_t *picture)
Definition: display.c:401
subpicture_t::b_absolute
bool b_absolute
position is absolute
Definition: vlc_subpicture.h:197
vout_ControlChangeInterlacing
void vout_ControlChangeInterlacing(vout_thread_t *vout, bool set)
Definition: video_output.c:684
vlc_video_context_Hold
vlc_video_context * vlc_video_context_Hold(vlc_video_context *vctx)
Definition: decoder_helpers.c:269
COL_WHITE
#define COL_WHITE
Definition: video_widgets.c:46
osd_spu_updater_sys_t::position
int position
Definition: video_text.c:55
COL_BLUE_SHADE
#define COL_BLUE_SHADE
Definition: video_widgets.c:48
vlc_ureduce
VLC_EXPORT bool vlc_ureduce(unsigned *, unsigned *, uint64_t, uint64_t, uint64_t)
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:430
vout_thread_sys_t::window_height
unsigned window_height
Definition: video_output.c:168
RGB_BLUE
#define RGB_BLUE
Definition: video_widgets.c:43
vout_ReinitInterlacingSupport
void vout_ReinitInterlacingSupport(vout_thread_t *vout, vout_thread_private_t *sys)
Definition: interlacing.c:150
vout_statistic_Clean
static void vout_statistic_Clean(vout_statistic_t *stat)
Definition: statistic.h:43
vout_ChangeSpuChannelMargin
void vout_ChangeSpuChannelMargin(vout_thread_t *, enum vlc_vout_order order, int)
Definition: video_output.c:709
vout_OSDSegment
static text_segment_t * vout_OSDSegment(const char *psz_text, int size, uint32_t color)
Definition: video_epg.c:199
vout_chrono_t::var
vlc_tick_t var
Definition: chrono.h:54
vout_thread_sys_t::chain_static
struct filter_chain_t * chain_static
Definition: video_output.c:185
image_Type2Fourcc
vlc_fourcc_t image_Type2Fourcc(const char *)
Definition: image.c:613
var_Destroy
void() var_Destroy(vlc_object_t *p_this, const char *psz_name)
Destroys a VLC object variable.
Definition: variables.c:382
vout_PutPicture
void vout_PutPicture(vout_thread_t *vout, picture_t *picture)
It gives to the vout a picture to be displayed.
Definition: video_output.c:470
picture_t
Video picture.
Definition: vlc_picture.h:120
asprintf
int asprintf(char **, const char *,...)
subpicture_region_t::i_text_align
int i_text_align
alignment flags of region content
Definition: vlc_subpicture.h:71
vout_SetInterlacingState
void vout_SetInterlacingState(vout_thread_t *vout, vout_thread_private_t *sys, bool is_interlaced)
Definition: interlacing.c:156
vout_display_t::info
vout_display_info_t info
Definition: vlc_vout_display.h:356
vout_FilterFlush
void vout_FilterFlush(vout_display_t *vd)
Definition: display.c:424
var_SetCoords
static int var_SetCoords(vlc_object_t *obj, const char *name, int32_t x, int32_t y)
Definition: vlc_variables.h:315
vlc_epg_t::i_id
uint32_t i_id
Definition: vlc_epg.h:54
config_GetType
int config_GetType(const char *psz_name)
Gets a configuration item type.
Definition: core.c:48
vout_DisplayTitle
void vout_DisplayTitle(vout_thread_t *p_vout, const char *psz_title)
This function will ask the display of the input title.
Definition: video_output.c:348
vout_crop::height
unsigned height
Definition: vout_internal.h:115
vout_thread_sys_t::snapshot
struct vout_snapshot * snapshot
Definition: video_output.c:117
DrawRect
static void DrawRect(subpicture_region_t *r, int fill, uint8_t color, int x1, int y1, int x2, int y2)
Draws a rectangle at the given position in the region.
Definition: video_widgets.c:60
video_format_FixRgb
void video_format_FixRgb(video_format_t *p_fmt)
This function will fill all RGB shift from RGB masks.
Definition: es_format.c:37
vlc_mutex_t
Mutex.
Definition: vlc_threads.h:225
vout_thread_sys_t::original
video_format_t original
Definition: video_output.c:108
vout_window_SetFullScreen
static void vout_window_SetFullScreen(vout_window_t *window, const char *id)
Requests fullscreen mode.
Definition: vlc_vout_window.h:495
vout_SetSpuHighlight
void vout_SetSpuHighlight(vout_thread_t *vout, const vlc_spu_highlight_t *spu_hl)
Definition: video_output.c:432
vout_thread_sys_t::dummy
bool dummy
Definition: video_output.c:99
filter_AddProxyCallbacks
#define filter_AddProxyCallbacks(a, b, c)
Definition: vlc_filter.h:376
var_ToggleBool
static bool var_ToggleBool(vlc_object_t *p_obj, const char *psz_name)
Definition: vlc_variables.h:666
video_format_ApplyRotation
void video_format_ApplyRotation(video_format_t *restrict out, const video_format_t *restrict in)
Definition: es_format.c:330
VOUT_SPU_CHANNEL_INVALID
#define VOUT_SPU_CHANNEL_INVALID
Definition: vlc_vout.h:127
picture_pool_Wait
picture_t * picture_pool_Wait(picture_pool_t *pool)
Obtains a picture from a pool.
Definition: picture_pool.c:201
vout_thread_sys_t::displayed
struct vout_thread_sys_t::@116 displayed
vout_chrono_GetHigh
static vlc_tick_t vout_chrono_GetHigh(vout_chrono_t *chrono)
Definition: chrono.h:58
vout_ControlChangeSubFilters
void vout_ControlChangeSubFilters(vout_thread_t *, const char *)
Definition: video_output.c:701
vout_crop::y
unsigned y
Definition: vout_internal.h:113
vout_OSDTextRegion
static subpicture_region_t * vout_OSDTextRegion(text_segment_t *p_segment, int x, int y)
Definition: video_epg.c:253
filter_t::fmt_out
es_format_t fmt_out
Definition: vlc_filter.h:228
OSDEPG_HEIGHT
#define OSDEPG_HEIGHT
Definition: video_epg.c:44
vout_NextPicture
void vout_NextPicture(vout_thread_t *vout, vlc_tick_t *duration)
This function will force to display the next picture while paused.
Definition: video_output.c:1548
vlc_fourcc_GetCodec
vlc_fourcc_t vlc_fourcc_GetCodec(int cat, vlc_fourcc_t fourcc)
It returns the codec associated to a fourcc within an ES category.
Definition: fourcc.c:112
vout_configuration_t
Vout configuration.
Definition: vout_internal.h:43
video_format_t::i_frame_rate
unsigned int i_frame_rate
frame rate numerator
Definition: vlc_es.h:366
vlc_meta_Title
@ vlc_meta_Title
Definition: vlc_meta.h:35
vout_control_t
Definition: control.h:29
vout_display_cfg::window
struct vout_window_t * window
Window.
Definition: vlc_vout_display.h:95
STYLE_FILLED
#define STYLE_FILLED
Definition: video_widgets.c:41
vout_DisableWindow
static void vout_DisableWindow(vout_thread_sys_t *sys)
Definition: video_output.c:1864
vlc_clone
int vlc_clone(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Creates and starts a new thread.
Definition: thread.c:144
ARGB_BGCOLOR
#define ARGB_BGCOLOR
Definition: video_epg.c:67
video_palette_t
Definition: vlc_es.h:43
vout_display_place_t::height
unsigned height
Definition: vlc_vout_display.h:484
text_style_t::i_features
uint16_t i_features
Feature flags (means non default)
Definition: vlc_text_style.h:66
filter_chain_GetVideoCtxOut
vlc_video_context * filter_chain_GetVideoCtxOut(const filter_chain_t *p_chain)
Get last output video context of the last element in the filter chain.
Definition: filter_chain.c:415
osd_spu_updater_sys_t::text
char * text
Definition: video_text.c:56
vlc_path2uri
char * vlc_path2uri(const char *path, const char *scheme)
Converts local path to URL.
Definition: url.c:143
msg_Warn
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
vlc_epg_event_t::i_duration
uint32_t i_duration
Definition: vlc_epg.h:35
vout_thread_sys_t::is_interlaced
bool is_interlaced
Definition: video_output.c:135
STYLE_HAS_OUTLINE_ALPHA
#define STYLE_HAS_OUTLINE_ALPHA
Definition: vlc_text_style.h:89
VoutGetDisplayCfg
static void VoutGetDisplayCfg(vout_thread_sys_t *p_vout, const video_format_t *fmt, vout_display_cfg_t *cfg)
Definition: video_output.c:736
vlc_assert_unreachable
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
vout_display_place_t
Video placement.
Definition: vlc_vout_display.h:480
vout_thread_sys_t::obj
struct vout_thread_t obj
Definition: video_output.c:95
picture_NewFromFormat
picture_t * picture_NewFromFormat(const video_format_t *restrict fmt)
Definition: picture.c:259
vout_thread_sys_t::display_lock
vlc_mutex_t display_lock
Definition: video_output.c:175
epg_spu_updater_sys_t
Definition: video_epg.c:69
picture_fifo_New
picture_fifo_t * picture_fifo_New(void)
It creates an empty picture_fifo_t.
Definition: picture_fifo.c:58
vlc_array_t
Definition: vlc_arrays.h:258
filter_chain_NewVideo
#define filter_chain_NewVideo(a, b, c)
Definition: vlc_filter.h:492
vout_ChangeCrop
void vout_ChangeCrop(vout_thread_t *vout, const struct vout_crop *restrict crop)
Definition: video_output.c:644
vout_SetDisplayZoom
void vout_SetDisplayZoom(vout_display_t *vd, unsigned num, unsigned den)
Definition: display.c:600
vout_PutSubpicture
void vout_PutSubpicture(vout_thread_t *vout, subpicture_t *subpic)
Definition: video_output.c:379
vout_display_cfg::viewpoint
vlc_viewpoint_t viewpoint
Definition: vlc_vout_display.h:125
OSD_VERT_SLIDER
@ OSD_VERT_SLIDER
Definition: vlc_vout_osd.h:53
ThreadDelAllFilterCallbacks
static void ThreadDelAllFilterCallbacks(vout_thread_sys_t *vout)
Definition: video_output.c:790
vout_RegisterSubpictureChannelInternal
ssize_t vout_RegisterSubpictureChannelInternal(vout_thread_t *, vlc_clock_t *clock, enum vlc_vout_order *out_order)
Definition: video_output.c:402
filter_owner_t
Definition: vlc_filter.h:65
video_format_t::i_width
unsigned int i_width
picture width
Definition: vlc_es.h:354
vout_snapshot_New
vout_snapshot_t * vout_snapshot_New(void)
Definition: snapshot.c:52
subpicture_t::i_channel
ssize_t i_channel
subpicture channel ID
Definition: vlc_subpicture.h:170
var_SetString
static int var_SetString(vlc_object_t *p_obj, const char *psz_name, const char *psz_string)
Set the value of a string variable.
Definition: vlc_variables.h:345
SUBPICTURE_ALIGN_MASK
#define SUBPICTURE_ALIGN_MASK
Definition: vlc_subpicture.h:99
vlc_tick_now
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
vout_Close
void vout_Close(vout_thread_t *vout)
Destroys a vout.
Definition: video_output.c:1885
vout_thread_sys_t::spu
spu_t * spu
Definition: video_output.c:123
SET_PALETTE_COLOR
#define SET_PALETTE_COLOR(id, rgb, alpha)
Definition: video_widgets.c:50
STYLE_HAS_WRAP_INFO
#define STYLE_HAS_WRAP_INFO
Definition: vlc_text_style.h:94
chrono.h
vout_ChangeZoom
void vout_ChangeZoom(vout_thread_t *, unsigned num, unsigned den)
Definition: video_output.c:584
vout_window_Disable
void vout_window_Disable(vout_window_t *window)
Disables a window.
Definition: window.c:113
vout_control_Clean
void vout_control_Clean(vout_control_t *ctrl)
Definition: control.c:45
VLC_VIDEO_ALIGN_TOP
#define VLC_VIDEO_ALIGN_TOP
Definition: vlc_vout_display.h:58
vout_crop::width
unsigned width
Definition: vout_internal.h:114
text_style_t::i_font_color
int i_font_color
The color of the text 0xRRGGBB (native endianness)
Definition: vlc_text_style.h:72
SUBPICTURE_ALIGN_LEFT
#define SUBPICTURE_ALIGN_LEFT
Definition: vlc_subpicture.h:95
VLC_CODEC_RGB32
#define VLC_CODEC_RGB32
Definition: vlc_fourcc.h:349
config_chain_t
Definition: vlc_configuration.h:331
vout_thread_sys_t::delay
vlc_tick_t delay
Definition: video_output.c:106
SUBPICTURE_ALIGN_BOTTOM
#define SUBPICTURE_ALIGN_BOTTOM
Definition: vlc_subpicture.h:98
subpicture_updater_t::pf_validate
int(* pf_validate)(subpicture_t *, bool has_src_changed, const video_format_t *p_fmt_src, bool has_dst_changed, const video_format_t *p_fmt_dst, vlc_tick_t)
Optional pre update callback, usually useful on video format change.
Definition: vlc_subpicture.h:140
vout_ChangeDisplaySize
void vout_ChangeDisplaySize(vout_thread_t *, unsigned width, unsigned height, void(*ack_cb)(void *), void *opaque)
Definition: video_output.c:545
video_format_t::i_x_offset
unsigned int i_x_offset
start offset of visible area
Definition: vlc_es.h:356
spu_Destroy
void spu_Destroy(spu_t *spu)
Destroy the subpicture unit.
Definition: vout_subpictures.c:1623
vlc_array_count
static size_t vlc_array_count(vlc_array_t *p_array)
Definition: vlc_arrays.h:277
vlc_atomic_rc_inc
static void vlc_atomic_rc_inc(vlc_atomic_rc_t *rc)
Increment the RC.
Definition: vlc_atomic.h:52
vout_display_t::source
const video_format_t * source
Source video format.
Definition: vlc_vout_display.h:335
filter_t
Structure describing a filter.
Definition: vlc_filter.h:215
vout_thread_sys_t::private
vout_thread_private_t private
Definition: video_output.c:97
spu_SetClockRate
void spu_SetClockRate(spu_t *spu, size_t channel_id, float rate)
Definition: vout_subpictures.c:1773
es_format_t
Definition: vlc_es.h:617
picture_fifo_t
Definition: picture_fifo.c:39
vlc_atomic.h
spu_ChangeChannelOrderMargin
void spu_ChangeChannelOrderMargin(spu_t *, enum vlc_vout_order, int)
Definition: vout_subpictures.c:2112
vlc_tick_t
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
vout_thread_sys_t::window_width
unsigned window_width
Definition: video_output.c:167
vlc_clock_Reset
void vlc_clock_Reset(vlc_clock_t *clock)
This function resets the clock drift.
Definition: clock.c:492
plane_t::i_pitch
int i_pitch
Number of bytes in a line, including margins.
Definition: vlc_picture.h:46
vout_CloseWrapper
void vout_CloseWrapper(vout_thread_t *, vout_thread_private_t *, vout_display_t *vd)
Definition: vout_wrapper.c:131
vout_thread_sys_t::rc
vlc_atomic_rc_t rc
Definition: video_output.c:193
vout_OSDIcon
void vout_OSDIcon(vout_thread_t *vout, int channel, short type)
Display an Icon on the video output.
Definition: video_widgets.c:335
vout_statistic_AddLost
static void vout_statistic_AddLost(vout_statistic_t *stat, int lost)
Definition: statistic.h:66
filter_owner_t::sys
void * sys
Definition: vlc_filter.h:78
vlc_epg_event_t::i_start
int64_t i_start
Definition: vlc_epg.h:34
subpicture_t
Video subtitle.
Definition: vlc_subpicture.h:166
vout_control_Pop
int vout_control_Pop(vout_control_t *ctrl, vlc_mouse_t *mouse, vlc_tick_t deadline)
Definition: control.c:85
vout_display_cfg
User configuration for a video output display (vout_display_t)
Definition: vlc_vout_display.h:94
ThreadDisplayPreparePicture
static picture_t * ThreadDisplayPreparePicture(vout_thread_sys_t *vout, bool reuse_decoded, bool frame_by_frame, bool *paused)
Definition: video_output.c:953
vout_OSDText
void vout_OSDText(vout_thread_t *vout, int channel, int position, vlc_tick_t duration, const char *text)
Write an informative message if the OSD option is enabled.
Definition: video_text.c:105
vlc_meta_ArtworkURL
@ vlc_meta_ArtworkURL
Definition: vlc_meta.h:51
filter_chain_VideoFlush
void filter_chain_VideoFlush(filter_chain_t *p_chain)
Flush a video filter chain.
Definition: filter_chain.c:464
subpicture_t::p_region
subpicture_region_t * p_region
region list composing this subtitle
Definition: vlc_subpicture.h:180
vout_CreateDummy
vout_thread_t * vout_CreateDummy(vlc_object_t *obj)
Definition: video_output.c:1955
vlc_filter.h
subpicture_region_t::i_align
int i_align
alignment flags of region
Definition: vlc_subpicture.h:66
picture_BlendSubpicture
unsigned picture_BlendSubpicture(picture_t *dst, vlc_blender_t *blend, subpicture_t *src)
This function will blend a given subpicture onto a picture.
Definition: subpicture.c:291
picture_Copy
void picture_Copy(picture_t *p_dst, const picture_t *p_src)
This function will copy both picture dynamic properties and pixels.
Definition: picture.c:411
spu_t
Subpicture unit descriptor.
Definition: vlc_spu.h:47
vout_RegisterSubpictureChannel
ssize_t vout_RegisterSubpictureChannel(vout_thread_t *vout)
Definition: video_output.c:390
vlc_decoder_device
Decoder context struct.
Definition: vlc_codec.h:566
vout_SetDisplayAspect
void vout_SetDisplayAspect(vout_display_t *vd, unsigned dar_num, unsigned dar_den)
Definition: display.c:614
OSDTextDestroy
static void OSDTextDestroy(subpicture_t *subpic)
Definition: video_text.c:97
vout_FlushUnlocked
static void vout_FlushUnlocked(vout_thread_sys_t *vout, bool below, vlc_tick_t date)
Definition: video_output.c:1501
ThreadFilterFlush
static void ThreadFilterFlush(vout_thread_sys_t *sys, bool is_locked)
Definition: video_output.c:823
VoutVideoFilterStaticNewPicture
static picture_t * VoutVideoFilterStaticNewPicture(filter_t *filter)
Definition: video_output.c:810
vout_OSDEpg
int vout_OSDEpg(vout_thread_t *vout, input_item_t *input)
Show EPG information about the current program of an input item.
Definition: video_epg.c:551
vout_display_t::ops
const struct vlc_display_operations * ops
Callbacks the display module must set on Open.
Definition: vlc_vout_display.h:374
vout_GetDevice
vlc_decoder_device * vout_GetDevice(vout_thread_t *vout)
Setup the vout for the given configuration and get an associated decoder device.
Definition: video_output.c:2186
vout_thread_sys_t::window_enabled
bool window_enabled
Definition: video_output.c:166
vout_thread_t::obj
struct vlc_object_t obj
Definition: vlc_vout.h:56
vlc_vout_display.h
subpicture_region_t
Video subtitle region.
Definition: vlc_subpicture.h:59
vout_Hold
vout_thread_t * vout_Hold(vout_thread_t *vout)
Definition: video_output.c:2047
VLC_TICK_INVALID
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
VLC_CODEC_PNG
#define VLC_CODEC_PNG
Definition: vlc_fourcc.h:437
vout_ChangeDelay
void vout_ChangeDelay(vout_thread_t *, vlc_tick_t delay)
This function will change the delay of the vout It is thread safe.
Definition: video_output.c:1571
vlc_plugin.h
text_style_t::i_font_size
int i_font_size
The font size in pixels.
Definition: vlc_text_style.h:71
vout_ChangePause
void vout_ChangePause(vout_thread_t *, bool b_paused, vlc_tick_t i_date)
This function will (un)pause the display of pictures.
Definition: video_output.c:1478
OSDEPG_LOGO_SIZE
#define OSDEPG_LOGO_SIZE
Definition: video_epg.c:51
picture_fifo_Flush
void picture_fifo_Flush(picture_fifo_t *fifo, vlc_tick_t date, bool flush_before)
It release all picture inside the fifo that have a lower or equal date if flush_before or higher or e...
Definition: picture_fifo.c:91
vlc_epg_t::pp_event
vlc_epg_event_t ** pp_event
Definition: vlc_epg.h:57
vout_thread_sys_t::spu_blend
vlc_blender_t * spu_blend
Definition: video_output.c:125
vout_SetAspectRatio
static void vout_SetAspectRatio(vout_thread_sys_t *sys, unsigned dar_num, unsigned dar_den)
Definition: video_output.c:618
spu_ChangeSources
void spu_ChangeSources(spu_t *spu, const char *filters)
It changes the sub sources list.
Definition: vout_subpictures.c:2074
vout_window_cfg_t::is_fullscreen
bool is_fullscreen
Whether the window should be in full screen mode or not.
Definition: vlc_vout_window.h:152
vout_ChangeRate
void vout_ChangeRate(vout_thread_t *vout, float rate)
This function will change the rate of the vout It is thread safe.
Definition: video_output.c:1583
vout_display_cfg::zoom
vlc_rational_t zoom
Zoom ratio.
Definition: vlc_vout_display.h:123
vout_thread_sys_t::decoded
picture_t * decoded
Definition: video_output.c:136
subpicture_t::i_original_picture_width
int i_original_picture_width
original width of the movie
Definition: vlc_subpicture.h:198
spuregion_CreateVGradientPalette
static void spuregion_CreateVGradientPalette(video_palette_t *p_palette, uint8_t i_splits, uint32_t argb1, uint32_t argb2)
Definition: vout_spuregion_helper.h:31
vout_thread_sys_t::is_late_dropped
bool is_late_dropped
Definition: video_output.c:158
picture_t::b_force
bool b_force
Definition: vlc_picture.h:135
vlc_display_operations::display
void(* display)(vout_display_t *, picture_t *pic)
Displays a picture.
Definition: vlc_vout_display.h:281
VOUT_ALIGN_TOP
#define VOUT_ALIGN_TOP
Definition: vlc_vout.h:63
STYLE_ALPHA_OPAQUE
#define STYLE_ALPHA_OPAQUE
Definition: vlc_text_style.h:79
vout_window_cfg_t::width
unsigned width
Intended pixel width of the window.
Definition: vlc_vout_window.h:168
vout_IntfReinit
void vout_IntfReinit(vout_thread_t *)
Definition: vout_intf.c:308
vlc_thread_t
Thread handle.
Definition: vlc_threads.h:180
vlc_mouse_t::i_y
int i_y
Definition: vlc_mouse.h:49
epg_spu_updater_sys_t::epg
vlc_epg_t * epg
Definition: video_epg.c:71
vout_display_cfg::height
unsigned height
Requested display pixel height (0 by default).
Definition: vlc_vout_display.h:100
text_segment_Delete
void text_segment_Delete(text_segment_t *segment)
Delete a text segment and its content.
Definition: text_style.c:421
vout_CreateCommon
static vout_thread_sys_t * vout_CreateCommon(vlc_object_t *object)
Definition: video_output.c:1938
vlc_mouse_HasMoved
static bool vlc_mouse_HasMoved(const vlc_mouse_t *p_old, const vlc_mouse_t *p_new)
Definition: vlc_mouse.h:131
vout_display_cfg::is_display_filled
bool is_display_filled
Automatic scaling/fitting flag.
Definition: vlc_vout_display.h:120
vout_FillRightPanel
static void vout_FillRightPanel(epg_spu_updater_sys_t *p_sys, int x, int y, int width, int height, int rx, int ry, subpicture_region_t **last_ptr)
Definition: video_epg.c:319
input_item_GetMeta
char * input_item_GetMeta(input_item_t *p_i, vlc_meta_type_t meta_type)
Definition: item.c:245
OSD_HOR_SLIDER
@ OSD_HOR_SLIDER
Definition: vlc_vout_osd.h:52
epg_spu_updater_sys_t::obj
vlc_object_t * obj
Definition: video_epg.c:74
vout_ControlChangeInterlacing
void vout_ControlChangeInterlacing(vout_thread_t *, bool)
Definition: video_output.c:684
vout_crop_mode
vout_crop_mode
Definition: vout_internal.h:103
SUBPICTURE_ALIGN_RIGHT
#define SUBPICTURE_ALIGN_RIGHT
Definition: vlc_subpicture.h:96
text_style_t::i_font_alpha
uint8_t i_font_alpha
The transparency of the text.
Definition: vlc_text_style.h:74
vlc_clock_t
Definition: clock.c:62
vlc_video_align::horizontal
char horizontal
Horizontal alignment.
Definition: vlc_vout_display.h:71
var_GetFloat
static float var_GetFloat(vlc_object_t *p_obj, const char *psz_name)
Get a float value.
Definition: vlc_variables.h:421
vout_StopDisplay
void vout_StopDisplay(vout_thread_t *)
Stop the display plugin, but keep its window plugin for later reuse.
Definition: video_output.c:1852
vout_ChangeSource
int vout_ChangeSource(vout_thread_t *vout, const video_format_t *original)
Set the new source format for a started vout.
Definition: video_output.c:2055
vout_SetDisplayCrop
void vout_SetDisplayCrop(vout_display_t *vd, const struct vout_crop *restrict crop)
Definition: display.c:632
spuregion_CreateVGradientFill
static void spuregion_CreateVGradientFill(plane_t *p, uint8_t i_splits)
Definition: vout_spuregion_helper.h:49
vout_Flush
void vout_Flush(vout_thread_t *vout, vlc_tick_t date)
This function will ensure that all ready/displayed pictures have at most the provided date.
Definition: video_output.c:1538
VOUT_DISPLAY_LATE_THRESHOLD
#define VOUT_DISPLAY_LATE_THRESHOLD
Late pictures having a delay higher than this value are thrashed.
Definition: video_output.c:181
vout_statistic_Init
static void vout_statistic_Init(vout_statistic_t *stat)
Definition: statistic.h:36
VoutHoldDecoderDevice
static vlc_decoder_device * VoutHoldDecoderDevice(vlc_object_t *o, void *opaque)
Definition: video_output.c:1041
spu_ChangeFilters
void spu_ChangeFilters(spu_t *spu, const char *filters)
It changes the sub filters list.
Definition: vout_subpictures.c:2093
vout_ChangeWindowed
void vout_ChangeWindowed(vout_thread_t *vout)
Definition: video_output.c:525
subpicture_region_t::p_next
subpicture_region_t * p_next
next region in the list
Definition: vlc_subpicture.h:81
vout_snapshot_End
void vout_snapshot_End(vout_snapshot_t *snap)
Definition: snapshot.c:80
OSDWidgetUpdate
static void OSDWidgetUpdate(subpicture_t *subpic, const video_format_t *fmt_src, const video_format_t *fmt_dst, vlc_tick_t ts)
Definition: video_widgets.c:267
text_style_t::i_shadow_alpha
uint8_t i_shadow_alpha
The transparency of the shadow.
Definition: vlc_text_style.h:84
vout_ControlChangeSubFilters
void vout_ControlChangeSubFilters(vout_thread_t *vout, const char *filters)
Definition: video_output.c:701
vout_ChangeFullscreen
void vout_ChangeFullscreen(vout_thread_t *vout, const char *id)
Definition: video_output.c:516
video_format_t::i_visible_height
unsigned int i_visible_height
height of visible area
Definition: vlc_es.h:359
subpicture_t::b_subtitle
bool b_subtitle
the picture is a movie subtitle
Definition: vlc_subpicture.h:196
vout_SetSpuHighlight
void vout_SetSpuHighlight(vout_thread_t *p_vout, const vlc_spu_highlight_t *)
Definition: video_output.c:432
vlc_rational_t
Definition: fourcc_gen.c:34
VOUT_ALIGN_RIGHT
#define VOUT_ALIGN_RIGHT
Definition: vlc_vout.h:61
vout_thread_private_t::private_pool
picture_pool_t * private_pool
Definition: vout_private.h:42
video_format_t::pose
vlc_viewpoint_t pose
Definition: vlc_es.h:382
filter_owner_t::video
const struct filter_video_callbacks * video
Definition: vlc_filter.h:69
vout_thread_private_t::interlacing
struct vout_thread_private_t::@128 interlacing
vout_thread_sys_t::thread
vlc_thread_t thread
Definition: video_output.c:130
vout_ChangeSpuDelay
void vout_ChangeSpuDelay(vout_thread_t *vout, size_t channel_id, vlc_tick_t delay)
This function will change the delay of the spu channel It is thread safe.
Definition: video_output.c:1593
vout_control_Release
void vout_control_Release(vout_control_t *ctrl)
Definition: control.c:76
vout_crop
Definition: vout_internal.h:107
video_format_t::i_sar_den
unsigned int i_sar_den
Definition: vlc_es.h:364
vlc_clock_UpdateVideo
vlc_tick_t vlc_clock_UpdateVideo(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate, unsigned frame_rate, unsigned frame_rate_base)
This function will update the video clock drift and returns the drift.
Definition: clock.c:485
filter_chain_IsEmpty
bool filter_chain_IsEmpty(const filter_chain_t *chain)
Checks if the filter chain is empty.
Definition: filter_chain.c:401
subpicture_New
subpicture_t * subpicture_New(const subpicture_updater_t *p_upd)
This function create a new empty subpicture.
Definition: subpicture.c:43
vout_chrono_Clean
static void vout_chrono_Clean(vout_chrono_t *chrono)
Definition: chrono.h:50
vlc_video_context
Definition: decoder_helpers.c:228
vout_display_window_Delete
void vout_display_window_Delete(vout_window_t *window)
Destroys a video window.
Definition: window.c:402
osdwidget_spu_updater_sys_t
Definition: video_widgets.c:248
vout_OpenWrapper
vout_display_t * vout_OpenWrapper(vout_thread_t *, vout_thread_private_t *, const char *, const vout_display_cfg_t *, video_format_t *, vlc_video_context *)
Definition: vout_wrapper.c:58
vout_statistic_AddLate
static void vout_statistic_AddLate(vout_statistic_t *stat, int late)
Definition: statistic.h:71
vout_thread_sys_t::filter
struct vout_thread_sys_t::@120 filter
vlc_url.h
OSD_PLAY_ICON
@ OSD_PLAY_ICON
Definition: vlc_vout_osd.h:47
text_segment_t::style
text_style_t * style
style applied to this segment
Definition: vlc_text_style.h:142
picture_fifo_Push
void picture_fifo_Push(picture_fifo_t *fifo, picture_t *picture)
It saves a picture_t into the fifo.
Definition: picture_fifo.c:69
vout_ChangeDisplayFilled
void vout_ChangeDisplayFilled(vout_thread_t *vout, bool is_filled)
Definition: video_output.c:567
vout_crop::left
unsigned left
Definition: vout_internal.h:118
vlc_epg_t
Definition: vlc_epg.h:51
vout_filter_t::name
char * name
Definition: video_output.c:840
vlc_object_t
VLC object common members.
Definition: vlc_objects.h:43
ThreadDisplayRenderPicture
static int ThreadDisplayRenderPicture(vout_thread_sys_t *vout, bool render_now)
Definition: video_output.c:1105
vout_snapshot_IsRequested
bool vout_snapshot_IsRequested(vout_snapshot_t *snap)
It tells if they are pending snapshot request.
Definition: snapshot.c:120
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, vlc_tick_t system_now, vlc_tick_t render_subtitle_date, bool ignore_osd, bool external_scale)
This function will return an unique subpicture containing the OSD and subtitles visibles at the reque...
Definition: vout_subpictures.c:1895
plane_t::i_visible_pitch
int i_visible_pitch
How many visible pixels are there?
Definition: vlc_picture.h:53
config_ChainCreate
char * config_ChainCreate(char **ppsz_name, config_chain_t **pp_cfg, const char *psz_chain)
This function will parse a configuration string (psz_string) and.
Definition: chain.c:225
vout_UpdateDisplaySourceProperties
void vout_UpdateDisplaySourceProperties(vout_display_t *vd, const video_format_t *source, const vlc_rational_t *forced_dar)
Definition: display.c:544
vout_OSDRegionConstrain
static void vout_OSDRegionConstrain(subpicture_region_t *p_region, int w, int h)
Definition: video_epg.c:244
vlc_rational_t::num
unsigned num
Definition: fourcc_gen.c:34
vlc_decoder_device_Release
void vlc_decoder_device_Release(vlc_decoder_device *device)
Release a decoder device.
Definition: decoder_helpers.c:213
vout_thread_sys_t::statistic
vout_statistic_t statistic
Definition: video_output.c:120
vlc_array_init
static void vlc_array_init(vlc_array_t *p_array)
Definition: vlc_arrays.h:264
config_ChainDestroy
void config_ChainDestroy(config_chain_t *p_cfg)
This function will release a linked list of config_chain_t (Including the head)
Definition: chain.c:253
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:186
vout_chrono_Start
static void vout_chrono_Start(vout_chrono_t *chrono)
Definition: chrono.h:54
VLC_UNUSED
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
vout_ChangeDisplayAspectRatio
void vout_ChangeDisplayAspectRatio(vout_thread_t *, unsigned num, unsigned den)
Definition: video_output.c:625
vout_ChangeWindowState
void vout_ChangeWindowState(vout_thread_t *vout, unsigned st)
Definition: video_output.c:536
vout_statistic_GetReset
static void vout_statistic_GetReset(vout_statistic_t *stat, unsigned *restrict displayed, unsigned *restrict lost, unsigned *restrict late)
Definition: statistic.h:48
vout_thread_sys_t::timestamp
vlc_tick_t timestamp
Definition: video_output.c:134
VLC_CODEC_YUVA
#define VLC_CODEC_YUVA
Definition: vlc_fourcc.h:270
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
vlc_vout_osd.h
VLC_THREAD_PRIORITY_OUTPUT
#define VLC_THREAD_PRIORITY_OUTPUT
Definition: vlc_threads.h:211
plane_t::p_pixels
uint8_t * p_pixels
Start of the plane's data.
Definition: vlc_picture.h:42
vout_OSDPrintTime
static char * vout_OSDPrintTime(time_t t)
Definition: video_epg.c:288
vlc_array_clear
static void vlc_array_clear(vlc_array_t *p_array)
Definition: vlc_arrays.h:270
video_format_t::i_visible_width
unsigned int i_visible_width
width of visible area
Definition: vlc_es.h:358
vout_IntfInit
void vout_IntfInit(vout_thread_t *)
Definition: vout_intf.c:287
strdup
char * strdup(const char *)
vlc_epg_event_t::psz_name
char * psz_name
Definition: vlc_epg.h:38
OSDEPG_ROWS
#define OSDEPG_ROWS(x)
Definition: video_epg.c:56
filter_chain_t
Definition: filter_chain.c:46
var_InheritInteger
static int64_t var_InheritInteger(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:685
VideoFormatIsCropArEqual
static bool VideoFormatIsCropArEqual(video_format_t *dst, const video_format_t *src)
Definition: video_output.c:205
spu_ClearChannel
void spu_ClearChannel(spu_t *spu, size_t channel_id)
It clears all subpictures associated to a SPU channel.
Definition: vout_subpictures.c:2049
VLC_TICK_FROM_MS
#define VLC_TICK_FROM_MS(ms)
Definition: vlc_tick.h:122
config_GetSysPath
char * config_GetSysPath(vlc_sysdir_t type, const char *filename)
Gets an installation directory.
Definition: specific.c:306
filter_chain_AppendConverter
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
VLC_USED
#define VLC_USED
Definition: fourcc_gen.c:32
vout_InitSource
static void vout_InitSource(vout_thread_sys_t *vout)
Definition: video_output.c:2102
subpicture_t::b_fade
bool b_fade
enable fading
Definition: vlc_subpicture.h:188
vout_ChangeSource
int vout_ChangeSource(vout_thread_t *p_vout, const video_format_t *fmt)
Set the new source format for a started vout.
Definition: video_output.c:2055
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:390
OSDWidgetDestroy
static void OSDWidgetDestroy(subpicture_t *subpic)
Definition: video_widgets.c:290
display.h
vlc_epg_t::i_source_id
uint16_t i_source_id
Definition: vlc_epg.h:55
vout_window_cfg_t
Window (desired) configuration.
Definition: vlc_vout_window.h:148
vout_control_Wake
void vout_control_Wake(vout_control_t *ctrl)
Definition: control.c:59
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:502
vout_thread_sys_t::current
picture_t * current
Definition: video_output.c:137
vout_FlushSubpictureChannel
void vout_FlushSubpictureChannel(vout_thread_t *vout, size_t channel)
Definition: video_output.c:424
vlc_custom_create
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
VLC_TICK_FROM_SEC
#define VLC_TICK_FROM_SEC(sec)
Definition: vlc_tick.h:52
ORIENT_IS_SWAP
#define ORIENT_IS_SWAP(orient)
If the orientation swaps dimensions.
Definition: vlc_es.h:206
OSDEPG_LEFT
#define OSDEPG_LEFT
Definition: video_epg.c:45
vlc_epg_AddEvent
bool vlc_epg_AddEvent(vlc_epg_t *p_epg, vlc_epg_event_t *p_evt)
It appends a new vlc_epg_event_t to a vlc_epg_t.
Definition: epg.c:133
vout_ChangeSpuDelay
void vout_ChangeSpuDelay(vout_thread_t *, size_t channel_id, vlc_tick_t delay)
This function will change the delay of the spu channel It is thread safe.
Definition: video_output.c:1593
var_GetBool
static bool var_GetBool(vlc_object_t *p_obj, const char *psz_name)
Get a boolean value.
Definition: vlc_variables.h:390
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
VoutFixFormatAR
void VoutFixFormatAR(video_format_t *fmt)
Definition: display.c:534
vout_Stop
void vout_Stop(vout_thread_t *vout)
Disables a vout.
Definition: video_output.c:1874
vlc_decoder_device_Hold
vlc_decoder_device * vlc_decoder_device_Hold(vlc_decoder_device *device)
Hold a decoder device.
Definition: decoder_helpers.c:204
vout_chrono_Stop
static void vout_chrono_Stop(vout_chrono_t *chrono)
Definition: chrono.h:67
name
const char name[16]
Definition: httpd.c:1268
STYLE_ALPHA_TRANSPARENT
#define STYLE_ALPHA_TRANSPARENT
Definition: vlc_text_style.h:80
vout_window_Enable
int vout_window_Enable(vout_window_t *window, const vout_window_cfg_t *restrict cfg)
Definition: window.c:100
video_format_Init
static void video_format_Init(video_format_t *p_src, vlc_fourcc_t i_chroma)
Initialize a video_format_t structure with chroma 'i_chroma'.
Definition: vlc_es.h:403
subpicture_region_t::p_picture
picture_t * p_picture
picture comprising this region
Definition: vlc_subpicture.h:62
vout_control_Hold
void vout_control_Hold(vout_control_t *ctrl)
Definition: control.c:67
VLC_VIDEO_ALIGN_RIGHT
#define VLC_VIDEO_ALIGN_RIGHT
Definition: vlc_vout_display.h:57
STYLE_HAS_SHADOW_ALPHA
#define STYLE_HAS_SHADOW_ALPHA
Definition: vlc_text_style.h:91
COL_TRANSPARENT
#define COL_TRANSPARENT
Definition: video_widgets.c:45
vlc_array_item_at_index
#define vlc_array_item_at_index(ar, idx)
Definition: vlc_arrays.h:283
vout_snapshot_Set
void vout_snapshot_Set(vout_snapshot_t *snap, const video_format_t *fmt, picture_t *picture)
It set the picture used to create the snapshots.
Definition: snapshot.c:133
ThreadDisplayPicture
static int ThreadDisplayPicture(vout_thread_sys_t *vout, vlc_tick_t *deadline)
Definition: video_output.c:1355
VLC_TICK_0
#define VLC_TICK_0
Definition: vlc_config.h:45
vout_video_cbs
static const struct filter_video_callbacks vout_video_cbs
Definition: video_output.c:1048
vout_thread_sys_t::last
vlc_tick_t last
Definition: video_output.c:141
vlc_epg_Delete
void vlc_epg_Delete(vlc_epg_t *p_epg)
It releases a vlc_epg_t*.
Definition: epg.c:198
vout_ChangeWindowed
void vout_ChangeWindowed(vout_thread_t *)
Definition: video_output.c:525
vlc_vout_order
vlc_vout_order
vout or spu_channel order
Definition: vlc_vout.h:70
snapshot.h
vout_crop::border
struct vout_crop::@121::@124 border
vout_thread_sys_t::window_lock
vlc_mutex_t window_lock
Definition: video_output.c:169
vout_snapshot_Get
picture_t * vout_snapshot_Get(vout_snapshot_t *snap, vlc_tick_t timeout)
Definition: snapshot.c:94
vout_filter_t::cfg
config_chain_t * cfg
Definition: video_output.c:841
VLC_CODEC_YUVP
#define VLC_CODEC_YUVP
Definition: vlc_fourcc.h:267
video_format_IsSimilar
bool video_format_IsSimilar(const video_format_t *f1, const video_format_t *f2)
This function will check if the first video format is similar to the second one.
Definition: es_format.c:338
vout_GetResetStatistic
void vout_GetResetStatistic(vout_thread_t *p_vout, unsigned *pi_displayed, unsigned *pi_lost, unsigned *pi_late)
This function will return and reset internal statistics.
var_SetInteger
static int var_SetInteger(vlc_object_t *p_obj, const char *psz_name, int64_t i)
Set the value of an integer variable.
Definition: vlc_variables.h:293
vout_IsEmpty
bool vout_IsEmpty(vout_thread_t *vout)
This function will return true if no more pictures are to be displayed.
Definition: video_output.c:338
control.h
vout_thread_sys_t::mouse_event
vlc_mouse_event mouse_event
Definition: video_output.c:162
window.h
OSDEpgValidate
static int OSDEpgValidate(subpicture_t *subpic, bool has_src_changed, const video_format_t *fmt_src, bool has_dst_changed, const video_format_t *fmt_dst, vlc_tick_t ts)
Definition: video_epg.c:499
subpicture_t::i_stop
vlc_tick_t i_stop
end of display date
Definition: vlc_subpicture.h:185
vlc_display_operations::prepare
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
vlc_epg_event_Duplicate
vlc_epg_event_t * vlc_epg_event_Duplicate(const vlc_epg_event_t *p_src)
Returns a vlc_epg_event_t * duplicated from p_src.
Definition: epg.c:74
vout_ParseCrop
bool vout_ParseCrop(struct vout_crop *, const char *crop_str)
filter_chain_Reset
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
video_format_t::i_height
unsigned int i_height
picture height
Definition: vlc_es.h:355
var_GetInteger
static int64_t var_GetInteger(vlc_object_t *p_obj, const char *psz_name)
Get an integer value.
Definition: vlc_variables.h:374
vout_thread_sys_t::spu_blend_chroma
vlc_fourcc_t spu_blend_chroma
Definition: video_output.c:124
vlc_image.h
input_item_t::p_epg_table
const vlc_epg_t * p_epg_table
EPG timedate as epoch time.
Definition: vlc_input_item.h:104
vout_SizeWindow
static void vout_SizeWindow(vout_thread_sys_t *vout, const video_format_t *original, unsigned *restrict width, unsigned *restrict height)
Definition: video_output.c:261
VoutFixFormat
static void VoutFixFormat(video_format_t *dst, const video_format_t *src)
Definition: video_output.c:197
vout_crop::bottom
unsigned bottom
Definition: vout_internal.h:121
vout_ChangeSpuRate
void vout_ChangeSpuRate(vout_thread_t *, size_t channel_id, float rate)
This function will change the rate of the spu channel It is thread safe.
Definition: video_output.c:1602
vout_Start
static int vout_Start(vout_thread_sys_t *vout, vlc_video_context *vctx, const vout_configuration_t *cfg)
Definition: video_output.c:1645
vlc_epg_t::p_current
const vlc_epg_event_t * p_current
Definition: vlc_epg.h:59
VLC_VIDEO_ALIGN_LEFT
#define VLC_VIDEO_ALIGN_LEFT
Definition: vlc_vout_display.h:56
vlc_mouse_t::i_x
int i_x
Definition: vlc_mouse.h:48
vout_display_t::fmt
const video_format_t * fmt
Picture format.
Definition: vlc_vout_display.h:350
localtime_r
struct tm * localtime_r(const time_t *, struct tm *)
video_format_t::i_frame_rate_base
unsigned int i_frame_rate_base
frame rate denominator
Definition: vlc_es.h:367
vlc_mouse_event
void(* vlc_mouse_event)(const vlc_mouse_t *mouse, void *user_data)
Mouse event callback.
Definition: vlc_mouse.h:62
libvlc.h
vout_ChangeSpuChannelMargin
void vout_ChangeSpuChannelMargin(vout_thread_t *vout, enum vlc_vout_order order, int margin)
Definition: video_output.c:709
vout_thread_private_t::display_pool
picture_pool_t * display_pool
Definition: vout_private.h:43
VOUT_WINDOW_STATE_ABOVE
@ VOUT_WINDOW_STATE_ABOVE
Stacking above (a.k.a.
Definition: vlc_vout_window.h:78
vout_thread_sys_t::title
struct vout_thread_sys_t::@119 title
vout_ChangeViewpoint
void vout_ChangeViewpoint(vout_thread_t *, const vlc_viewpoint_t *)
Definition: video_output.c:718
vlc_object_delete
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
spu_RegisterChannelInternal
ssize_t spu_RegisterChannelInternal(spu_t *, vlc_clock_t *, enum vlc_vout_order *)
Definition: vout_subpictures.c:2007
likely
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
picture_Hold
static picture_t * picture_Hold(picture_t *picture)
Increments the picture reference count.
Definition: vlc_picture.h:355
vout_crop::top
unsigned top
Definition: vout_internal.h:120
vout_RegisterSubpictureChannelInternal
ssize_t vout_RegisterSubpictureChannelInternal(vout_thread_t *vout, vlc_clock_t *clock, enum vlc_vout_order *out_order)
Definition: video_output.c:402
vout_UnregisterSubpictureChannel
void vout_UnregisterSubpictureChannel(vout_thread_t *vout, size_t channel)
Definition: video_output.c:416
vout_control_PushMouse
void vout_control_PushMouse(vout_control_t *ctrl, const vlc_mouse_t *video_mouse)
Definition: control.c:51
vout_thread_sys_t::position
int position
Definition: video_output.c:154
vout_GetSnapshot
int vout_GetSnapshot(vout_thread_t *vout, block_t **image_dst, picture_t **picture_dst, video_format_t *fmt, const char *type, vlc_tick_t timeout)
This function will handle a snapshot request.
Definition: video_output.c:480
vout_ChangeViewpoint
void vout_ChangeViewpoint(vout_thread_t *vout, const vlc_viewpoint_t *p_viewpoint)
Definition: video_output.c:718
OSDIcon
static subpicture_region_t * OSDIcon(int type, const video_format_t *fmt)
Create the region for an OSD slider.
Definition: video_widgets.c:203
VLC_OBJECT
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_objects.h:70
vout_ChangeFullscreen
void vout_ChangeFullscreen(vout_thread_t *, const char *id)
Definition: video_output.c:516
filter_NewBlend
vlc_blender_t * filter_NewBlend(vlc_object_t *p_this, const video_format_t *p_dst_chroma)
It creates a blend filter.
Definition: filter.c:104
ThreadProcessMouseState
static void ThreadProcessMouseState(vout_thread_sys_t *p_vout, const vlc_mouse_t *win_mouse)
Definition: video_output.c:1610
video_format_t::i_chroma
vlc_fourcc_t i_chroma
picture chroma
Definition: vlc_es.h:352
picture_HasChainedPics
static bool picture_HasChainedPics(const picture_t *pic)
Check whether a picture has other pictures linked.
Definition: vlc_picture.h:168
vlc_codec.h
vout_thread_sys_t::changed
bool changed
Definition: video_output.c:180
vout_display_info_t::can_scale_spu
bool can_scale_spu
Definition: vlc_vout_display.h:136
vout_thread_t
Video output thread descriptor.
Definition: vlc_vout.h:55
spu_Detach
void spu_Detach(spu_t *)
Detach the SPU from its attached input.
Definition: vout_subpictures.c:1753
vout_GetResetStatistic
void vout_GetResetStatistic(vout_thread_t *vout, unsigned *restrict displayed, unsigned *restrict lost, unsigned *restrict late)
Definition: video_output.c:330
input_thread_t
Main structure representing an input thread.
Definition: input_internal.h:48
FilterRestartCallback
static int FilterRestartCallback(vlc_object_t *p_this, char const *psz_var, vlc_value_t oldval, vlc_value_t newval, void *p_data)
Definition: video_output.c:774
vout_ControlChangeSubSources
void vout_ControlChangeSubSources(vout_thread_t *, const char *)
Definition: video_output.c:693
OSDEPG_ROW
#define OSDEPG_ROW(x)
Definition: video_epg.c:57
vout_OSDEpgText
static subpicture_region_t * vout_OSDEpgText(const char *text, int x, int y, int size, uint32_t color)
Definition: video_epg.c:281
vout_window_UnsetFullScreen
static void vout_window_UnsetFullScreen(vout_window_t *window)
Requests windowed mode.
Definition: vlc_vout_window.h:507
vout_display_t
Definition: vlc_vout_display.h:316
VOUT_CROP_BORDER
@ VOUT_CROP_BORDER
Definition: vout_internal.h:104
vout_internal.h
vout_display_cfg::window_props
struct vout_display_cfg::@276 window_props
Window properties.
vout_thread_sys_t::is_on
bool is_on
Definition: video_output.c:146
SUBPICTURE_ALIGN_TOP
#define SUBPICTURE_ALIGN_TOP
Definition: vlc_subpicture.h:97
state
static thread_local struct @76 state
vout_crop::ratio
vlc_rational_t ratio
Definition: vout_internal.h:110
vout_crop::window
struct vout_crop::@121::@123 window
spu_Create
#define spu_Create(a, b)
Definition: vlc_spu.h:55
video_orientation_t
video_orientation_t
Picture orientation.
Definition: vlc_es.h:178
vlc_atomic_rc_init
static void vlc_atomic_rc_init(vlc_atomic_rc_t *rc)
Init the RC to 1.
Definition: vlc_atomic.h:46
vout_snapshot
Definition: snapshot.c:43
vout_display_window_New
vout_window_t * vout_display_window_New(vout_thread_t *vout)
Creates a video window, initially without any attached display.
Definition: window.c:370
vout_ChangeWindowState
void vout_ChangeWindowState(vout_thread_t *, unsigned state)
Definition: video_output.c:536
video_format_t::orientation
video_orientation_t orientation
picture orientation
Definition: vlc_es.h:371
vlc_join
void vlc_join(vlc_thread_t handle, void **result)
Waits for a thread to complete (if needed), then destroys it.
Definition: thread.c:151
VLC_VIDEO_ALIGN_BOTTOM
#define VLC_VIDEO_ALIGN_BOTTOM
Definition: vlc_vout_display.h:59
vlc_clock_Wait
void vlc_clock_Wait(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate, vlc_tick_t max_duration)
Wait for a timestamp expressed in stream time.
Definition: clock.c:340
vout_ChangeDisplaySize
void vout_ChangeDisplaySize(vout_thread_t *vout, unsigned width, unsigned height, void(*cb)(void *), void *opaque)
Definition: video_output.c:545
vout_NextPicture
void vout_NextPicture(vout_thread_t *p_vout, vlc_tick_t *pi_duration)
This function will force to display the next picture while paused.
Definition: video_output.c:1548
vlc_value_t
VLC value structure.
Definition: vlc_common.h:457
vout_OSDBackground
static subpicture_region_t * vout_OSDBackground(int x, int y, int width, int height, uint32_t i_argb)
Definition: video_epg.c:92
OSD_MUTE_ICON
@ OSD_MUTE_ICON
Definition: vlc_vout_osd.h:50
vout_OSDMessageVa
void vout_OSDMessageVa(vout_thread_t *vout, int channel, const char *format, va_list args)
Write an informative message at the default location, for the default duration and only if the OSD op...
Definition: video_text.c:141
vout_thread_sys_t
Definition: video_output.c:65
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
vout_Create
vout_thread_t * vout_Create(vlc_object_t *obj)
Creates a video output.
Definition: video_output.c:1966
vout_ControlChangeSubSources
void vout_ControlChangeSubSources(vout_thread_t *vout, const char *filters)
Definition: video_output.c:693
vlc_clock_ConvertToSystem
vlc_tick_t vlc_clock_ConvertToSystem(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t ts, double rate)
This function converts a timestamp from stream to system.
Definition: clock.c:502
subpicture_region_t::i_max_height
int i_max_height
horizontal rendering/cropping target/limit
Definition: vlc_subpicture.h:76
VOUT_WINDOW_STATE_BELOW
@ VOUT_WINDOW_STATE_BELOW
Stacking below (a.k.a.
Definition: vlc_vout_window.h:79
vout_window_cfg_t::height
unsigned height
Intended pixel height of the window.
Definition: vlc_vout_window.h:173
picture_t::p
plane_t p[(5)]
description of the planes
Definition: vlc_picture.h:127
vout_thread_sys_t::render
vout_chrono_t render
picture render time estimator
Definition: video_output.c:190
vout_thread_sys_t::timeout
int timeout
Definition: video_output.c:153
vlc_atomic_rc_t
Definition: vlc_atomic.h:41
block_t
Definition: vlc_block.h:117
filter_chain_GetFmtOut
const es_format_t * filter_chain_GetFmtOut(const filter_chain_t *p_chain)
Get last output format of the last element in the filter chain.
Definition: filter_chain.c:406
COL_BLUE
#define COL_BLUE
Definition: video_widgets.c:47
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
vasprintf
int vasprintf(char **, const char *, va_list)
vlc_epg_event_Delete
void vlc_epg_event_Delete(vlc_epg_event_t *p_event)
Releases a vlc_epg_event_t*.
Definition: epg.c:47
RGB_COLOR1
#define RGB_COLOR1
Definition: video_epg.c:66
vlc_video_context_Release
void vlc_video_context_Release(vlc_video_context *vctx)
Definition: decoder_helpers.c:275
vlc_mouse_t::i_pressed
int i_pressed
Definition: vlc_mouse.h:51
vout_chrono_Init
static void vout_chrono_Init(vout_chrono_t *chrono, int shift, vlc_tick_t avg_initial)
Definition: chrono.h:39
subpicture_Delete
void subpicture_Delete(subpicture_t *p_subpic)
This function delete a subpicture created by subpicture_New.
Definition: subpicture.c:82
epg_spu_updater_sys_t::art
char * art
Definition: video_epg.c:73
VoutVideoFilterInteractiveNewPicture
static picture_t * VoutVideoFilterInteractiveNewPicture(filter_t *filter)
Definition: video_output.c:798
vout_thread_sys_t::show
bool show
Definition: video_output.c:152
vout_display_cfg::sar
vlc_rational_t sar
Requested sample aspect ratio.
Definition: vlc_vout_display.h:101
vout_display_cfg::width
unsigned width
Requested display pixel width (0 by default).
Definition: vlc_vout_display.h:99
vout_control_Init
void vout_control_Init(vout_control_t *ctrl)
Definition: control.c:33
filter_chain_Delete
void filter_chain_Delete(filter_chain_t *p_chain)
Filter chain destruction.
Definition: filter_chain.c:174
vout_ControlChangeFilters
void vout_ControlChangeFilters(vout_thread_t *, const char *)
Definition: video_output.c:662
OSDWidget
static void OSDWidget(vout_thread_t *vout, int channel, int type, int position)
Definition: video_widgets.c:295
vout_CreateDummy
vout_thread_t * vout_CreateDummy(vlc_object_t *object)
Definition: video_output.c:1955
Thread
static void * Thread(void *object)
Definition: video_output.c:1764
OSDEPG_TOP
#define OSDEPG_TOP
Definition: video_epg.c:46
vlc_mouse_Init
static void vlc_mouse_Init(vlc_mouse_t *p_mouse)
Definition: vlc_mouse.h:64
vout_OSDEpgEvent
static subpicture_region_t * vout_OSDEpgEvent(const vlc_epg_event_t *p_evt, int x, int y, int size)
Definition: video_epg.c:298
vlc_fourcc_t
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:33
VOUT_CROP_WINDOW
@ VOUT_CROP_WINDOW
Definition: vout_internal.h:104
p
#define p(t)
ORIENT_NORMAL
@ ORIENT_NORMAL
Definition: vlc_es.h:190
ConvertRGB32AndBlend
static picture_t * ConvertRGB32AndBlend(vout_thread_sys_t *vout, picture_t *pic, subpicture_t *subpic)
Definition: video_output.c:1052
filter_t::owner
filter_owner_t owner
Private structure for the owner of the filter.
Definition: vlc_filter.h:241
vout_StopDisplay
void vout_StopDisplay(vout_thread_t *vout)
Stop the display plugin, but keep its window plugin for later reuse.
Definition: video_output.c:1852
vout_display_Display
static void vout_display_Display(vout_display_t *vd, picture_t *picture)
Displays a picture.
Definition: vlc_vout_display.h:419
text_style_t::e_wrapinfo
enum text_style_t::@265 e_wrapinfo