LiVES 2.4.6

- Main Page
- Namespaces
- Data Structures
- Files

- File List
- Globals

All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
plugins.h
Go to the documentation of this file.
1 // plugins.h
2 // LiVES
3 // (c) G. Finch 2003-2012 <salsaman@gmail.com>
4 // released under the GNU GPL 3 or later
5 // see file ../COPYING or www.gnu.org for licensing details
6
7 #ifndef HAS_LIVES_PLUGINS_H
8 #define HAS_LIVES_PLUGINS_H
9
10 #ifdef GUI_GTK
11 #include <gmodule.h>
12 #endif
13
14 #include <unistd.h>
15 #include <string.h>
16 #include <fcntl.h>
17 #include <stdlib.h>
18
19
20 // generic plugins
21
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"
27
29 #define PLUGIN_THEMES "themes"
30
32 #define PLUGIN_EFFECTS_WEED "weed"
33 #define PLUGIN_WEED_FX_BUILTIN "effects/realtime/weed"
34
35
36 LiVESList *plugin_request(const char *plugin_type, const char *plugin_name, const char *request);
37 LiVESList *plugin_request_with_blanks(const char *plugin_type, const char *plugin_name, const char *request);
38 LiVESList *plugin_request_by_line(const char *plugin_type, const char *plugin_name, const char *request);
39 LiVESList *plugin_request_by_space(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);
42
43 #ifndef __WEED_EFFECTS_H__
44 typedef weed_plant_t *(*weed_bootstrap_f)(weed_default_getter_f *value, int num_versions, int *plugin_versions);
45 #endif
46
48 typedef boolean(*plugin_keyfunc)(boolean down, uint16_t unicode, uint16_t keymod);
49
50
51 typedef struct {
52 // playback
53 char name[64];
54 void *handle;
55
56 // mandatory
57 const char *(*module_check_init)(void);
58 const char *(*version)(void);
59 const char *(*get_description)(void);
60
61 int *(*get_palette_list)(void);
62 boolean(*set_palette)(int palette);
63 uint64_t (*get_capabilities)(int palette);
64
65 boolean(*render_frame)(int hsize, int vsize, int64_t timecode, void **pixel_data, void **return_data,
66 weed_plant_t **play_params);
67
68 // optional
69 boolean(*init_screen)(int width, int height, boolean fullscreen, uint64_t window_id, int argc, char **argv);
70 void (*exit_screen)(uint16_t mouse_x, uint16_t mouse_y);
71 void (*module_unload)(void);
72 const char *(*get_fps_list)(int palette);
73 boolean(*set_fps)(double fps);
74
75 const char *(*get_init_rfx)(void);
76
78 const weed_plant_t **(*get_play_params)(weed_bootstrap_f f);
79
80 // only for display plugins
81 boolean(*send_keycodes)(plugin_keyfunc);
82
83 // optional for YUV palettes
84 int *(*get_yuv_palette_sampling)(int palette);
85 int *(*get_yuv_palette_clamping)(int palette);
86 int *(*get_yuv_palette_subspace)(int palette);
87 int (*set_yuv_palette_sampling)(int palette);
88 int (*set_yuv_palette_clamping)(int palette);
89 int (*set_yuv_palette_subspace)(int palette);
90
91 // audio streaming
92 int *(*get_audio_fmts)(void);
93
94 uint32_t audio_codec;
95 // must match with the "acodec" LiVESList in interface.c
96 // and bitmaps in the encder plugins, with this one addition:
97
98 uint64_t capabilities;
99
100 #define VPP_CAN_RESIZE 1<<0
101 #define VPP_CAN_RETURN 1<<1
102 #define VPP_LOCAL_DISPLAY 1<<2
103
104 int fwidth,fheight;
105
106 int palette;
107 int YUV_sampling;
108 int YUV_clamping;
109 int YUV_subspace;
110
111 int fixed_fps_numer;
112 int fixed_fps_denom;
113 double fixed_fpsd;
114
115 int extra_argc;
116 char **extra_argv;
117
118 const weed_plant_t **play_paramtmpls;
119 weed_plant_t **play_params;
120 weed_plant_t **alpha_chans;
121 int num_play_params;
122 int num_alpha_chans;
123
124 } _vid_playback_plugin;
125
126
127 #define DEF_VPP_HSIZE 320.
128 #define DEF_VPP_VSIZE 240.
129
130 _vid_playback_plugin *open_vid_playback_plugin(const char *name, boolean in_use);
131 void vid_playback_plugin_exit(void);
132 void close_vid_playback_plugin(_vid_playback_plugin *);
133 int64_t get_best_audio(_vid_playback_plugin *);
134 void save_vpp_defaults(_vid_playback_plugin *, char *file);
135 void load_vpp_defaults(_vid_playback_plugin *, char *file);
136
137
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);
140
141 // encoder plugins
142
143 void do_plugin_encoder_error(const char *plugin_name_or_null);
144
145 LiVESList *filter_encoders_by_img_ext(LiVESList *encoders, const char *img_ext);
146
147 typedef struct {
148 char name[51];
149 uint32_t audio_codec;
150 // match with bitmaps in the encoder plugins
151 // and also anames array in plugins.c (see below)
152
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
162
163
164 #define AUDIO_CODEC_MAX 31
165 //
166 #define AUDIO_CODEC_NONE 32
167 #define AUDIO_CODEC_UNKNOWN 33
168
169 uint32_t capabilities;
170
171
172 #define HAS_RFX 1<<0
173
174 #define CAN_ENCODE_PNG 1<<2
175 #define ENCODER_NON_NATIVE 1<<3
176
177 // current output format
178 char of_name[51];
179 char of_desc[128];
180 int of_allowed_acodecs;
181 char of_restrict[1024];
182 char of_def_ext[16];
183 }
184 _encoder;
185
186
187 // defined in plugins.c for the whole app
188 extern const char *anames[AUDIO_CODEC_MAX];
189
190
191 // decoder plugins
192
193 // seek_flags is a bitmap
194
196 #define LIVES_SEEK_FAST (1<<0)
197
199 #define LIVES_SEEK_NEEDS_CALCULATION (1<<1)
200 #define LIVES_SEEK_QUALITY_LOSS (1<<2)
201
202
203 // must be exactly the same as in decplugin.h
204
205 typedef struct {
206 char *URI;
207
208 int nclips;
209 char container_name[512];
210
211 char title[256];
212 char author[256];
213 char comment[256];
214
216 int current_clip;
217
218 // video data
219 int width; // width and height of picture in frame
220 int height;
221 int64_t nframes;
222 lives_interlace_t interlace;
223
226 int offs_x;
227 int offs_y;
228 int frame_width; // frame width and height are the size of the outer frame
229 int frame_height;
230
231 float par;
232
233 float video_start_time;
234
235 float fps;
236
237 int *palettes;
238
240 int current_palette;
241
242 int YUV_sampling;
243 int YUV_clamping;
244 int YUV_subspace;
245 char video_name[512];
246
247 /* audio data */
248 int arate;
249 int achans;
250 int asamps;
251 boolean asigned;
252 boolean ainterleaf;
253 char audio_name[512];
254
255 int seek_flag;
256
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)
261
262 #define SYNC_HINT_VIDEO_PAD_START (1<<4)
263 #define SYNC_HINT_VIDEO_PAD_END (1<<5)
264
265 int sync_hint;
266
267
268 void *priv;
269
270 } lives_clip_data_t;
271
272
273
274 typedef struct {
275 // playback
276 char *name;
277 void *handle;
278
279 // mandatory
280 const char *(*version)(void);
281
291 lives_clip_data_t *(*get_clip_data)(char *URI, const lives_clip_data_t *cdata);
292
294 boolean(*get_frame)(const lives_clip_data_t *, int64_t frame, int *rowstrides, int height, void **pixel_data);
295
297 void (*clip_data_free)(lives_clip_data_t *);
298
299 // optional
300 const char *(*module_check_init)(void);
301 boolean(*set_palette)(lives_clip_data_t *);
302 int64_t (*rip_audio)(const lives_clip_data_t *, const char *fname, int64_t stframe, int64_t nframes,
303 unsigned char **abuff);
304 void (*rip_audio_cleanup)(const lives_clip_data_t *cdata);
305 void (*module_unload)(void);
306
307 } lives_decoder_sys_t;
308
309
310
311
312 typedef struct {
313 const lives_decoder_sys_t *decoder;
314 lives_clip_data_t *cdata;
315 } lives_decoder_t;
316
317
318
319
320
321 const lives_clip_data_t *get_decoder_cdata(int fileno, LiVESList *disabled, const lives_clip_data_t *fake_cdata);
322 void close_decoder_plugin(lives_decoder_t *);
323 lives_decoder_sys_t *open_decoder_plugin(const char *plname);
324 void get_mime_type(char *text, int maxlen, const lives_clip_data_t *);
325 void unload_decoder_plugins(void);
326
327 boolean decplugin_supports_palette(const lives_decoder_t *dplug, int palette);
328
329 lives_decoder_t *clone_decoder(int fileno);
330
331
332 // RFX plugins
333
334
336 #define PLUGIN_RENDERED_EFFECTS_BUILTIN "effects/rendered/"
337
339 #define PLUGIN_RENDERED_EFFECTS_CUSTOM "plugins/effects/rendered/custom/"
340 #define PLUGIN_RENDERED_EFFECTS_TEST "plugins/effects/rendered/test/"
341
343 #define PLUGIN_RENDERED_EFFECTS_BUILTIN_SCRIPTS "effects/RFXscripts/"
344
346 #define PLUGIN_RENDERED_EFFECTS_CUSTOM_SCRIPTS "plugins/effects/RFXscripts/custom/"
347 #define PLUGIN_RENDERED_EFFECTS_TEST_SCRIPTS "plugins/effects/RFXscripts/test/"
348
350 #define PLUGIN_RFX_SCRAP ""
351
352
354 #define MAX_PARAM_WIDGETS 5
355
357 #define RFX_MAXSTRINGLEN 1024
358
359
360 typedef enum {
361
362 LIVES_PARAM_UNKNOWN=0,
363 LIVES_PARAM_NUM,
364 LIVES_PARAM_BOOL,
365 LIVES_PARAM_COLRGB24,
366 LIVES_PARAM_STRING,
367 LIVES_PARAM_STRING_LIST,
368 LIVES_PARAM_COLRGBA32,
369
370 LIVES_PARAM_UNDISPLAYABLE=65536
371
372 } lives_param_type_t;
373
374
375 typedef enum {
376 LIVES_RFX_SOURCE_RFX=0,
377 LIVES_RFX_SOURCE_WEED
378 } lives_rfx_source_t;
379
380
381 typedef enum {
382 LIVES_PARAM_SPECIAL_TYPE_NONE=0, // normal parameter type
383
384 // framedraw types
385 LIVES_PARAM_SPECIAL_TYPE_RECT_DEMASK,
386 LIVES_PARAM_SPECIAL_TYPE_RECT_MULTRECT,
387 LIVES_PARAM_SPECIAL_TYPE_RECT_MULTIRECT,
388 LIVES_PARAM_SPECIAL_TYPE_SINGLEPOINT,
389
390 // text widget types
391 LIVES_PARAM_SPECIAL_TYPE_FILEREAD,
392 LIVES_PARAM_SPECIAL_TYPE_PASSWORD,
393
394 // misc types
395 LIVES_PARAM_SPECIAL_TYPE_MERGEALIGN,
396 LIVES_PARAM_SPECIAL_TYPE_ASPECT_RATIO
397
398 } lives_param_special_t;
399
400
401 typedef struct {
402 // weed style part
403 char *name;
404 char *desc;
405
406 char *label;
407 int flags;
408 boolean use_mnemonic;
409 fn_ptr interp_func;
410 fn_ptr display_func;
411 int hidden;
412
413 // reason(s) for hiding [bitmap]
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)
418
419 double step_size;
420 //int copy_to;
421 boolean transition;
422 boolean reinit;
423
424 boolean wrap;
425 int group;
426 lives_param_type_t type;
427
428 int dp;
429 void *value;
430
431 double min;
432 double max;
433
434 void *def;
435 LiVESList *list;
436
438 short multi;
439 #define PVAL_MULTI_NONE 0
440 #define PVAL_MULTI_ANY 1
441 #define PVAL_MULTI_PER_CHANNEL 2
442
443 //--------------------------------------------------
444 // extras for LiVES
445
447 LiVESWidget *widgets[MAX_PARAM_WIDGETS];
448 boolean onchange;
449
450 boolean changed;
451
452 boolean change_blocked;
453
454 void *source;
455
456 lives_rfx_source_t source_type;
457
458 // this may change
459 lives_param_special_t special_type; // the visual modification type (see paramspecial.h)
460 int special_type_index; // index within special_type (e.g for DEMASK, 0==left, 1==top, 2==width, 3==height)
461
462 } lives_param_t;
463
464
465 typedef enum {
466 RFX_STATUS_BUILTIN=0,
467 RFX_STATUS_CUSTOM=1,
468 RFX_STATUS_TEST=2,
469 RFX_STATUS_ANY=3,
470 RFX_STATUS_WEED=4,
471 RFX_STATUS_SCRAP=5,
472
473 // these are only used when prompting for a name
474 RFX_STATUS_COPY=128,
475 RFX_STATUS_RENAME=129
476 } lives_rfx_status_t;
477
478
479
480
481 typedef struct {
482 char *name;
483 char *menu_text;
484 char *action_desc;
485 int min_frames;
486 int num_in_channels;
487 lives_rfx_status_t status;
488
489
490 uint32_t props;
491 #define RFX_PROPS_SLOW 0x0001
492 #define RFX_PROPS_MAY_RESIZE 0x0002
493 #define RFX_PROPS_BATCHG 0x0004
494
495
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
500
501 LiVESWidget *menuitem;
502 int num_params;
503 lives_param_t *params;
504 lives_rfx_source_t source_type;
505 void *source;
506 void *extra;
507 char delim[2];
508 boolean is_template;
509
510 } lives_rfx_t;
511
512
513 boolean check_rfx_for_lives(lives_rfx_t *);
514
515 void do_rfx_cleanup(lives_rfx_t *);
516
517 void render_fx_get_params(lives_rfx_t *, const char *plugin_name, short status);
518
519 void sort_rfx_array(lives_rfx_t *in_array, int num_elements);
520
521 int find_rfx_plugin_by_name(const char *name, short status);
522
523 void rfx_copy(lives_rfx_t *src, lives_rfx_t *dest, boolean full);
524
525 void rfx_params_free(lives_rfx_t *rfx);
526
527 void rfx_free(lives_rfx_t *rfx);
528
529 void rfx_free_all(void);
530
531 void param_copy(lives_param_t *src, lives_param_t *dest, boolean full);
532
533
534 typedef struct {
535 LiVESList *list;
536 int delegate;
537 ulong func;
538 lives_rfx_t *rfx;
539 } lives_fx_candidate_t;
540
541 // filter types which can have candidates
542 #define FX_CANDIDATE_AUDIO_VOL 0
543 #define FX_CANDIDATE_RESIZER 1
544 #define FX_CANDIDATE_DEINTERLACE 2
545
546 #define MAX_FX_CANDIDATE_TYPES 3
547
548
549
550
551
552 boolean get_bool_param(void *value);
553 int get_int_param(void *value);
554 double get_double_param(void *value);
555 void get_colRGB24_param(void *value, lives_colRGB24_t *rgb);
556 void get_colRGBA32_param(void *value, lives_colRGBA32_t *rgba);
557
558 void set_bool_param(void *value, boolean);
559 void set_int_param(void *value, int);
560 void set_double_param(void *value, double);
561 void set_colRGB24_param(void *value, short red, short green, short blue);
562 void set_colRGBA32_param(void *value, short red, short green, short blue, short alpha);
563
565 void **store_rfx_params(lives_rfx_t *);
566 void set_rfx_params_from_store(lives_rfx_t *rfx, void **store);
567 void rfx_params_store_free(lives_rfx_t *, void **store);
568
569 LiVESList *array_to_string_list(char **array, int offset, int len);
570
571 lives_rfx_t *weed_to_rfx(weed_plant_t *plant, boolean show_reinits);
572 lives_param_t *weed_params_to_rfx(int npar, weed_plant_t *instance, boolean show_reinits);
573
574 char *plugin_run_param_window(const char *get_com, LiVESVBox *vbox, lives_rfx_t **ret_rfx);
575
578 typedef struct {
579 _vid_playback_plugin *plugin;
580 LiVESWidget *dialog;
581 LiVESWidget *spinbuttonh;
582 LiVESWidget *spinbuttonw;
583 LiVESWidget *fps_entry;
584 LiVESWidget *pal_entry;
585 lives_rfx_t *rfx;
586 } _vppaw;
587
588 _vppaw *on_vpp_advanced_clicked(LiVESButton *, livespointer);
589 void on_decplug_advanced_clicked(LiVESButton *button, livespointer user_data);
590
591 LiVESList *get_external_window_hints(lives_rfx_t *rfx);
592 boolean check_encoder_restrictions(boolean get_extension, boolean user_audio, boolean save_all);
593
594
595
597
598 #endif
plugin_request_with_blanks
LiVESList * plugin_request_with_blanks(const char *plugin_type, const char *plugin_name, const char *request)
Definition: plugins.c:179
_vid_playback_plugin::fwidth
int fwidth
Definition: plugins.h:104
plugin_request_by_line
LiVESList * plugin_request_by_line(const char *plugin_type, const char *plugin_name, const char *request)
Definition: plugins.c:188
RFX_STATUS_WEED
indicates an internal RFX, created from a weed instance
Definition: plugins.h:470
set_double_param
void set_double_param(void *value, double _const)
Definition: plugins.c:3130
lives_clip_data_t::sync_hint
int sync_hint
Definition: plugins.h:265
rfx_free_all
void rfx_free_all(void)
Definition: plugins.c:3037
lives_colRGBA32_t
Definition: main.h:466
lives_param_t::min
double min
Definition: plugins.h:431
_encoder
Definition: plugins.h:147
clone_decoder
lives_decoder_t * clone_decoder(int fileno)
Definition: plugins.c:2207
lives_decoder_t::cdata
lives_clip_data_t * cdata
Definition: plugins.h:314
rfx_params_free
void rfx_params_free(lives_rfx_t *rfx)
Definition: plugins.c:2999
exit_screen
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) ...
lives_param_t::display_func
fn_ptr display_func
Definition: plugins.h:410
_vppaw
video playback plugin window - fixed part
Definition: plugins.h:578
lives_rfx_t::source
void * source
points to the source (e.g. a weed_plant_t)
Definition: plugins.h:505
LIVES_PARAM_UNKNOWN
Definition: plugins.h:362
LIVES_PARAM_NUM
Definition: plugins.h:363
_vid_playback_plugin::fixed_fpsd
double fixed_fpsd
Definition: plugins.h:113
lives_param_t::source
void * source
Definition: plugins.h:454
boolean
int boolean
Definition: videoplugin.h:50
get_double_param
double get_double_param(void *value)
Definition: plugins.c:3109
rfx_copy
void rfx_copy(lives_rfx_t *src, lives_rfx_t *dest, boolean full)
Definition: plugins.c:2982
plugin_request
LiVESList * plugin_request(const char *plugin_type, const char *plugin_name, const char *request)
Definition: plugins.c:184
lives_clip_data_t::height
int height
Definition: plugins.h:220
set_yuv_palette_subspace
boolean set_yuv_palette_subspace(int subspace_type)
host sets the palette subspace (optional)
lives_clip_data_t::frame_height
int frame_height
Definition: plugins.h:229
get_frame
boolean get_frame(const lives_clip_data_t *, int64_t frame, int *rowstrides, int height, void **pixel_data)
frame starts at 0
lives_decoder_sys_t
Definition: plugins.h:274
lives_rfx_t::action_desc
char * action_desc
for Weed &quot;Applying $s&quot;
Definition: plugins.h:484
lives_param_t::label
char * label
Definition: plugins.h:406
render_fx_get_params
void render_fx_get_params(lives_rfx_t *rfx, const char *plugin_name, short status)
Definition: plugins.c:2709
lives_param_t::name
char * name
Definition: plugins.h:403
rfx_params_store_free
void rfx_params_store_free(lives_rfx_t *, void **store)
lives_param_t::source_type
lives_rfx_source_t source_type
Definition: plugins.h:456
lives_decoder_t
Definition: plugins.h:312
_vid_playback_plugin::capabilities
uint64_t capabilities
Definition: plugins.h:98
get_plugin_list
LiVESList * get_plugin_list(const char *plugin_type, boolean allow_nonex, const char *plugdir, const char *filter_ext)
Definition: plugins.c:280
RFX_STATUS_SCRAP
used for parsing RFX scraps from external apps
Definition: plugins.h:471
lives_param_t::changed
boolean changed
Definition: plugins.h:450
lives_clip_data_t::offs_x
int offs_x
Definition: plugins.h:226
_vppaw::spinbuttonw
LiVESWidget * spinbuttonw
Definition: plugins.h:582
plugin_keyfunc
boolean(* plugin_keyfunc)(boolean down, uint16_t unicode, uint16_t keymod)
video playback plugins
Definition: plugins.h:48
lives_param_t::step_size
double step_size
Definition: plugins.h:419
set_palette
boolean set_palette(int palette)
host sets the palette used
lives_clip_data_t::URI
char * URI
the URI of this cdata
Definition: plugins.h:206
_vppaw::spinbuttonh
LiVESWidget * spinbuttonh
Definition: plugins.h:581
RFX_STATUS_BUILTIN
factory presets
Definition: plugins.h:466
lives_rfx_t::name
char * name
the name of the executable (so we can run it !)
Definition: plugins.h:482
lives_rfx_t::extra
void * extra
for future use
Definition: plugins.h:506
lives_clip_data_t::nclips
int nclips
number of clips (titles) in container
Definition: plugins.h:208
lives_clip_data_t::arate
int arate
Definition: plugins.h:248
decplugin_supports_palette
LIVES_INLINE boolean decplugin_supports_palette(const lives_decoder_t *dplug, int palette)
Definition: plugins.c:2123
lives_param_t::value
void * value
current value(s)
Definition: plugins.h:429
lives_param_t::hidden
int hidden
Definition: plugins.h:411
unload_decoder_plugins
void unload_decoder_plugins(void)
Definition: plugins.c:2401
LIVES_PARAM_SPECIAL_TYPE_NONE
Definition: plugins.h:382
store_rfx_params
void ** store_rfx_params(lives_rfx_t *)
return an array of parameter values
LIVES_PARAM_SPECIAL_TYPE_RECT_DEMASK
type may be used in framedraw
Definition: plugins.h:385
weed_params_to_rfx
lives_param_t * weed_params_to_rfx(int npar, weed_plant_t *inst, boolean show_reinits)
Definition: plugins.c:3179
LIVES_PARAM_SPECIAL_TYPE_PASSWORD
Definition: plugins.h:392
lives_fx_candidate_t::list
LiVESList * list
list of filter_idx from which user can delegate
Definition: plugins.h:535
set_colRGBA32_param
void set_colRGBA32_param(void *value, short red, short green, short blue, short alpha)
Definition: plugins.c:3151
_vppaw::dialog
LiVESWidget * dialog
Definition: plugins.h:580
lives_clip_data_t::fps
float fps
Definition: plugins.h:235
set_fps
boolean set_fps(double fps)
lives_param_special_t
lives_param_special_t
Definition: plugins.h:381
lives_param_t::change_blocked
boolean change_blocked
Definition: plugins.h:452
weed_bootstrap_f
weed_plant_t *(* weed_bootstrap_f)(weed_default_getter_f *value, int num_versions, int *plugin_versions)
Definition: plugins.h:44
LIVES_PARAM_SPECIAL_TYPE_ASPECT_RATIO
Definition: plugins.h:396
get_colRGB24_param
void get_colRGB24_param(void *value, lives_colRGB24_t *rgb)
Definition: plugins.c:3115
lives_clip_data_t::width
int width
Definition: plugins.h:219
lives_decoder_sys_t::name
char * name
plugin name
Definition: plugins.h:276
lives_clip_data_t::nframes
int64_t nframes
Definition: plugins.h:221
on_vpp_advanced_clicked
_vppaw * on_vpp_advanced_clicked(LiVESButton *button, livespointer user_data)
Definition: plugins.c:848
plugin_request_common
LiVESList * plugin_request_common(const char *plugin_type, const char *plugin_name, const char *request, const char *delim, boolean allow_blanks)
Definition: plugins.c:198
lives_param_t::wrap
boolean wrap
Definition: plugins.h:424
palette
_palette * palette
Definition: main.c:89
_vid_playback_plugin::alpha_chans
weed_plant_t ** alpha_chans
Definition: plugins.h:120
lives_fx_candidate_t::rfx
lives_rfx_t * rfx
pointer to rfx for current delegate (or NULL)
Definition: plugins.h:538
set_yuv_palette_sampling
boolean set_yuv_palette_sampling(int sampling_type)
host sets the palette sampling (optional)
lives_clip_data_t::offs_y
int offs_y
Definition: plugins.h:227
find_rfx_plugin_by_name
int find_rfx_plugin_by_name(const char *name, short status)
Definition: plugins.c:3166
close_decoder_plugin
void close_decoder_plugin(lives_decoder_t *dplug)
Definition: plugins.c:2375
RFX_STATUS_TEST
test effects in the advanced menu
Definition: plugins.h:468
lives_fx_candidate_t::delegate
int delegate
offset in list of current delegate
Definition: plugins.h:536
lives_param_t::type
lives_param_type_t type
Definition: plugins.h:426
filter_encoders_by_img_ext
LiVESList * filter_encoders_by_img_ext(LiVESList *encoders, const char *img_ext)
Definition: plugins.c:2052
lives_param_t::desc
char * desc
Definition: plugins.h:404
sort_rfx_array
void sort_rfx_array(lives_rfx_t *in, int num)
Definition: plugins.c:2902
LIVES_RFX_SOURCE_RFX
Definition: plugins.h:376
lives_param_t::flags
int flags
Definition: plugins.h:407
lives_clip_data_t::frame_width
int frame_width
frame is the surrounding part, including any black border (&gt;=width)
Definition: plugins.h:228
set_int_param
void set_int_param(void *value, int _const)
Definition: plugins.c:3127
fn_ptr
void *(* fn_ptr)(void *ptr)
Definition: main.h:282
lives_clip_data_t::current_clip
int current_clip
plugin should init this to 0 if URI changes
Definition: plugins.h:216
lives_decoder_t::decoder
const lives_decoder_sys_t * decoder
Definition: plugins.h:313
lives_param_t::def
void * def
default values
Definition: plugins.h:434
LIVES_PARAM_SPECIAL_TYPE_RECT_MULTIRECT
type may be used in framedraw
Definition: plugins.h:387
lives_param_t::special_type
lives_param_special_t special_type
Definition: plugins.h:459
lives_param_t::reinit
boolean reinit
Definition: plugins.h:422
load_vpp_defaults
void load_vpp_defaults(_vid_playback_plugin *vpp, char *vpp_file)
Definition: plugins.c:428
check_rfx_for_lives
boolean check_rfx_for_lives(lives_rfx_t *rfx)
Definition: plugins.c:2660
lives_param_t::group
int group
Definition: plugins.h:425
lives_rfx_status_t
lives_rfx_status_t
Definition: plugins.h:465
_vppaw::rfx
lives_rfx_t * rfx
Definition: plugins.h:585
get_extension
char * get_extension(const char *filename)
Definition: utils.c:2392
set_colRGB24_param
void set_colRGB24_param(void *value, short red, short green, short blue)
Definition: plugins.c:3135
lives_param_t::use_mnemonic
boolean use_mnemonic
Definition: plugins.h:408
get_decoder_cdata
const lives_clip_data_t * get_decoder_cdata(int fileno, LiVESList *disabled, const lives_clip_data_t *fake_cdata)
Definition: plugins.c:2281
get_int_param
int get_int_param(void *value)
Definition: plugins.c:3103
_vid_playback_plugin::audio_codec
uint32_t audio_codec
Definition: plugins.h:94
lives_clip_data_t::interlace
lives_interlace_t interlace
Definition: plugins.h:222
LIVES_PARAM_COLRGB24
Definition: plugins.h:365
lives_rfx_t::is_template
boolean is_template
Definition: plugins.h:508
set_rfx_params_from_store
void set_rfx_params_from_store(lives_rfx_t *rfx, void **store)
LIVES_RFX_SOURCE_WEED
Definition: plugins.h:377
lives_clip_data_t::par
float par
pixel aspect ratio
Definition: plugins.h:231
render_frame
boolean render_frame(int hsize, int vsize, int64_t timecode, void **pixel_data, void **return_data, void **play_params)
LIVES_PARAM_SPECIAL_TYPE_FILEREAD
Definition: plugins.h:391
_vid_playback_plugin::YUV_sampling
int YUV_sampling
Definition: plugins.h:107
rip_audio_cleanup
void rip_audio_cleanup(const lives_clip_data_t *)
lives_param_type_t
lives_param_type_t
Definition: plugins.h:360
get_external_window_hints
LiVESList * get_external_window_hints(lives_rfx_t *rfx)
Definition: plugins.c:3586
plugin_run_param_window
char * plugin_run_param_window(const char *get_com, LiVESVBox *vbox, lives_rfx_t **ret_rfx)
Definition: plugins.c:3657
param_copy
void param_copy(lives_param_t *src, lives_param_t *dest, boolean full)
Definition: plugins.c:3047
AUDIO_CODEC_MAX
#define AUDIO_CODEC_MAX
Definition: plugins.h:164
get_mime_type
void get_mime_type(char *text, int maxlen, const lives_clip_data_t *cdata)
Definition: plugins.c:2495
lives_param_t
Definition: plugins.h:401
lives_clip_data_t::seek_flag
int seek_flag
bitmap of seek properties
Definition: plugins.h:255
get_capabilities
capability * get_capabilities(void)
Definition: main.c:2088
vid_playback_plugin_exit
void vid_playback_plugin_exit(void)
Definition: plugins.c:1452
lives_interlace_t
lives_interlace_t
Definition: main.h:474
lives_rfx_t::num_params
int num_params
Definition: plugins.h:502
LIVES_PARAM_STRING
Definition: plugins.h:366
on_decplug_advanced_clicked
void on_decplug_advanced_clicked(LiVESButton *button, livespointer user_data)
Definition: plugins.c:2566
lives_param_t::transition
boolean transition
Definition: plugins.h:421
lives_clip_data_t::asamps
int asamps
Definition: plugins.h:250
RFX_STATUS_CUSTOM
custom effects in the custom menu
Definition: plugins.h:467
set_yuv_palette_clamping
boolean set_yuv_palette_clamping(int clamping_type)
host sets the palette sampling (optional)
lives_rfx_t::status
lives_rfx_status_t status
Definition: plugins.h:487
weed_to_rfx
lives_rfx_t * weed_to_rfx(weed_plant_t *plant, boolean show_reinits)
Definition: plugins.c:3544
LIVES_PARAM_SPECIAL_TYPE_SINGLEPOINT
type may be used in framedraw
Definition: plugins.h:388
_vid_playback_plugin::num_play_params
int num_play_params
Definition: plugins.h:121
get_bool_param
boolean get_bool_param(void *value)
Definition: plugins.c:3097
_vppaw::pal_entry
LiVESWidget * pal_entry
Definition: plugins.h:584
ulong
#define ulong
Definition: main.h:148
get_best_audio
int64_t get_best_audio(_vid_playback_plugin *vpp)
Definition: plugins.c:1473
lives_param_t::special_type_index
int special_type_index
Definition: plugins.h:460
open_vid_playback_plugin
_vid_playback_plugin * open_vid_playback_plugin(const char *name, boolean in_use)
Definition: plugins.c:1159
plugin_request_by_space
LiVESList * plugin_request_by_space(const char *plugin_type, const char *plugin_name, const char *request)
Definition: plugins.c:192
lives_param_t::onchange
boolean onchange
is there a trigger ?
Definition: plugins.h:448
send_keycodes
boolean send_keycodes(keyfunc)
host calls this fn to send keycodes, plugin should call key function with a unicode keycode and modif...
LIVES_PARAM_SPECIAL_TYPE_MERGEALIGN
Definition: plugins.h:395
LIVES_PARAM_STRING_LIST
Definition: plugins.h:367
_vppaw::plugin
_vid_playback_plugin * plugin
Definition: plugins.h:579
_vid_playback_plugin::YUV_clamping
int YUV_clamping
Definition: plugins.h:108
lives_rfx_t::min_frames
int min_frames
for Weed, 1
Definition: plugins.h:485
_vid_playback_plugin::extra_argc
int extra_argc
Definition: plugins.h:115
lives_rfx_source_t
lives_rfx_source_t
Definition: plugins.h:375
lives_clip_data_t::YUV_clamping
int YUV_clamping
Definition: plugins.h:243
lives_rfx_t::num_in_channels
int num_in_channels
Definition: plugins.h:486
lives_clip_data_t
Definition: plugins.h:205
_vid_playback_plugin::extra_argv
char ** extra_argv
Definition: plugins.h:116
lives_rfx_t::props
uint32_t props
Definition: plugins.h:490
clip_data_free
void clip_data_free(lives_clip_data_t *)
free clip data - this should be called for each instance before unloading the module ...
_vid_playback_plugin::handle
void * handle
Definition: plugins.h:54
lives_clip_data_t::achans
int achans
Definition: plugins.h:249
RFX_STATUS_RENAME
indicates a copy operation to test
Definition: plugins.h:475
_vid_playback_plugin::fixed_fps_denom
int fixed_fps_denom
Definition: plugins.h:112
pp_get_param
const weed_plant_t * pp_get_param(weed_plant_t **pparams, int idx)
Definition: plugins.c:1134
RFX_STATUS_ANY
indicates free choice of statuses
Definition: plugins.h:469
_vid_playback_plugin::play_params
weed_plant_t ** play_params
Definition: plugins.h:119
get_colRGBA32_param
void get_colRGBA32_param(void *value, lives_colRGBA32_t *rgba)
Definition: plugins.c:3119
lives_rfx_t::params
lives_param_t * params
Definition: plugins.h:503
do_plugin_encoder_error
void do_plugin_encoder_error(const char *plugin_name)
Definition: plugins.c:1575
MAX_PARAM_WIDGETS
#define MAX_PARAM_WIDGETS
max number of display widgets per parameter (currently 5 for RGBA spinbuttons + colorbutton) ...
Definition: plugins.h:354
_encoder::of_allowed_acodecs
int of_allowed_acodecs
Definition: plugins.h:180
_encoder::audio_codec
uint32_t audio_codec
Definition: plugins.h:149
_vid_playback_plugin::YUV_subspace
int YUV_subspace
Definition: plugins.h:109
lives_clip_data_t::current_palette
int current_palette
plugin should init this to palettes[0] if URI changes
Definition: plugins.h:240
lives_rfx_t::source_type
lives_rfx_source_t source_type
Definition: plugins.h:504
_encoder::capabilities
uint32_t capabilities
Definition: plugins.h:169
lives_param_t::max
double max
for string this is max characters
Definition: plugins.h:432
lives_rfx_t
Definition: plugins.h:481
lives_clip_data_t::YUV_subspace
int YUV_subspace
Definition: plugins.h:244
_vid_playback_plugin::num_alpha_chans
int num_alpha_chans
Definition: plugins.h:122
lives_fx_candidate_t::func
ulong func
menuitem activation function for current delegate
Definition: plugins.h:537
set_bool_param
void set_bool_param(void *value, boolean _const)
Definition: plugins.c:3123
lives_clip_data_t::priv
void * priv
private data for demuxer/decoder - host should not touch this
Definition: plugins.h:268
lives_colRGB24_t
Definition: main.h:460
lives_param_t::dp
int dp
decimals, 0 for int and bool
Definition: plugins.h:428
lives_decoder_sys_t::handle
void * handle
may be shared between several instances
Definition: plugins.h:277
lives_fx_candidate_t
Definition: plugins.h:534
lives_clip_data_t::ainterleaf
boolean ainterleaf
Definition: plugins.h:252
array_to_string_list
LiVESList * array_to_string_list(char **array, int offset, int len)
Definition: plugins.c:2880
rip_audio
int64_t rip_audio(const lives_clip_data_t *, const char *fname, int64_t stframe, int64_t nframes, unsigned char **abuff)
RFX_STATUS_COPY
indicates a copy operation to test
Definition: plugins.h:474
open_decoder_plugin
lives_decoder_sys_t * open_decoder_plugin(const char *plname)
Definition: plugins.c:2416
lives_param_t::multi
short multi
multivalue type - single value, multi value, or per channel
Definition: plugins.h:438
lives_rfx_t::menuitem
LiVESWidget * menuitem
the menu item which activates this effect
Definition: plugins.h:501
pp_get_chan
const weed_plant_t * pp_get_chan(weed_plant_t **pparams, int idx)
Definition: plugins.c:1146
LIVES_PARAM_BOOL
Definition: plugins.h:364
LIVES_PARAM_SPECIAL_TYPE_RECT_MULTRECT
type may be used in framedraw
Definition: plugins.h:386
_vid_playback_plugin::fixed_fps_numer
int fixed_fps_numer
Definition: plugins.h:111
_vid_playback_plugin
Definition: plugins.h:51
init_screen
boolean init_screen(int width, int height, boolean fullscreen, uint64_t window_id, int argc, char **argv)
ready the screen to play (optional)
_vid_playback_plugin::play_paramtmpls
const weed_plant_t ** play_paramtmpls
Definition: plugins.h:118
lives_rfx_t::menu_text
char * menu_text
for Weed, this is the filter_class &quot;name&quot;
Definition: plugins.h:483
lives_param_t::interp_func
fn_ptr interp_func
Definition: plugins.h:409
anames
const char * anames[AUDIO_CODEC_MAX]
Definition: plugins.c:34
rfx_free
void rfx_free(lives_rfx_t *rfx)
Definition: plugins.c:3017
_vid_playback_plugin::palette
int palette
Definition: plugins.h:106
_vppaw::fps_entry
LiVESWidget * fps_entry
Definition: plugins.h:583
save_vpp_defaults
void save_vpp_defaults(_vid_playback_plugin *vpp, char *vpp_file)
Definition: plugins.c:339
module_unload
void module_unload(void)
this is called when module is unloaded
lives_param_t::list
LiVESList * list
for string list (choices)
Definition: plugins.h:435
close_vid_playback_plugin
void close_vid_playback_plugin(_vid_playback_plugin *vpp)
Definition: plugins.c:1094
lives_clip_data_t::palettes
int * palettes
list of palettes which the format supports, terminated with WEED_PALETTE_END
Definition: plugins.h:237
do_rfx_cleanup
void do_rfx_cleanup(lives_rfx_t *rfx)
Definition: plugins.c:2669
lives_clip_data_t::asigned
boolean asigned
Definition: plugins.h:251
LIVES_PARAM_UNDISPLAYABLE
Definition: plugins.h:370
lives_clip_data_t::video_start_time
float video_start_time
Definition: plugins.h:233
lives_clip_data_t::YUV_sampling
int YUV_sampling
Definition: plugins.h:242
check_encoder_restrictions
boolean check_encoder_restrictions(boolean get_extension, boolean user_audio, boolean save_all)
Definition: plugins.c:1597
LIVES_PARAM_COLRGBA32
Definition: plugins.h:368