LiVES  2.4.1-svn
 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_pluginopen_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_tget_decoder_cdata (int fileno, LiVESList *disabled, const lives_clip_data_t *fake_cdata)
 
void close_decoder_plugin (lives_decoder_t *)
 
lives_decoder_sys_topen_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_tclone_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_tweed_to_rfx (weed_plant_t *plant, boolean show_reinits)
 
lives_param_tweed_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)
 
_vppawon_vpp_advanced_clicked (LiVESButton *, livespointer)
 
void on_decplug_advanced_clicked (LiVESButton *button, livespointer user_data)
 

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

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 
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 
Enumerator
LIVES_RFX_SOURCE_RFX 
LIVES_RFX_SOURCE_WEED 
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_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)
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]