7 #ifndef HAS_LIVES_PLUGINS_H
8 #define HAS_LIVES_PLUGINS_H
22 LiVESList *
get_plugin_list(
const char *plugin_type,
boolean allow_nonex,
const char *plugdir,
const char *filter_ext);
23 #define PLUGIN_ENCODERS "encoders"
24 #define PLUGIN_DECODERS "decoders"
25 #define PLUGIN_VID_PLAYBACK "playback/video"
26 #define PLUGIN_AUDIO_STREAM "playback/audiostream"
29 #define PLUGIN_THEMES "themes"
32 #define PLUGIN_EFFECTS_WEED "weed"
33 #define PLUGIN_WEED_FX_BUILTIN "effects/realtime/weed"
36 LiVESList *
plugin_request(
const char *plugin_type,
const char *plugin_name,
const char *request);
40 LiVESList *
plugin_request_common(
const char *plugin_type,
const char *plugin_name,
const char *request,
const char *delim,
41 boolean allow_blanks);
43 #ifndef __WEED_EFFECTS_H__
44 typedef weed_plant_t *(*weed_bootstrap_f)(weed_default_getter_f *value,
int num_versions,
int *plugin_versions);
57 const char *(*module_check_init)(void);
58 const char *(*version)(void);
59 const char *(*get_description)(void);
61 int *(*get_palette_list)(void);
66 weed_plant_t **play_params);
69 boolean(*
init_screen)(
int width,
int height,
boolean fullscreen, uint64_t window_id,
int argc,
char **argv);
75 const char *(*get_init_rfx)(void);
84 int *(*get_yuv_palette_sampling)(
int palette);
85 int *(*get_yuv_palette_clamping)(
int palette);
86 int *(*get_yuv_palette_subspace)(
int palette);
92 int *(*get_audio_fmts)(void);
100 #define VPP_CAN_RESIZE 1<<0
101 #define VPP_CAN_RETURN 1<<1
102 #define VPP_LOCAL_DISPLAY 1<<2
127 #define DEF_VPP_HSIZE 320.
128 #define DEF_VPP_VSIZE 240.
138 const weed_plant_t *
pp_get_param(weed_plant_t **pparams,
int idx);
139 const weed_plant_t *
pp_get_chan(weed_plant_t **pparams,
int idx);
153 #define AUDIO_CODEC_MP3 0
154 #define AUDIO_CODEC_PCM 1
155 #define AUDIO_CODEC_MP2 2
156 #define AUDIO_CODEC_VORBIS 3
157 #define AUDIO_CODEC_AC3 4
158 #define AUDIO_CODEC_AAC 5
159 #define AUDIO_CODEC_AMR_NB 6
160 #define AUDIO_CODEC_RAW 7 // reserved
161 #define AUDIO_CODEC_WMA2 8
164 #define AUDIO_CODEC_MAX 31
166 #define AUDIO_CODEC_NONE 32
167 #define AUDIO_CODEC_UNKNOWN 33
174 #define CAN_ENCODE_PNG 1<<2
175 #define ENCODER_NON_NATIVE 1<<3
181 char of_restrict[1024];
196 #define LIVES_SEEK_FAST (1<<0)
199 #define LIVES_SEEK_NEEDS_CALCULATION (1<<1)
200 #define LIVES_SEEK_QUALITY_LOSS (1<<2)
209 char container_name[512];
245 char video_name[512];
253 char audio_name[512];
257 #define SYNC_HINT_AUDIO_TRIM_START (1<<0)
258 #define SYNC_HINT_AUDIO_PAD_START (1<<1)
259 #define SYNC_HINT_AUDIO_TRIM_END (1<<2)
260 #define SYNC_HINT_AUDIO_PAD_END (1<<3)
262 #define SYNC_HINT_VIDEO_PAD_START (1<<4)
263 #define SYNC_HINT_VIDEO_PAD_END (1<<5)
280 const char *(*version)(void);
300 const char *(*module_check_init)(void);
303 unsigned char **abuff);
336 #define PLUGIN_RENDERED_EFFECTS_BUILTIN "effects/rendered/"
339 #define PLUGIN_RENDERED_EFFECTS_CUSTOM "plugins/effects/rendered/custom/"
340 #define PLUGIN_RENDERED_EFFECTS_TEST "plugins/effects/rendered/test/"
343 #define PLUGIN_RENDERED_EFFECTS_BUILTIN_SCRIPTS "effects/RFXscripts/"
346 #define PLUGIN_RENDERED_EFFECTS_CUSTOM_SCRIPTS "plugins/effects/RFXscripts/custom/"
347 #define PLUGIN_RENDERED_EFFECTS_TEST_SCRIPTS "plugins/effects/RFXscripts/test/"
350 #define PLUGIN_RFX_SCRAP ""
354 #define MAX_PARAM_WIDGETS 5
357 #define RFX_MAXSTRINGLEN 1024
414 #define HIDDEN_GUI (1<<0)
415 #define HIDDEN_MULTI (1<<1)
416 #define HIDDEN_NEEDS_REINIT (1<<2)
417 #define HIDDEN_COMPOUND_INTERNAL (1<<3)
439 #define PVAL_MULTI_NONE 0
440 #define PVAL_MULTI_ANY 1
441 #define PVAL_MULTI_PER_CHANNEL 2
491 #define RFX_PROPS_SLOW 0x0001
492 #define RFX_PROPS_MAY_RESIZE 0x0002
493 #define RFX_PROPS_BATCHG 0x0004
496 #define RFX_PROPS_RESERVED1 0x1000
497 #define RFX_PROPS_RESERVED2 0x2000
498 #define RFX_PROPS_RESERVED3 0x4000
499 #define RFX_PROPS_AUTO_BUILT 0x8000
542 #define FX_CANDIDATE_AUDIO_VOL 0
543 #define FX_CANDIDATE_RESIZER 1
544 #define FX_CANDIDATE_DEINTERLACE 2
546 #define MAX_FX_CANDIDATE_TYPES 3
const weed_plant_t * pp_get_param(weed_plant_t **pparams, int idx)
Definition: plugins.c:1133
int fwidth
Definition: plugins.h:104
indicates an internal RFX, created from a weed instance
Definition: plugins.h:470
int sync_hint
Definition: plugins.h:265
void get_colRGBA32_param(void *value, lives_colRGBA32_t *rgba)
Definition: plugins.c:3125
double min
Definition: plugins.h:431
Definition: plugins.h:147
void unload_decoder_plugins(void)
Definition: plugins.c:2407
lives_clip_data_t * cdata
Definition: plugins.h:314
void close_decoder_plugin(lives_decoder_t *)
Definition: plugins.c:2381
void exit_screen(int16_t mouse_x, int16_t mouse_y)
destroy the screen, return mouse to original posn., allow the host GUI to take over (optional) ...
fn_ptr display_func
Definition: plugins.h:410
video playback plugin window - fixed part
Definition: plugins.h:578
void * source
points to the source (e.g. a weed_plant_t)
Definition: plugins.h:505
Definition: plugins.h:362
void set_colRGBA32_param(void *value, short red, short green, short blue, short alpha)
Definition: plugins.c:3157
Definition: plugins.h:363
void do_rfx_cleanup(lives_rfx_t *)
Definition: plugins.c:2675
double fixed_fpsd
Definition: plugins.h:113
void * source
Definition: plugins.h:454
int boolean
Definition: videoplugin.h:50
void do_plugin_encoder_error(const char *plugin_name_or_null)
Definition: plugins.c:1574
int height
Definition: plugins.h:220
boolean set_yuv_palette_subspace(int subspace_type)
host sets the palette subspace (optional)
int frame_height
Definition: plugins.h:229
boolean get_frame(const lives_clip_data_t *, int64_t frame, int *rowstrides, int height, void **pixel_data)
frame starts at 0
lives_param_t * weed_params_to_rfx(int npar, weed_plant_t *instance, boolean show_reinits)
Definition: plugins.c:3185
Definition: plugins.h:274
char * action_desc
for Weed "Applying $s"
Definition: plugins.h:484
char * label
Definition: plugins.h:406
char * name
Definition: plugins.h:403
boolean check_rfx_for_lives(lives_rfx_t *)
Definition: plugins.c:2666
void rfx_params_store_free(lives_rfx_t *, void **store)
lives_rfx_source_t source_type
Definition: plugins.h:456
Definition: plugins.h:312
uint64_t capabilities
Definition: plugins.h:98
used for parsing RFX scraps from external apps
Definition: plugins.h:471
boolean changed
Definition: plugins.h:450
int offs_x
Definition: plugins.h:226
lives_rfx_t * weed_to_rfx(weed_plant_t *plant, boolean show_reinits)
Definition: plugins.c:3550
LiVESWidget * spinbuttonw
Definition: plugins.h:582
boolean(* plugin_keyfunc)(boolean down, uint16_t unicode, uint16_t keymod)
video playback plugins
Definition: plugins.h:48
double step_size
Definition: plugins.h:419
boolean set_palette(int palette)
host sets the palette used
char * URI
the URI of this cdata
Definition: plugins.h:206
LiVESWidget * spinbuttonh
Definition: plugins.h:581
factory presets
Definition: plugins.h:466
char * name
the name of the executable (so we can run it !)
Definition: plugins.h:482
void * extra
for future use
Definition: plugins.h:506
int64_t get_best_audio(_vid_playback_plugin *)
Definition: plugins.c:1472
int nclips
number of clips (titles) in container
Definition: plugins.h:208
LiVESList * plugin_request_by_space(const char *plugin_type, const char *plugin_name, const char *request)
Definition: plugins.c:191
int arate
Definition: plugins.h:248
void close_vid_playback_plugin(_vid_playback_plugin *)
Definition: plugins.c:1093
void set_colRGB24_param(void *value, short red, short green, short blue)
Definition: plugins.c:3141
void * value
current value(s)
Definition: plugins.h:429
int hidden
Definition: plugins.h:411
void set_int_param(void *value, int)
Definition: plugins.c:3133
Definition: plugins.h:382
void ** store_rfx_params(lives_rfx_t *)
return an array of parameter values
type may be used in framedraw
Definition: plugins.h:385
int get_int_param(void *value)
Definition: plugins.c:3109
Definition: plugins.h:392
LiVESList * list
list of filter_idx from which user can delegate
Definition: plugins.h:535
LiVESWidget * dialog
Definition: plugins.h:580
float fps
Definition: plugins.h:235
void param_copy(lives_param_t *src, lives_param_t *dest, boolean full)
Definition: plugins.c:3053
boolean set_fps(double fps)
lives_param_special_t
Definition: plugins.h:381
boolean change_blocked
Definition: plugins.h:452
weed_plant_t *(* weed_bootstrap_f)(weed_default_getter_f *value, int num_versions, int *plugin_versions)
Definition: plugins.h:44
Definition: plugins.h:396
void load_vpp_defaults(_vid_playback_plugin *, char *file)
Definition: plugins.c:427
void rfx_free(lives_rfx_t *rfx)
Definition: plugins.c:3023
int width
Definition: plugins.h:219
char * name
plugin name
Definition: plugins.h:276
int64_t nframes
Definition: plugins.h:221
boolean wrap
Definition: plugins.h:424
_palette * palette
Definition: main.c:89
weed_plant_t ** alpha_chans
Definition: plugins.h:120
lives_rfx_t * rfx
pointer to rfx for current delegate (or NULL)
Definition: plugins.h:538
boolean set_yuv_palette_sampling(int sampling_type)
host sets the palette sampling (optional)
int offs_y
Definition: plugins.h:227
test effects in the advanced menu
Definition: plugins.h:468
int delegate
offset in list of current delegate
Definition: plugins.h:536
lives_param_type_t type
Definition: plugins.h:426
void rfx_free_all(void)
Definition: plugins.c:3043
char * desc
Definition: plugins.h:404
_vid_playback_plugin * open_vid_playback_plugin(const char *name, boolean in_use)
Definition: plugins.c:1158
Definition: plugins.h:376
int flags
Definition: plugins.h:407
int frame_width
frame is the surrounding part, including any black border (>=width)
Definition: plugins.h:228
void *(* fn_ptr)(void *ptr)
Definition: main.h:272
int current_clip
plugin should init this to 0 if URI changes
Definition: plugins.h:216
const lives_decoder_sys_t * decoder
Definition: plugins.h:313
lives_decoder_t * clone_decoder(int fileno)
Definition: plugins.c:2213
void * def
default values
Definition: plugins.h:434
type may be used in framedraw
Definition: plugins.h:387
lives_param_special_t special_type
Definition: plugins.h:459
boolean reinit
Definition: plugins.h:422
int group
Definition: plugins.h:425
lives_decoder_sys_t * open_decoder_plugin(const char *plname)
Definition: plugins.c:2422
lives_rfx_status_t
Definition: plugins.h:465
lives_rfx_t * rfx
Definition: plugins.h:585
boolean use_mnemonic
Definition: plugins.h:408
double get_double_param(void *value)
Definition: plugins.c:3115
void rfx_copy(lives_rfx_t *src, lives_rfx_t *dest, boolean full)
Definition: plugins.c:2988
uint32_t audio_codec
Definition: plugins.h:94
void render_fx_get_params(lives_rfx_t *, const char *plugin_name, short status)
Definition: plugins.c:2715
lives_interlace_t interlace
Definition: plugins.h:222
Definition: plugins.h:365
boolean is_template
Definition: plugins.h:508
void set_rfx_params_from_store(lives_rfx_t *rfx, void **store)
Definition: plugins.h:377
float par
pixel aspect ratio
Definition: plugins.h:231
boolean render_frame(int hsize, int vsize, int64_t timecode, void **pixel_data, void **return_data, void **play_params)
const char * anames[AUDIO_CODEC_MAX]
Definition: plugins.c:33
Definition: plugins.h:391
int YUV_sampling
Definition: plugins.h:107
void rip_audio_cleanup(const lives_clip_data_t *)
lives_param_type_t
Definition: plugins.h:360
#define AUDIO_CODEC_MAX
Definition: plugins.h:164
Definition: plugins.h:401
int seek_flag
bitmap of seek properties
Definition: plugins.h:255
capability * get_capabilities(void)
Definition: main.c:2052
lives_interlace_t
Definition: main.h:464
int num_params
Definition: plugins.h:502
Definition: plugins.h:366
LiVESList * get_plugin_list(const char *plugin_type, boolean allow_nonex, const char *plugdir, const char *filter_ext)
Definition: plugins.c:279
boolean transition
Definition: plugins.h:421
int asamps
Definition: plugins.h:250
custom effects in the custom menu
Definition: plugins.h:467
boolean set_yuv_palette_clamping(int clamping_type)
host sets the palette sampling (optional)
LiVESList * plugin_request_common(const char *plugin_type, const char *plugin_name, const char *request, const char *delim, boolean allow_blanks)
Definition: plugins.c:197
lives_rfx_status_t status
Definition: plugins.h:487
void get_mime_type(char *text, int maxlen, const lives_clip_data_t *)
Definition: plugins.c:2501
type may be used in framedraw
Definition: plugins.h:388
int num_play_params
Definition: plugins.h:121
int find_rfx_plugin_by_name(const char *name, short status)
Definition: plugins.c:3172
LiVESWidget * pal_entry
Definition: plugins.h:584
LiVESList * array_to_string_list(char **array, int offset, int len)
Definition: plugins.c:2886
int special_type_index
Definition: plugins.h:460
LiVESList * filter_encoders_by_img_ext(LiVESList *encoders, const char *img_ext)
Definition: plugins.c:2061
boolean onchange
is there a trigger ?
Definition: plugins.h:448
boolean send_keycodes(keyfunc)
host calls this fn to send keycodes, plugin should call key function with a unicode keycode and modif...
Definition: plugins.h:395
const weed_plant_t * pp_get_chan(weed_plant_t **pparams, int idx)
Definition: plugins.c:1145
Definition: plugins.h:367
_vid_playback_plugin * plugin
Definition: plugins.h:579
void set_bool_param(void *value, boolean)
Definition: plugins.c:3129
int YUV_clamping
Definition: plugins.h:108
int min_frames
for Weed, 1
Definition: plugins.h:485
LiVESList * plugin_request(const char *plugin_type, const char *plugin_name, const char *request)
Definition: plugins.c:183
int extra_argc
Definition: plugins.h:115
lives_rfx_source_t
Definition: plugins.h:375
int YUV_clamping
Definition: plugins.h:243
void sort_rfx_array(lives_rfx_t *in_array, int num_elements)
Definition: plugins.c:2908
int num_in_channels
Definition: plugins.h:486
Definition: plugins.h:205
char ** extra_argv
Definition: plugins.h:116
uint32_t props
Definition: plugins.h:490
void clip_data_free(lives_clip_data_t *)
free clip data - this should be called for each instance before unloading the module ...
const lives_clip_data_t * get_decoder_cdata(int fileno, LiVESList *disabled, const lives_clip_data_t *fake_cdata)
Definition: plugins.c:2287
void * handle
Definition: plugins.h:54
int achans
Definition: plugins.h:249
indicates a copy operation to test
Definition: plugins.h:475
int fixed_fps_denom
Definition: plugins.h:112
LiVESList * plugin_request_with_blanks(const char *plugin_type, const char *plugin_name, const char *request)
Definition: plugins.c:178
LiVESList * plugin_request_by_line(const char *plugin_type, const char *plugin_name, const char *request)
Definition: plugins.c:187
indicates free choice of statuses
Definition: plugins.h:469
weed_plant_t ** play_params
Definition: plugins.h:119
lives_param_t * params
Definition: plugins.h:503
#define MAX_PARAM_WIDGETS
max number of display widgets per parameter (currently 5 for RGBA spinbuttons + colorbutton) ...
Definition: plugins.h:354
void vid_playback_plugin_exit(void)
Definition: plugins.c:1451
int of_allowed_acodecs
Definition: plugins.h:180
uint32_t audio_codec
Definition: plugins.h:149
int YUV_subspace
Definition: plugins.h:109
void on_decplug_advanced_clicked(LiVESButton *button, livespointer user_data)
Definition: plugins.c:2572
int current_palette
plugin should init this to palettes[0] if URI changes
Definition: plugins.h:240
lives_rfx_source_t source_type
Definition: plugins.h:504
void rfx_params_free(lives_rfx_t *rfx)
Definition: plugins.c:3005
uint32_t capabilities
Definition: plugins.h:169
double max
for string this is max characters
Definition: plugins.h:432
Definition: plugins.h:481
int YUV_subspace
Definition: plugins.h:244
int num_alpha_chans
Definition: plugins.h:122
ulong func
menuitem activation function for current delegate
Definition: plugins.h:537
void * priv
private data for demuxer/decoder - host should not touch this
Definition: plugins.h:268
boolean get_bool_param(void *value)
Definition: plugins.c:3103
int dp
decimals, 0 for int and bool
Definition: plugins.h:428
void * handle
may be shared between several instances
Definition: plugins.h:277
Definition: plugins.h:534
boolean ainterleaf
Definition: plugins.h:252
int64_t rip_audio(const lives_clip_data_t *, const char *fname, int64_t stframe, int64_t nframes, unsigned char **abuff)
indicates a copy operation to test
Definition: plugins.h:474
void set_double_param(void *value, double)
Definition: plugins.c:3136
short multi
multivalue type - single value, multi value, or per channel
Definition: plugins.h:438
LiVESWidget * menuitem
the menu item which activates this effect
Definition: plugins.h:501
Definition: plugins.h:364
type may be used in framedraw
Definition: plugins.h:386
int fixed_fps_numer
Definition: plugins.h:111
boolean init_screen(int width, int height, boolean fullscreen, uint64_t window_id, int argc, char **argv)
ready the screen to play (optional)
const weed_plant_t ** play_paramtmpls
Definition: plugins.h:118
char * menu_text
for Weed, this is the filter_class "name"
Definition: plugins.h:483
_vppaw * on_vpp_advanced_clicked(LiVESButton *, livespointer)
Definition: plugins.c:847
fn_ptr interp_func
Definition: plugins.h:409
void get_colRGB24_param(void *value, lives_colRGB24_t *rgb)
Definition: plugins.c:3121
int palette
Definition: plugins.h:106
void save_vpp_defaults(_vid_playback_plugin *, char *file)
Definition: plugins.c:338
LiVESWidget * fps_entry
Definition: plugins.h:583
void module_unload(void)
this is called when module is unloaded
LiVESList * list
for string list (choices)
Definition: plugins.h:435
int * palettes
list of palettes which the format supports, terminated with WEED_PALETTE_END
Definition: plugins.h:237
boolean asigned
Definition: plugins.h:251
char * plugin_run_param_window(const char *get_com, LiVESVBox *vbox, lives_rfx_t **ret_rfx)
Definition: plugins.c:3663
Definition: plugins.h:370
float video_start_time
Definition: plugins.h:233
boolean decplugin_supports_palette(const lives_decoder_t *dplug, int palette)
Definition: plugins.c:2132
int YUV_sampling
Definition: plugins.h:242
Definition: plugins.h:368