VLC  3.0.21
Data Structures | Macros | Typedefs | Functions | Variables
modules.h File Reference
Include dependency graph for modules.h:

Go to the source code of this file.

Data Structures

struct  vlc_plugin_t
 VLC plugin. More...
 
struct  module_t
 Internal module descriptor. More...
 

Macros

#define MODULE_SHORTCUT_MAX   20
 
#define module_LoadPlugins(a)   module_LoadPlugins(VLC_OBJECT(a))
 

Typedefs

typedef void * module_handle_t
 The plugin handle type. More...
 
typedef struct vlc_plugin_t vlc_plugin_t
 VLC plugin. More...
 
typedef int(* vlc_plugin_cb) (int(*) (void *, void *, int,...), void *)
 Plugin entry point prototype. More...
 

Functions

int vlc_entry__core (int(*)(void *, void *, int,...), void *)
 Core module. More...
 
vlc_plugin_tvlc_plugin_create (void)
 
void vlc_plugin_destroy (vlc_plugin_t *)
 Destroys a plug-in. More...
 
module_tvlc_module_create (vlc_plugin_t *)
 
void vlc_module_destroy (module_t *)
 Destroys a module. More...
 
vlc_plugin_tvlc_plugin_describe (vlc_plugin_cb)
 Runs a plug-in descriptor. More...
 
int vlc_plugin_resolve (vlc_plugin_t *, vlc_plugin_cb)
 
void module_InitBank (void)
 Init bank. More...
 
size_t module_LoadPlugins (vlc_object_t *)
 Loads module descriptions for all available plugins. More...
 
void module_EndBank (bool)
 Unloads all unused plugin modules and empties the module bank in case of success. More...
 
int module_Map (vlc_object_t *, vlc_plugin_t *)
 
ssize_t module_list_cap (module_t ***, const char *)
 
int vlc_bindtextdomain (const char *)
 
int module_Load (vlc_object_t *, const char *, module_handle_t *, bool)
 Load a dynamically linked library using a system dependent method. More...
 
void * module_Lookup (module_handle_t, const char *)
 Looks up a symbol from a dynamically loaded library. More...
 
void module_Unload (module_handle_t)
 CloseModule: unload a dynamic library. More...
 
vlc_plugin_tvlc_cache_load (vlc_object_t *, const char *, block_t **)
 
vlc_plugin_tvlc_cache_lookup (vlc_plugin_t **, const char *relpath)
 
void CacheSave (vlc_object_t *, const char *, vlc_plugin_t *const *, size_t)
 

Variables

struct vlc_plugin_tvlc_plugins
 List of all plug-ins. More...
 

Macro Definition Documentation

◆ module_LoadPlugins

#define module_LoadPlugins (   a)    module_LoadPlugins(VLC_OBJECT(a))

◆ MODULE_SHORTCUT_MAX

#define MODULE_SHORTCUT_MAX   20

Typedef Documentation

◆ module_handle_t

typedef void* module_handle_t

The plugin handle type.

◆ vlc_plugin_cb

typedef int(* vlc_plugin_cb) (int(*)(void *, void *, int,...), void *)

Plugin entry point prototype.

◆ vlc_plugin_t

typedef struct vlc_plugin_t vlc_plugin_t

VLC plugin.

Function Documentation

◆ CacheSave()

void CacheSave ( vlc_object_t ,
const char *  ,
vlc_plugin_t *const *  ,
size_t   
)

◆ module_EndBank()

void module_EndBank ( bool  )

◆ module_InitBank()

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().

◆ module_list_cap()

ssize_t module_list_cap ( module_t ***  ,
const char *   
)

◆ module_Load()

int module_Load ( vlc_object_t p_this,
const char *  path,
module_handle_t p_handle,
bool  lazy 
)

Load a dynamically linked library using a system dependent method.

Parameters
p_thisvlc object
psz_filelibrary file
p_handlethe module handle returned
Returns
0 on success as well as the module handle.
Parameters
p_thisvlc object
pathlibrary file
p_handlethe module handle returned
Returns
0 on success as well as the module handle.

References GetWindowsError(), LoadLibraryFlags, msg_Warn, and ToLocaleDup.

◆ module_LoadPlugins()

size_t module_LoadPlugins ( vlc_object_t obj)

Loads module descriptions for all available plugins.

Fills the module bank structure with the plugin modules.

Parameters
p_thisvlc object structure
Returns
total number of modules in bank after loading all plug-ins

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().

◆ module_Lookup()

void* module_Lookup ( module_handle_t  handle,
const char *  psz_function 
)

Looks up a symbol from a dynamically loaded library.

This function queries a loaded library for a symbol specified in a string, and returns a pointer to it. We don't check for dlerror() or similar functions, since we want a non-NULL symbol anyway.

Parameters
handlehandle to the module
psz_functionfunction name
Returns
NULL on error, or the address of the symbol

◆ module_Map()

int module_Map ( vlc_object_t ,
vlc_plugin_t  
)

◆ module_Unload()

void module_Unload ( module_handle_t  handle)

CloseModule: unload a dynamic library.

This function unloads a previously opened dynamically linked library using a system dependent method. No return value is taken in consideration, since some libraries sometimes refuse to close properly.

Parameters
handlehandle of the library
Returns
nothing

References RUNNING_ON_VALGRIND.

◆ vlc_bindtextdomain()

int vlc_bindtextdomain ( const char *  )

◆ vlc_cache_load()

vlc_plugin_t* vlc_cache_load ( vlc_object_t ,
const char *  ,
block_t **   
)

◆ vlc_cache_lookup()

vlc_plugin_t* vlc_cache_lookup ( vlc_plugin_t **  ,
const char *  relpath 
)

◆ vlc_entry__core()

int vlc_entry__core ( int(*)(void *, void *, int,...)  ,
void *   
)

Core module.

Referenced by module_InitBank().

◆ vlc_module_create()

module_t* vlc_module_create ( vlc_plugin_t )

◆ vlc_module_destroy()

void vlc_module_destroy ( module_t )

Destroys a module.

References module_t::next, and module_t::pp_shortcuts.

Referenced by vlc_plugin_destroy().

◆ vlc_plugin_create()

vlc_plugin_t* vlc_plugin_create ( void  )

◆ vlc_plugin_describe()

vlc_plugin_t* vlc_plugin_describe ( vlc_plugin_cb  entry)

Runs a plug-in descriptor.

This loads the plug-in meta-data in memory.

References unlikely, vlc_plugin_create(), vlc_plugin_desc_cb(), and vlc_plugin_destroy().

Referenced by module_InitStatic().

◆ vlc_plugin_destroy()

void vlc_plugin_destroy ( vlc_plugin_t plugin)

Destroys a plug-in.

Warning
If the plug-in was dynamically loaded in memory, the library handle and associated memory mappings and linker resources will be leaked.

References vlc_plugin_t::conf, config_Free(), vlc_plugin_t::items, vlc_plugin_t::module, vlc_plugin_t::size, and vlc_module_destroy().

Referenced by module_EndBank(), and vlc_plugin_describe().

◆ vlc_plugin_resolve()

int vlc_plugin_resolve ( vlc_plugin_t ,
vlc_plugin_cb   
)

Variable Documentation

◆ vlc_plugins

struct vlc_plugin_t* vlc_plugins