Go to the documentation of this file.
23 #ifndef LIBVLC_VOUT_WRAPPER_H
24 #define LIBVLC_VOUT_WRAPPER_H 1
static void SpuRegionPlace(int *x, int *y, const subpicture_t *subpic, const subpicture_region_t *region, int i_align)
Place a region.
Definition: vout_subpictures.c:524
#define VLC_VECTOR(type)
Vector struct body.
Definition: vlc_vector.h:65
Definition: vout_private.h:34
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
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:283
vlc_tick_t orgstart
Definition: vout_subpictures.c:83
size_t count
Definition: core.c:401
int h
Definition: vout_subpictures.c:364
ssize_t spu_RegisterChannel(spu_t *spu)
It registers a new SPU channel.
Definition: vout_subpictures.c:2033
vlc_tick_t last_sort_date
Definition: vout_subpictures.c:133
void subpicture_Update(subpicture_t *p_subpicture, const video_format_t *p_fmt_src, const video_format_t *p_fmt_dst, vlc_tick_t i_ts)
This function will update the content of a subpicture created with a non NULL subpicture_updater_t.
Definition: subpicture.c:149
int() var_Create(vlc_object_t *p_this, const char *psz_name, int i_type)
Creates a VLC object variable.
Definition: variables.c:291
static int IntegerCmp(int64_t i0, int64_t i1)
This function compares two 64 bits integers.
Definition: vout_subpictures.c:554
@ VIDEO_ES
Definition: vlc_es.h:603
picture_t *(* filter_video)(filter_t *, picture_t *)
Filter a picture (video filter)
Definition: vlc_filter.h:89
video_frame_format_t format
The properties of the picture.
Definition: vlc_picture.h:125
@ COLOR_RANGE_FULL
Definition: vlc_es.h:341
int height
Definition: vout_subpictures.c:96
vlc_tick_t start
Definition: vout_subpictures.c:85
static bool spu_render_entry_IsSelected(spu_render_entry_t *render_entry, size_t channel_id, vlc_tick_t system_now, vlc_tick_t render_subtitle_date, bool ignore_osd)
Definition: vout_subpictures.c:632
size_t id
Definition: vout_subpictures.c:69
#define VOUT_SPU_CHANNEL_OSD
Definition: vlc_vout.h:128
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
int i_max_width
try to balance wrapped text lines
Definition: vlc_subpicture.h:75
int x_end
Definition: vlc_subpicture.h:88
static ssize_t spu_GetFreeChannelId(spu_t *spu, enum vlc_vout_order *order)
Definition: vout_subpictures.c:196
char * filter_chain_update
Definition: vout_subpictures.c:114
void vout_SetDisplayFilled(vout_display_t *, bool is_filled)
Definition: display.c:588
Definition: vlc_subpicture.h:85
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
void() var_DelCallback(vlc_object_t *p_this, const char *psz_name, vlc_callback_t pf_callback, void *p_data)
Deregisters a callback from a variable.
Definition: variables.c:854
static void spu_channel_Init(struct spu_channel *channel, size_t id, enum vlc_vout_order order, vlc_clock_t *clock)
Definition: vout_subpictures.c:140
filter_t * scale
scaling module (all but YUVP)
Definition: vout_subpictures.c:90
char * source_chain_update
Definition: vout_subpictures.c:111
static void SpuAreaFixOverlap(spu_area_t *dst, const spu_area_t *sub_array, size_t sub_count, int align)
Avoid area overlapping.
Definition: vout_subpictures.c:459
static int spu_channel_Push(struct spu_channel *channel, subpicture_t *subpic, vlc_tick_t orgstart, vlc_tick_t orgstop)
Definition: vout_subpictures.c:152
void vout_SetDisplayZoom(vout_display_t *, unsigned num, unsigned den)
Definition: display.c:600
enum vlc_vout_order order
Definition: vout_subpictures.c:70
#define DISPLAY_PICTURE_COUNT
Definition: vout_wrapper.c:53
int i_y
position of region, relative to alignment
Definition: vlc_subpicture.h:65
module_t * p_module
Definition: vlc_filter.h:220
filter_chain_t * filter_chain
Definition: vout_subpictures.c:116
#define VLC_VAR_DOINHERIT
Creation flag.
Definition: vlc_variables.h:69
static void spu_PrerenderWake(spu_private_t *sys, const video_format_t *fmt_dst, const video_format_t *fmt_src, const vlc_fourcc_t *chroma_list)
Definition: vout_subpictures.c:1418
subpicture_updater_t updater
Definition: vlc_subpicture.h:203
int filter_chain_ForEach(filter_chain_t *chain, int(*cb)(filter_t *, void *), void *opaque)
Definition: filter_chain.c:389
int i_entries
to keep the compatibility with libavcodec's palette
Definition: vlc_es.h:45
#define vlc_mutex_assert(m)
Asserts that a mutex is locked by the calling thread.
Definition: vlc_threads.h:328
void vout_SetDisplayAspect(vout_display_t *, unsigned num, unsigned den)
Definition: display.c:614
static const struct filter_subpicture_callbacks sub_cbs
Definition: vout_subpictures.c:1343
vlc_tick_t vlc_clock_SetDelay(vlc_clock_t *clock, vlc_tick_t delay)
This functions change the clock delay.
Definition: clock.c:497
static void video_format_Clean(video_format_t *p_src)
Cleanup and free palette of this video_format_t.
Definition: vlc_es.h:469
#define module_need_var(a, b, c)
Definition: vlc_modules.h:123
static void spu_PrerenderPause(spu_private_t *sys)
Definition: vout_subpictures.c:1466
@ COLOR_RANGE_UNDEF
Definition: vlc_es.h:340
struct spu_private_t::@130 prerender
int i_original_picture_height
original height of the movie
Definition: vlc_subpicture.h:199
unsigned picture_pool_GetSize(const picture_pool_t *pool)
Definition: picture_pool.c:234
Definition: vout_subpictures.c:53
filter_t * scale_yuvp
scaling module for YUVP
Definition: vout_subpictures.c:89
#define vlc_vector_push(pv, item)
Push an item at the end of the vector.
Definition: vlc_vector.h:313
#define filter_DelProxyCallbacks(a, b, c)
Definition: vlc_filter.h:387
spu_prerender_vector vector
Definition: vout_subpictures.c:124
video_format_t fmt
Definition: subpicture.h:44
static void picture_Release(picture_t *picture)
Decrements the picture reference count.
Definition: vlc_picture.h:368
char * source_chain_current
Definition: vout_subpictures.c:110
void spu_PutSubpicture(spu_t *spu, subpicture_t *subpic)
Display a subpicture.
Definition: vout_subpictures.c:1792
@ VLC_VOUT_ORDER_PRIMARY
There is only one primary vout/spu_channel For vouts: this is the first vout, probably embedded in th...
Definition: vlc_vout.h:78
void() var_AddCallback(vlc_object_t *p_this, const char *psz_name, vlc_callback_t pf_callback, void *p_data)
Registers a callback for a variable.
Definition: variables.c:801
void spu_SetClockDelay(spu_t *spu, size_t channel_id, vlc_tick_t delay)
Definition: vout_subpictures.c:1761
void spu_UnregisterChannel(spu_t *spu, size_t channel_id)
Definition: vout_subpictures.c:2063
es_format_t fmt_in
Definition: vlc_filter.h:224
void vlc_cond_wait(vlc_cond_t *cond, vlc_mutex_t *mutex)
Waits on a condition variable.
Definition: threads.c:340
#define VLC_VAR_BOOL
Definition: vlc_variables.h:49
vlc_tick_t orgstop
Definition: vout_subpictures.c:84
subpicture_region_private_t * p_private
Private data for spu_t only
Definition: vlc_subpicture.h:82
vlc_mutex_t textlock
Definition: vout_subpictures.c:88
#define VLC_CODEC_TEXT
Definition: vlc_fourcc.h:593
static spu_scale_t spu_scale_create(int w, int h)
Definition: vout_subpictures.c:367
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
Definition: vout_subpictures.c:76
int i_x
position of region, relative to alignment
Definition: vlc_subpicture.h:64
@ PROJECTION_MODE_RECTANGULAR
Definition: vlc_es.h:257
static char * var_InheritString(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:705
Vout owner structures.
Definition: vlc_vout_display.h:191
int secondary_alignment
Force alignment for secondary subs.
Definition: vout_subpictures.c:106
Viewpoints.
Definition: vlc_viewpoint.h:41
void picture_pool_Release(picture_pool_t *pool)
Releases a pool created by picture_pool_New() or picture_pool_NewFromFormat().
Definition: picture_pool.c:61
video_palette_t palette
force palette of subpicture
Definition: vout_subpictures.c:107
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
#define vlc_vector_init(pv)
Initialize an empty vector.
Definition: vlc_vector.h:80
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:178
vlc_tick_t i_start
beginning of display date
Definition: vlc_subpicture.h:184
static int SpuRenderText(spu_t *spu, subpicture_region_t *region, int i_original_width, int i_original_height, const vlc_fourcc_t *chroma_list)
Definition: vout_subpictures.c:317
bool b_absolute
position is absolute
Definition: vlc_subpicture.h:197
static void video_format_AdjustColorSpace(video_format_t *p_fmt)
Definition: vlc_es.h:428
VLC_EXPORT bool vlc_ureduce(unsigned *, unsigned *, uint64_t, uint64_t, uint64_t)
int y
Definition: vout_subpictures.c:407
int x_start
Definition: vlc_subpicture.h:87
vlc_cond_t cond
Definition: vout_subpictures.c:122
subpicture_t * subpic
Definition: vout_subpictures.c:81
Video picture.
Definition: vlc_picture.h:120
static spu_area_t spu_area_create(int x, int y, int w, int h, spu_scale_t s)
Definition: vout_subpictures.c:414
spu_channel_vector channels
Definition: vout_subpictures.c:84
char * filter_chain_current
Definition: vout_subpictures.c:113
void vlc_cond_signal(vlc_cond_t *cond)
Wakes up one thread waiting on a condition variable.
Definition: threads.c:253
static int SubSourceInit(filter_t *filter, void *data)
Definition: vout_subpictures.c:1347
#define vlc_vector_remove(pv, index)
Remove an item.
Definition: vlc_vector.h:577
Mutex.
Definition: vlc_threads.h:225
int i_alpha
transparency
Definition: vlc_subpicture.h:200
int filter_chain_AppendFromString(filter_chain_t *chain, const char *str)
Append new filter to filter chain from string.
Definition: filter_chain.c:345
#define COLOR_SPACE_SRGB
Definition: vlc_es.h:317
@ VLC_VOUT_ORDER_SECONDARY
There can be several secondary vouts or spu_channels For vouts: a secondary vout using its own window...
Definition: vlc_vout.h:86
bool is_late
Definition: vout_subpictures.c:87
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:1374
spu_scale_t scale
Definition: vout_subpictures.c:411
#define filter_AddProxyCallbacks(a, b, c)
Definition: vlc_filter.h:376
#define VOUT_SPU_CHANNEL_INVALID
Definition: vlc_vout.h:127
size_t size
Definition: vout_subpictures.c:77
spu_render_vector entries
Definition: vout_subpictures.c:68
static spu_area_t spu_area_scaled(spu_area_t a)
Definition: vout_subpictures.c:419
es_format_t fmt_out
Definition: vlc_filter.h:228
A few area functions helpers.
Definition: vout_subpictures.c:405
int vlc_clone(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Creates and starts a new thread.
Definition: thread.c:144
static filter_t * SpuRenderCreateAndLoadText(spu_t *spu)
Definition: vout_subpictures.c:253
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
subpicture_t ** data
Definition: vout_subpictures.c:77
static void filter_Close(filter_t *p_filter)
Definition: vlc_filter.h:244
#define vlc_vector_reserve(pv, mincap)
Increase the capacity of the vector to at least mincap.
Definition: vlc_vector.h:259
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
static void spu_PrerenderEnqueue(spu_private_t *sys, subpicture_t *p_subpic)
Definition: vout_subpictures.c:1446
static int SubFilterDelProxyCallbacks(filter_t *filter, void *opaque)
Definition: vout_subpictures.c:1389
ssize_t spu_RegisterChannelInternal(spu_t *spu, vlc_clock_t *clock, enum vlc_vout_order *order)
Definition: vout_subpictures.c:2007
vlc_clock_t * clock
Definition: vout_subpictures.c:71
@ TRANSFER_FUNC_SRGB
Definition: vlc_es.h:292
Definition: vlc_filter.h:65
void vout_CloseWrapper(vout_thread_t *vout, vout_thread_private_t *sys, vout_display_t *vd)
Definition: vout_wrapper.c:131
ssize_t i_channel
subpicture channel ID
Definition: vlc_subpicture.h:170
void spu_ChangeChannelOrderMargin(spu_t *spu, enum vlc_vout_order order, int margin)
Definition: vout_subpictures.c:2112
Definition: picture_pool.c:42
vlc_tick_t vlc_tick_now(void)
Precision monotonic clock.
Definition: thread.c:261
@ COLOR_PRIMARIES_UNDEF
Definition: vlc_es.h:268
#define SUBPICTURE_ALIGN_LEFT
Definition: vlc_subpicture.h:95
#define SUBPICTURE_ALIGN_BOTTOM
Definition: vlc_subpicture.h:98
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
static int SSizeCmp(ssize_t i0, ssize_t i1)
Definition: vout_subpictures.c:559
struct spu_private_t::@129 crop
cropping
void spu_Destroy(spu_t *spu)
Destroy the subpicture unit.
Definition: vout_subpictures.c:1623
spu_render_entry_t * data
Definition: vout_subpictures.c:65
const video_format_t * source
Source video format.
Definition: vlc_vout_display.h:335
Structure describing a filter.
Definition: vlc_filter.h:215
void spu_Attach(spu_t *spu, input_thread_t *input)
Attach the SPU to an input.
Definition: vout_subpictures.c:1733
static int spu_scale_h(int v, const spu_scale_t s)
Definition: vout_subpictures.c:389
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
void vlc_clock_Reset(vlc_clock_t *clock)
This function resets the clock drift.
Definition: clock.c:492
vlc_thread_t thread
Definition: vout_subpictures.c:120
int margin
force position of a subpicture
Definition: vout_subpictures.c:99
void * sys
Definition: vlc_filter.h:78
static int SubFilterAddProxyCallbacks(filter_t *filter, void *opaque)
Definition: vout_subpictures.c:1382
Video subtitle.
Definition: vlc_subpicture.h:166
int(* pf_get_attachments)(filter_t *, input_attachment_t ***, int *)
Definition: vlc_filter.h:76
void spu_SetHighlight(spu_t *spu, const vlc_spu_highlight_t *hl)
Definition: vout_subpictures.c:2132
User configuration for a video output display (vout_display_t)
Definition: vlc_vout_display.h:94
static int SubSourceDelProxyCallbacks(filter_t *filter, void *opaque)
Definition: vout_subpictures.c:1411
subpicture_region_t * p_region
region list composing this subtitle
Definition: vlc_subpicture.h:180
static void spu_channel_Clean(spu_private_t *sys, struct spu_channel *channel)
Definition: vout_subpictures.c:174
picture_t * p_picture
Definition: subpicture.h:45
int x
Definition: vout_subpictures.c:406
int i_align
alignment flags of region
Definition: vlc_subpicture.h:66
static void UpdateSPU(spu_t *spu, const vlc_spu_highlight_t *hl)
Definition: vout_subpictures.c:1302
Subpicture unit descriptor.
Definition: vlc_spu.h:47
static spu_scale_t spu_scale_createq(int64_t wn, int64_t wd, int64_t hn, int64_t hd)
Definition: vout_subpictures.c:380
bool live
Definition: vout_subpictures.c:129
size_t size
Definition: vout_subpictures.c:65
Video subtitle region.
Definition: vlc_subpicture.h:59
void vout_FilterFlush(vout_display_t *)
Definition: display.c:424
const struct vlc_filter_operations * ops
Definition: vlc_filter.h:238
vlc_mutex_t lock
Definition: rand.c:50
void spu_ChangeSources(spu_t *spu, const char *filters)
It changes the sub sources list.
Definition: vout_subpictures.c:2074
struct spu_channel * data
Definition: vout_subpictures.c:76
int i_original_picture_width
original width of the movie
Definition: vlc_subpicture.h:198
vout_display_t * vout_display_New(vlc_object_t *parent, const video_format_t *source, vlc_video_context *vctx, const vout_display_cfg_t *cfg, const char *module, const vout_display_owner_t *owner)
Creates video output display.
Definition: display.c:668
vout_thread_t * vout
Definition: vout_subpictures.c:134
Thread handle.
Definition: vlc_threads.h:180
static int var_SetBool(vlc_object_t *p_obj, const char *psz_name, bool b)
Set the value of an boolean variable.
Definition: vlc_variables.h:308
static size_t spu_channel_UpdateDates(struct spu_channel *channel, vlc_tick_t system_now)
Definition: vout_subpictures.c:592
uint8_t palette[256][4]
4-byte RGBA/YUVA palette
Definition: vlc_es.h:46
Definition: vout_subpictures.c:67
static spu_scale_t spu_scale_unit(void)
Definition: vout_subpictures.c:376
static void spu_channel_Clear(spu_private_t *sys, struct spu_channel *channel)
Definition: vout_subpictures.c:2039
float rate
Definition: vout_subpictures.c:73
#define SUBPICTURE_ALIGN_RIGHT
Definition: vlc_subpicture.h:96
static spu_render_entry_t * spu_SelectSubpictures(spu_t *spu, vlc_tick_t system_now, vlc_tick_t render_subtitle_date, bool ignore_osd, size_t *subpicture_count)
Definition: vout_subpictures.c:664
void spu_ChangeFilters(spu_t *spu, const char *filters)
It changes the sub filters list.
Definition: vout_subpictures.c:2093
Definition: vlc_filter.h:60
enum vlc_vout_order channel_order
Definition: vout_subpictures.c:88
static bool spu_area_overlap(spu_area_t a, spu_area_t b)
Definition: vout_subpictures.c:447
subpicture_region_t * p_next
next region in the list
Definition: vlc_subpicture.h:81
void vout_ControlChangeSubFilters(vout_thread_t *vout, const char *filters)
Definition: video_output.c:701
spu_private_t * p
Definition: vlc_spu.h:51
#define SPU_CHROMALIST_COUNT
Definition: vout_subpictures.c:78
bool b_subtitle
the picture is a movie subtitle
Definition: vlc_subpicture.h:196
picture_pool_t * private_pool
Definition: vout_private.h:42
bool vlc_fourcc_IsYUV(vlc_fourcc_t fcc)
It returns true if the given fourcc is YUV and false otherwise.
Definition: fourcc.c:680
picture_pool_t * vout_GetPool(vout_display_t *vd, unsigned count)
It retreives a picture pool from the display.
Definition: display.c:385
int y
Definition: vout_subpictures.c:94
#define VLC_CODEC_BGRA
Definition: vlc_fourcc.h:355
Definition: vout_internal.h:107
subpicture_t * p_processed
Definition: vout_subpictures.c:125
Definition: vout_subpictures.c:77
input_thread_t * input
Definition: vout_subpictures.c:82
bool filter_chain_IsEmpty(const filter_chain_t *chain)
Checks if the filter chain is empty.
Definition: filter_chain.c:401
int width
Definition: vout_subpictures.c:95
subpicture_t * subpicture_New(const subpicture_updater_t *p_upd)
This function create a new empty subpicture.
Definition: subpicture.c:43
Definition: decoder_helpers.c:228
picture_pool_t * vout_GetPool(vout_display_t *vd, unsigned count)
It retreives a picture pool from the display.
Definition: display.c:385
static void spu_channel_DeleteAt(struct spu_channel *channel, size_t index)
Definition: vout_subpictures.c:165
vlc_mutex_t filter_chain_lock
Definition: vout_subpictures.c:115
Definition: vout_subpictures.c:362
VLC object common members.
Definition: vlc_objects.h:43
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
#define vlc_vector_clear(pv)
Clear a vector.
Definition: vlc_vector.h:101
vlc_cond_t output_cond
Definition: vout_subpictures.c:123
Definition: vout_subpictures.c:65
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
static void spu_Cleanup(spu_t *spu)
Definition: vout_subpictures.c:1580
#define VOUT_MAX_PICTURES
Definition: vout_internal.h:38
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
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
#define vlc_vector_index_of(pv, item, pidx)
Return the index of an item.
Definition: vlc_vector.h:615
int width
Definition: vout_subpictures.c:408
void vlc_clock_ConvertArrayToSystem(vlc_clock_t *clock, vlc_tick_t system_now, vlc_tick_t *ts_array, size_t ts_count, double rate)
This functon converts an array of timestamp from stream to system.
Definition: clock.c:512
#define VLC_CODEC_YUVA
Definition: vlc_fourcc.h:270
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
@ COLOR_SPACE_UNDEF
Definition: vlc_es.h:313
#define VLC_THREAD_PRIORITY_VIDEO
Definition: vlc_threads.h:210
void spu_Detach(spu_t *spu)
Detach the SPU from its attached input.
Definition: vout_subpictures.c:1753
char * strdup(const char *)
static spu_area_t spu_area_unscaled(spu_area_t a, spu_scale_t s)
Definition: vout_subpictures.c:432
Definition: filter_chain.c:46
static int64_t var_InheritInteger(vlc_object_t *obj, const char *name)
Definition: vlc_variables.h:685
static void SpuRenderRegion(spu_t *spu, subpicture_region_t **dst_ptr, spu_area_t *dst_area, const spu_render_entry_t *entry, subpicture_region_t *region, const spu_scale_t scale_size, const vlc_fourcc_t *chroma_list, const video_format_t *fmt, int i_original_width, int i_original_height, const spu_area_t *subtitle_area, size_t subtitle_area_count, vlc_tick_t render_date)
It will transform the provided region into another region suitable for rendering.
Definition: vout_subpictures.c:796
void spu_ClearChannel(spu_t *spu, size_t channel_id)
It clears all subpictures associated to a SPU channel.
Definition: vout_subpictures.c:2049
bool b_fade
enable fading
Definition: vlc_subpicture.h:188
bool vout_IsDisplayFiltered(vout_display_t *vd)
Definition: display.c:394
static int SubSourceClean(filter_t *filter, void *data)
Definition: vout_subpictures.c:1360
void filter_chain_SubSource(filter_chain_t *p_chain, spu_t *spu, vlc_tick_t display_date)
Generate subpictures from a chain of subpicture source "filters".
Definition: filter_chain.c:476
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
Definition: vout_subpictures.c:80
void vout_SetDisplayViewpoint(vout_display_t *, const vlc_viewpoint_t *)
Definition: display.c:645
static int spu_invscale_w(int v, const spu_scale_t s)
Definition: vout_subpictures.c:393
bool vout_IsDisplayFiltered(vout_display_t *)
Definition: display.c:394
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
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
picture_t * p_picture
picture comprising this region
Definition: vlc_subpicture.h:62
#define vlc_vector_destroy(pv)
Destroy a vector.
Definition: vlc_vector.h:93
static int SubSourceAddProxyCallbacks(filter_t *filter, void *opaque)
Definition: vout_subpictures.c:1404
Definition: fourcc_gen.c:51
#define VOUT_SPU_CHANNEL_OSD_COUNT
Definition: vlc_vout.h:131
Condition variable.
Definition: vlc_threads.h:349
vlc_vout_order
vout or spu_channel order
Definition: vlc_vout.h:70
static void VoutViewpointMoved(void *sys, const vlc_viewpoint_t *vp)
Definition: vout_wrapper.c:46
#define VLC_CODEC_YUVP
Definition: vlc_fourcc.h:267
vlc_tick_t stop
Definition: vout_subpictures.c:86
@ TRANSFER_FUNC_UNDEF
Definition: vlc_es.h:290
void(* viewpoint_moved)(void *sys, const vlc_viewpoint_t *vp)
Definition: vlc_vout_display.h:207
static void SpuAreaFitInside(spu_area_t *area, const spu_area_t *boundary)
Definition: vout_subpictures.c:502
vlc_tick_t i_stop
end of display date
Definition: vlc_subpicture.h:185
picture_t * vout_ConvertForDisplay(vout_display_t *, picture_t *)
Definition: display.c:401
static struct spu_channel * spu_GetChannel(spu_t *spu, size_t channel_id)
Definition: vout_subpictures.c:185
void vout_display_Delete(vout_display_t *vd)
Destroys a video output display.
Definition: display.c:727
static int spu_scale_w(int v, const spu_scale_t s)
Definition: vout_subpictures.c:385
int y_start
Definition: vlc_subpicture.h:89
#define SCALE_UNIT
A few scale functions helpers.
Definition: vout_subpictures.c:361
const video_format_t * fmt
Picture format.
Definition: vlc_vout_display.h:350
picture_pool_t * display_pool
Definition: vout_private.h:43
video_format_t fmtsrc
Definition: vout_subpictures.c:126
#define COLOR_PRIMARIES_SRGB
Definition: vlc_es.h:275
const struct filter_subpicture_callbacks * sub
Definition: vlc_filter.h:71
int() var_Set(vlc_object_t *p_this, const char *psz_name, vlc_value_t val)
Sets a variable value.
Definition: variables.c:721
video_palette_t palette
Definition: vlc_subpicture.h:91
int(* render)(filter_t *, subpicture_region_t *, subpicture_region_t *, const vlc_fourcc_t *)
Render text (text renderer)
Definition: vlc_filter.h:105
void spu_SetClockRate(spu_t *spu, size_t channel_id, float rate)
Definition: vout_subpictures.c:1773
subpicture_t * filter_chain_SubFilter(filter_chain_t *p_chain, subpicture_t *p_subpic)
Apply filter chain to subpictures.
Definition: filter_chain.c:488
picture_pool_t * picture_pool_NewFromFormat(const video_format_t *fmt, unsigned count)
Allocates pictures from the heap and creates a picture pool with them.
Definition: picture_pool.c:128
int i_alpha
transparency
Definition: vlc_subpicture.h:67
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
size_t size
Definition: vout_subpictures.c:76
static int var_SetAddress(vlc_object_t *p_obj, const char *psz_name, void *ptr)
Set the value of a pointer variable.
Definition: vlc_variables.h:360
static void spu_PrerenderText(spu_t *spu, subpicture_t *p_subpic, video_format_t *fmtsrc, video_format_t *fmtdst, vlc_fourcc_t *chroma_list)
Definition: vout_subpictures.c:1488
static int spu_invscale_h(int v, const spu_scale_t s)
Definition: vout_subpictures.c:397
static picture_t * picture_Hold(picture_t *picture)
Increments the picture reference count.
Definition: vlc_picture.h:355
int w
Definition: vout_subpictures.c:363
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_objects.h:70
vlc_tick_t delay
Definition: vout_subpictures.c:72
void filter_chain_Clear(filter_chain_t *p_chain)
Remove all existing filters.
Definition: filter_chain.c:165
video_format_t fmt
format of the picture
Definition: vlc_subpicture.h:61
static bool picture_HasChainedPics(const picture_t *pic)
Check whether a picture has other pictures linked.
Definition: vlc_picture.h:168
static void * spu_PrerenderThread(void *priv)
Definition: vout_subpictures.c:1524
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:1396
Video output thread descriptor.
Definition: vlc_vout.h:55
spu_t * spu_Create(vlc_object_t *object, vout_thread_t *vout)
Creates the subpicture unit.
Definition: vout_subpictures.c:1643
filter_t * text
text renderer module
Definition: vout_subpictures.c:87
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
vlc_fourcc_t chroma_list[8+1]
Definition: vout_subpictures.c:128
vlc_mutex_t lock
Definition: vout_subpictures.c:81
Definition: vlc_vout_display.h:316
static subpicture_t * SpuRenderSubpictures(spu_t *spu, size_t i_subpicture, const spu_render_entry_t *p_entries, 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 external_scale)
This function renders all sub picture units in the list.
Definition: vout_subpictures.c:1141
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:1144
void subpicture_region_private_Delete(subpicture_region_private_t *p_private)
Definition: subpicture.c:197
#define module_unneed(a, b)
Definition: vlc_modules.h:126
#define SUBPICTURE_ALIGN_TOP
Definition: vlc_subpicture.h:97
void vlc_join(vlc_thread_t handle, void **result)
Waits for a thread to complete (if needed), then destroys it.
Definition: thread.c:151
static void FilterRelease(filter_t *filter)
Definition: vout_subpictures.c:225
bool force_crop
force cropping of subpicture
Definition: vout_subpictures.c:91
VLC value structure.
Definition: vlc_common.h:457
static int spu_get_attachments(filter_t *filter, input_attachment_t ***attachment_ptr, int *attachment_count)
Definition: vout_subpictures.c:235
#define filter_chain_NewSPU(a, b)
Definition: vlc_filter.h:479
subpicture_region_private_t * subpicture_region_private_New(video_format_t *p_fmt)
Definition: subpicture.c:180
int secondary_margin
Move the secondary subtites vertically.
Definition: vout_subpictures.c:105
int height
Definition: vout_subpictures.c:409
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
void vout_ControlChangeSubSources(vout_thread_t *vout, const char *filters)
Definition: video_output.c:693
int i_max_height
horizontal rendering/cropping target/limit
Definition: vlc_subpicture.h:76
vout_display_t * vout_OpenWrapper(vout_thread_t *vout, vout_thread_private_t *sys, const char *splitter_name, const vout_display_cfg_t *cfg, video_format_t *fmt, vlc_video_context *vctx)
Definition: vout_wrapper.c:58
Definition: subpicture.h:23
video_format_t fmtdst
Definition: vout_subpictures.c:127
const char var[sizeof("video")]
Definition: player.c:1732
static subpicture_t * sub_new_buffer(filter_t *filter)
Definition: vout_subpictures.c:1333
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
#define VLC_CODEC_ARGB
Definition: vlc_fourcc.h:353
int64_t i_order
Definition: vlc_subpicture.h:176
void subpicture_Delete(subpicture_t *p_subpic)
This function delete a subpicture created by subpicture_New.
Definition: subpicture.c:82
static int SpuRenderCmp(const void *s0, const void *s1)
This function compares 2 subpictures using the following properties (ordered by priority)
Definition: vout_subpictures.c:574
static void spu_PrerenderCancel(spu_private_t *, const subpicture_t *)
Definition: vout_subpictures.c:1454
filter_chain_t * source_chain
Definition: vout_subpictures.c:112
void filter_chain_Delete(filter_chain_t *p_chain)
Filter chain destruction.
Definition: filter_chain.c:174
#define module_need(a, b, c, d)
Definition: vlc_modules.h:111
#define VLC_CODEC_RGBA
Definition: vlc_fourcc.h:351
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:33
void vout_SetDisplayCrop(vout_display_t *, const struct vout_crop *)
filter_owner_t owner
Private structure for the owner of the filter.
Definition: vlc_filter.h:241
int y_end
Definition: vlc_subpicture.h:90
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:152
subpicture_region_t * subpicture_region_NewInternal(const video_format_t *p_fmt)
Definition: subpicture.c:205
static void spu_PrerenderSync(spu_private_t *, const subpicture_t *)
Definition: vout_subpictures.c:1475
int x
Definition: vout_subpictures.c:93