VLC  4.0.0-dev
subpicture.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * subpicture.h: Private subpicture definitions
3  *****************************************************************************
4  * Copyright (C) 2010 Laurent Aimar <fenrir _AT_ videolan _DOT_ org>
5  *
6  * Authors: Laurent Aimar <fenrir _AT_ videolan _DOT_ org>
7  *
8  * This program is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU Lesser General Public License as published by
10  * the Free Software Foundation; either version 2.1 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this program; if not, write to the Free Software Foundation,
20  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
21  *****************************************************************************/
22 
26 };
27 
29 
32 
vlc_playlist_IndexOf
ssize_t vlc_playlist_IndexOf(vlc_playlist_t *playlist, const vlc_playlist_item_t *item)
Return the index of a given item.
Definition: content.c:196
vlc_cond_broadcast
void vlc_cond_broadcast(vlc_cond_t *cond)
Wakes up all threads waiting on a condition variable.
Definition: threads.c:280
vlc_queue_DequeueUnlocked
void * vlc_queue_DequeueUnlocked(vlc_queue_t *q)
Dequeues the oldest entry (without locking).
Definition: queue.c:96
subpicture_updater_t::pf_destroy
void(* pf_destroy)(subpicture_t *)
Optional callback for subpicture private data cleanup.
Definition: vlc_subpicture.h:152
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
picture_priv_t::opaque
void * opaque
Definition: picture.h:50
entry_set
static void entry_set(struct vlc_queue_entry **pp, struct vlc_queue_entry *e)
Definition: queue.c:40
count
size_t count
Definition: core.c:401
vlc_renderer_item_hold
vlc_renderer_item_t * vlc_renderer_item_hold(vlc_renderer_item_t *p_item)
Hold a renderer item, i.e.
Definition: renderer_discovery.c:158
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
vlc_playlist_item_meta_New
static struct vlc_playlist_item_meta * vlc_playlist_item_meta_New(vlc_playlist_item_t *item, const struct vlc_playlist_sort_criterion criteria[], size_t count)
Definition: sort.c:191
video_format_t::p_palette
video_palette_t * p_palette
video palette from demuxer
Definition: vlc_es.h:370
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
subpicture_Update
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
picture_pool_t::lock
vlc_mutex_t lock
Definition: picture_pool.c:43
picture_t::format
video_frame_format_t format
The properties of the picture.
Definition: vlc_picture.h:125
vlc_playlist_state::current
ssize_t current
Definition: notify.h:37
vlc_playlist_item_meta::url
const char * url
Definition: sort.c:63
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
vlc_playlist
Definition: playlist.h:48
es_format_t::video
video_format_t video
description of video format
Definition: vlc_es.h:646
vlc_pic_chain
picture chaining helpers
Definition: vlc_picture.h:177
vlc_queue
Thread-safe queue (a.k.a.
Definition: vlc_queue.h:44
sort_request
Definition: sort.c:294
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
vlc_playlist_ComputeHasNext
bool vlc_playlist_ComputeHasNext(vlc_playlist_t *playlist)
Definition: control.c:300
strcasecmp
int strcasecmp(const char *, const char *)
vlc_atomic_rc_get
static uintptr_t vlc_atomic_rc_get(const vlc_atomic_rc_t *rc)
Returns the current reference count.
Definition: vlc_atomic.h:72
psz_name
const char * psz_name
Definition: text_style.c:53
vlc_rd_probe::psz_longname
char * psz_longname
Definition: renderer_discovery.c:178
vlc_renderer_item_t::rc
vlc_atomic_rc_t rc
Definition: renderer_discovery.c:60
text_segment_Copy
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:444
picture_InternalClone
picture_t * picture_InternalClone(picture_t *picture, void(*pf_destroy)(picture_t *), void *opaque)
Definition: picture.c:424
image_HandlerCreate
#define image_HandlerCreate(a)
Definition: vlc_image.h:65
vlc_open
int vlc_open(const char *filename, int flags,...)
Opens a system file handle.
Definition: filesystem.c:52
vlc_meta_Album
@ vlc_meta_Album
Definition: vlc_meta.h:39
vlc_rand_bytes
void vlc_rand_bytes(void *buf, size_t len)
Definition: rand.c:28
vlc_probe_t::count
size_t count
Definition: vlc_probe.h:45
control.h
EMPTY_STR
#define EMPTY_STR(str)
Definition: vlc_common.h:963
okey
static uint8_t okey[64]
Definition: rand.c:47
unlikely
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
vlc_queue_Lock
static void vlc_queue_Lock(vlc_queue_t *q)
Locks a queue.
Definition: vlc_queue.h:87
vlc_playlist_state_NotifyChanges
void vlc_playlist_state_NotifyChanges(vlc_playlist_t *playlist, struct vlc_playlist_state *saved_state)
Definition: notify.c:91
vlc_common.h
VLC_PLAYLIST_SORT_KEY_ALBUM
@ VLC_PLAYLIST_SORT_KEY_ALBUM
Definition: vlc_playlist.h:134
subpicture_updater_t
Definition: vlc_subpicture.h:135
vlc_probe
#define vlc_probe(obj, cap, pcount)
Definition: vlc_probe.h:37
picture_fifo_t::lock
vlc_mutex_t lock
Definition: picture_fifo.c:65
vlc_meta_DiscNumber
@ vlc_meta_DiscNumber
Definition: vlc_meta.h:60
vlc_queue::wait
vlc_cond_t wait
Definition: vlc_queue.h:50
vlc_playlist_item_meta::disc_number
int64_t disc_number
Definition: sort.c:66
subpicture_region_t::i_y
int i_y
position of region, relative to alignment
Definition: vlc_subpicture.h:65
subpicture_region_NewInternal
subpicture_region_t * subpicture_region_NewInternal(const video_format_t *p_fmt)
Definition: subpicture.c:205
vlc_probe_t
Definition: vlc_probe.h:40
VLC_PLAYLIST_SORT_KEY_RATING
@ VLC_PLAYLIST_SORT_KEY_RATING
Definition: vlc_playlist.h:141
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
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
vlc_mutex_assert
#define vlc_mutex_assert(m)
Asserts that a mutex is locked by the calling thread.
Definition: vlc_threads.h:328
vlc_meta_URL
@ vlc_meta_URL
Definition: vlc_meta.h:45
notify.h
video_format_t::i_sar_num
unsigned int i_sar_num
sample/pixel aspect ratio
Definition: vlc_es.h:363
input_item_t
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:77
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
vlc_picture_chain_Append
static void vlc_picture_chain_Append(vlc_picture_chain_t *chain, picture_t *pic)
Append a picture to a picture chain.
Definition: vlc_picture.h:251
vlc_renderer_item_t::psz_type
char * psz_type
Definition: renderer_discovery.c:55
ikey
static uint8_t ikey[64]
Definition: rand.c:47
subpicture_updater_t::p_sys
void * p_sys
Definition: vlc_subpicture.h:153
subpicture_t::i_original_picture_height
int i_original_picture_height
original height of the movie
Definition: vlc_subpicture.h:199
picture_pool_New
picture_pool_t * picture_pool_New(unsigned count, picture_t *const *tab)
Creates a pool of preallocated pictures.
Definition: picture_pool.c:102
item.h
aligned_alloc
void * aligned_alloc(size_t, size_t)
vlc_queue::lock
vlc_mutex_t lock
Definition: vlc_queue.h:49
picture_pool_GetSize
unsigned picture_pool_GetSize(const picture_pool_t *pool)
Definition: picture_pool.c:234
nrand48
long nrand48(unsigned short subi[3])
input_item_t::lock
vlc_mutex_t lock
Lock for the item.
Definition: vlc_input_item.h:112
vlc_queue_Init
void vlc_queue_Init(vlc_queue_t *q, ptrdiff_t next_offset)
Initializes a queue.
Definition: queue.c:71
vlc_qsort
void vlc_qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *, void *), void *arg)
Sort an array with reentrancy, following the upcoming POSIX prototype.
Definition: sort.c:43
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
picture_priv_t::gc
struct picture_priv_t::@74 gc
subpicture_region_t::zoom_h
vlc_rational_t zoom_h
vertical rendering/cropping target/limit
Definition: vlc_subpicture.h:78
subpicture_region_private_t::fmt
video_format_t fmt
Definition: subpicture.h:44
vlc_queue_Unlock
static void vlc_queue_Unlock(vlc_queue_t *q)
Unlocks a queue.
Definition: vlc_queue.h:99
picture_Release
static void picture_Release(picture_t *picture)
Decrements the picture reference count.
Definition: vlc_picture.h:368
vlc_renderer_item_type
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:118
vlc_queue_Dequeue
void * vlc_queue_Dequeue(vlc_queue_t *q)
Dequeues the oldest entry.
Definition: queue.c:135
subpicture_private_t::dst
video_format_t dst
Definition: subpicture.c:62
filter_t::fmt_in
es_format_t fmt_in
Definition: vlc_filter.h:224
vlc_cond_wait
void vlc_cond_wait(vlc_cond_t *cond, vlc_mutex_t *mutex)
Waits on a condition variable.
Definition: threads.c:340
video_format_t
video format description
Definition: vlc_es.h:350
vlc_lrand48
long vlc_lrand48(void)
PRNG uniformly distributed between 0 and 2^32 - 1.
Definition: rand.c:77
subpicture_region_t::b_balanced_text
bool b_balanced_text
if the decoder sends row/cols based output
Definition: vlc_subpicture.h:74
vlc_UrlClean
void vlc_UrlClean(vlc_url_t *restrict url)
Definition: url.c:598
subpicture_region_t::p_private
subpicture_region_private_t * p_private
Private data for spu_t only
Definition: vlc_subpicture.h:82
subi
unsigned short subi[3]
Definition: rand.c:49
vlc_picture_chain_GetAndClear
static void vlc_picture_chain_GetAndClear(vlc_picture_chain_t *in, vlc_picture_chain_t *out)
Copy the picture chain in another picture chain and clear the original picture chain.
Definition: vlc_picture.h:279
VLC_CODEC_TEXT
#define VLC_CODEC_TEXT
Definition: vlc_fourcc.h:593
compar_wrapper
static int compar_wrapper(const void *a, const void *b)
Definition: sort.c:35
subpicture_region_t::i_x
int i_x
position of region, relative to alignment
Definition: vlc_subpicture.h:64
vlc_queue_Signal
static void vlc_queue_Signal(vlc_queue_t *q)
Wakes one thread waiting for a queue entry up.
Definition: vlc_queue.h:107
vlc_playlist_item_meta::title_or_name
const char * title_or_name
Definition: sort.c:57
vlc_playlist_item::media
input_item_t * media
Definition: item.h:31
vlc_queue_Enqueue
void vlc_queue_Enqueue(vlc_queue_t *q, void *entry)
Queues an entry.
Definition: queue.c:128
vlc_rational_t::den
unsigned den
Definition: fourcc_gen.c:34
CompareOptionalIntegers
static int CompareOptionalIntegers(bool has_a, int64_t a, bool has_b, int64_t b)
Definition: sort.c:243
picture_t::date
vlc_tick_t date
display date
Definition: vlc_picture.h:134
vlc_playlist_item_meta::item
vlc_playlist_item_t * item
Definition: sort.c:56
picture_pool_Release
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
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
vlc_picture_pool.h
picture.h
VLC_PLAYLIST_SORT_KEY_GENRE
@ VLC_PLAYLIST_SORT_KEY_GENRE
Definition: vlc_playlist.h:136
vlc_playlist_item
Definition: item.h:29
next_get
static struct vlc_queue_entry * next_get(const struct vlc_queue_entry *e, ptrdiff_t offset)
Definition: queue.c:65
subpicture_t::b_absolute
bool b_absolute
position is absolute
Definition: vlc_subpicture.h:197
vlc_renderer_item_release
void vlc_renderer_item_release(vlc_renderer_item_t *p_item)
Releases a renderer item, i.e.
Definition: renderer_discovery.c:167
vlc_rd_probe
Definition: renderer_discovery.c:175
subpicture_region_Copy
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:313
rand48
static struct @75 rand48
vlc_queue.h
VLC_STATIC_MUTEX
#define VLC_STATIC_MUTEX
Static initializer for (static) mutex.
Definition: vlc_threads.h:249
picture_t
Video picture.
Definition: vlc_picture.h:120
asprintf
int asprintf(char **, const char *,...)
next_p
static struct vlc_queue_entry ** next_p(const struct vlc_queue_entry *e, ptrdiff_t offset)
Definition: queue.c:53
vlc_cond_signal
void vlc_cond_signal(vlc_cond_t *cond)
Wakes up one thread waiting on a condition variable.
Definition: threads.c:253
vlc_rand.h
playlist_item_vector_t::size
size_t size
Definition: playlist.h:46
picture_pool_t::picture_count
unsigned short picture_count
Definition: picture_pool.c:49
vlc_mutex_t
Mutex.
Definition: vlc_threads.h:225
subpicture_t::i_alpha
int i_alpha
transparency
Definition: vlc_subpicture.h:200
jrand48
long jrand48(unsigned short subi[3])
vlc_renderer_item_sout
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:126
init
bool init
Definition: rand.c:48
picture_pool_Wait
picture_t * picture_pool_Wait(picture_pool_t *pool)
Obtains a picture from a pool.
Definition: picture_pool.c:201
vlc_renderer_discovery.h
vlc_hash_md5_Finish
void vlc_hash_md5_Finish(vlc_hash_md5_t *ctx, void *output, size_t size)
Finish MD5 hash computation.
Definition: md5.c:348
VLC_PLAYLIST_SORT_KEY_ALBUM_ARTIST
@ VLC_PLAYLIST_SORT_KEY_ALBUM_ARTIST
Definition: vlc_playlist.h:135
subpicture_region_private_New
subpicture_region_private_t * subpicture_region_private_New(video_format_t *)
Definition: subpicture.c:180
filter_t::fmt_out
es_format_t fmt_out
Definition: vlc_filter.h:228
aligned_free
#define aligned_free(ptr)
Definition: vlc_fixups.h:325
vlc_playlist_Sort
int vlc_playlist_Sort(vlc_playlist_t *playlist, const struct vlc_playlist_sort_criterion criteria[], size_t count)
Sort the playlist by a list of criteria.
Definition: sort.c:363
plane_t::i_lines
int i_lines
Number of lines, including margins.
Definition: vlc_picture.h:45
vlc_meta_Title
@ vlc_meta_Title
Definition: vlc_meta.h:35
vlc_renderer_item_t::psz_sout
char * psz_sout
Definition: renderer_discovery.c:56
vlc_hash_md5_Init
void vlc_hash_md5_Init(vlc_hash_md5_t *ctx)
Initialize MD5 context.
Definition: md5.c:338
vlc_probe_t::list
void * list
Definition: vlc_probe.h:44
vlc_url_t::psz_host
char * psz_host
Definition: vlc_url.h:150
vlc_playlist_item_meta::has_disc_number
bool has_disc_number
Definition: sort.c:70
text_segment_ChainDelete
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:432
vlc_playlist::has_prev
bool has_prev
Definition: playlist.h:58
msg_Warn
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:104
vlc_queue::first
struct vlc_queue_entry * first
Definition: vlc_queue.h:46
vlc_assert_unreachable
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
vlc_renderer_item_demux_filter
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:142
picture_NewFromFormat
picture_t * picture_NewFromFormat(const video_format_t *restrict fmt)
Definition: picture.c:259
picture_fifo_New
picture_fifo_t * picture_fifo_New(void)
It creates an empty picture_fifo_t.
Definition: picture_fifo.c:58
vlc_renderer_discovery_t::p_cfg
config_chain_t * p_cfg
Definition: vlc_renderer_discovery.h:173
vlc_renderer_item_t::psz_icon_uri
char * psz_icon_uri
Definition: renderer_discovery.c:57
VLC_PLAYLIST_SORT_KEY_TITLE
@ VLC_PLAYLIST_SORT_KEY_TITLE
Definition: vlc_playlist.h:131
video_format_t::i_width
unsigned int i_width
picture width
Definition: vlc_es.h:354
vlc_renderer_item_t::psz_name
char * psz_name
Definition: renderer_discovery.c:54
BLOCK_SIZE
#define BLOCK_SIZE
Definition: rand.c:45
subpicture_updater_t::pf_update
void(* pf_update)(subpicture_t *, const video_format_t *p_fmt_src, const video_format_t *p_fmt_dst, vlc_tick_t)
Mandatory callback called after pf_validate and doing the main job of creating the subpicture regions...
Definition: vlc_subpicture.h:147
picture_pool_t
Definition: picture_pool.c:42
arg
void * arg
Definition: sort.c:51
picture_t::i_planes
int i_planes
number of allocated planes
Definition: vlc_picture.h:128
CompareMetaByKey
static int CompareMetaByKey(const struct vlc_playlist_item_meta *a, const struct vlc_playlist_item_meta *b, enum vlc_playlist_sort_key key)
Definition: sort.c:255
vlc_meta_Artist
@ vlc_meta_Artist
Definition: vlc_meta.h:36
picture_pool_t::picture
picture_t * picture[]
Definition: picture_pool.c:50
vlc_url_t::psz_protocol
char * psz_protocol
Definition: vlc_url.h:147
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
vlc_UrlParse
int vlc_UrlParse(vlc_url_t *url, const char *str)
Parses an URI or IRI.
Definition: url.c:558
vlc_playlist::current
ssize_t current
Definition: playlist.h:57
module_t
Internal module descriptor.
Definition: modules.h:78
vlc_playlist_item_meta::track_number
int64_t track_number
Definition: sort.c:65
vlc_atomic_rc_inc
static void vlc_atomic_rc_inc(vlc_atomic_rc_t *rc)
Increment the RC.
Definition: vlc_atomic.h:52
filter_t
Structure describing a filter.
Definition: vlc_filter.h:215
input_item_t::psz_name
char * psz_name
text describing this item
Definition: vlc_input_item.h:79
subpicture_private_t::src
video_format_t src
Definition: subpicture.c:61
picture_fifo_t
Definition: picture_fifo.c:39
vlc_atomic.h
vlc_tick_t
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
vlc_playlist_sort_key
vlc_playlist_sort_key
Definition: vlc_playlist.h:129
vlc_playlist_ComputeHasPrev
bool vlc_playlist_ComputeHasPrev(vlc_playlist_t *playlist)
Definition: control.c:285
vlc_playlist_item_meta::album_artist
const char * album_artist
Definition: sort.c:61
image_Convert
#define image_Convert(a, b, c, d)
Definition: vlc_image.h:72
vlc_queue_DequeueAllUnlocked
void * vlc_queue_DequeueAllUnlocked(vlc_queue_t *q)
Dequeues all entries (without locking).
Definition: queue.c:116
vlc_rand_init
static void vlc_rand_init(void)
Definition: rand.c:49
plane_t::i_pitch
int i_pitch
Number of bytes in a line, including margins.
Definition: vlc_picture.h:46
vlc_playlist_state
Definition: notify.h:36
next_set
static void next_set(struct vlc_queue_entry *e, struct vlc_queue_entry *next, ptrdiff_t offset)
Definition: queue.c:59
vlc_playlist_item_meta_InitField
static int vlc_playlist_item_meta_InitField(struct vlc_playlist_item_meta *meta, enum vlc_playlist_sort_key key)
Definition: sort.c:71
vlc_rd_new
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:243
subpicture_t
Video subtitle.
Definition: vlc_subpicture.h:166
PictureFifoPush
static void PictureFifoPush(picture_fifo_t *fifo, picture_t *picture)
Definition: picture_fifo.c:48
subpicture_t::p_region
subpicture_region_t * p_region
region list composing this subtitle
Definition: vlc_subpicture.h:180
subpicture_region_private_t::p_picture
picture_t * p_picture
Definition: subpicture.h:45
vlc_filter.h
vlc_playlist_item_meta::artist
const char * artist
Definition: sort.c:59
subpicture_region_t::i_align
int i_align
alignment flags of region
Definition: vlc_subpicture.h:66
vlc_rd_release
void vlc_rd_release(vlc_renderer_discovery_t *p_rd)
Definition: renderer_discovery.c:234
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
vlc_meta_Date
@ vlc_meta_Date
Definition: vlc_meta.h:43
vlc_queue::next_offset
ptrdiff_t next_offset
Definition: vlc_queue.h:48
PictureFifoPop
static picture_t * PictureFifoPop(picture_fifo_t *fifo)
Definition: picture_fifo.c:53
vlc_rd_probe_add
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:182
subpicture_region_t
Video subtitle region.
Definition: vlc_subpicture.h:59
VLC_TICK_INVALID
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
lock
vlc_mutex_t lock
Definition: rand.c:50
vlc_playlist_item_meta_CopyString
static int vlc_playlist_item_meta_CopyString(const char **to, const char *from)
Definition: sort.c:57
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_close
int vlc_close(int fd)
Closes a file descriptor.
Definition: filesystem.c:91
subpicture_t::i_original_picture_width
int i_original_picture_width
original width of the movie
Definition: vlc_subpicture.h:198
vlc_playlist_item_meta_Delete
static void vlc_playlist_item_meta_Delete(struct vlc_playlist_item_meta *meta)
Definition: sort.c:216
vlc_renderer_discovery_t::p_module
module_t * p_module
Definition: vlc_renderer_discovery.h:168
vlc_playlist_item_meta
Struct containing a copy of (parsed) media metadata, used for sorting without locking all the items.
Definition: sort.c:37
picture_pool_Cancel
void picture_pool_Cancel(picture_pool_t *pool, bool canceled)
Cancel the picture pool.
Definition: picture_pool.c:223
picture_pool_t::canceled
bool canceled
Definition: picture_pool.c:46
VLC_PLAYLIST_SORT_KEY_ARTIST
@ VLC_PLAYLIST_SORT_KEY_ARTIST
Definition: vlc_playlist.h:133
picture_fifo_t::pics
vlc_picture_chain_t pics
Definition: picture_fifo.c:66
vlc_meta_Genre
@ vlc_meta_Genre
Definition: vlc_meta.h:37
item_free
static void item_free(vlc_renderer_item_t *p_item)
Definition: renderer_discovery.c:46
image_HandlerDelete
void image_HandlerDelete(image_handler_t *p_image)
Delete the image_handler_t instance.
Definition: image.c:116
vlc_hash.h
static_assert
#define static_assert
Definition: vlc_fixups.h:370
vlc_playlist_item_meta::genre
const char * genre
Definition: sort.c:62
subpicture_region_t::p_next
subpicture_region_t * p_next
next region in the list
Definition: vlc_subpicture.h:81
filter_ConfigureBlend
int filter_ConfigureBlend(vlc_blender_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:128
vlc_renderer_item_name
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:110
video_format_t::i_visible_height
unsigned int i_visible_height
height of visible area
Definition: vlc_es.h:359
vlc_renderer_item_new
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:57
vlc_playlist_AssertLocked
static void vlc_playlist_AssertLocked(vlc_playlist_t *playlist)
Definition: playlist.h:69
PictureFifoReset
static void PictureFifoReset(picture_fifo_t *fifo)
Definition: picture_fifo.c:44
subpicture_t::b_subtitle
bool b_subtitle
the picture is a movie subtitle
Definition: vlc_subpicture.h:196
sort_request::criteria
const struct vlc_playlist_sort_criterion * criteria
Definition: sort.c:296
subpicture_NewFromPicture
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:100
subpicture_t::p_private
subpicture_private_t * p_private
Definition: vlc_subpicture.h:205
vlc_subpicture.h
subpicture_region_ChainDelete
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:277
vlc_playlist_item_meta::rating
int64_t rating
Definition: sort.c:67
vlc_playlist_item_meta::has_rating
bool has_rating
Definition: sort.c:71
vlc_playlist_Notify
#define vlc_playlist_Notify(playlist, event,...)
Definition: notify.h:51
video_format_t::i_sar_den
unsigned int i_sar_den
Definition: vlc_es.h:364
vlc_fs.h
vlc_queue_IsEmpty
static bool vlc_queue_IsEmpty(const vlc_queue_t *q)
Checks if a queue is empty (without locking).
Definition: vlc_queue.h:177
subpicture_New
subpicture_t * subpicture_New(const subpicture_updater_t *p_upd)
This function create a new empty subpicture.
Definition: subpicture.c:43
VLC_PLAYLIST_SORT_KEY_DURATION
@ VLC_PLAYLIST_SORT_KEY_DURATION
Definition: vlc_playlist.h:132
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
vlc_renderer_item_t::i_flags
int i_flags
Definition: renderer_discovery.c:59
vlc_url_t
Definition: vlc_url.h:145
playlist_item_vector_t::data
vlc_playlist_item_t ** data
Definition: playlist.h:46
vlc_hash_md5_ctx
MD5 hash context.
Definition: vlc_hash.h:85
vlc_object_t
VLC object common members.
Definition: vlc_objects.h:43
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
vlc_rational_t::num
unsigned num
Definition: fourcc_gen.c:34
VLC_ENOMEM
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
vlc_probe.h
vlc_playlist_item_meta_DestroyFields
static void vlc_playlist_item_meta_DestroyFields(struct vlc_playlist_item_meta *meta)
Definition: sort.c:163
VLC_PLAYLIST_SORT_KEY_TRACK_NUMBER
@ VLC_PLAYLIST_SORT_KEY_TRACK_NUMBER
Definition: vlc_playlist.h:138
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
POOL_MAX
#define POOL_MAX
Definition: picture_pool.c:38
vlc_meta_AlbumArtist
@ vlc_meta_AlbumArtist
Definition: vlc_meta.h:59
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
vlc_mrand48
long vlc_mrand48(void)
PRNG uniformly distributed between -2^32 and 2^32 - 1.
Definition: rand.c:97
plane_t::p_pixels
uint8_t * p_pixels
Start of the plane's data.
Definition: vlc_picture.h:42
video_format_t::i_visible_width
unsigned int i_visible_width
width of visible area
Definition: vlc_es.h:358
strdup
char * strdup(const char *)
vlc_playlist_sort_criterion::order
enum vlc_playlist_sort_order order
Definition: vlc_playlist.h:153
vlc_probe
void * vlc_probe(vlc_object_t *obj, const char *capability, size_t *restrict pcount)
Definition: probe.c:31
subpicture_t::b_fade
bool b_fade
enable fading
Definition: vlc_subpicture.h:188
vlc_playlist_item_meta::duration
vlc_tick_t duration
Definition: sort.c:58
vlc_renderer_item_t::psz_demux_filter
char * psz_demux_filter
Definition: renderer_discovery.c:58
vlc_playlist::has_next
bool has_next
Definition: playlist.h:59
vlc_url_t::i_port
unsigned i_port
Definition: vlc_url.h:151
subpicture_region_private_Delete
void subpicture_region_private_Delete(subpicture_region_private_t *)
Definition: subpicture.c:197
vlc_custom_create
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
CompareStrings
static int CompareStrings(const char *a, const char *b)
Definition: sort.c:223
image_handler_t
Definition: vlc_image.h:39
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
vlc_queue_DequeueAll
void * vlc_queue_DequeueAll(vlc_queue_t *q)
Dequeues all entries.
Definition: queue.c:151
VLC_WEAK
#define VLC_WEAK
Weak symbol annotation.
Definition: vlc_common.h:198
vlc_playlist_item_meta::has_track_number
bool has_track_number
Definition: sort.c:69
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
vlc_renderer_item_t
Definition: renderer_discovery.c:34
entry
Definition: fourcc_gen.c:51
vlc_cond_t
Condition variable.
Definition: vlc_threads.h:349
VLC_PROBE_CONTINUE
#define VLC_PROBE_CONTINUE
Definition: vlc_probe.h:63
VLC_PLAYLIST_SORT_KEY_DATE
@ VLC_PLAYLIST_SORT_KEY_DATE
Definition: vlc_playlist.h:137
picture_pool_Destroy
static void picture_pool_Destroy(picture_pool_t *pool)
Definition: picture_pool.c:53
vlc_playlist_item_meta::has_date
bool has_date
Definition: sort.c:68
vlc_picture_chain_IsEmpty
static bool vlc_picture_chain_IsEmpty(const vlc_picture_chain_t *chain)
Check whether a picture chain holds pictures or not.
Definition: vlc_picture.h:198
input_item_t::i_duration
vlc_tick_t i_duration
Duration in vlc ticks.
Definition: vlc_input_item.h:88
VLC_CODEC_YUVP
#define VLC_CODEC_YUVP
Definition: vlc_fourcc.h:267
vlc_picture_fifo.h
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
vlc_playlist_sort_criterion::key
enum vlc_playlist_sort_key key
Definition: vlc_playlist.h:152
vlc_rd_get_names
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:199
vlc_playlist_item_meta_InitFields
static int vlc_playlist_item_meta_InitFields(struct vlc_playlist_item_meta *meta, const struct vlc_playlist_sort_criterion criteria[], size_t count)
Definition: sort.c:174
vlc_meta_Rating
@ vlc_meta_Rating
Definition: vlc_meta.h:42
video_format_t::i_height
unsigned int i_height
picture height
Definition: vlc_es.h:355
VLC_PLAYLIST_SORT_KEY_DISC_NUMBER
@ VLC_PLAYLIST_SORT_KEY_DISC_NUMBER
Definition: vlc_playlist.h:139
VLC_PLAYLIST_SORT_ORDER_DESCENDING
@ VLC_PLAYLIST_SORT_ORDER_DESCENDING
Definition: vlc_playlist.h:147
INPUT_DURATION_UNSET
#define INPUT_DURATION_UNSET
Definition: vlc_input_item.h:133
vlc_playlist_state_Save
void vlc_playlist_state_Save(vlc_playlist_t *playlist, struct vlc_playlist_state *state)
Definition: notify.c:82
vlc_image.h
vlc_hash_md5_Update
void vlc_hash_md5_Update(vlc_hash_md5_t *ctx, const void *data, size_t length)
Update MD5 hash computation with new data.
Definition: md5.c:343
vlc_meta_TrackNumber
@ vlc_meta_TrackNumber
Definition: vlc_meta.h:40
vlc_playlist_DeleteMetaArray
static void vlc_playlist_DeleteMetaArray(struct vlc_playlist_item_meta *array[], size_t count)
Definition: sort.c:325
picture_pool_t::wait
vlc_cond_t wait
Definition: picture_pool.c:44
subpicture.h
libvlc.h
vlc_queue_Wait
static void vlc_queue_Wait(vlc_queue_t *q)
Waits for a queue entry.
Definition: vlc_queue.h:121
vlc_drand48
double vlc_drand48(void)
PRNG uniformly distributed between 0.0 and 1.0 with 48-bits precision.
Definition: rand.c:57
CompareIntegers
static int CompareIntegers(int64_t a, int64_t b)
Definition: sort.c:233
picture_pool_NewFromFormat
picture_pool_t * picture_pool_NewFromFormat(const video_format_t *fmt, unsigned count)
Allocates pictures from the heap and creates a picture pool with them.
Definition: picture_pool.c:128
vlc_queue::lastp
struct vlc_queue_entry ** lastp
Definition: vlc_queue.h:47
subpicture_region_t::i_alpha
int i_alpha
transparency
Definition: vlc_subpicture.h:67
picture_pool_t::refs
vlc_atomic_rc_t refs
Definition: picture_pool.c:48
vlc_object_delete
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
compar
int(* compar)(const void *, const void *, void *)
Definition: sort.c:50
picture_priv_t
Definition: picture.h:26
subpicture_private_t
Definition: subpicture.c:37
entry_get
static struct vlc_queue_entry * entry_get(struct vlc_queue_entry *const *pp)
Definition: queue.c:45
vlc_rd_probe::psz_name
char * psz_name
Definition: renderer_discovery.c:177
vlc_sort.h
init_rand48
static void init_rand48(void)
Definition: rand.c:35
subpicture_region_t::fmt
video_format_t fmt
format of the picture
Definition: vlc_subpicture.h:61
vlc_renderer_discovery_t::psz_name
char * psz_name
Definition: vlc_renderer_discovery.h:172
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
subpicture_region_t::zoom_v
vlc_rational_t zoom_v
Definition: vlc_subpicture.h:79
vlc_probe_add
static int vlc_probe_add(vlc_probe_t *obj, const void *data, size_t len)
Definition: vlc_probe.h:50
playlist.h
vlc_playlist_sort_criterion
Definition: vlc_playlist.h:150
vlc_renderer_discovery_t::owner
struct vlc_renderer_discovery_owner owner
Definition: vlc_renderer_discovery.h:170
vlc_playlist::items
playlist_item_vector_t items
Definition: playlist.h:55
vlc_cond_init
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
vlc_renderer_item_icon_uri
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:134
atoll
long long atoll(const char *)
vlc_alloc
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:1144
subpicture_region_private_Delete
void subpicture_region_private_Delete(subpicture_region_private_t *p_private)
Definition: subpicture.c:197
module_unneed
#define module_unneed(a, b)
Definition: vlc_modules.h:126
picture_pool_ReleaseClone
static void picture_pool_ReleaseClone(picture_t *clone)
Definition: picture_pool.c:68
state
static thread_local struct @76 state
VLC_PLAYLIST_SORT_KEY_URL
@ VLC_PLAYLIST_SORT_KEY_URL
Definition: vlc_playlist.h:140
sort_request::count
size_t count
Definition: sort.c:297
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
input_item_GetMetaLocked
const char * input_item_GetMetaLocked(input_item_t *item, vlc_meta_type_t meta_type)
Definition: item.c:237
vlc_picture_chain_PopFront
static picture_t * vlc_picture_chain_PopFront(vlc_picture_chain_t *chain)
Pop the front of a picture chain.
Definition: vlc_picture.h:218
subpicture_region_private_New
subpicture_region_private_t * subpicture_region_private_New(video_format_t *p_fmt)
Definition: subpicture.c:180
ctz
#define ctz(x)
Count trailing zeroes.
Definition: vlc_common.h:716
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
VLC_HASH_MD5_DIGEST_SIZE
#define VLC_HASH_MD5_DIGEST_SIZE
MD5 digest output size.
Definition: vlc_hash.h:98
subpicture_region_private_t
Definition: subpicture.h:23
picture_t::p
plane_t p[(5)]
description of the planes
Definition: vlc_picture.h:127
vlc_atomic_rc_t
Definition: vlc_atomic.h:41
NTPtime64
uint64_t NTPtime64(void)
Definition: mtime.c:129
vlc_queue_EnqueueUnlocked
void vlc_queue_EnqueueUnlocked(vlc_queue_t *q, void *entry)
Queues an entry (without locking).
Definition: queue.c:80
subpicture_region_Delete
void subpicture_region_Delete(subpicture_region_t *p_region)
This function will destroy a subpicture region allocated by subpicture_region_New.
Definition: subpicture.c:261
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
erand48
double erand48(unsigned short subi[3])
subpicture_t::i_order
int64_t i_order
Definition: vlc_subpicture.h:176
subpicture_Delete
void subpicture_Delete(subpicture_t *p_subpic)
This function delete a subpicture created by subpicture_New.
Definition: subpicture.c:82
vlc_testcancel
void vlc_testcancel(void)
Issues an explicit deferred cancellation point.
Definition: thread.c:201
vlc_playlist_NewMetaArray
static struct vlc_playlist_item_meta ** vlc_playlist_NewMetaArray(vlc_playlist_t *playlist, const struct vlc_playlist_sort_criterion criteria[], size_t count)
Definition: sort.c:334
vlc_playlist_item_meta::date
int64_t date
Definition: sort.c:64
INPUT_DURATION_INDEFINITE
#define INPUT_DURATION_INDEFINITE
Definition: vlc_input_item.h:134
vlc_renderer_item_flags
int vlc_renderer_item_flags(const vlc_renderer_item_t *p_item)
Get the flags of a renderer item.
Definition: renderer_discovery.c:150
vlc_renderer_discovery_owner
Definition: vlc_renderer_discovery.h:156
vlc_renderer_discovery_t
Definition: vlc_renderer_discovery.h:165
module_need
#define module_need(a, b, c, d)
Definition: vlc_modules.h:111
filter_Blend
int filter_Blend(vlc_blender_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:162
vlc_playlist_item_meta::album
const char * album
Definition: sort.c:60
vlc_fourcc_t
uint32_t vlc_fourcc_t
Definition: fourcc_gen.c:33
vlc_modules.h
compare_meta
static int compare_meta(const void *lhs, const void *rhs, void *userdata)
Definition: sort.c:301
picture_pool_t::available
unsigned long long available
Definition: picture_pool.c:47
picture_pool_ClonePicture
static picture_t * picture_pool_ClonePicture(picture_pool_t *pool, unsigned offset)
Definition: picture_pool.c:87
picture_pool_Reserve
picture_pool_t * picture_pool_Reserve(picture_pool_t *master, unsigned count)
Reserves pictures from a pool and creates a new pool with those.
Definition: picture_pool.c:152
subpicture_region_NewInternal
subpicture_region_t * subpicture_region_NewInternal(const video_format_t *p_fmt)
Definition: subpicture.c:205
vlc_picture_chain_Init
static void vlc_picture_chain_Init(vlc_picture_chain_t *chain)
Initializes or reset a picture chain.
Definition: vlc_picture.h:187