VLC  3.0.21
modules.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * modules.h : Module management functions.
3  *****************************************************************************
4  * Copyright (C) 2001-2016 VLC authors and VideoLAN
5  * $Id$
6  *
7  * Authors: Samuel Hocevar <sam@zoy.org>
8  *
9  * This program is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23 
24 #ifndef LIBVLC_MODULES_H
25 # define LIBVLC_MODULES_H 1
26 
27 # include <vlc_atomic.h>
28 
29 /** The plugin handle type */
30 typedef void *module_handle_t;
31 
32 /** VLC plugin */
33 typedef struct vlc_plugin_t
34 {
35  struct vlc_plugin_t *next;
37  unsigned modules_count;
38 
39  const char *textdomain; /**< gettext domain (or NULL) */
40 
41  /**
42  * Variables set by the module to store its config options
43  */
44  struct
45  {
46  module_config_t *items; /**< Table of configuration parameters */
47  size_t size; /**< Size of items table */
48  size_t count; /**< Number of configuration items */
49  size_t booleans; /**< Number of booleal config items */
50  } conf;
51 
52 #ifdef HAVE_DYNAMIC_PLUGINS
53  atomic_bool loaded; /**< Whether the plug-in is mapped in memory */
54  bool unloadable; /**< Whether the plug-in can be unloaded safely */
55  module_handle_t handle; /**< Run-time linker handle (if loaded) */
56  char *abspath; /**< Absolute path */
57 
58  char *path; /**< Relative path (within plug-in directory) */
59  int64_t mtime; /**< Last modification time */
60  uint64_t size; /**< File size */
61 #endif
62 } vlc_plugin_t;
63 
64 /**
65  * List of all plug-ins.
66  */
67 extern struct vlc_plugin_t *vlc_plugins;
68 
69 #define MODULE_SHORTCUT_MAX 20
70 
71 /** Plugin entry point prototype */
72 typedef int (*vlc_plugin_cb) (int (*)(void *, void *, int, ...), void *);
73 
74 /** Core module */
75 int vlc_entry__core (int (*)(void *, void *, int, ...), void *);
76 
77 /**
78  * Internal module descriptor
79  */
80 struct module_t
81 {
82  vlc_plugin_t *plugin; /**< Plug-in/library containing the module */
83  module_t *next;
84 
85  /** Shortcuts to the module */
86  unsigned i_shortcuts;
87  const char **pp_shortcuts;
88 
89  /*
90  * Variables set by the module to identify itself
91  */
92  const char *psz_shortname; /**< Module name */
93  const char *psz_longname; /**< Module descriptive name */
94  const char *psz_help; /**< Long help string for "special" modules */
95 
96  const char *psz_capability; /**< Capability */
97  int i_score; /**< Score for the capability */
98 
99  /* Callbacks */
100  const char *activate_name;
101  const char *deactivate_name;
102  void *pf_activate;
103  void *pf_deactivate;
104 };
105 
110 
113 
114 void module_InitBank (void);
116 #define module_LoadPlugins(a) module_LoadPlugins(VLC_OBJECT(a))
117 void module_EndBank (bool);
119 
120 ssize_t module_list_cap (module_t ***, const char *);
121 
122 int vlc_bindtextdomain (const char *);
123 
124 /* Low-level OS-dependent handler */
125 int module_Load (vlc_object_t *, const char *, module_handle_t *, bool);
126 void *module_Lookup (module_handle_t, const char *);
128 
129 /* Plugins cache */
130 vlc_plugin_t *vlc_cache_load(vlc_object_t *, const char *, block_t **);
131 vlc_plugin_t *vlc_cache_lookup(vlc_plugin_t **, const char *relpath);
132 
133 void CacheSave(vlc_object_t *, const char *, vlc_plugin_t *const *, size_t);
134 
135 #endif /* !LIBVLC_MODULES_H */
vlc_modcap_t
struct vlc_modcap vlc_modcap_t
vlc_plugin_cb
int(* vlc_plugin_cb)(int(*)(void *, void *, int,...), void *)
Plugin entry point prototype.
Definition: modules.h:71
module_config_t::psz_name
const char * psz_name
Definition: vlc_configuration.h:71
sout_MuxDeleteStream
void sout_MuxDeleteStream(sout_mux_t *mux, sout_input_t *input)
Definition: missing.c:136
module_stop
#define module_stop(o, m)
Definition: vlc_modules.h:56
vlc_module_unload
void vlc_module_unload(vlc_object_t *obj, module_t *module, vlc_deactivate_t deinit,...)
Deinstantiates a module.
Definition: modules.c:335
caches
block_t * caches
Definition: bank.c:100
vlc_plugins
struct vlc_plugin_t * vlc_plugins
List of all plug-ins.
Definition: bank.c:105
count
size_t count
Definition: core.c:461
xml_reader_t::p_stream
stream_t * p_stream
Definition: vlc_xml.h:70
VLC_MODULE_SCORE
Definition: vlc_plugin.h:42
VLC_MODULE_SHORTCUT
Definition: vlc_plugin.h:40
vlc_fopen
FILE * vlc_fopen(const char *filename, const char *mode)
Opens a FILE pointer.
Definition: filesystem.c:46
vlc_config_create
static module_config_t * vlc_config_create(vlc_plugin_t *plugin, int type)
Definition: entry.c:142
vlc_object_set_name
#define vlc_object_set_name(o, n)
Definition: libvlc.h:115
vlc_memstream
Definition: vlc_memstream.h:27
block_ChainRelease
static void block_ChainRelease(block_t *p_block)
Definition: vlc_block.h:337
VLC_CONFIG_LIST
Definition: vlc_plugin.h:100
leaf
Definition: vlc_fixups.h:497
vlm_MessageSimpleNew
vlm_message_t * vlm_MessageSimpleNew(const char *a)
Definition: missing.c:229
vlc_module_load
module_t * vlc_module_load(vlc_object_t *obj, const char *capability, const char *name, bool strict, vlc_activate_t probe,...)
Finds and instantiates the best module of a certain type.
Definition: modules.c:213
vlc_activate_t
int(* vlc_activate_t)(void *func, va_list args)
Definition: vlc_modules.h:32
VLC_CONFIG_ADVANCED
Definition: vlc_plugin.h:64
module_list_get
module_t ** module_list_get(size_t *n)
Gets the flat list of VLC modules.
Definition: bank.c:774
xml_Create
xml_t * xml_Create(vlc_object_t *p_this)
Definition: xml.c:38
sout_MuxFlush
void sout_MuxFlush(sout_mux_t *mux, sout_input_t *input)
Definition: missing.c:161
strcasecmp
int strcasecmp(const char *, const char *)
vlc_entry__core
int vlc_entry__core(vlc_set_cb, void *)
Core module.
Definition: libvlc-module.c:1479
vlc_plugin_symbol
Definition: entry.c:480
update_GetRelease
update_release_t * update_GetRelease(update_t *u)
Definition: missing.c:283
VLC_MODULE_DESCRIPTION
Definition: vlc_plugin.h:48
module_t::plugin
vlc_plugin_t * plugin
Plug-in/library containing the module.
Definition: modules.h:81
vlc_plugin_t::textdomain
const char * textdomain
gettext domain (or NULL)
Definition: modules.h:38
VLC_CONFIG_DESC
Definition: vlc_plugin.h:91
vlc_common.h
vlc_module_destroy
void vlc_module_destroy(module_t *)
Destroys a module.
Definition: entry.c:82
vlc_vlm.h
vlc_plugin_create
vlc_plugin_t * vlc_plugin_create(void)
Definition: entry.c:94
sdp_AddMedia
void sdp_AddMedia(struct vlc_memstream *sdp, const char *type, const char *protocol, int dport, unsigned pt, bool bw_indep, unsigned bw, const char *ptname, unsigned clockrate, unsigned channels, const char *fmtp)
Definition: missing.c:43
module_t::pp_shortcuts
const char ** pp_shortcuts
Definition: modules.h:86
VLC_CONFIG_CAPABILITY
Definition: vlc_plugin.h:79
vlc_plugin_symbol_compare
static int vlc_plugin_symbol_compare(const void *a, const void *b)
Definition: entry.c:486
module_get_capability
const char * module_get_capability(const module_t *m)
Gets the capability of a module.
Definition: modules.c:104
module_config_t::psz_text
const char * psz_text
Definition: vlc_configuration.h:72
module_t::activate_name
const char * activate_name
Definition: modules.h:99
module_get_object
const char * module_get_object(const module_t *m)
Get the internal name of a module.
Definition: modules.c:63
DIR_SEP
#define DIR_SEP
Definition: vlc_common.h:1032
module_config_t::list_text
const char ** list_text
Definition: vlc_configuration.h:89
module_gettext
const char * module_gettext(const module_t *m, const char *str)
Translate a string using the module's text domain.
Definition: modules.c:127
VLC_CONFIG_CREATE
Definition: vlc_plugin.h:35
sout_stream_t
Definition: vlc_sout.h:196
module_unneed
void module_unneed(vlc_object_t *obj, module_t *module)
Definition: modules.c:375
IsConfigIntegerType
#define IsConfigIntegerType(type)
Definition: configuration.h:47
block_t::i_buffer
size_t i_buffer
Payload length.
Definition: vlc_block.h:116
VLC_CONFIG_VOLATILE
Definition: vlc_plugin.h:67
vlc_plugin_t
VLC plugin.
Definition: modules.h:32
module_need
module_t * module_need(vlc_object_t *obj, const char *cap, const char *name, bool strict)
Definition: modules.c:368
vlc_tick_t
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_common.h:150
block_FilePath
block_t * block_FilePath(const char *path, bool write)
Maps a file in memory.
Definition: block.c:434
sout_StreamChainNew
sout_stream_t * sout_StreamChainNew(sout_instance_t *p_sout, const char *psz_chain, sout_stream_t *p_next, sout_stream_t **pp_last)
Definition: missing.c:173
VLC_CONFIG_RANGE
Definition: vlc_plugin.h:61
module_config_t::i
const int * i
Definition: vlc_configuration.h:85
vlc_plugin_destroy
void vlc_plugin_destroy(vlc_plugin_t *)
Destroys a plug-in.
Definition: entry.c:124
VLC_MODULE_TEXTDOMAIN
Definition: vlc_plugin.h:50
module_t::i_shortcuts
unsigned i_shortcuts
Shortcuts to the module.
Definition: modules.h:85
sout_input_t
Definition: vlc_sout.h:162
module_config_t::b_internal
unsigned b_internal
Definition: vlc_configuration.h:65
VLC_CONFIG_PRIVATE
Definition: vlc_plugin.h:73
module_config_t::orig
module_value_t orig
Definition: vlc_configuration.h:76
vlc_plugin_t::module
module_t * module
Definition: modules.h:35
module_list_free
void module_list_free(module_t **list)
Frees the flat list of VLC modules.
Definition: bank.c:763
module_EndBank
void module_EndBank(bool b_plugins)
Unloads all unused plugin modules and empties the module bank in case of success.
Definition: bank.c:684
var_InheritBool
#define var_InheritBool(o, n)
Definition: vlc_variables.h:601
module_LoadPlugins
#define module_LoadPlugins(a)
Definition: modules.h:115
module_exists
bool module_exists(const char *psz_name)
Tell if a module exists.
Definition: modules.c:416
module_LoadPlugins
size_t module_LoadPlugins(vlc_object_t *obj)
Loads module descriptions for all available plugins.
Definition: bank.c:732
sout_MuxAddStream
sout_input_t * sout_MuxAddStream(sout_mux_t *mux, const es_format_t *fmt)
Definition: missing.c:124
vlc_modcap_sort
static void vlc_modcap_sort(const void *node, const VISIT which, const int depth)
Definition: bank.c:85
MODULE_SHORTCUT_MAX
#define MODULE_SHORTCUT_MAX
Definition: modules.h:68
module_value_t::psz
char * psz
Definition: vlc_configuration.h:50
module_InitBank
void module_InitBank(void)
Init bank.
Definition: bank.c:652
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:86
vlc_plugin_describe
vlc_plugin_t * vlc_plugin_describe(vlc_plugin_cb)
Runs a plug-in descriptor.
Definition: entry.c:466
xstrdup
static char * xstrdup(const char *str)
Definition: vlc_common.h:1003
vlc_plugin_resolve
int vlc_plugin_resolve(vlc_plugin_t *, vlc_plugin_cb)
Definition: entry.c:593
module_provides
bool module_provides(const module_t *m, const char *cap)
Checks whether a module implements a capability.
Definition: modules.c:52
vlc_memory.h
update_New
update_t *() update_New(vlc_object_t *obj)
Create a new update VLC struct.
Definition: missing.c:253
postorder
Definition: vlc_fixups.h:495
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:354
VLC_MODULE_SHORTNAME
Definition: vlc_plugin.h:47
IsConfigStringType
#define IsConfigStringType(type)
Definition: configuration.h:45
vlc_plugin_destroy
void vlc_plugin_destroy(vlc_plugin_t *plugin)
Destroys a plug-in.
Definition: entry.c:124
VLC_CONFIG_REMOVED
Definition: vlc_plugin.h:76
vlc_modcap::modc
size_t modc
Definition: bank.c:82
vlc_stat
int vlc_stat(const char *filename, struct stat *buf)
Finds file/inode information - like stat().
Definition: filesystem.c:170
module_config_t::i_cb
vlc_integer_list_cb i_cb
Definition: vlc_configuration.h:87
sout_AccessOutSeek
int sout_AccessOutSeek(sout_access_out_t *out, off_t offset)
Definition: missing.c:88
sout_AnnounceUnRegister
void sout_AnnounceUnRegister(vlc_object_t *obj, session_descriptor_t *d)
Definition: missing.c:111
getenv
static char * getenv(const char *name)
Definition: vlc_fixups.h:293
VLC_CONFIG_NAME
Definition: vlc_plugin.h:55
sout_access_out_t
Stream output access_output.
Definition: vlc_sout.h:72
vlc_module_store
static int vlc_module_store(module_t *mod)
Adds a module to the bank.
Definition: bank.c:110
VLC_MODULE_NAME
Definition: vlc_plugin.h:46
var_InheritString
#define var_InheritString(o, n)
Definition: vlc_variables.h:639
asprintf
int asprintf(char **, const char *,...)
module_Map
int module_Map(vlc_object_t *, vlc_plugin_t *)
Definition: bank.c:634
vlm_Delete
void vlm_Delete(vlm_t *vlm)
Definition: missing.c:202
VLC_CONFIG_SHORTCUT
Definition: vlc_plugin.h:82
vlm_ExecuteCommand
int vlm_ExecuteCommand(vlm_t *vlm, const char *cmd, vlm_message_t **pm)
Definition: missing.c:208
module_get_score
int module_get_score(const module_t *m)
Get the score for a module.
Definition: modules.c:115
init
bool init
Definition: rand.c:49
VLC_CONFIG_VALUE
Definition: vlc_plugin.h:58
sout_AccessOutNew
sout_access_out_t * sout_AccessOutNew(vlc_object_t *obj, const char *access, const char *name)
Definition: missing.c:74
vlc_deactivate_t
void(* vlc_deactivate_t)(void *func, va_list args)
Definition: vlc_modules.h:33
vlc_sdp_Start
int vlc_sdp_Start(struct vlc_memstream *sdp, vlc_object_t *obj, const char *cfg, const struct sockaddr *src, size_t srclen, const struct sockaddr *addr, size_t addrlen)
Definition: missing.c:182
vlm_MessageDelete
void vlm_MessageDelete(vlm_message_t *m)
Definition: missing.c:223
vlc_plugin_t::booleans
size_t booleans
Number of booleal config items.
Definition: modules.h:48
config_GetLibDir
char * config_GetLibDir(void)
Definition: dirs.c:40
sout_AccessOutControl
int sout_AccessOutControl(sout_access_out_t *out, int query,...)
Definition: missing.c:61
config_SortConfig
int config_SortConfig(void)
Index the configuration items by name for faster lookups.
Definition: core.c:467
msg_Warn
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:84
module_t::psz_help
const char * psz_help
Long help string for "special" modules.
Definition: modules.h:93
module_config_t::owner
void * owner
Definition: vlc_configuration.h:91
module_config_t::psz_cb
vlc_string_list_cb psz_cb
Definition: vlc_configuration.h:86
VLC_CONFIG_LIST_CB
Definition: vlc_plugin.h:104
vlc_object_release
#define vlc_object_release(a)
Definition: vlc_objects.h:63
vlc_modcap::modv
module_t ** modv
Definition: bank.c:81
module_Map
int module_Map(vlc_object_t *obj, vlc_plugin_t *plugin)
Definition: bank.c:634
block_t::p_next
block_t * p_next
Definition: vlc_block.h:113
update_release_t
Describes an update VLC release number.
Definition: vlc_update.h:40
module_t::i_score
int i_score
Score for the capability.
Definition: modules.h:96
vlc_rename
int vlc_rename(const char *oldpath, const char *newpath)
Moves a file atomically.
Definition: filesystem.c:194
vlc_unlink
int vlc_unlink(const char *filename)
Removes a file.
Definition: filesystem.c:180
usage
unsigned usage
Definition: bank.c:102
vlc_plugins
vlc_plugin_t * vlc_plugins
List of all plug-ins.
Definition: bank.c:105
VLC_ETIMEOUT
#define VLC_ETIMEOUT
Timeout.
Definition: vlc_common.h:356
module_InitStatic
static vlc_plugin_t * module_InitStatic(vlc_plugin_cb entry)
Registers a statically-linked plug-in.
Definition: bank.c:164
module_config_t::b_unsaveable
unsigned b_unsaveable
Definition: vlc_configuration.h:66
vlc_plugin_create
vlc_plugin_t * vlc_plugin_create(void)
Definition: entry.c:94
module_t
Internal module descriptor.
Definition: modules.h:79
module_stop
void module_stop(vlc_object_t *obj, const module_t *m)
Definition: modules.c:149
es_format_t
Definition: vlc_es.h:580
module_config_t::max
module_value_t max
Definition: vlc_configuration.h:78
module_t::pf_activate
void * pf_activate
Definition: modules.h:101
vlc_atomic.h
generic_start
static int generic_start(void *func, va_list ap)
Definition: modules.c:351
vlm_t
Definition: vlm_internal.h:83
sout_EncoderCreate
encoder_t * sout_EncoderCreate(vlc_object_t *p_this)
Definition: missing.c:118
sout_AccessOutWrite
ssize_t sout_AccessOutWrite(sout_access_out_t *out, block_t *block)
Definition: missing.c:94
PATH_SEP
#define PATH_SEP
Definition: vlc_common.h:1034
module_handle_t
void * module_handle_t
The plugin handle type.
Definition: modules.h:29
xml_t::p_module
module_t * p_module
Definition: vlc_xml.h:41
module_t::pf_deactivate
void * pf_deactivate
Definition: modules.h:102
module_t::psz_longname
const char * psz_longname
Module descriptive name.
Definition: modules.h:92
vlc_plugin_desc_cb
static int vlc_plugin_desc_cb(void *ctx, void *tgt, int propid,...)
Plug-in descriptor callback.
Definition: entry.c:189
module_Unload
void module_Unload(module_handle_t)
CloseModule: unload a dynamic library.
Definition: plugin.c:76
vlc_plugin_t
struct vlc_plugin_t vlc_plugin_t
VLC plugin.
getpid
pid_t getpid(void)
vlc_xml.h
realloc_or_free
static void * realloc_or_free(void *p, size_t sz)
This wrapper around realloc() will free the input pointer when realloc() returns NULL.
Definition: vlc_memory.h:42
update_Check
void update_Check(update_t *u, void(*cb)(void *, bool), void *opaque)
Check for updates.
Definition: missing.c:265
vlc_bindtextdomain
int vlc_bindtextdomain(const char *)
Definition: textdomain.c:32
vlc_plugin.h
modules
static struct @69 modules
config_Free
void config_Free(module_config_t *, size_t)
Destroys an array of configuration items.
Definition: core.c:529
vlc_objres_clear
void vlc_objres_clear(vlc_object_t *obj)
Releases all resources of an object.
Definition: objres.c:82
block_Release
static void block_Release(block_t *block)
Releases a block.
Definition: vlc_block.h:181
MODULE_SUFFIX
#define MODULE_SUFFIX
Definition: vlc_plugin.h:192
vlc_modcap_cmp
static int vlc_modcap_cmp(const void *a, const void *b)
Definition: bank.c:62
encoder_t
Definition: vlc_codec.h:211
vlc_opendir
DIR * vlc_opendir(const char *dirname)
Opens a DIR pointer.
Definition: filesystem.c:107
module_get_help
const char * module_get_help(const module_t *m)
Get the help for a module.
Definition: modules.c:93
module_EndBank
void module_EndBank(bool)
Unloads all unused plugin modules and empties the module bank in case of success.
Definition: bank.c:684
psz_name
const char * psz_name
Definition: vlc_codecs.h:315
sout_StreamChainDelete
void sout_StreamChainDelete(sout_stream_t *p_first, sout_stream_t *p_last)
Definition: missing.c:167
strtok_r
char * strtok_r(char *, const char *, char **)
stream_t
stream_t definition
Definition: vlc_stream.h:46
module_match_name
static bool module_match_name(const module_t *m, const char *name)
Definition: modules.c:157
vlc_plugin_t::modules_count
unsigned modules_count
Definition: modules.h:36
vlc_plugin_t::size
size_t size
Size of items table.
Definition: modules.h:46
modules.h
update_Download
void update_Download(update_t *u, const char *dir)
Download the file given in the update_t.
Definition: missing.c:277
vlc_plugin_store
static void vlc_plugin_store(vlc_plugin_t *lib)
Adds a plugin (and all its modules) to the bank.
Definition: bank.c:150
sout_mux_t
Muxer structure.
Definition: vlc_sout.h:120
vlc_plugin_t::next
struct vlc_plugin_t * next
Definition: modules.h:34
xml_Delete
void xml_Delete(xml_t *p_xml)
Definition: xml.c:57
vlm_New
vlm_t * vlm_New(vlc_object_t *obj)
Definition: missing.c:243
VISIT
VISIT
Definition: vlc_fixups.h:493
VLC_MODULE_NO_UNLOAD
Definition: vlc_plugin.h:45
vlc_module_create
module_t * vlc_module_create(vlc_plugin_t *plugin)
Definition: entry.c:40
vlc_plugin_get_symbols
static void * vlc_plugin_get_symbols(vlc_plugin_cb entry)
Gets the symbols of a plugin.
Definition: entry.c:556
vlm_MessageAdd
vlm_message_t * vlm_MessageAdd(vlm_message_t *a, vlm_message_t *b)
Definition: missing.c:216
xml_t
Definition: vlc_xml.h:36
vlc_plugin_gpa_cb
static int vlc_plugin_gpa_cb(void *ctx, void *tgt, int propid,...)
Plug-in symbols callback.
Definition: entry.c:499
VLC_MODULE_HELP
Definition: vlc_plugin.h:49
VLC_CONFIG_SAFE
Definition: vlc_plugin.h:88
vlc_fs.h
vlc_plugin_get_symbol
static int vlc_plugin_get_symbol(void *root, const char *name, void **restrict addrp)
Definition: entry.c:574
module_list_cap
ssize_t module_list_cap(module_t ***restrict list, const char *name)
Builds a sorted list of all VLC modules with a given capability.
Definition: bank.c:807
CONFIG_ITEM_BOOL
#define CONFIG_ITEM_BOOL
Definition: vlc_plugin.h:123
vlc_sout.h
xmalloc
static void * xmalloc(size_t len)
Definition: vlc_common.h:979
vlc_plugin_resolve
int vlc_plugin_resolve(vlc_plugin_t *plugin, vlc_plugin_cb entry)
Definition: entry.c:593
vlc_plugin_t::items
module_config_t * items
Table of configuration parameters.
Definition: modules.h:45
vlc_modcap_free
static void vlc_modcap_free(void *data)
Definition: bank.c:68
likely
#define likely(p)
Definition: vlc_common.h:113
config_UnsortConfig
void config_UnsortConfig(void)
Definition: core.c:501
module_config_get
module_config_t * module_config_get(const module_t *module, unsigned *restrict psize)
Get the configuration of a module.
Definition: modules.c:428
vlc_object_t
The main vlc_object_t structure.
Definition: vlc_objects.h:39
vlc_plugin_describe
vlc_plugin_t * vlc_plugin_describe(vlc_plugin_cb entry)
Runs a plug-in descriptor.
Definition: entry.c:466
update_t
The update object.
Definition: update.h:156
IsConfigFloatType
#define IsConfigFloatType(type)
Definition: configuration.h:49
module_config_t
Definition: vlc_configuration.h:60
xml_reader_t::p_module
module_t * p_module
Definition: vlc_xml.h:71
vlc_plugin_t::count
size_t count
Number of configuration items.
Definition: modules.h:47
module_config_t::b_removed
unsigned b_removed
Definition: vlc_configuration.h:68
VLC_UNUSED
#define VLC_UNUSED(x)
Definition: vlc_common.h:916
module_config_t::psz_type
const char * psz_type
Definition: vlc_configuration.h:70
module_t::psz_capability
const char * psz_capability
Capability.
Definition: modules.h:95
tdestroy
void tdestroy(void *root, void(*free_node)(void *nodep))
vlc_mutex_t
pthread_mutex_t vlc_mutex_t
Mutex.
Definition: vlc_threads.h:267
vlc_modcap::name
char * name
Definition: bank.c:80
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:353
tfind
void * tfind(const void *key, const void **rootp, int(*cmp)(const void *, const void *))
vlc_plugin_symbol::name
const char * name
Definition: entry.c:482
VLC_MODULE_CREATE
Definition: vlc_plugin.h:34
strdup
char * strdup(const char *)
module_config_t::min
module_value_t min
Definition: vlc_configuration.h:77
module_get_name
const char * module_get_name(const module_t *m, bool long_name)
Get the human-friendly name of a module.
Definition: modules.c:77
vlc_update.h
vlc_cache_load
vlc_plugin_t * vlc_cache_load(vlc_object_t *, const char *, block_t **)
module_config_t::list
union module_config_t::@147 list
VLC_MODULE_CB_OPEN
Definition: vlc_plugin.h:43
module_list_cap
ssize_t module_list_cap(module_t ***, const char *)
vlc_custom_create
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:108
vlc_module_cmp
static int vlc_module_cmp(const void *a, const void *b)
Definition: bank.c:77
vlc_modcap
Definition: bank.c:55
vlc_block.h
list
module_config_t ** list
Definition: core.c:460
caps_tree
void * caps_tree
Definition: bank.c:101
sout_AnnounceRegisterSDP
session_descriptor_t * sout_AnnounceRegisterSDP(vlc_object_t *obj, const char *sdp, const char *dst)
Definition: missing.c:101
name
const char name[16]
Definition: httpd.c:1251
module_start
#define module_start(o, m)
Definition: vlc_modules.h:54
update_NeedUpgrade
bool update_NeedUpgrade(update_t *u)
Definition: missing.c:271
module_start
int module_start(vlc_object_t *obj, const module_t *m)
Definition: modules.c:141
entry
Definition: fourcc_gen.c:50
xml_ReaderDelete
void xml_ReaderDelete(xml_reader_t *reader)
Deletes an XML reader.
Definition: xml.c:93
module_Unmap
static void module_Unmap(vlc_plugin_t *plugin)
Definition: bank.c:640
module_config_t::b_advanced
unsigned b_advanced
Definition: vlc_configuration.h:64
module_value_t::i
int64_t i
Definition: vlc_configuration.h:51
module_load
static int module_load(vlc_object_t *obj, module_t *m, vlc_activate_t init, va_list args)
Definition: modules.c:169
vlc_plugin_free_symbols
static void vlc_plugin_free_symbols(void *root)
Definition: entry.c:569
sout_AccessOutRead
ssize_t sout_AccessOutRead(sout_access_out_t *out, block_t *block)
Definition: missing.c:82
config
static struct @10 config
module_config_t::value
module_value_t value
Definition: vlc_configuration.h:75
xrealloc
static void * xrealloc(void *ptr, size_t len)
Definition: vlc_common.h:987
vlm_MessageNew
vlm_message_t * vlm_MessageNew(const char *a, const char *fmt,...)
Definition: missing.c:235
VLC_MODULE_CAPABILITY
Definition: vlc_plugin.h:41
vlc_cache_lookup
vlc_plugin_t * vlc_cache_lookup(vlc_plugin_t **, const char *relpath)
module_InitStaticModules
static void module_InitStaticModules(void)
Definition: bank.c:186
module_value_t::f
float f
Definition: vlc_configuration.h:52
vlc_common_members::force
bool force
Module probe flag.
Definition: vlc_common.h:439
xml_ReaderReset
xml_reader_t * xml_ReaderReset(xml_reader_t *reader, stream_t *stream)
Resets an existing XML reader.
Definition: xml.c:113
configuration.h
module_InitBank
void module_InitBank(void)
Init bank.
Definition: bank.c:652
xml_reader_t
Definition: vlc_xml.h:65
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
unlikely
#define unlikely(p)
Definition: vlc_common.h:114
module_Load
int module_Load(vlc_object_t *, const char *, module_handle_t *, bool)
Load a dynamically linked library using a system dependent method.
Definition: plugin.c:49
module_config_t::list_count
uint16_t list_count
Definition: vlc_configuration.h:81
xml_ReaderCreate
xml_reader_t * xml_ReaderCreate(vlc_object_t *obj, stream_t *stream)
Creates an XML reader.
Definition: xml.c:71
vlc_static_modules
vlc_plugin_cb vlc_static_modules[]
module_config_t::psz_longtext
const char * psz_longtext
Definition: vlc_configuration.h:73
lock
vlc_mutex_t lock
Definition: bank.c:99
module_config_t::i_type
uint8_t i_type
Definition: vlc_configuration.h:62
CacheSave
void CacheSave(vlc_object_t *, const char *, vlc_plugin_t *const *, size_t)
sdp_AddAttribute
void sdp_AddAttribute(struct vlc_memstream *sdp, const char *name, const char *fmt,...)
Definition: missing.c:55
module_config_t::psz
const char ** psz
Definition: vlc_configuration.h:84
sout_MuxGetStream
int sout_MuxGetStream(sout_mux_t *p_mux, unsigned int i_blocks, vlc_tick_t *pi_dts)
Definition: missing.c:142
sout_MuxDelete
void sout_MuxDelete(sout_mux_t *mux)
Definition: missing.c:130
vlc_module_create
module_t * vlc_module_create(vlc_plugin_t *)
Definition: entry.c:40
sout_MuxSendBuffer
int sout_MuxSendBuffer(sout_mux_t *mux, sout_input_t *input, block_t *block)
Definition: missing.c:155
libvlc.h
vlm_Control
int vlm_Control(vlm_t *vlm, int query,...)
Definition: missing.c:195
vlc_strerror_c
const char * vlc_strerror_c(int errnum)
Definition: error.c:34
vlm_message_t
Definition: vlc_vlm.h:172
module_config_t::list_cb_name
const char * list_cb_name
Definition: vlc_configuration.h:90
vlc_assert_unreachable
#define vlc_assert_unreachable()
Definition: vlc_common.h:118
module_t::psz_shortname
const char * psz_shortname
Module name.
Definition: modules.h:91
module_config_t::i_short
char i_short
Definition: vlc_configuration.h:63
tsearch
void * tsearch(const void *key, void **rootp, int(*cmp)(const void *, const void *))
sout_MuxNew
sout_mux_t * sout_MuxNew(sout_instance_t *instance, const char *mux, sout_access_out_t *out)
Definition: missing.c:148
block_t::p_buffer
uint8_t * p_buffer
Payload start.
Definition: vlc_block.h:115
session_descriptor_t
Definition: sap.c:47
module_config_free
void module_config_free(module_config_t *config)
Release the configuration.
Definition: modules.c:470
vlc_arrays.h
vlc_plugin_symbol::addr
void * addr
Definition: entry.c:483
module_Lookup
void * module_Lookup(module_handle_t, const char *)
Looks up a symbol from a dynamically loaded library.
Definition: plugin.c:92
module_t::next
module_t * next
Definition: modules.h:82
sout_AccessOutDelete
void sout_AccessOutDelete(sout_access_out_t *out)
Definition: missing.c:67
twalk
void twalk(const void *root, void(*action)(const void *nodep, VISIT which, int depth))
module_t::deactivate_name
const char * deactivate_name
Definition: modules.h:100
vlc_readdir
const char * vlc_readdir(DIR *dir)
Reads the next file name from an open directory.
Definition: filesystem.c:123
vlc_alloc
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:957
module_unneed
#define module_unneed(a, b)
Definition: vlc_modules.h:49
VLC_STATIC_MUTEX
#define VLC_STATIC_MUTEX
Static initializer for (static) mutex.
Definition: vlc_threads.h:272
sout_instance_t
Stream output instance (FIXME: should be private to src/ to avoid invalid unsynchronized access)
Definition: vlc_sout.h:48
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
update_Delete
void update_Delete(update_t *u)
Delete an update_t struct.
Definition: missing.c:259
block_t
Definition: vlc_block.h:111
vlc_plugin_t::conf
struct vlc_plugin_t::@70 conf
Variables set by the module to store its config options.
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:82
vlc_entry__core
int vlc_entry__core(int(*)(void *, void *, int,...), void *)
Core module.
Definition: libvlc-module.c:1479
vlc_object_t::obj
struct vlc_common_members obj
Definition: vlc_objects.h:42
generic_stop
static void generic_stop(void *func, va_list ap)
Definition: modules.c:359
CONFIG_ITEM
#define CONFIG_ITEM(x)
Definition: vlc_plugin.h:136
module_need
#define module_need(a, b, c, d)
Definition: vlc_modules.h:47
p
#define p(t)
vlc_modules.h
module_config_t::b_safe
unsigned b_safe
Definition: vlc_configuration.h:67
module_find
module_t * module_find(const char *name)
Get a pointer to a module_t given it's name.
Definition: modules.c:387
vlc_module_destroy
void vlc_module_destroy(module_t *module)
Destroys a module.
Definition: entry.c:82
VLC_MODULE_CB_CLOSE
Definition: vlc_plugin.h:44