Data Structures | |
struct | bg_plugin_info_s |
Information about a plugin. More... | |
struct | bg_plugin_handle_s |
Handle of a loaded plugin. More... | |
Modules | |
Defaults saved between sessions | |
Plugin defaults. | |
Typedefs | |
typedef struct bg_plugin_info_s | bg_plugin_info_t |
Typedef for plugin info. | |
typedef struct bg_plugin_registry_s | bg_plugin_registry_t |
Opaque handle for a plugin registry. | |
typedef struct bg_plugin_handle_s | bg_plugin_handle_t |
Typedef for plugin handle. | |
Enumerations | |
enum | bg_plugin_api_t { BG_PLUGIN_API_GMERLIN = 0, BG_PLUGIN_API_LADSPA, BG_PLUGIN_API_LV, BG_PLUGIN_API_FREI0R } |
Identifiers for plugin APIs. More... | |
Functions | |
bg_plugin_registry_t * | bg_plugin_registry_create (bg_cfg_section_t *section) |
Create a plugin registry. | |
void | bg_plugin_registry_destroy (bg_plugin_registry_t *reg) |
Destroy a plugin registry. | |
int | bg_plugin_registry_get_num_plugins (bg_plugin_registry_t *reg, uint32_t type_mask, uint32_t flag_mask) |
Count plugins. | |
const bg_plugin_info_t * | bg_plugin_find_by_index (bg_plugin_registry_t *reg, int index, uint32_t type_mask, uint32_t flag_mask) |
Find a plugin by index. | |
const bg_plugin_info_t * | bg_plugin_find_by_name (bg_plugin_registry_t *reg, const char *name) |
Find a plugin by it's unique short name. | |
const bg_plugin_info_t * | bg_plugin_find_by_filename (bg_plugin_registry_t *reg, const char *filename, int type_mask) |
Find a plugin by the file extension. | |
const bg_plugin_info_t * | bg_plugin_find_by_protocol (bg_plugin_registry_t *reg, const char *protocol) |
Find an input plugin for a network protocol. | |
char ** | bg_plugin_registry_get_plugins (bg_plugin_registry_t *reg, uint32_t type_mask, uint32_t flag_mask) |
Get a list of plugins. | |
void | bg_plugin_registry_free_plugins (char **plugins) |
Free a plugin list. | |
int | bg_input_plugin_load (bg_plugin_registry_t *reg, const char *location, const bg_plugin_info_t *info, bg_plugin_handle_t **ret, bg_input_callbacks_t *callbacks, int prefer_edl) |
Load and open an input plugin. | |
int | bg_input_plugin_load_edl (bg_plugin_registry_t *reg, const bg_edl_t *edl, const bg_plugin_info_t *info, bg_plugin_handle_t **ret, bg_input_callbacks_t *callbacks) |
Load and open an edl decoder. | |
void | bg_plugin_registry_set_extensions (bg_plugin_registry_t *reg, const char *plugin_name, const char *extensions) |
Set file extensions for a plugin. | |
void | bg_plugin_registry_set_protocols (bg_plugin_registry_t *reg, const char *plugin_name, const char *protocols) |
Set protocols for a plugin. | |
void | bg_plugin_registry_set_priority (bg_plugin_registry_t *reg, const char *plugin_name, int priority) |
Set priority for a plugin. | |
bg_cfg_section_t * | bg_plugin_registry_get_section (bg_plugin_registry_t *reg, const char *plugin_name) |
Get the config section belonging to a plugin. | |
void | bg_plugin_registry_set_parameter_info (bg_plugin_registry_t *reg, uint32_t type_mask, uint32_t flag_mask, bg_parameter_info_t *ret) |
Set a parameter info for selecting and configuring plugins. | |
void | bg_plugin_registry_add_device (bg_plugin_registry_t *reg, const char *plugin_name, const char *device, const char *name) |
Add a device to a plugin. | |
void | bg_plugin_registry_set_device_name (bg_plugin_registry_t *reg, const char *plugin_name, const char *device, const char *name) |
Change the name of a device. | |
void | bg_plugin_registry_find_devices (bg_plugin_registry_t *reg, const char *plugin_name) |
Let a plugin rescan for devices. | |
void | bg_plugin_registry_remove_device (bg_plugin_registry_t *reg, const char *plugin_name, const char *device, const char *name) |
Remove a device. | |
gavl_video_frame_t * | bg_plugin_registry_load_image (bg_plugin_registry_t *reg, const char *filename, gavl_video_format_t *format, bg_metadata_t *m) |
Load an image. | |
void | bg_plugin_registry_save_image (bg_plugin_registry_t *reg, const char *filename, gavl_video_frame_t *frame, const gavl_video_format_t *format, const bg_metadata_t *m) |
Save an image. | |
bg_plugin_handle_t * | bg_plugin_load (bg_plugin_registry_t *reg, const bg_plugin_info_t *info) |
Load a plugin. | |
bg_plugin_handle_t * | bg_ov_plugin_load (bg_plugin_registry_t *reg, const bg_plugin_info_t *info, const char *window_id) |
Load a video output plugin. | |
void | bg_plugin_lock (bg_plugin_handle_t *h) |
Lock a plugin. | |
void | bg_plugin_unlock (bg_plugin_handle_t *h) |
Unlock a plugin. | |
void | bg_plugin_ref (bg_plugin_handle_t *h) |
Increase the reference count. | |
void | bg_plugin_unref (bg_plugin_handle_t *h) |
Decrease the reference count. | |
void | bg_plugin_unref_nolock (bg_plugin_handle_t *h) |
Decrease the reference count without locking. | |
int | bg_plugin_equal (bg_plugin_handle_t *h1, bg_plugin_handle_t *h2) |
Check if 2 plugins are equal. |
The plugin registry keeps informations about all installed plugins. Furthermore, it manages default plugins and some other settings. Available plugins are cached in the file $HOME/.gmerlin/plugins.xml, which is used by all applications. Application specific data are stored in a bg_cfg_section_t.
It allows you to search for plugins according to certain criteria. You get detailed information about plugins in bg_plugin_info_t structs.
typedef struct bg_plugin_info_s bg_plugin_info_t |
Typedef for plugin info.
typedef struct bg_plugin_registry_s bg_plugin_registry_t |
Opaque handle for a plugin registry.
You don't want to know, what's inside here.
typedef struct bg_plugin_handle_s bg_plugin_handle_t |
Typedef for plugin handle.
enum bg_plugin_api_t |
bg_plugin_registry_t* bg_plugin_registry_create | ( | bg_cfg_section_t * | section | ) |
Create a plugin registry.
section | A configuration section |
void bg_plugin_registry_destroy | ( | bg_plugin_registry_t * | reg | ) |
Destroy a plugin registry.
reg | A plugin registry |
int bg_plugin_registry_get_num_plugins | ( | bg_plugin_registry_t * | reg, | |
uint32_t | type_mask, | |||
uint32_t | flag_mask | |||
) |
Count plugins.
reg | A plugin registry | |
type_mask | Mask of all types you want to have | |
flag_mask | Mask of all flags you want to have |
const bg_plugin_info_t* bg_plugin_find_by_index | ( | bg_plugin_registry_t * | reg, | |
int | index, | |||
uint32_t | type_mask, | |||
uint32_t | flag_mask | |||
) |
Find a plugin by index.
reg | A plugin registry | |
index | Index | |
type_mask | Mask of all types you want to have | |
flag_mask | Mask of all flags you want to have |
const bg_plugin_info_t* bg_plugin_find_by_name | ( | bg_plugin_registry_t * | reg, | |
const char * | name | |||
) |
Find a plugin by it's unique short name.
reg | A plugin registry | |
name | The name |
const bg_plugin_info_t* bg_plugin_find_by_filename | ( | bg_plugin_registry_t * | reg, | |
const char * | filename, | |||
int | type_mask | |||
) |
Find a plugin by the file extension.
reg | A plugin registry | |
filename | The file, whose extension should match | |
type_mask | Mask of plugin types to be returned |
const bg_plugin_info_t* bg_plugin_find_by_protocol | ( | bg_plugin_registry_t * | reg, | |
const char * | protocol | |||
) |
Find an input plugin for a network protocol.
reg | A plugin registry | |
protocol | The network protocol (e.g. http) |
char** bg_plugin_registry_get_plugins | ( | bg_plugin_registry_t * | reg, | |
uint32_t | type_mask, | |||
uint32_t | flag_mask | |||
) |
Get a list of plugins.
reg | A plugin registry | |
type_mask | Mask of all returned plugin types | |
flag_mask | Mask of all returned plugin flags |
Use bg_plugin_registry_free_plugins to free the returned list.
void bg_plugin_registry_free_plugins | ( | char ** | plugins | ) |
int bg_input_plugin_load | ( | bg_plugin_registry_t * | reg, | |
const char * | location, | |||
const bg_plugin_info_t * | info, | |||
bg_plugin_handle_t ** | ret, | |||
bg_input_callbacks_t * | callbacks, | |||
int | prefer_edl | |||
) |
Load and open an input plugin.
reg | A plugin registry | |
location | Filename or URL | |
info | Plugin to use (can be NULL for autodetection) | |
ret | Will return the plugin handle. | |
callbacks | Input callbacks (only for authentication) | |
prefer_edl | If 1 EDLs are preferred over raw streams |
int bg_input_plugin_load_edl | ( | bg_plugin_registry_t * | reg, | |
const bg_edl_t * | edl, | |||
const bg_plugin_info_t * | info, | |||
bg_plugin_handle_t ** | ret, | |||
bg_input_callbacks_t * | callbacks | |||
) |
Load and open an edl decoder.
reg | A plugin registry | |
edl | The edl to open | |
info | Plugin to use (can be NULL for autodetection) | |
ret | Will return the plugin handle. | |
callbacks | Input callbacks (only for authentication) |
void bg_plugin_registry_set_extensions | ( | bg_plugin_registry_t * | reg, | |
const char * | plugin_name, | |||
const char * | extensions | |||
) |
Set file extensions for a plugin.
reg | A plugin registry | |
plugin_name | Name of the plugin | |
extensions | Space separated list of file extensions |
void bg_plugin_registry_set_protocols | ( | bg_plugin_registry_t * | reg, | |
const char * | plugin_name, | |||
const char * | protocols | |||
) |
Set protocols for a plugin.
reg | A plugin registry | |
plugin_name | Name of the plugin | |
protocols | Space separated list of protocols |
void bg_plugin_registry_set_priority | ( | bg_plugin_registry_t * | reg, | |
const char * | plugin_name, | |||
int | priority | |||
) |
Set priority for a plugin.
reg | A plugin registry | |
plugin_name | Name of the plugin | |
priority | Priority (BG_PLUGIN_PRIORITY_MIN..BG_PLUGIN_PRIORITY_MAX, should be 1..10) |
bg_cfg_section_t* bg_plugin_registry_get_section | ( | bg_plugin_registry_t * | reg, | |
const char * | plugin_name | |||
) |
Get the config section belonging to a plugin.
reg | A plugin registry | |
plugin_name | Short name of the plugin |
void bg_plugin_registry_set_parameter_info | ( | bg_plugin_registry_t * | reg, | |
uint32_t | type_mask, | |||
uint32_t | flag_mask, | |||
bg_parameter_info_t * | ret | |||
) |
Set a parameter info for selecting and configuring plugins.
reg | A plugin registry | |
type_mask | Mask of all returned types | |
flag_mask | Mask of all returned flags | |
ret | Where the parameter info will be copied |
void bg_plugin_registry_add_device | ( | bg_plugin_registry_t * | reg, | |
const char * | plugin_name, | |||
const char * | device, | |||
const char * | name | |||
) |
Add a device to a plugin.
reg | A plugin registry | |
plugin_name | Name of the plugin | |
device | Device file | |
name | Name for the device |
void bg_plugin_registry_set_device_name | ( | bg_plugin_registry_t * | reg, | |
const char * | plugin_name, | |||
const char * | device, | |||
const char * | name | |||
) |
Change the name of a device.
reg | A plugin registry | |
plugin_name | Name of the plugin | |
device | Device file name | |
name | New name for the device |
void bg_plugin_registry_find_devices | ( | bg_plugin_registry_t * | reg, | |
const char * | plugin_name | |||
) |
Let a plugin rescan for devices.
reg | A plugin registry | |
plugin_name | Name of the plugin |
void bg_plugin_registry_remove_device | ( | bg_plugin_registry_t * | reg, | |
const char * | plugin_name, | |||
const char * | device, | |||
const char * | name | |||
) |
Remove a device.
reg | A plugin registry | |
plugin_name | Name of the plugin | |
device | Device file name | |
name | New name for the device |
gavl_video_frame_t* bg_plugin_registry_load_image | ( | bg_plugin_registry_t * | reg, | |
const char * | filename, | |||
gavl_video_format_t * | format, | |||
bg_metadata_t * | m | |||
) |
Load an image.
reg | A plugin registry | |
filename | Image filename | |
format | Returns format of the image |
void bg_plugin_registry_save_image | ( | bg_plugin_registry_t * | reg, | |
const char * | filename, | |||
gavl_video_frame_t * | frame, | |||
const gavl_video_format_t * | format, | |||
const bg_metadata_t * | m | |||
) |
Save an image.
reg | A plugin registry | |
filename | Image filename | |
frame | The frame, which contains the image | |
format | Returns format of the image |
bg_plugin_handle_t* bg_plugin_load | ( | bg_plugin_registry_t * | reg, | |
const bg_plugin_info_t * | info | |||
) |
Load a plugin.
reg | A plugin registry | |
info | The plugin info |
bg_plugin_handle_t* bg_ov_plugin_load | ( | bg_plugin_registry_t * | reg, | |
const bg_plugin_info_t * | info, | |||
const char * | window_id | |||
) |
Load a video output plugin.
reg | A plugin registry | |
info | The plugin info | |
window_id | The window ID or NULL |
void bg_plugin_lock | ( | bg_plugin_handle_t * | h | ) |
Lock a plugin.
h | A plugin handle |
void bg_plugin_unlock | ( | bg_plugin_handle_t * | h | ) |
Unlock a plugin.
h | A plugin handle |
void bg_plugin_ref | ( | bg_plugin_handle_t * | h | ) |
Increase the reference count.
h | A plugin handle |
void bg_plugin_unref | ( | bg_plugin_handle_t * | h | ) |
Decrease the reference count.
h | A plugin handle |
void bg_plugin_unref_nolock | ( | bg_plugin_handle_t * | h | ) |
Decrease the reference count without locking.
h | A plugin handle |
int bg_plugin_equal | ( | bg_plugin_handle_t * | h1, | |
bg_plugin_handle_t * | h2 | |||
) |
Check if 2 plugins are equal.
h1 | A Plugin handle | |
h2 | Another plugin handle |