LiVES 2.4.6

- Main Page
- Namespaces
- Data Structures
- Files

- File List
- Globals

All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
plugins.h File Reference
`#include <gmodule.h>`
`#include <unistd.h>`
`#include <string.h>`
`#include <fcntl.h>`
`#include <stdlib.h>`

Go to the source code of this file.

## Data Structures
struct | _vid_playback_plugin
struct | _encoder
struct | lives_clip_data_t
struct | lives_decoder_sys_t
struct | lives_decoder_t
struct | lives_param_t
struct | lives_rfx_t
struct | lives_fx_candidate_t
struct | _vppaw
| video playback plugin window - fixed part More...

## Macros
#define | PLUGIN_ENCODERS "encoders"
#define | PLUGIN_DECODERS "decoders"
#define | PLUGIN_VID_PLAYBACK "playback/video"
#define | PLUGIN_AUDIO_STREAM "playback/audiostream"
#define | PLUGIN_THEMES "themes"
| smogrify handles the directory differently for themes More...
#define | PLUGIN_EFFECTS_WEED "weed"
| uses WEED_PLUGIN_PATH More...
#define | PLUGIN_WEED_FX_BUILTIN "effects/realtime/weed"
#define | VPP_CAN_RESIZE 1<<0
#define | VPP_CAN_RETURN 1<<1
#define | VPP_LOCAL_DISPLAY 1<<2
#define | DEF_VPP_HSIZE 320.
#define | DEF_VPP_VSIZE 240.
#define | AUDIO_CODEC_MP3 0
#define | AUDIO_CODEC_PCM 1
#define | AUDIO_CODEC_MP2 2
#define | AUDIO_CODEC_VORBIS 3
#define | AUDIO_CODEC_AC3 4
#define | AUDIO_CODEC_AAC 5
#define | AUDIO_CODEC_AMR_NB 6
#define | AUDIO_CODEC_RAW 7
#define | AUDIO_CODEC_WMA2 8
#define | AUDIO_CODEC_MAX 31
#define | AUDIO_CODEC_NONE 32
#define | AUDIO_CODEC_UNKNOWN 33
#define | HAS_RFX 1<<0
#define | CAN_ENCODE_PNG 1<<2
#define | ENCODER_NON_NATIVE 1<<3
#define | LIVES_SEEK_FAST (1<<0)
| good More...
#define | LIVES_SEEK_NEEDS_CALCULATION (1<<1)
| not so good More...
#define | LIVES_SEEK_QUALITY_LOSS (1<<2)
#define | SYNC_HINT_AUDIO_TRIM_START (1<<0)
#define | SYNC_HINT_AUDIO_PAD_START (1<<1)
#define | SYNC_HINT_AUDIO_TRIM_END (1<<2)
#define | SYNC_HINT_AUDIO_PAD_END (1<<3)
#define | SYNC_HINT_VIDEO_PAD_START (1<<4)
#define | SYNC_HINT_VIDEO_PAD_END (1<<5)
#define | PLUGIN_RENDERED_EFFECTS_BUILTIN "effects/rendered/"
| external rendered fx plugins (RFX plugins) More...
#define | PLUGIN_RENDERED_EFFECTS_CUSTOM "plugins/effects/rendered/custom/"
| in the home directory More...
#define | PLUGIN_RENDERED_EFFECTS_TEST "plugins/effects/rendered/test/"
#define | PLUGIN_RENDERED_EFFECTS_BUILTIN_SCRIPTS "effects/RFXscripts/"
| rfx scripts for the SDK More...
#define | PLUGIN_RENDERED_EFFECTS_CUSTOM_SCRIPTS "plugins/effects/RFXscripts/custom/"
| in the home directory More...
#define | PLUGIN_RENDERED_EFFECTS_TEST_SCRIPTS "plugins/effects/RFXscripts/test/"
#define | PLUGIN_RFX_SCRAP ""
| scraps are passed between programs to generate param windows More...
#define | MAX_PARAM_WIDGETS 5
| max number of display widgets per parameter (currently 5 for RGBA spinbuttons + colorbutton) More...
#define | RFX_MAXSTRINGLEN 1024
| length of max string (not including terminating NULL) for LiVES-perl More...
#define | HIDDEN_GUI (1<<0)
#define | HIDDEN_MULTI (1<<1)
#define | HIDDEN_NEEDS_REINIT (1<<2)
#define | HIDDEN_COMPOUND_INTERNAL (1<<3)
#define | PVAL_MULTI_NONE 0
#define | PVAL_MULTI_ANY 1
#define | PVAL_MULTI_PER_CHANNEL 2
#define | RFX_PROPS_SLOW 0x0001
| hint to GUI More...
#define | RFX_PROPS_MAY_RESIZE 0x0002
| is a tool More...
#define | RFX_PROPS_BATCHG 0x0004
| is a batch generator More...
#define | RFX_PROPS_RESERVED1 0x1000
#define | RFX_PROPS_RESERVED2 0x2000
#define | RFX_PROPS_RESERVED3 0x4000
#define | RFX_PROPS_AUTO_BUILT 0x8000
#define | FX_CANDIDATE_AUDIO_VOL 0
#define | FX_CANDIDATE_RESIZER 1
#define | FX_CANDIDATE_DEINTERLACE 2
#define | MAX_FX_CANDIDATE_TYPES 3

## Typedefs
typedef weed_plant_t *(* | weed_bootstrap_f )(weed_default_getter_f *value, int num_versions, int *plugin_versions)
typedef boolean(* | plugin_keyfunc )(boolean down, uint16_t unicode, uint16_t keymod)
| video playback plugins More...

## Enumerations
enum | lives_param_type_t { LIVES_PARAM_UNKNOWN =0, LIVES_PARAM_NUM, LIVES_PARAM_BOOL, LIVES_PARAM_COLRGB24, LIVES_PARAM_STRING, LIVES_PARAM_STRING_LIST, LIVES_PARAM_COLRGBA32, LIVES_PARAM_UNDISPLAYABLE =65536 }
enum | lives_rfx_source_t { LIVES_RFX_SOURCE_RFX =0, LIVES_RFX_SOURCE_WEED }
enum | lives_param_special_t { LIVES_PARAM_SPECIAL_TYPE_NONE =0, LIVES_PARAM_SPECIAL_TYPE_RECT_DEMASK, LIVES_PARAM_SPECIAL_TYPE_RECT_MULTRECT, LIVES_PARAM_SPECIAL_TYPE_RECT_MULTIRECT, LIVES_PARAM_SPECIAL_TYPE_SINGLEPOINT, LIVES_PARAM_SPECIAL_TYPE_FILEREAD, LIVES_PARAM_SPECIAL_TYPE_PASSWORD, LIVES_PARAM_SPECIAL_TYPE_MERGEALIGN, LIVES_PARAM_SPECIAL_TYPE_ASPECT_RATIO }
enum | lives_rfx_status_t { RFX_STATUS_BUILTIN =0, RFX_STATUS_CUSTOM =1, RFX_STATUS_TEST =2, RFX_STATUS_ANY =3, RFX_STATUS_WEED =4, RFX_STATUS_SCRAP =5, RFX_STATUS_COPY =128, RFX_STATUS_RENAME =129 }

## Functions
LiVESList * | get_plugin_list (const char *plugin_type, boolean allow_nonex, const char *plugdir, const char *filter_ext)
LiVESList * | plugin_request (const char *plugin_type, const char *plugin_name, const char *request)
LiVESList * | plugin_request_with_blanks (const char *plugin_type, const char *plugin_name, const char *request)
LiVESList * | plugin_request_by_line (const char *plugin_type, const char *plugin_name, const char *request)
LiVESList * | plugin_request_by_space (const char *plugin_type, const char *plugin_name, const char *request)
LiVESList * | plugin_request_common (const char *plugin_type, const char *plugin_name, const char *request, const char *delim, boolean allow_blanks)
_vid_playback_plugin * | open_vid_playback_plugin (const char *name, boolean in_use)
void | vid_playback_plugin_exit (void)
void | close_vid_playback_plugin (_vid_playback_plugin *)
int64_t | get_best_audio (_vid_playback_plugin *)
void | save_vpp_defaults (_vid_playback_plugin *, char *file)
void | load_vpp_defaults (_vid_playback_plugin *, char *file)
const weed_plant_t * | pp_get_param (weed_plant_t **pparams, int idx)
const weed_plant_t * | pp_get_chan (weed_plant_t **pparams, int idx)
void | do_plugin_encoder_error (const char *plugin_name_or_null)
LiVESList * | filter_encoders_by_img_ext (LiVESList *encoders, const char *img_ext)
const lives_clip_data_t * | get_decoder_cdata (int fileno, LiVESList *disabled, const lives_clip_data_t *fake_cdata)
void | close_decoder_plugin (lives_decoder_t *)
lives_decoder_sys_t * | open_decoder_plugin (const char *plname)
void | get_mime_type (char *text, int maxlen, const lives_clip_data_t *)
void | unload_decoder_plugins (void)
boolean | decplugin_supports_palette (const lives_decoder_t *dplug, int palette)
lives_decoder_t * | clone_decoder (int fileno)
boolean | check_rfx_for_lives (lives_rfx_t *)
void | do_rfx_cleanup (lives_rfx_t *)
void | render_fx_get_params (lives_rfx_t *, const char *plugin_name, short status)
void | sort_rfx_array (lives_rfx_t *in_array, int num_elements)
int | find_rfx_plugin_by_name (const char *name, short status)
void | rfx_copy (lives_rfx_t *src, lives_rfx_t *dest, boolean full)
void | rfx_params_free (lives_rfx_t *rfx)
void | rfx_free (lives_rfx_t *rfx)
void | rfx_free_all (void)
void | param_copy (lives_param_t *src, lives_param_t *dest, boolean full)
boolean | get_bool_param (void *value)
int | get_int_param (void *value)
double | get_double_param (void *value)
void | get_colRGB24_param (void *value, lives_colRGB24_t *rgb)
void | get_colRGBA32_param (void *value, lives_colRGBA32_t *rgba)
void | set_bool_param (void *value, boolean)
void | set_int_param (void *value, int)
void | set_double_param (void *value, double)
void | set_colRGB24_param (void *value, short red, short green, short blue)
void | set_colRGBA32_param (void *value, short red, short green, short blue, short alpha)
void ** | store_rfx_params (lives_rfx_t *)
| return an array of parameter values More...
void | set_rfx_params_from_store (lives_rfx_t *rfx, void **store)
void | rfx_params_store_free (lives_rfx_t *, void **store)
LiVESList * | array_to_string_list (char **array, int offset, int len)
lives_rfx_t * | weed_to_rfx (weed_plant_t *plant, boolean show_reinits)
lives_param_t * | weed_params_to_rfx (int npar, weed_plant_t *instance, boolean show_reinits)
char * | plugin_run_param_window (const char *get_com, LiVESVBox *vbox, lives_rfx_t **ret_rfx)
_vppaw * | on_vpp_advanced_clicked (LiVESButton *, livespointer)
void | on_decplug_advanced_clicked (LiVESButton *button, livespointer user_data)
LiVESList * | get_external_window_hints (lives_rfx_t *rfx)
boolean | check_encoder_restrictions (boolean get_extension, boolean user_audio, boolean save_all)

## Variables
const char * | anames [AUDIO_CODEC_MAX]

## Macro Definition Documentation

#define AUDIO_CODEC_AAC 5

#define AUDIO_CODEC_AC3 4

#define AUDIO_CODEC_AMR_NB 6

#define AUDIO_CODEC_MAX 31

#define AUDIO_CODEC_MP2 2

#define AUDIO_CODEC_MP3 0

#define AUDIO_CODEC_NONE 32

#define AUDIO_CODEC_PCM 1

#define AUDIO_CODEC_RAW 7

#define AUDIO_CODEC_UNKNOWN 33

#define AUDIO_CODEC_VORBIS 3

#define AUDIO_CODEC_WMA2 8

#define CAN_ENCODE_PNG 1<<2

#define DEF_VPP_HSIZE 320.

#define DEF_VPP_VSIZE 240.

#define ENCODER_NON_NATIVE 1<<3

#define FX_CANDIDATE_AUDIO_VOL 0

#define FX_CANDIDATE_DEINTERLACE 2

#define FX_CANDIDATE_RESIZER 1

#define HAS_RFX 1<<0

#define HIDDEN_COMPOUND_INTERNAL (1<<3)

#define HIDDEN_GUI (1<<0)

#define HIDDEN_MULTI (1<<1)

#define HIDDEN_NEEDS_REINIT (1<<2)

#define LIVES_SEEK_FAST (1<<0)

good

#define LIVES_SEEK_NEEDS_CALCULATION (1<<1)

not so good

#define LIVES_SEEK_QUALITY_LOSS (1<<2)

#define MAX_FX_CANDIDATE_TYPES 3

#define MAX_PARAM_WIDGETS 5

max number of display widgets per parameter (currently 5 for RGBA spinbuttons + colorbutton)

#define PLUGIN_AUDIO_STREAM "playback/audiostream"

#define PLUGIN_DECODERS "decoders"

#define PLUGIN_EFFECTS_WEED "weed"

uses WEED_PLUGIN_PATH

#define PLUGIN_ENCODERS "encoders"

#define PLUGIN_RENDERED_EFFECTS_BUILTIN "effects/rendered/"

external rendered fx plugins (RFX plugins)

#define PLUGIN_RENDERED_EFFECTS_BUILTIN_SCRIPTS "effects/RFXscripts/"

rfx scripts for the SDK

#define PLUGIN_RENDERED_EFFECTS_CUSTOM "plugins/effects/rendered/custom/"

in the home directory

#define PLUGIN_RENDERED_EFFECTS_CUSTOM_SCRIPTS "plugins/effects/RFXscripts/custom/"

in the home directory

#define PLUGIN_RENDERED_EFFECTS_TEST "plugins/effects/rendered/test/"

#define PLUGIN_RENDERED_EFFECTS_TEST_SCRIPTS "plugins/effects/RFXscripts/test/"

#define PLUGIN_RFX_SCRAP ""

scraps are passed between programs to generate param windows

#define PLUGIN_THEMES "themes"

smogrify handles the directory differently for themes

#define PLUGIN_VID_PLAYBACK "playback/video"

#define PLUGIN_WEED_FX_BUILTIN "effects/realtime/weed"

#define PVAL_MULTI_ANY 1

#define PVAL_MULTI_NONE 0

#define PVAL_MULTI_PER_CHANNEL 2

#define RFX_MAXSTRINGLEN 1024

length of max string (not including terminating NULL) for LiVES-perl

#define RFX_PROPS_AUTO_BUILT 0x8000

#define RFX_PROPS_BATCHG 0x0004

is a batch generator

#define RFX_PROPS_MAY_RESIZE 0x0002

is a tool

#define RFX_PROPS_RESERVED1 0x1000

#define RFX_PROPS_RESERVED2 0x2000

#define RFX_PROPS_RESERVED3 0x4000

#define RFX_PROPS_SLOW 0x0001

hint to GUI

#define SYNC_HINT_AUDIO_PAD_END (1<<3)

#define SYNC_HINT_AUDIO_PAD_START (1<<1)

#define SYNC_HINT_AUDIO_TRIM_END (1<<2)

#define SYNC_HINT_AUDIO_TRIM_START (1<<0)

#define SYNC_HINT_VIDEO_PAD_END (1<<5)

#define SYNC_HINT_VIDEO_PAD_START (1<<4)

#define VPP_CAN_RESIZE 1<<0

#define VPP_CAN_RETURN 1<<1

#define VPP_LOCAL_DISPLAY 1<<2

## Typedef Documentation

typedef boolean(* plugin_keyfunc)(boolean down, uint16_t unicode, uint16_t keymod)

video playback plugins

typedef weed_plant_t*(* weed_bootstrap_f)(weed_default_getter_f *value, int num_versions, int *plugin_versions)

## Enumeration Type Documentation

enum lives_param_special_t

Enumerator
LIVES_PARAM_SPECIAL_TYPE_NONE |
LIVES_PARAM_SPECIAL_TYPE_RECT_DEMASK | type may be used in framedraw
LIVES_PARAM_SPECIAL_TYPE_RECT_MULTRECT | type may be used in framedraw
LIVES_PARAM_SPECIAL_TYPE_RECT_MULTIRECT | type may be used in framedraw
LIVES_PARAM_SPECIAL_TYPE_SINGLEPOINT | type may be used in framedraw
LIVES_PARAM_SPECIAL_TYPE_FILEREAD |
LIVES_PARAM_SPECIAL_TYPE_PASSWORD |
LIVES_PARAM_SPECIAL_TYPE_MERGEALIGN |
LIVES_PARAM_SPECIAL_TYPE_ASPECT_RATIO |

enum lives_param_type_t

Enumerator
LIVES_PARAM_UNKNOWN |
LIVES_PARAM_NUM |
LIVES_PARAM_BOOL |
LIVES_PARAM_COLRGB24 |
LIVES_PARAM_STRING |
LIVES_PARAM_STRING_LIST |
LIVES_PARAM_COLRGBA32 |
LIVES_PARAM_UNDISPLAYABLE |

enum lives_rfx_source_t

Enumerator
LIVES_RFX_SOURCE_RFX |
LIVES_RFX_SOURCE_WEED |

enum lives_rfx_status_t

Enumerator
RFX_STATUS_BUILTIN | factory presets
RFX_STATUS_CUSTOM | custom effects in the custom menu
RFX_STATUS_TEST | test effects in the advanced menu
RFX_STATUS_ANY | indicates free choice of statuses
RFX_STATUS_WEED | indicates an internal RFX, created from a weed instance
RFX_STATUS_SCRAP | used for parsing RFX scraps from external apps
RFX_STATUS_COPY | indicates a copy operation to test
RFX_STATUS_RENAME | indicates a copy operation to test

## Function Documentation

LiVESList* array_to_string_list | ( | char ** | array,
|  | int | offset,
|  | int | len
| ) |  |

boolean check_encoder_restrictions | ( | boolean | get_extension,
|  | boolean | user_audio,
|  | boolean | save_all
| ) |  |

end restrictions

boolean check_rfx_for_lives | ( | lives_rfx_t * |  | ) |

lives_decoder_t* clone_decoder | ( | int | fileno | ) |

void close_decoder_plugin | ( | lives_decoder_t * |  | ) |

void close_vid_playback_plugin | ( | _vid_playback_plugin * |  | ) |

boolean decplugin_supports_palette | ( | const lives_decoder_t * | dplug,
|  | int | palette
| ) |  |

void do_plugin_encoder_error | ( | const char * | plugin_name_or_null | ) |

void do_rfx_cleanup | ( | lives_rfx_t * |  | ) |

LiVESList* filter_encoders_by_img_ext | ( | LiVESList * | encoders,
|  | const char * | img_ext
| ) |  |

int find_rfx_plugin_by_name | ( | const char * | name,
|  | short | status
| ) |  |

int64_t get_best_audio | ( | _vid_playback_plugin * |  | ) |

boolean get_bool_param | ( | void * | value | ) |

void get_colRGB24_param | ( | void * | value,
|  | lives_colRGB24_t * | rgb
| ) |  |

void get_colRGBA32_param | ( | void * | value,
|  | lives_colRGBA32_t * | rgba
| ) |  |

const lives_clip_data_t* get_decoder_cdata | ( | int | fileno,
|  | LiVESList * | disabled,
|  | const lives_clip_data_t * | fake_cdata
| ) |  |

double get_double_param | ( | void * | value | ) |

LiVESList* get_external_window_hints | ( | lives_rfx_t * | rfx | ) |

int get_int_param | ( | void * | value | ) |

void get_mime_type | ( | char * | text,
|  | int | maxlen,
|  | const lives_clip_data_t * |
| ) |  |

LiVESList* get_plugin_list | ( | const char * | plugin_type,
|  | boolean | allow_nonex,
|  | const char * | plugdir,
|  | const char * | filter_ext
| ) |  |

void load_vpp_defaults | ( | _vid_playback_plugin * | ,
|  | char * | file
| ) |  |

void on_decplug_advanced_clicked | ( | LiVESButton * | button,
|  | livespointer | user_data
| ) |  |

_vppaw* on_vpp_advanced_clicked | ( | LiVESButton * | ,
|  | livespointer |
| ) |  |

lives_decoder_sys_t* open_decoder_plugin | ( | const char * | plname | ) |

_vid_playback_plugin* open_vid_playback_plugin | ( | const char * | name,
|  | boolean | in_use
| ) |  |

void param_copy | ( | lives_param_t * | src,
|  | lives_param_t * | dest,
|  | boolean | full
| ) |  |

LiVESList* plugin_request | ( | const char * | plugin_type,
|  | const char * | plugin_name,
|  | const char * | request
| ) |  |

LiVESList* plugin_request_by_line | ( | const char * | plugin_type,
|  | const char * | plugin_name,
|  | const char * | request
| ) |  |

LiVESList* plugin_request_by_space | ( | const char * | plugin_type,
|  | const char * | plugin_name,
|  | const char * | request
| ) |  |

LiVESList* plugin_request_common | ( | const char * | plugin_type,
|  | const char * | plugin_name,
|  | const char * | request,
|  | const char * | delim,
|  | boolean | allow_blanks
| ) |  |

LiVESList* plugin_request_with_blanks | ( | const char * | plugin_type,
|  | const char * | plugin_name,
|  | const char * | request
| ) |  |

char* plugin_run_param_window | ( | const char * | get_com,
|  | LiVESVBox * | vbox,
|  | lives_rfx_t ** | ret_rfx
| ) |  |

const weed_plant_t* pp_get_chan | ( | weed_plant_t ** | pparams,
|  | int | idx
| ) |  |

const weed_plant_t* pp_get_param | ( | weed_plant_t ** | pparams,
|  | int | idx
| ) |  |

void render_fx_get_params | ( | lives_rfx_t * | ,
|  | const char * | plugin_name,
|  | short | status
| ) |  |

void rfx_copy | ( | lives_rfx_t * | src,
|  | lives_rfx_t * | dest,
|  | boolean | full
| ) |  |

void rfx_free | ( | lives_rfx_t * | rfx | ) |

void rfx_free_all | ( | void |  | ) |

void rfx_params_free | ( | lives_rfx_t * | rfx | ) |

void rfx_params_store_free | ( | lives_rfx_t * | ,
|  | void ** | store
| ) |  |

void save_vpp_defaults | ( | _vid_playback_plugin * | ,
|  | char * | file
| ) |  |

void set_bool_param | ( | void * | value,
|  | boolean |
| ) |  |

void set_colRGB24_param | ( | void * | value,
|  | short | red,
|  | short | green,
|  | short | blue
| ) |  |

void set_colRGBA32_param | ( | void * | value,
|  | short | red,
|  | short | green,
|  | short | blue,
|  | short | alpha
| ) |  |

void set_double_param | ( | void * | value,
|  | double |
| ) |  |

void set_int_param | ( | void * | value,
|  | int |
| ) |  |

void set_rfx_params_from_store | ( | lives_rfx_t * | rfx,
|  | void ** | store
| ) |  |

void sort_rfx_array | ( | lives_rfx_t * | in_array,
|  | int | num_elements
| ) |  |

void** store_rfx_params | ( | lives_rfx_t * |  | ) |

return an array of parameter values

void unload_decoder_plugins | ( | void |  | ) |

void vid_playback_plugin_exit | ( | void |  | ) |

lives_param_t* weed_params_to_rfx | ( | int | npar,
|  | weed_plant_t * | instance,
|  | boolean | show_reinits
| ) |  |

lives_rfx_t* weed_to_rfx | ( | weed_plant_t * | plant,
|  | boolean | show_reinits
| ) |  |

## Variable Documentation

const char* anames[AUDIO_CODEC_MAX]