VLC  4.0.0-dev
media_source.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * media_source.h
3  *****************************************************************************
4  * Copyright (C) 2018 VLC authors and VideoLAN
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation; either version 2.1 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
19  *****************************************************************************/
20 
21 #ifndef MEDIA_SOURCE_H
22 #define MEDIA_SOURCE_H
23 
24 #include <vlc_media_source.h>
25 
28 #define vlc_media_source_provider_New(obj) \
29  vlc_media_source_provider_New(VLC_OBJECT(obj))
30 
32 
33 #endif
VLC_VECTOR
#define VLC_VECTOR(type)
Vector struct body.
Definition: vlc_vector.h:65
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
VLC_SYSDATA_DIR
@ VLC_SYSDATA_DIR
Global architecture-independent read-only data directory (e.g.
Definition: vlc_configuration.h:280
vlc_readdir
const char * vlc_readdir(DIR *dir)
Reads the next file name from an open directory.
Definition: filesystem.c:126
count
size_t count
Definition: core.c:401
vlc_sendto
ssize_t vlc_sendto(int fd, const void *buf, size_t len, int flags, const struct sockaddr *dst, socklen_t dstlen)
Sends data to a peer.
Definition: filesystem.c:368
vlc_sd_GetNames
#define vlc_sd_GetNames(obj, pln, pcat)
Definition: vlc_services_discovery.h:143
vlc_media_source_meta::name
char * name
Definition: vlc_media_source.h:263
media_source_private_t::rc
vlc_atomic_rc_t rc
Definition: media_source.c:62
vlc_memstream
In-memory stream object.
Definition: vlc_memstream.h:41
vlc_getaddrinfo
int vlc_getaddrinfo(const char *node, unsigned port, const struct addrinfo *hints, struct addrinfo **res)
Resolves a host name to a list of socket addresses (like getaddrinfo()).
Definition: getaddrinfo.c:77
vlc_sem_wait_i11e
int vlc_sem_wait_i11e(vlc_sem_t *sem)
Interruptible variant of vlc_sem_wait().
Definition: interrupt.c:197
config_GetAppDir
static char * config_GetAppDir(void)
Definition: dirs.c:117
VLC_CACHE_DIR
@ VLC_CACHE_DIR
Definition: vlc_configuration.h:310
VLC_VIDEOS_DIR
@ VLC_VIDEOS_DIR
Definition: vlc_configuration.h:319
services_discovery_t
Main service discovery structure to build a SD module.
Definition: vlc_services_discovery.h:59
config_GetDataDir
static char * config_GetDataDir(void)
Determines the shared data directory.
Definition: dirs.c:108
vlc_stat
int vlc_stat(const char *filename, struct stat *buf)
Finds file/inode information - like stat().
Definition: filesystem.c:173
vlc_open
int vlc_open(const char *filename, int flags,...)
Opens a system file handle.
Definition: filesystem.c:52
vlc_media_source_provider_Remove
static void vlc_media_source_provider_Remove(vlc_media_source_provider_t *provider, vlc_media_source_t *ms)
Definition: media_source.c:156
vlc_rand_bytes
void vlc_rand_bytes(void *buf, size_t len)
Definition: rand.c:28
libvlc_int_t
Definition: vlc_objects.h:114
VLC_PKG_LIB_DIR
@ VLC_PKG_LIB_DIR
Package-specific architecture-dependent read-only data directory (e.g.
Definition: vlc_configuration.h:275
vlc_sem_init
void vlc_sem_init(vlc_sem_t *sem, unsigned value)
Initializes a semaphore.
Definition: threads.c:442
unlikely
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
vlc_memstream::error
int error
Definition: vlc_memstream.h:46
vlc_common.h
VLC_DESKTOP_DIR
@ VLC_DESKTOP_DIR
Definition: vlc_configuration.h:312
vlc_sendmsg
ssize_t vlc_sendmsg(int fd, const struct msghdr *msg, int flags)
Sends a socket message.
Definition: filesystem.c:374
vlc_media_tree::root
input_item_node_t root
Definition: vlc_media_source.h:66
vlc_media_source_meta_list_Delete
void vlc_media_source_meta_list_Delete(vlc_media_source_meta_list_t *list)
Delete the list.
Definition: media_source.c:348
vlc_gai_req::result
struct addrinfo ** result
Definition: getaddrinfo.c:56
VLC_THREAD_PRIORITY_LOW
#define VLC_THREAD_PRIORITY_LOW
Definition: vlc_threads.h:207
vlc_mkstemp
int vlc_mkstemp(char *template)
Definition: filesystem.c:204
vlc_mutex_assert
#define vlc_mutex_assert(m)
Asserts that a mutex is locked by the calling thread.
Definition: vlc_threads.h:328
vlc_interrupt.h
input_item_t
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:77
vlc_media_tree_Find
bool vlc_media_tree_Find(vlc_media_tree_t *tree, const input_item_t *media, input_item_node_t **result, input_item_node_t **result_parent)
Find the node containing the requested input item (and its parent).
Definition: media_tree.c:309
libvlc_priv
static libvlc_priv_t * libvlc_priv(libvlc_int_t *libvlc)
Definition: libvlc.h:199
vlc_sd_Destroy
void vlc_sd_Destroy(services_discovery_t *sd)
Definition: services_discovery.c:130
vlc_gai_req::done
vlc_sem_t done
Definition: getaddrinfo.c:58
media_source_private_t::public_data
vlc_media_source_t public_data
Definition: media_source.c:59
vlc_CPU_dump
void vlc_CPU_dump(vlc_object_t *obj)
Definition: cpu.c:265
CreateObject
static void * CreateObject(vlc_object_t *parent, size_t length, const char *typename)
Definition: media_source.c:208
vlc_media_tree_Add
input_item_node_t * vlc_media_tree_Add(vlc_media_tree_t *tree, input_item_node_t *parent, input_item_t *media)
Definition: media_tree.c:294
vlc_list_init
static void vlc_list_init(struct vlc_list *restrict head)
Initializes an empty list head.
Definition: vlc_list.h:57
vlc_media_source_provider_New
vlc_media_source_provider_t * vlc_media_source_provider_New(vlc_object_t *parent)
Definition: media_source.c:231
vlc_socketpair
int vlc_socketpair(int pf, int type, int proto, int fds[2], bool nonblock)
Creates a pair of socket file descriptors.
Definition: filesystem.c:335
vlc_vector_push
#define vlc_vector_push(pv, item)
Push an item at the end of the vector.
Definition: vlc_vector.h:313
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
vlc_network.h
vlc_memstream_puts
int() vlc_memstream_puts(struct vlc_memstream *ms, const char *str)
Appends a nul-terminated string to a byte stream.
Definition: memstream.c:156
vlc_charset.h
vlc_media_tree_New
vlc_media_tree_t * vlc_media_tree_New(void)
Definition: media_tree.c:54
config_GetRealDir
static char * config_GetRealDir(const char *dir)
Definition: dirs.c:75
vlc_socket_setup
static void vlc_socket_setup(int fd, bool nonblock)
Definition: filesystem.c:319
ReleaseObject
static void ReleaseObject(void *obj)
Definition: media_source.c:220
sd_cbs
static const struct services_discovery_callbacks sd_cbs
Definition: media_source.c:107
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
pathconf
long pathconf(const char *path, int name)
vlc_mkdir
int vlc_mkdir(const char *dirname, mode_t mode)
Creates a directory.
Definition: filesystem.c:96
vlc_media_source_provider_GetMediaSource
vlc_media_source_t * vlc_media_source_provider_GetMediaSource(vlc_media_source_provider_t *provider, const char *name)
Return the media source identified by psz_name.
Definition: media_source.c:264
vlc_media_source_meta
Structure containing the description of a media source.
Definition: vlc_media_source.h:261
FromLocaleDup
#define FromLocaleDup
Definition: vlc_charset.h:318
vlc_media_source_provider_Add
static vlc_media_source_t * vlc_media_source_provider_Add(vlc_media_source_provider_t *provider, const char *name)
Definition: media_source.c:250
vlc_memstream_open
int vlc_memstream_open(struct vlc_memstream *ms)
Initializes a byte stream object.
Definition: memstream.c:105
vlc_vector_init
#define vlc_vector_init(pv)
Initialize an empty vector.
Definition: vlc_vector.h:80
ARRAY_SIZE
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:178
VLC_LIB_DIR
@ VLC_LIB_DIR
Global architecture-dependent read-only directory (e.g.
Definition: vlc_configuration.h:283
vlc_memstream_close
int vlc_memstream_close(struct vlc_memstream *ms)
Closes a byte stream object.
Definition: memstream.c:120
getenv
static char * getenv(const char *name)
Definition: vlc_fixups.h:292
vlc_list
Doubly-linked list node.
Definition: vlc_list.h:43
vlc_write
ssize_t vlc_write(int fd, const void *buf, size_t len)
Writes data to a file descriptor.
Definition: filesystem.c:289
vlc_media_source_meta_list_Get
struct vlc_media_source_meta * vlc_media_source_meta_list_Get(vlc_media_source_meta_list_t *list, size_t index)
Return the item at index.
Definition: media_source.c:342
services_discovery_callbacks::item_added
void(* item_added)(struct services_discovery_t *sd, input_item_t *parent, input_item_t *item, const char *category)
Definition: vlc_services_discovery.h:45
asprintf
int asprintf(char **, const char *,...)
vlc_media_source_Delete
static void vlc_media_source_Delete(vlc_media_source_t *ms)
Definition: media_source.c:165
VLC_HOME_DIR
@ VLC_HOME_DIR
Definition: vlc_configuration.h:307
vlc_rand.h
vlc_mutex_t
Mutex.
Definition: vlc_threads.h:225
vlc_gai_req::hints
const struct addrinfo * hints
Definition: getaddrinfo.c:55
vlc_media_tree
Media source API aims to manage "services discovery" easily from UI clients.
Definition: vlc_media_source.h:65
services_discovery_owner_t::cbs
const struct services_discovery_callbacks * cbs
Definition: vlc_services_discovery.h:52
config_GetBaseDir
static const char * config_GetBaseDir(void)
Definition: dirs.c:50
dummy_select
static int dummy_select(const char *str)
Definition: filesystem.c:103
vlc_media_tree_Lock
void vlc_media_tree_Lock(vlc_media_tree_t *tree)
Lock the media tree (non-recursive).
Definition: media_tree.c:226
dirfd
int() dirfd(DIR *)
vlc_loaddir
int vlc_loaddir(DIR *dir, char ***namelist, int(*select)(const char *), int(*compar)(const char **, const char **))
Does the same as vlc_scandir(), but takes an open directory pointer instead of a directory path.
Definition: filesystem.c:121
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
vlc_writev
ssize_t vlc_writev(int fd, const struct iovec *iov, int count)
Writes data from an iovec structure to a file descriptor.
Definition: filesystem.c:296
vlc_media_source_provider_t::media_sources
struct vlc_list media_sources
Definition: media_source.c:56
vlc_media_source_t::tree
vlc_media_tree_t * tree
Definition: vlc_media_source.h:219
getaddrinfo
int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res)
Definition: getaddrinfo.c:187
vlc_lstat
int vlc_lstat(const char *filename, struct stat *buf)
Finds file/inode information, as lstat().
Definition: filesystem.c:178
services_discovery_t::description
const char * description
Human-readable name.
Definition: vlc_services_discovery.h:67
vlc_assert_unreachable
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
vlc_fopen
FILE * vlc_fopen(const char *filename, const char *mode)
Opens a FILE pointer.
Definition: filesystem.c:49
config_GetUserDir
char * config_GetUserDir(vlc_userdir_t type)
Definition: dirs.c:160
ms_priv
#define ms_priv(ms)
Definition: media_source.c:50
MSG_NOSIGNAL
#define MSG_NOSIGNAL
Definition: rootbind.c:66
config_GetShellDir
static char * config_GetShellDir(int csidl)
Definition: dirs.c:107
VLC_LOCALE_DIR
@ VLC_LOCALE_DIR
Base directory for package read-only locale data.
Definition: vlc_configuration.h:288
media_source_private_t::sd
services_discovery_t * sd
Definition: media_source.c:61
vlc_media_source_Release
void vlc_media_source_Release(vlc_media_source_t *ms)
Decrease the media source reference count.
Definition: media_source.c:182
VLC_DOCUMENTS_DIR
@ VLC_DOCUMENTS_DIR
Definition: vlc_configuration.h:316
vlc_memstream::stream
FILE * stream
Definition: vlc_memstream.h:45
vlc_media_source_provider_New
#define vlc_media_source_provider_New(obj)
Definition: media_source.h:28
vlc_atomic_rc_inc
static void vlc_atomic_rc_inc(vlc_atomic_rc_t *rc)
Increment the RC.
Definition: vlc_atomic.h:52
vlc_gai_thread
static void * vlc_gai_thread(void *data)
Definition: getaddrinfo.c:43
input_item_t::psz_name
char * psz_name
text describing this item
Definition: vlc_input_item.h:79
config_GetDataDir
static char * config_GetDataDir(void)
Definition: dirs.c:69
vlc_media_source_meta_list
Definition: media_source.c:278
vlc_atomic.h
vlc_memstream.h
vlc_list_remove
static void vlc_list_remove(struct vlc_list *restrict node)
Removes an element from a list.
Definition: vlc_list.h:135
vlc_media_source_meta_list::vec
struct vlc_media_source_meta_list::@60 vec
VLC_PICTURES_DIR
@ VLC_PICTURES_DIR
Definition: vlc_configuration.h:318
vlc_socket_setup
static void vlc_socket_setup(int fd, bool nonblock)
Definition: filesystem.c:255
vlc_list_append
static void vlc_list_append(struct vlc_list *restrict node, struct vlc_list *head)
Appends an element into a list.
Definition: vlc_list.h:110
vlc_gai_req::error
int error
Definition: getaddrinfo.c:57
vlc_media_source_provider_Get
vlc_media_source_provider_t * vlc_media_source_provider_Get(libvlc_int_t *libvlc)
Return the media source provider associated to the libvlc instance.
Definition: media_source.c:202
vlc_media_source_provider_Find
static vlc_media_source_t * vlc_media_source_provider_Find(vlc_media_source_provider_t *provider, const char *name)
Definition: media_source.c:190
vlc_media_source.h
vlc_gai_req::name
const char * name
Definition: getaddrinfo.c:53
VLC_CONFIG_DIR
@ VLC_CONFIG_DIR
Definition: vlc_configuration.h:308
compar_void
static int compar_void(const void *a, const void *b, void *data)
Definition: filesystem.c:109
config_GetHomeDir
static char * config_GetHomeDir(void)
Definition: dirs.c:117
vlc_media_source_provider_Delete
void vlc_media_source_provider_Delete(vlc_media_source_provider_t *msp)
Definition: media_source.c:244
libvlc_priv_t::media_source_provider
vlc_media_source_provider_t * media_source_provider
Definition: libvlc.h:190
system_Init
void system_Init(void)
Definition: specific.c:167
_NI_MASK
#define _NI_MASK
Definition: getaddrinfo.c:37
vlc_close
int vlc_close(int fd)
Closes a file descriptor.
Definition: filesystem.c:91
cached_path
static char cached_path[PATH_MAX]
Definition: dirs.c:80
vlc_getaddrinfo_i11e
int vlc_getaddrinfo_i11e(const char *name, unsigned port, const struct addrinfo *hints, struct addrinfo **res)
Definition: getaddrinfo.c:39
vlc_services_discovery.h
_AI_MASK
#define _AI_MASK
Definition: getaddrinfo.c:91
vlc_opendir
DIR * vlc_opendir(const char *dirname)
Opens a DIR pointer.
Definition: filesystem.c:110
vlc_thread_t
Thread handle.
Definition: vlc_threads.h:180
vlc_dup2
int vlc_dup2(int oldfd, int newfd)
Replaces a file descriptor.
Definition: filesystem.c:266
VLC_LIBEXEC_DIR
@ VLC_LIBEXEC_DIR
Global executable read-only directory (e.g.
Definition: vlc_configuration.h:285
media_tree.h
config_GetLibDir
char * config_GetLibDir(void)
Gets the arch-specific installation directory.
Definition: dirs.c:90
vlc_media_source_Hold
void vlc_media_source_Hold(vlc_media_source_t *ms)
Increase the media source reference count.
Definition: media_source.c:175
vlc_socket
int vlc_socket(int pf, int type, int proto, bool nonblock)
Creates a socket file descriptor.
Definition: filesystem.c:327
FromCharset
char * FromCharset(const char *charset, const void *data, size_t data_size)
Converts a string from the given character encoding to utf-8.
Definition: unicode.c:237
VLC_PKG_DATA_DIR
@ VLC_PKG_DATA_DIR
Package-specific architecture-independent read-only data directory (e.g.
Definition: vlc_configuration.h:273
vlc_configuration.h
vlc_media_tree_Release
void vlc_media_tree_Release(vlc_media_tree_t *tree)
Definition: media_tree.c:218
static_assert
#define static_assert
Definition: vlc_fixups.h:370
vlc_openat
int vlc_openat(int dir, const char *filename, int flags,...)
Opens a system file handle relative to an existing directory handle.
Definition: filesystem.c:78
vlc_media_tree_Remove
bool vlc_media_tree_Remove(vlc_media_tree_t *tree, input_item_t *media)
Definition: media_tree.c:322
services_discovery_t::owner
struct services_discovery_owner_t owner
Owner callbacks.
Definition: vlc_services_discovery.h:76
VLC_PUBLICSHARE_DIR
@ VLC_PUBLICSHARE_DIR
Definition: vlc_configuration.h:315
vlc_fs.h
media_source_private_t::name
char name[]
Definition: media_source.c:65
vlc_gai_req::service
const char * service
Definition: getaddrinfo.c:54
vlc_statEx
static int vlc_statEx(const char *filename, struct stat *buf, bool deref)
Definition: filesystem.c:158
config_GetTypeDir
static char * config_GetTypeDir(const char *xdg_name)
Definition: dirs.c:163
services_discovery_item_added
static void services_discovery_item_added(services_discovery_t *sd, input_item_t *parent, input_item_t *media, const char *cat)
Definition: media_source.c:61
vlc_vector.h
sendmsg
ssize_t sendmsg(int, const struct msghdr *, int)
services_discovery_owner_t
Definition: vlc_services_discovery.h:50
vlc_sem_wait
void vlc_sem_wait(vlc_sem_t *sem)
Waits on a semaphore.
Definition: threads.c:463
vlc_media_source_provider_t
Definition: media_source.c:52
vlc_object_t
VLC object common members.
Definition: vlc_objects.h:43
media_source_private_t::owner
vlc_media_source_provider_t * owner
Definition: media_source.c:63
VLC_UNUSED
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
vlc_media_source_meta_list_Count
size_t vlc_media_source_meta_list_Count(vlc_media_source_meta_list_t *list)
Return the number of items in the list.
Definition: media_source.c:336
ToLocaleDup
#define ToLocaleDup
Definition: vlc_charset.h:319
vlc_sem_t
Semaphore.
Definition: vlc_threads.h:449
services_discovery_callbacks
Definition: vlc_services_discovery.h:43
strdup
char * strdup(const char *)
config_GetLibExecDir
static char * config_GetLibExecDir(void)
Definition: dirs.c:94
config_GetSysPath
char * config_GetSysPath(vlc_sysdir_t type, const char *filename)
Gets an installation directory.
Definition: dirs.c:117
vlc_pipe
int vlc_pipe(int fds[2])
Creates a pipe (see "man pipe" for further reference).
Definition: filesystem.c:275
config_GetHomeDir
static char * config_GetHomeDir(void)
Definition: dirs.c:151
getnameinfo
int getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, int hostlen, char *serv, int servlen, int flags)
Definition: getaddrinfo.c:49
vlc_custom_create
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
vlc_media_source_New
static vlc_media_source_t * vlc_media_source_New(vlc_media_source_provider_t *provider, const char *name)
Definition: media_source.c:113
vlc_sysdir_t
enum vlc_system_dir vlc_sysdir_t
System directory identifiers.
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
list
module_config_t ** list
Definition: core.c:400
VLC_WEAK
#define VLC_WEAK
Weak symbol annotation.
Definition: vlc_common.h:198
name
const char name[16]
Definition: httpd.c:1268
vlc_getcwd
char * vlc_getcwd(void)
Determines the current working directory.
Definition: filesystem.c:218
vlc_getaddrinfo_notify
static void vlc_getaddrinfo_notify(union sigval val)
Definition: getaddrinfo.c:34
vlc_vector_destroy
#define vlc_vector_destroy(pv)
Destroy a vector.
Definition: vlc_vector.h:93
vlc_media_source_t::description
const char * description
Definition: vlc_media_source.h:220
entry
Definition: fourcc_gen.c:51
VLC_DOWNLOAD_DIR
@ VLC_DOWNLOAD_DIR
Definition: vlc_configuration.h:313
vlc_unlink
int vlc_unlink(const char *filename)
Removes a file.
Definition: filesystem.c:183
vlc_sem_post
int vlc_sem_post(vlc_sem_t *sem)
Increments the value of a semaphore.
Definition: threads.c:447
vlc_media_source_provider_t::obj
struct vlc_object_t obj
Definition: media_source.c:54
vlc_rename
int vlc_rename(const char *oldpath, const char *newpath)
Moves a file atomically.
Definition: filesystem.c:197
configuration.h
vlc_media_tree_Unlock
void vlc_media_tree_Unlock(vlc_media_tree_t *tree)
Unlock the media tree.
Definition: media_tree.c:233
vlc_cpu.h
vlc_list_foreach
#define vlc_list_foreach(pos, head, member)
List iteration macro.
Definition: vlc_list.h:261
VLC_TEMPLATES_DIR
@ VLC_TEMPLATES_DIR
Definition: vlc_configuration.h:314
vlc_media_source_provider_List
struct vlc_media_source_meta_list * vlc_media_source_provider_List(vlc_media_source_provider_t *provider, enum services_discovery_category_e category)
Return the list of metadata of available media sources.
Definition: media_source.c:284
libvlc.h
services_discovery_owner_t::sys
void * sys
Private data for the owner callbacks.
Definition: vlc_services_discovery.h:53
media_source.h
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
vlc_playlist.h
likely
#define likely(p)
Predicted true condition.
Definition: vlc_common.h:218
vlc_CPU
unsigned vlc_CPU(void)
Retrieves CPU capability flags.
Definition: cpu.c:252
vlc_sort.h
timespec
Definition: vlc_fixups.h:443
VLC_USERDATA_DIR
@ VLC_USERDATA_DIR
Definition: vlc_configuration.h:309
strsep
char * strsep(char **, const char *)
vlc_media_source_t
Media source.
Definition: vlc_media_source.h:217
vlc_media_source_provider_t::lock
vlc_mutex_t lock
Definition: media_source.c:55
config_GetRelDir
static const char * config_GetRelDir(const char *dir)
Definition: dirs.c:35
media_source_private_t
Definition: media_source.c:39
widen_path
static wchar_t * widen_path(const char *path)
Definition: filesystem.c:52
vlc_media_source_provider_Delete
void vlc_media_source_provider_Delete(vlc_media_source_provider_t *provider)
Definition: media_source.c:244
vlc_accept
int vlc_accept(int lfd, struct sockaddr *addr, socklen_t *alen, bool nonblock)
Accepts an inbound connection request on a listening socket.
Definition: filesystem.c:345
input_item_node_t
Definition: vlc_input_item.h:194
config_GetAppDir
static char * config_GetAppDir(const char *xdg_name, const char *xdg_default)
Definition: dirs.c:139
config_GetLibDirRaw
static char * config_GetLibDirRaw(void)
Definition: dirs.c:34
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
vlc_getnameinfo
int vlc_getnameinfo(const struct sockaddr *sa, int salen, char *host, int hostlen, int *portnum, int flags)
Definition: getaddrinfo.c:39
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
config_GetLibDirOnce
static void config_GetLibDirOnce(void)
Definition: dirs.c:82
vlc_gai_req
Definition: getaddrinfo.c:33
vlc_userdir_t
enum vlc_user_dir vlc_userdir_t
makeaddrinfo
static struct addrinfo * makeaddrinfo(int af, int type, int proto, const struct sockaddr *addr, size_t addrlen, const char *canonname)
Definition: getaddrinfo.c:123
vlc_scandir
int vlc_scandir(const char *dirname, char ***namelist, int(*select)(const char *), int(*compar)(const char **, const char **))
Selects file entries from a directory, as GNU C scandir().
Definition: filesystem.c:187
vlc_send
ssize_t vlc_send(int fd, const void *buf, size_t len, int flags)
Sends data.
Definition: filesystem.c:363
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
vlc_CPU_raw
unsigned vlc_CPU_raw(void)
Determines the CPU capabilities.
Definition: cpu.c:118
services_discovery_item_removed
static void services_discovery_item_removed(services_discovery_t *sd, input_item_t *media)
Definition: media_source.c:89
vlc_atomic_rc_t
Definition: vlc_atomic.h:41
var
const char var[sizeof("video")]
Definition: player.c:1732
vlc_dup
int vlc_dup(int oldfd)
Duplicates a file descriptor.
Definition: filesystem.c:255
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
makeipv4info
static struct addrinfo * makeipv4info(int type, int proto, u_long ip, u_short port, const char *name)
Definition: getaddrinfo.c:161
vlc_sd_Create
#define vlc_sd_Create(obj, a, b)
Definition: vlc_services_discovery.h:152
services_discovery_category_e
services_discovery_category_e
Service discovery categories.
Definition: vlc_services_discovery.h:83
VLC_MUSIC_DIR
@ VLC_MUSIC_DIR
Definition: vlc_configuration.h:317
vlc_memfd
int vlc_memfd(void)
Creates an anonymous regular file descriptor, i.e.
Definition: filesystem.c:37
VLC_PKG_LIBEXEC_DIR
@ VLC_PKG_LIBEXEC_DIR
Package-specific executable read-only directory (e.g.
Definition: vlc_configuration.h:277
getline
ssize_t getline(char **, size_t *, FILE *)
gai_error_from_herrno
static int gai_error_from_herrno(void)
Definition: getaddrinfo.c:97
p
#define p(t)
vlc_cloexec
static void vlc_cloexec(int fd)
Definition: filesystem.c:49
vlc_cancel
void vlc_cancel(vlc_thread_t thread_id)
Marks a thread as cancelled.
Definition: thread.c:167