void EndMD5(struct md5_s *h)
Definition: md5.c:345
void(* pf_destroy)(subpicture_t *)
Optional callback for subpicture private data cleanup.
Definition: vlc_subpicture.h:139
void * opaque
Definition: picture.h:47
int(* pic_lock)(picture_t *)
Definition: picture_pool.c:42
size_t count
Definition: core.c:461
void picture_fifo_Delete(picture_fifo_t *fifo)
It destroys a fifo created by picture_fifo_New.
Definition: picture_fifo.c:139
bool picture_pool_OwnsPic(picture_pool_t *pool, picture_t *pic)
Test if a picture belongs to the picture pool.
Definition: picture_pool.c:299
picture_t * picture_pool_Get(picture_pool_t *pool)
Obtains a picture from a pool if any is immediately available.
Definition: picture_pool.c:212
void(* unlock)(picture_t *)
Definition: vlc_picture_pool.h:47
vlc_mutex_t lock
Definition: picture_pool.c:44
picture_t * picture_Hold(picture_t *p_picture)
This function will increase the picture reference count.
Definition: picture.c:290
video_frame_format_t format
The properties of the picture.
Definition: vlc_picture.h:73
picture_t * picture_fifo_Pop(picture_fifo_t *fifo)
It retreives a picture_t from the fifo.
Definition: picture_fifo.c:84
int(* lock)(picture_t *)
Definition: vlc_picture_pool.h:46
static int video_format_Copy(video_format_t *p_dst, const video_format_t *p_src)
Copy video_format_t including the palette.
Definition: vlc_es.h:392
subpicture_region_t * subpicture_region_New(const video_format_t *p_fmt)
This function will create a new subpicture region.
Definition: subpicture.c:206
void(* pic_unlock)(picture_t *)
Definition: picture_pool.c:43
char * psz_longname
Definition: renderer_discovery.c:180
int i_lines
Number of lines, including margins.
Definition: vlc_picture.h:134
picture_t ** last_ptr
Definition: picture_fifo.c:63
text_segment_t * text_segment_Copy(text_segment_t *p_src)
This function will copy a text_segment and its chain into a new one.
Definition: text_style.c:208
#define image_HandlerCreate(a)
Definition: vlc_image.h:64
void vlc_rand_bytes(void *buf, size_t len)
Definition: rand.c:27
void picture_pool_Enum(picture_pool_t *pool, void(*cb)(void *, picture_t *), void *opaque)
Enumerates all pictures in a pool, both free and allocated.
Definition: picture_pool.c:318
size_t count
Definition: vlc_probe.h:44
static uint8_t okey[64]
Definition: rand.c:47
Definition: vlc_subpicture.h:122
#define vlc_probe(obj, cap, pcount)
Definition: vlc_probe.h:36
vlc_mutex_t lock
Definition: picture_fifo.c:61
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, mtime_t)
Optional pre update callback, usually useful on video format change.
Definition: vlc_subpicture.h:127
int i_y
position of region, relative to alignment
Definition: vlc_subpicture.h:63
Definition: vlc_probe.h:39
int vlc_rd_get_names(vlc_object_t *p_obj, char ***pppsz_names, char ***pppsz_longnames)
Return a list of renderer discovery modules.
Definition: renderer_discovery.c:201
subpicture_updater_t updater
Definition: vlc_subpicture.h:190
text_segment_t * p_text
subtitle text, made of a list of segments
Definition: vlc_subpicture.h:68
int filter_ConfigureBlend(filter_t *p_blend, int i_dst_width, int i_dst_height, const video_format_t *p_src)
It configures blend filter parameters that are allowed to changed after the creation.
Definition: filter.c:134
static void video_format_Clean(video_format_t *p_src)
Cleanup and free palette of this video_format_t.
Definition: vlc_es.h:438
char * psz_type
Definition: renderer_discovery.c:53
static uint8_t ikey[64]
Definition: rand.c:47
int i_original_picture_height
original height of the movie
Definition: vlc_subpicture.h:186
picture_pool_t * picture_pool_New(unsigned count, picture_t *const *tab)
Creates a picture pool with pictures in a given array.
Definition: picture_pool.c:147
void * aligned_alloc(size_t, size_t)
unsigned picture_pool_GetSize(const picture_pool_t *pool)
Definition: picture_pool.c:313
long nrand48(unsigned short subi[3])
unsigned picture_BlendSubpicture(picture_t *dst, filter_t *blend, subpicture_t *src)
This function will blend a given subpicture onto a picture.
Definition: subpicture.c:279
video_format_t fmt
Definition: subpicture.h:44
void vlc_renderer_item_release(vlc_renderer_item_t *p_item)
Releases a renderer item, i.e.
Definition: renderer_discovery.c:166
int vlc_rd_probe_add(vlc_probe_t *probe, const char *psz_name, const char *psz_longname)
Renderer Discovery proble helpers.
Definition: renderer_discovery.c:184
video_format_t dst
Definition: subpicture.c:62
es_format_t fmt_in
Definition: vlc_filter.h:74
long vlc_lrand48(void)
PRNG uniformly distributed between 0 and 2^32 - 1.
Definition: rand.c:78
bool b_balanced_text
if the decoder sends row/cols based output
Definition: vlc_subpicture.h:72
void vlc_UrlClean(vlc_url_t *restrict url)
Definition: url.c:594
subpicture_region_private_t * p_private
Private data for spu_t only
Definition: vlc_subpicture.h:77
unsigned short subi[3]
Definition: rand.c:50
#define VLC_CODEC_TEXT
Definition: vlc_fourcc.h:531
int vlc_UrlParse(vlc_url_t *url, const char *str)
Parses an URI or IRI.
Definition: url.c:554
picture_sys_t * p_sys
Definition: vlc_picture.h:125
int i_x
position of region, relative to alignment
Definition: vlc_subpicture.h:62
Resource for a picture.
Definition: vlc_picture.h:123
void vlc_cond_broadcast(vlc_cond_t *p_condvar)
Wakes up all threads waiting on a condition variable.
Definition: thread.c:262
void picture_pool_Release(picture_pool_t *pool)
Releases a pool created by picture_pool_NewExtended(), picture_pool_New() or picture_pool_NewFromForm...
Definition: picture_pool.c:64
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:350
const char * vlc_renderer_item_type(const vlc_renderer_item_t *p_item)
Get the type (not translated) of a renderer item.
Definition: renderer_discovery.c:117
int filter_Blend(filter_t *p_blend, picture_t *p_dst, int i_dst_x, int i_dst_y, const picture_t *p_src, int i_alpha)
It blends a picture into another one.
Definition: filter.c:166
vlc_renderer_item_t * vlc_renderer_item_hold(vlc_renderer_item_t *p_item)
Hold a renderer item, i.e.
Definition: renderer_discovery.c:157
void picture_Release(picture_t *p_picture)
This function will release a picture.
Definition: picture.c:300
bool b_absolute
position is absolute
Definition: vlc_subpicture.h:184
void(* destroy)(picture_t *)
Definition: picture.h:46
subpicture_t * subpicture_NewFromPicture(vlc_object_t *p_obj, picture_t *p_picture, vlc_fourcc_t i_chroma)
This function will create a subpicture having one region in the requested chroma showing the given pi...
Definition: subpicture.c:101
Definition: renderer_discovery.c:177
void vlc_cond_signal(vlc_cond_t *p_condvar)
Wakes up one thread waiting on a condition variable.
Definition: thread.c:256
pthread_cond_t vlc_cond_t
Condition variable.
Definition: vlc_threads.h:279
Video picture.
Definition: vlc_picture.h:68
int asprintf(char **, const char *,...)
void picture_fifo_OffsetDate(picture_fifo_t *fifo, mtime_t delta)
It applies a delta on all the picture timestamp.
Definition: picture_fifo.c:130
unsigned short picture_count
Definition: picture_pool.c:50
picture_t * first
Definition: picture_fifo.c:62
int i_alpha
transparency
Definition: vlc_subpicture.h:187
long jrand48(unsigned short subi[3])
atomic_uint refs
Definition: renderer_discovery.c:58
bool init
Definition: rand.c:49
picture_t * picture_pool_Wait(picture_pool_t *pool)
Obtains a picture from a pool.
Definition: picture_pool.c:248
void AddMD5(struct md5_s *restrict h, const void *data, size_t len)
Definition: md5.c:340
void(* pf_update)(subpicture_t *, const video_format_t *p_fmt_src, const video_format_t *p_fmt_dst, mtime_t)
Mandatory callback called after pf_validate and doing the main job of creating the subpicture regions...
Definition: vlc_subpicture.h:134
subpicture_region_private_t * subpicture_region_private_New(video_format_t *)
Definition: subpicture.c:181
es_format_t fmt_out
Definition: vlc_filter.h:77
#define aligned_free(ptr)
Definition: vlc_fixups.h:322
struct picture_t * p_next
Next picture in a FIFO a pictures.
Definition: vlc_picture.h:101
int i_lines
Number of lines, including margins.
Definition: vlc_picture.h:42
char * psz_sout
Definition: renderer_discovery.c:54
void * list
Definition: vlc_probe.h:43
char * psz_host
Definition: vlc_url.h:150
void text_segment_ChainDelete(text_segment_t *segment)
This function will destroy a list of text segments allocated by text_segment_New.
Definition: text_style.c:196
const char * vlc_renderer_item_sout(const vlc_renderer_item_t *p_item)
Get the sout command of a renderer item.
Definition: renderer_discovery.c:125
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:84
picture_t * picture_fifo_Peek(picture_fifo_t *fifo)
It returns the first picture_t pointer from the fifo but does not remove it.
Definition: picture_fifo.c:92
void subpicture_Delete(subpicture_t *p_subpic)
This function delete a subpicture created by subpicture_New.
Definition: subpicture.c:83
picture_fifo_t * picture_fifo_New(void)
It creates an empty picture_fifo_t.
Definition: picture_fifo.c:67
int vlc_close(int fd)
Closes a file descriptor.
Definition: filesystem.c:88
#define vlc_object_release(a)
Definition: vlc_objects.h:63
config_chain_t * p_cfg
Definition: vlc_renderer_discovery.h:172
char * psz_icon_uri
Definition: renderer_discovery.c:55
char * psz_name
Definition: renderer_discovery.c:52
#define BLOCK_SIZE
Definition: rand.c:45
Definition: picture_pool.c:41
int i_planes
number of allocated planes
Definition: vlc_picture.h:76
picture_t * picture[]
Definition: picture_pool.c:51
char * psz_protocol
Definition: vlc_url.h:147
Internal module descriptor.
Definition: modules.h:79
Picture pool configuration.
Definition: vlc_picture_pool.h:42
Structure describing a filter.
Definition: vlc_filter.h:65
video_format_t src
Definition: subpicture.c:61
Definition: picture_fifo.c:37
struct picture_resource_t::@195 p[(5)]
#define image_Convert(a, b, c, d)
Definition: vlc_image.h:71
static void vlc_rand_init(void)
Definition: rand.c:49
int i_pitch
Number of bytes in a line, including margins.
Definition: vlc_picture.h:43
vlc_renderer_discovery_t * vlc_rd_new(vlc_object_t *p_obj, const char *psz_name, const struct vlc_renderer_discovery_owner *restrict owner)
Definition: renderer_discovery.c:245
atomic_ushort refs
Definition: picture_pool.c:49
Video subtitle.
Definition: vlc_subpicture.h:153
int vlc_open(const char *filename, int flags,...)
Opens a system file handle.
Definition: filesystem.c:49
static void PictureFifoPush(picture_fifo_t *fifo, picture_t *picture)
Definition: picture_fifo.c:48
subpicture_region_t * p_region
region list composing this subtitle
Definition: vlc_subpicture.h:167
picture_t * p_picture
Definition: subpicture.h:45
void subpicture_region_Delete(subpicture_region_t *p_region)
This function will destroy a subpicture region allocated by subpicture_region_New.
Definition: subpicture.c:249
int i_align
alignment flags of region
Definition: vlc_subpicture.h:64
int vlc_renderer_item_flags(const vlc_renderer_item_t *p_item)
Get the flags of a renderer item.
Definition: renderer_discovery.c:149
vlc_renderer_item_t * vlc_renderer_item_new(const char *psz_type, const char *psz_name, const char *psz_uri, const char *psz_extra_sout, const char *psz_demux_filter, const char *psz_icon_uri, int i_flags)
Create a new renderer item.
Definition: renderer_discovery.c:56
static picture_t * PictureFifoPop(picture_fifo_t *fifo)
Definition: picture_fifo.c:54
Video subtitle region.
Definition: vlc_subpicture.h:57
vlc_mutex_t lock
Definition: rand.c:51
int i_original_picture_width
original width of the movie
Definition: vlc_subpicture.h:185
picture_t * picture_NewFromResource(const video_format_t *p_fmt, const picture_resource_t *p_resource)
This function will create a new picture using the provided resource.
Definition: picture.c:207
const char * psz_name
Definition: vlc_codecs.h:315
module_t * p_module
Definition: vlc_renderer_discovery.h:167
void vlc_mutex_init(vlc_mutex_t *p_mutex)
Initializes a fast mutex.
Definition: thread.c:85
void picture_pool_Cancel(picture_pool_t *pool, bool canceled)
Cancel the picture pool.
Definition: picture_pool.c:288
bool canceled
Definition: picture_pool.c:47
const char * vlc_renderer_item_demux_filter(const vlc_renderer_item_t *p_item)
Get the demux filter to use with a renderer item.
Definition: renderer_discovery.c:141
void vlc_rd_release(vlc_renderer_discovery_t *p_rd)
Definition: renderer_discovery.c:236
static void item_free(vlc_renderer_item_t *p_item)
Definition: renderer_discovery.c:45
void image_HandlerDelete(image_handler_t *p_image)
Delete the image_handler_t instance.
Definition: image.c:105
#define static_assert
Definition: vlc_fixups.h:367
subpicture_region_t * p_next
vertical rendering/cropping target/limit
Definition: vlc_subpicture.h:76
static void PictureFifoReset(picture_fifo_t *fifo)
Definition: picture_fifo.c:43
bool b_subtitle
the picture is a movie subtitle
Definition: vlc_subpicture.h:183
subpicture_private_t * p_private
Definition: vlc_subpicture.h:192
uint8_t buf[64]
Definition: vlc_md5.h:36
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
void picture_fifo_Push(picture_fifo_t *fifo, picture_t *picture)
It saves a picture_t into the fifo.
Definition: picture_fifo.c:78
#define likely(p)
Definition: vlc_common.h:113
int i_flags
Definition: renderer_discovery.c:57
Definition: vlc_url.h:145
The main vlc_object_t structure.
Definition: vlc_objects.h:39
void subpicture_Update(subpicture_t *p_subpicture, const video_format_t *p_fmt_src, const video_format_t *p_fmt_dst, mtime_t i_ts)
This function will update the content of a subpicture created with a non NULL subpicture_updater_t.
Definition: subpicture.c:150
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:351
#define POOL_MAX
Definition: picture_pool.c:37
const char * vlc_renderer_item_icon_uri(const vlc_renderer_item_t *p_item)
Get the icon uri of a renderer item.
Definition: renderer_discovery.c:133
pthread_mutex_t vlc_mutex_t
Mutex.
Definition: vlc_threads.h:267
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:349
long vlc_mrand48(void)
PRNG uniformly distributed between -2^32 and 2^32 - 1.
Definition: rand.c:98
uint8_t * p_pixels
Start of the plane's data.
Definition: vlc_picture.h:39
void subpicture_region_ChainDelete(subpicture_region_t *p_head)
This function will destroy a list of subpicture regions allocated by subpicture_region_New.
Definition: subpicture.c:265
char * strdup(const char *)
void * vlc_probe(vlc_object_t *obj, const char *capability, size_t *restrict pcount)
Definition: probe.c:30
void picture_fifo_Flush(picture_fifo_t *fifo, mtime_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:102
bool b_fade
enable fading
Definition: vlc_subpicture.h:175
char * psz_demux_filter
Definition: renderer_discovery.c:56
unsigned i_port
Definition: vlc_url.h:151
void subpicture_region_private_Delete(subpicture_region_private_t *)
Definition: subpicture.c:198
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:108
Definition: vlc_image.h:39
void vlc_cond_destroy(vlc_cond_t *p_condvar)
Deinitializes a condition variable.
Definition: thread.c:228
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:380
picture_t * p_picture
picture comprising this region
Definition: vlc_subpicture.h:60
Definition: renderer_discovery.c:33
void vlc_cond_init(vlc_cond_t *p_condvar)
Initializes a condition variable.
Definition: thread.c:216
void vlc_cond_wait(vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex)
Waits on a condition variable.
Definition: thread.c:267
#define VLC_PROBE_CONTINUE
Definition: vlc_probe.h:62
static void picture_pool_Destroy(picture_pool_t *pool)
Definition: picture_pool.c:54
#define VLC_CODEC_YUVP
Definition: vlc_fourcc.h:258
picture_sys_t * p_sys
Private data - the video output plugin might want to put stuff here to keep track of the picture.
Definition: vlc_picture.h:98
void vlc_mutex_destroy(vlc_mutex_t *p_mutex)
Deinitializes a mutex.
Definition: thread.c:110
static void picture_pool_ReleasePicture(picture_t *clone)
Definition: picture_pool.c:71
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
#define unlikely(p)
Definition: vlc_common.h:114
vlc_cond_t wait
Definition: picture_pool.c:45
picture_t *const * picture
Definition: vlc_picture_pool.h:44
double vlc_drand48(void)
PRNG uniformly distributed between 0.0 and 1.0 with 48-bits precision.
Definition: rand.c:58
picture_pool_t * picture_pool_NewFromFormat(const video_format_t *fmt, unsigned count)
Allocates pictures from the heap and creates a picture pool with them.
Definition: picture_pool.c:157
int i_alpha
transparency
Definition: vlc_subpicture.h:65
int64_t mtime_t
High precision date or time interval.
Definition: vlc_common.h:150
subpicture_t * subpicture_New(const subpicture_updater_t *p_upd)
This function create a new empty subpicture.
Definition: subpicture.c:44
Definition: subpicture.c:38
char * psz_name
Definition: renderer_discovery.c:179
static void init_rand48(void)
Definition: rand.c:36
uint8_t * p_pixels
Start of the plane's data.
Definition: vlc_picture.h:133
unsigned picture_count
Definition: vlc_picture_pool.h:43
video_format_t fmt
format of the picture
Definition: vlc_subpicture.h:59
char * psz_name
Definition: vlc_renderer_discovery.h:171
static int vlc_probe_add(vlc_probe_t *obj, const void *data, size_t len)
Definition: vlc_probe.h:49
int i_pitch
Number of bytes in a line, including margins.
Definition: vlc_picture.h:135
struct vlc_renderer_discovery_owner owner
Definition: vlc_renderer_discovery.h:169
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:948
void subpicture_region_private_Delete(subpicture_region_private_t *p_private)
Definition: subpicture.c:198
#define module_unneed(a, b)
Definition: vlc_modules.h:49
void InitMD5(struct md5_s *h)
Definition: md5.c:335
#define VLC_STATIC_MUTEX
Static initializer for (static) mutex.
Definition: vlc_threads.h:272
subpicture_region_private_t * subpicture_region_private_New(video_format_t *p_fmt)
Definition: subpicture.c:181
static int fnsll(unsigned long long x, unsigned i)
Find next (bit) set.
Definition: picture_pool.c:205
Definition: subpicture.h:23
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
plane_t p[(5)]
description of the planes
Definition: vlc_picture.h:75
subpicture_updater_sys_t * p_sys
Definition: vlc_subpicture.h:140
uint64_t NTPtime64(void)
Definition: mtime.c:201
struct picture_priv_t::@53 gc
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
mtime_t date
display date
Definition: vlc_picture.h:82
const char * vlc_renderer_item_name(const vlc_renderer_item_t *p_item)
Get the human readable name of a renderer item.
Definition: renderer_discovery.c:109
#define msg_Err(p_this,...)
Definition: vlc_messages.h:82
double erand48(unsigned short subi[3])
int64_t i_order
Definition: vlc_subpicture.h:163
picture_pool_t * picture_pool_NewExtended(const picture_pool_configuration_t *cfg)
Creates a pool of preallocated pictures.
Definition: picture_pool.c:118
picture_t * picture_NewFromFormat(const video_format_t *p_fmt)
This function will create a new picture using the given format.
Definition: picture.c:271
Definition: vlc_renderer_discovery.h:155
Definition: vlc_renderer_discovery.h:164
#define module_need(a, b, c, d)
Definition: vlc_modules.h:47
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:32
subpicture_region_t * subpicture_region_Copy(subpicture_region_t *p_region_src)
This function will copy a subpicture region to a new allocated one and transfer all the properties.
Definition: subpicture.c:301
unsigned long long available
Definition: picture_pool.c:48
static picture_t * picture_pool_ClonePicture(picture_pool_t *pool, unsigned offset)
Definition: picture_pool.c:94
picture_pool_t * picture_pool_Reserve(picture_pool_t *master, unsigned count)
Reserves pictures from a pool and creates a new pool with those.
Definition: picture_pool.c:181