VLC
4.0.0-dev
|
Data Structures | |
struct | vlc_modcap |
Typedefs | |
typedef struct vlc_modcap | vlc_modcap_t |
Functions | |
static int | vlc_modcap_cmp (const void *a, const void *b) |
static void | vlc_modcap_free (void *data) |
static int | vlc_module_cmp (const void *a, const void *b) |
static void | vlc_modcap_sort (const void *node, const VISIT which, const int depth) |
static int | vlc_module_store (module_t *mod) |
Adds a module to the bank. More... | |
static void | vlc_plugin_store (vlc_plugin_t *lib) |
Adds a plugin (and all its modules) to the bank. More... | |
static vlc_plugin_t * | module_InitStatic (vlc_plugin_cb entry) |
Registers a statically-linked plug-in. More... | |
static void | module_InitStaticModules (void) |
int | module_Map (struct vlc_logger *log, vlc_plugin_t *plugin) |
static void | module_Unmap (vlc_plugin_t *plugin) |
void * | module_Symbol (struct vlc_logger *log, vlc_plugin_t *plugin, const char *name) |
void | module_InitBank (void) |
Init bank. More... | |
void | module_EndBank (bool b_plugins) |
Unloads all unused plugin modules and empties the module bank in case of success. More... | |
void | module_LoadPlugins (vlc_object_t *obj) |
Loads module descriptions for all available plugins. More... | |
void | module_list_free (module_t **list) |
Frees the flat list of VLC modules. More... | |
module_t ** | module_list_get (size_t *n) |
Gets the flat list of VLC modules. More... | |
ssize_t | module_list_cap (module_t ***restrict list, const char *name) |
Builds a sorted list of all VLC modules with a given capability. More... | |
Variables | |
struct { | |
vlc_mutex_t lock | |
block_t * caches | |
void * caps_tree | |
unsigned usage | |
} | modules = { { .value = ATOMIC_VAR_INIT(0), .recursion = ATOMIC_VAR_INIT(0), .owner = ATOMIC_VAR_INIT(NULL), } , NULL, NULL, 0 } |
vlc_plugin_t * | vlc_plugins = NULL |
List of all plug-ins. More... | |
vlc_plugin_cb | vlc_static_modules [] |
typedef struct vlc_modcap vlc_modcap_t |
void module_EndBank | ( | bool | b_plugins | ) |
Unloads all unused plugin modules and empties the module bank in case of success.
References block_ChainRelease(), caches, caps_tree, config_UnsortConfig(), module_Unmap(), modules, vlc_plugin_t::next, tdestroy(), vlc_modcap_free(), vlc_mutex_assert, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_plugin_destroy(), and vlc_plugins.
Referenced by libvlc_InternalCleanup(), and libvlc_InternalInit().
void module_InitBank | ( | void | ) |
Init bank.
Creates a module bank structure which will be filled later on with all the modules found.
References config_SortConfig(), likely, module_InitStatic(), modules, vlc_entry__core(), vlc_mutex_lock(), and vlc_plugin_store().
Referenced by libvlc_InternalInit().
|
static |
Registers a statically-linked plug-in.
References unlikely, vlc_plugin_describe(), vlc_static_modules, and VLC_WEAK.
Referenced by module_InitBank(), and module_InitStaticModules().
|
static |
References asprintf(), CacheSave(), config_GetSysPath(), DIR_SEP, getenv(), likely, lock, vlc_object_t::logger, module_InitStatic(), module_Map(), module_Symbol(), module_Unmap(), modules, msg_Dbg, msg_Err, msg_Warn, vlc_modcap::name, vlc_plugin_t::next, PATH_SEP, realpath(), vlc_plugin_t::size, strcasecmp(), strdup(), strtok_r(), unlikely, var_InheritBool(), VLC_API_VERSION_STRING, vlc_cache_load(), vlc_cache_lookup(), vlc_dlclose(), vlc_dlerror(), vlc_dlopen(), vlc_dlsym(), vlc_error, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_opendir(), VLC_PKG_LIB_DIR, vlc_plugin_describe(), vlc_plugin_destroy(), vlc_plugin_resolve(), vlc_plugin_store(), vlc_readdir(), vlc_stat(), vlc_static_modules, VLC_STATIC_MUTEX, and xrealloc().
Referenced by module_LoadPlugins().
ssize_t module_list_cap | ( | module_t ***restrict | list, |
const char * | name | ||
) |
Builds a sorted list of all VLC modules with a given capability.
The list is sorted from the highest module score to the lowest.
list | pointer to the table of modules [OUT] |
name | name of capability of modules to look for |
References vlc_modcap::modc, modules, vlc_modcap::modv, tfind(), unlikely, vlc_alloc(), and vlc_modcap_cmp().
Referenced by config_ListModules(), and vlc_module_load().
void module_list_free | ( | module_t ** | list | ) |
Frees the flat list of VLC modules.
list | list obtained by module_list_get() |
length | number of items on the list |
Referenced by config_ListModules(), ListModules(), module_find(), module_LoadPlugins(), and vlc_module_load().
module_t** module_list_get | ( | size_t * | n | ) |
Gets the flat list of VLC modules.
n | [OUT] pointer to the number of modules |
References vlc_plugin_t::next, module_t::next, and unlikely.
Referenced by ListModules(), module_find(), and module_LoadPlugins().
void module_LoadPlugins | ( | vlc_object_t * | obj | ) |
Loads module descriptions for all available plugins.
Fills the module bank structure with the plugin modules.
p_this | vlc object structure |
References config_SortConfig(), config_UnsortConfig(), count, list, module_InitStaticModules(), module_list_free(), module_list_get(), modules, msg_Dbg, twalk(), vlc_modcap_sort(), and vlc_mutex_unlock().
int module_Map | ( | struct vlc_logger * | log, |
vlc_plugin_t * | plugin | ||
) |
Referenced by module_InitStaticModules(), and module_load().
void* module_Symbol | ( | struct vlc_logger * | log, |
vlc_plugin_t * | plugin, | ||
const char * | name | ||
) |
Referenced by config_GetIntChoices(), config_GetPszChoices(), and module_InitStaticModules().
|
static |
Referenced by module_EndBank(), and module_InitStaticModules().
|
static |
References vlc_modcap::name.
Referenced by module_list_cap(), and vlc_module_store().
|
static |
References vlc_modcap::modv, and vlc_modcap::name.
Referenced by module_EndBank(), and vlc_module_store().
|
static |
References leaf, postorder, and vlc_module_cmp().
Referenced by module_LoadPlugins().
|
static |
References module_t::i_score.
Referenced by vlc_modcap_sort().
|
static |
Adds a module to the bank.
References vlc_modcap::modc, module_get_capability(), modules, vlc_modcap::modv, vlc_modcap::name, strdup(), tsearch(), unlikely, vlc_modcap_cmp(), and vlc_modcap_free().
Referenced by vlc_plugin_store().
|
static |
Adds a plugin (and all its modules) to the bank.
References vlc_plugin_t::module, modules, vlc_plugin_t::next, module_t::next, vlc_module_store(), vlc_mutex_assert, and vlc_plugins.
Referenced by module_InitBank(), and module_InitStaticModules().
block_t* caches |
Referenced by module_EndBank().
void* caps_tree |
Referenced by module_EndBank().
vlc_mutex_t lock |
Referenced by module_InitStaticModules().
struct { ... } modules |
unsigned usage |
vlc_plugin_t* vlc_plugins = NULL |
List of all plug-ins.
Referenced by config_LoadCmdLine(), config_ResetAll(), config_SaveConfigFile(), config_SortConfig(), module_EndBank(), Usage(), and vlc_plugin_store().
vlc_plugin_cb vlc_static_modules[] |
Referenced by module_InitStatic(), and module_InitStaticModules().