LiVES  3.2.0
plugins.h
Go to the documentation of this file.
1 // plugins.h
2 // LiVES
3 // (c) G. Finch 2003-2020 <salsaman+lives@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 // generic plugins
20 
21 #define PLUGIN_SUBTYPE_DLL "dll"
22 #define PLUGIN_SUBTYPE_BINARY "exe"
23 #define PLUGIN_SUBTYPE_SCRIPT "script"
24 
25 #define PLUGIN_TYPE_DECODER "decoder"
26 #define PLUGIN_TYPE_ENCODER "encoder"
27 #define PLUGIN_TYPE_FILTER "filter"
28 #define PLUGIN_TYPE_SOURCE "source"
29 #define PLUGIN_TYPE_PLAYER "player"
30 
31 #define PLUGIN_CHANNEL_NONE 0ul
32 #define PLUGIN_CHANNEL_VIDEO (1<<0)ul
33 #define PLUGIN_CHANNEL_AUDIO (1<<1)ul
34 #define PLUGIN_CHANNEL_TEXT (1<<2)ul
35 
36 #define PLUGIN_CHANNEL_DATA (1<<32)ul
37 #define PLUGIN_CHANNEL_STREAM (1<<33)ul
38 #define PLUGIN_CHANNEL_TTY (1<<34)ul
39 #define PLUGIN_CHANNEL_FILE (1<<35)ul
40 
41 typedef enum {
43 
44  // video players
47  LIVES_INTENTION_TRANSCODE, // encode / data in
49 
50  //LIVES_INTENTION_ENCODE, // encode / file in
62  LIVES_INTENTION_OTHER = 65536
64 
66 // vpp
67 #define VPP_CAN_RESIZE (1<<0)
68 #define VPP_CAN_RETURN (1<<1)
69 #define VPP_LOCAL_DISPLAY (1<<2)
70 #define VPP_LINEAR_GAMMA (1<<3)
71 #define VPP_CAN_RESIZE_WINDOW (1<<4)
72 #define VPP_CAN_LETTERBOX (1<<5)
73 #define VPP_CAN_CHANGE_PALETTE (1<<6)
74 
75 typedef struct {
76  uint64_t intent;
77  uint64_t in_chan_types;
78  uint64_t out_chan_types;
79  uint64_t intents;
80  uint64_t capabilities;
82 
83 typedef struct {
84  char type[16];
85  char subtype[16];
88  char name[64];
93 
94 LiVESList *get_plugin_list(const char *plugin_type, boolean allow_nonex,
95  const char *plugdir, const char *filter_ext);
96 
97 // directory locations
98 #define PLUGIN_ENCODERS "encoders"
99 #define PLUGIN_DECODERS "decoders"
100 #define PLUGIN_VID_PLAYBACK "playback/video"
101 #define PLUGIN_AUDIO_STREAM "playback/audiostream"
102 
103 #define AUDIO_STREAMER_NAME "audiostreamer.pl"
104 
106 #define PLUGIN_THEMES "themes"
107 #define PLUGIN_THEMES_CUSTOM "custom/themes"
108 
110 #define PLUGIN_EFFECTS_WEED "weed"
111 #define PLUGIN_WEED_FX_BUILTIN "effects/realtime/weed"
112 
113 LiVESList *get_plugin_result(const char *command, const char *delim, boolean allow_blanks, boolean strip);
114 LiVESList *plugin_request(const char *plugin_type, const char *plugin_name, const char *request);
115 LiVESList *plugin_request_with_blanks(const char *plugin_type, const char *plugin_name, const char *request);
116 LiVESList *plugin_request_by_line(const char *plugin_type, const char *plugin_name, const char *request);
117 LiVESList *plugin_request_by_space(const char *plugin_type, const char *plugin_name, const char *request);
118 LiVESList *plugin_request_common(const char *plugin_type, const char *plugin_name, const char *request, const char *delim,
119  boolean allow_blanks);
120 
121 #define VPP_DEFS_FILE "vpp_defaults"
122 
123 typedef struct {
124  // playback
125  char name[64];
126  void *handle;
127 
128  // mandatory
129  const char *(*module_check_init)(void);
130  const char *(*version)(void);
131  const char *(*get_description)(void);
132 
133  int *(*get_palette_list)(void);
135  uint64_t (*get_capabilities)(int palette);
136 
137  boolean(*render_frame)(int hsize, int vsize, ticks_t timecode, void **pixel_data, void **return_data,
138  weed_plant_t **play_params);
139 
141 
142  // optional
143  weed_plant_t *(*weed_setup)(weed_bootstrap_f);
144  boolean(*init_screen)(int width, int height, boolean fullscreen,
145  uint64_t window_id, int argc, char **argv);
146  void (*exit_screen)(uint16_t mouse_x, uint16_t mouse_y);
147  void (*module_unload)(void);
148  const char *(*get_fps_list)(int palette);
149  boolean(*set_fps)(double fps);
150 
151  const char *(*get_init_rfx)(int intention);
152 
153 #ifdef __WEED_EFFECTS_H__
154  const weed_plant_t **(*get_play_params)(weed_bootstrap_f f);
156 #endif
157 
158  // optional for YUV palettes
159  int *(*get_yuv_palette_sampling)(int palette);
160  int *(*get_yuv_palette_clamping)(int palette);
161  int *(*get_yuv_palette_subspace)(int palette);
162  int (*set_yuv_palette_sampling)(int sampling_type);
163  int (*set_yuv_palette_clamping)(int clamping_type);
164  int (*set_yuv_palette_subspace)(int subspace_type);
165 
166  // audio streaming (deprecated, use init_audio(), render_audio_frame())
167  int *(*get_audio_fmts)(void);
168 
169  uint32_t audio_codec; //(deprecated, use init_audio(), render_audio_frame())
170  // must match with the "acodec" LiVESList in interface.c
171  // and bitmaps in the encder plugins
172 
173  // optional audio packeting
174  boolean(*init_audio)(int in_sample_rate, int in_nchans, int argc, char **argv);
175  boolean(*render_audio_frame_float)(float **audio, int nsamps);
176 
177  uint64_t capabilities;
178 
179  int fwidth, fheight;
180 
181  int palette;
185 
188  double fixed_fpsd;
189 
191  char **extra_argv;
192 
193  const weed_plant_t **play_paramtmpls;
194  weed_plant_t **play_params;
195  weed_plant_t **alpha_chans;
199 
200 _vid_playback_plugin *open_vid_playback_plugin(const char *name, boolean in_use);
201 void vid_playback_plugin_exit(void);
204 void save_vpp_defaults(_vid_playback_plugin *, char *file);
205 void load_vpp_defaults(_vid_playback_plugin *, char *file);
206 
208 
209 #define DEFAULT_VPP "openGL"
210 
211 #define DEF_VPP_HSIZE DEF_FRAME_HSIZE_UNSCALED
212 #define DEF_VPP_VSIZE DEF_FRAME_VSIZE_UNSCALED
213 
214 const weed_plant_t *pp_get_param(weed_plant_t **pparams, int idx);
215 const weed_plant_t *pp_get_chan(weed_plant_t **pparams, int idx);
216 
217 // encoder plugins
218 
219 #define FFMPEG_ENCODER_NAME "ffmpeg_encoder"
220 
221 #define MULTI_ENCODER_NAME "multi_encoder"
222 #define MULTI_ENCODER3_NAME "multi_encoder3"
223 
224 #define HI_THEORA_FORMAT "hi-theora"
225 #define HI_MPEG_FORMAT "hi-mpg"
226 #define HI_H_MKV_FORMAT "hi_h-mkv"
227 #define HI_H_AVI_FORMAT "hi_h-avi"
228 
229 void do_plugin_encoder_error(const char *plugin_name_or_null);
230 
231 LiVESList *filter_encoders_by_img_ext(LiVESList *encoders, const char *img_ext);
232 
233 typedef struct {
234  char name[64];
235  uint32_t audio_codec;
236  // match with bitmaps in the encoder plugins
237  // and also anames array in plugins.c (see below)
238 
239 #define AUDIO_CODEC_MP3 0
240 #define AUDIO_CODEC_PCM 1
241 #define AUDIO_CODEC_MP2 2
242 #define AUDIO_CODEC_VORBIS 3
243 #define AUDIO_CODEC_AC3 4
244 #define AUDIO_CODEC_AAC 5
245 #define AUDIO_CODEC_AMR_NB 6
246 #define AUDIO_CODEC_RAW 7 // reserved
247 #define AUDIO_CODEC_WMA2 8
248 #define AUDIO_CODEC_OPUS 9
249 
250 #define AUDIO_CODEC_MAX 31
251  //
252 #define AUDIO_CODEC_NONE 32
253 #define AUDIO_CODEC_UNKNOWN 33
254 
255  uint32_t capabilities;
256 
257 #define HAS_RFX (1<<0)
258 
259 #define CAN_ENCODE_PNG (1<<2)
260 #define ENCODER_NON_NATIVE (1<<3)
261 
262  // current output format
263  char of_name[64];
264  char of_desc[128];
266  char of_restrict[1024];
267  char of_def_ext[16];
268  char ptext[512];
269 }
270 _encoder;
271 
272 typedef struct {
274  // a value > 0. indicates some values are set. Unset values may be left as 0., or
277 
278  double ctiming_ratio; // dynamic multiplier for timing info, depends on machine load and other factors.
279  double idecode_time;
280  double kdecode_time;
284 
288 
289  // examples:
290  // iframe to next kframe with decode: kframe_nseek_time + n * kframe_delay_time + buffer_flush_tome + kdecode_time
291  // where n is the number of iframes skipped over
292 
293  // seek from iframe to another iframe, passing over several kframes, decoding frames from final kframe to target
294 
300 
301  double xvals[64];
302 } adv_timing_t;
303 
304 // defined in plugins.c for the whole app
305 extern const char *const anames[AUDIO_CODEC_MAX];
306 
307 // decoder plugins
308 
309 // seek_flags is a bitmap
310 
312 #define LIVES_SEEK_FAST (1<<0)
313 #define LIVES_SEEK_FAST_REV (1<<1)
314 
316 #define LIVES_SEEK_NEEDS_CALCULATION (1<<2)
317 #define LIVES_SEEK_QUALITY_LOSS (1<<3)
318 
319 typedef struct _lives_clip_data {
320  // fixed part
323 
331 
332  void *priv;
333 
334  char *URI;
335 
336  int nclips;
337  char container_name[512];
338 
339  char title[1024];
340  char author[1024];
341  char comment[1024];
342 
345 
346  // video data
347  int width;
348  int height;
349  int64_t nframes;
352 
355  int offs_x;
356  int offs_y;
359 
360  float par;
361 
363 
364  float fps;
365 
368  int64_t fwd_seek_time;
369  int64_t jump_limit;
370 
371  int64_t kframe_start;
372  int64_t kframe_dist;
373 
375  int *palettes;
376 
379 
385 
386  char video_name[512];
387 
388  /* audio data */
389  int arate;
390  int achans;
391  int asamps;
392  boolean asigned;
393  boolean ainterleaf;
394  char audio_name[512];
395 
397  int seek_flag;
398 
399 #define SYNC_HINT_AUDIO_TRIM_START (1<<0)
400 #define SYNC_HINT_AUDIO_PAD_START (1<<1)
401 #define SYNC_HINT_AUDIO_TRIM_END (1<<2)
402 #define SYNC_HINT_AUDIO_PAD_END (1<<3)
403 
404 #define SYNC_HINT_VIDEO_PAD_START (1<<4)
405 #define SYNC_HINT_VIDEO_PAD_END (1<<5)
406 
408 
410 
411 
412 typedef struct {
413  // playback
414  const char *name;
415  void *handle;
416 
417  // mandatory
418  const char *(*version)(void);
419 
429  lives_clip_data_t *(*get_clip_data)(char *URI, const lives_clip_data_t *cdata);
430 
432  boolean(*get_frame)(const lives_clip_data_t *, int64_t frame, int *rowstrides, int height, void **pixel_data);
433 
436 
439 
440  // optional
441  const char *(*module_check_init)(void);
443  int64_t (*rip_audio)(const lives_clip_data_t *, const char *fname, int64_t stframe, int64_t nframes,
444  unsigned char **abuff);
445  void (*rip_audio_cleanup)(const lives_clip_data_t *cdata);
446  void (*module_unload)(void);
448 
449 typedef struct {
452  int refs;
454 
455 LiVESList *load_decoders(void);
456 boolean chill_decoder_plugin(int fileno);
457 boolean decoder_plugin_move_to_first(const char *name);
458 const lives_clip_data_t *get_decoder_cdata(int fileno, LiVESList *disabled, const lives_clip_data_t *fake_cdata);
460 void close_clip_decoder(int clipno);
461 lives_decoder_sys_t *open_decoder_plugin(const char *plname);
462 void get_mime_type(char *text, int maxlen, const lives_clip_data_t *);
463 void unload_decoder_plugins(void);
464 lives_decoder_t *clone_decoder(int fileno);
465 
466 // RFX plugins
467 
469 #define PLUGIN_RENDERED_EFFECTS_BUILTIN "effects/rendered/"
470 
472 #define PLUGIN_RENDERED_EFFECTS_CUSTOM "plugins/effects/rendered/custom/"
473 #define PLUGIN_RENDERED_EFFECTS_TEST "plugins/effects/rendered/test/"
474 
476 #define PLUGIN_RENDERED_EFFECTS_BUILTIN_SCRIPTS "effects/RFXscripts/"
477 
479 #define PLUGIN_RENDERED_EFFECTS_CUSTOM_SCRIPTS "plugins/effects/RFXscripts/custom/"
480 #define PLUGIN_RENDERED_EFFECTS_TEST_SCRIPTS "plugins/effects/RFXscripts/test/"
481 
483 #define PLUGIN_RFX_SCRAP ""
484 
487 // TODO : use enum for widget type
488 #define MAX_PARAM_WIDGETS 128
489 
490 #define RFX_MAX_NORM_WIDGETS 16
491 
493 #define WIDGET_RB_IN 16
494 #define WIDGET_RB_OUT 17
495 #define WIDGET_RB_DUMMY 18
496 
498 #define RFX_MAXSTRINGLEN (PATH_MAX - 1)
499 
500 typedef enum {
508 
511 
512 typedef enum {
517 
518 typedef enum {
519  LIVES_PARAM_SPECIAL_TYPE_NONE = 0, // normal parameter type
520 
521  // framedraw types
526 
527  // text widget types
532 
533  // misc types
537 
538 typedef struct {
539  // weed style part
540  char *name;
541  char *desc;
542 
543  char *label;
544  int flags;
545  boolean use_mnemonic;
546  uint32_t hidden;
547 
548  // reason(s) for hiding [bitmap]
550 #define HIDDEN_UNDISPLAYABLE (1 << 0)
551 #define HIDDEN_GUI_PERM (1 << 1)
552 #define HIDDEN_MULTI (1 << 2)
553 
554 #define HIDDEN_STRUCTURAL (0x00FF)
555 
557 #define HIDDEN_NEEDS_REINIT (1 << 16)
558 #define HIDDEN_GUI_TEMP (1 << 17)
559 
560 #define HIDDEN_TEMPORARY (0xFF00)
561 
562  double step_size;
563  //int copy_to;
564  boolean transition;
565 
566 #define REINIT_FUNCTIONAL 1
567 #define REINIT_VISUAL 2
568 
569  int reinit;
570 
571  boolean wrap;
572  int group;
574 
575  int dp;
576  void *value;
577 
578  double min;
579  double max;
580 
581  void *def;
582  LiVESList *list;
583 
585  short multi;
586 #define PVAL_MULTI_NONE 0
587 #define PVAL_MULTI_ANY 1
588 #define PVAL_MULTI_PER_CHANNEL 2
589 
590  //--------------------------------------------------
591  // extras for LiVES
592 
594  LiVESWidget *widgets[MAX_PARAM_WIDGETS];
595  boolean onchange;
596 
597  boolean changed;
598  boolean edited;
599 
600  boolean change_blocked;
601 
602  void *source;
603 
605 
606  // this may change
607  lives_param_special_t special_type; // the visual modification type (see paramspecial.h)
608  int special_type_index; // index within special_type (e.g for DEMASK, 0==left, 1==top, 2==width, 3==height)
609 } lives_param_t;
610 
611 typedef enum {
619 
620  // these are only used when prompting for a name
622  RFX_STATUS_RENAME = 129
624 
625 typedef struct {
626  char *name;
627  char *menu_text;
628  char *action_desc;
632 
633  uint32_t props;
634 #define RFX_PROPS_SLOW 0x0001
635 #define RFX_PROPS_MAY_RESIZE 0x0002
636 #define RFX_PROPS_BATCHG 0x0004
637 
638 #define RFX_PROPS_RESERVED1 0x1000
639 #define RFX_PROPS_RESERVED2 0x2000
640 #define RFX_PROPS_RESERVED3 0x4000
641 #define RFX_PROPS_AUTO_BUILT 0x8000
642 
643  LiVESWidget *menuitem;
645  uint32_t flags;
646 #define RFX_FLAGS_NO_SLIDERS 0x0001
647 #define RFX_FLAGS_NO_RESET 0x0002
648 
651  void *source;
652  char delim[2];
653  char rfx_version[64];
654  LiVESList *gui_strings;
655  LiVESList *onchange_strings;
656  boolean is_template;
658 } lives_rfx_t;
659 
661 
663 
664 void render_fx_get_params(lives_rfx_t *, const char *plugin_name, short status);
665 
666 void sort_rfx_array(lives_rfx_t *in_array, int num_elements);
667 
668 int find_rfx_plugin_by_name(const char *name, short status);
669 
670 void rfx_copy(lives_rfx_t *dest, lives_rfx_t *src, boolean full);
671 
673 
674 void rfx_free(lives_rfx_t *);
675 
676 void rfx_free_all(void);
677 
678 void param_copy(lives_param_t *dest, lives_param_t *src, boolean full);
679 
680 lives_param_t *find_rfx_param_by_name(lives_rfx_t *, const char *name);
681 
682 boolean set_rfx_param_by_name_string(lives_rfx_t *, const char *name, const char *value, boolean update_visual);
683 
684 boolean get_rfx_param_by_name_string(lives_rfx_t *rfx, const char *name, char **return_value);
685 
686 typedef struct {
687  LiVESList *list;
688  int delegate;
692 
693 // filter types which can have candidates
694 #define FX_CANDIDATE_AUDIO_VOL 0
695 #define FX_CANDIDATE_RESIZER 1
696 #define FX_CANDIDATE_DEINTERLACE 2
697 
698 #define MAX_FX_CANDIDATE_TYPES 3
699 
700 boolean get_bool_param(void *value);
701 int get_int_param(void *value);
702 double get_double_param(void *value);
703 void get_colRGB24_param(void *value, lives_colRGB48_t *rgb);
704 void get_colRGBA32_param(void *value, lives_colRGBA64_t *rgba);
705 
706 void set_bool_param(void *value, boolean);
707 void set_int_param(void *value, int);
708 void set_double_param(void *value, double);
709 void set_colRGB24_param(void *value, short red, short green, short blue);
710 void set_colRGBA32_param(void *value, short red, short green, short blue, short alpha);
711 
714 void set_rfx_params_from_store(lives_rfx_t *rfx, void **store);
715 void rfx_params_store_free(lives_rfx_t *, void **store);
716 
717 LiVESList *array_to_string_list(char **array, int offset, int len);
718 
719 lives_rfx_t *weed_to_rfx(weed_plant_t *plant, boolean show_reinits);
720 lives_param_t *weed_params_to_rfx(int npar, weed_plant_t *instance, boolean show_reinits);
721 
722 void rfx_clean_exe(lives_rfx_t *rfx);
723 
724 char *plugin_run_param_window(const char *scrap_text, LiVESVBox *vbox, lives_rfx_t **ret_rfx);
725 
728 
729 typedef struct {
731  LiVESWidget *dialog;
732  LiVESWidget *spinbuttonh;
733  LiVESWidget *spinbuttonw;
734  LiVESWidget *apply_fx;
735  LiVESWidget *fps_entry;
736  LiVESWidget *pal_entry;
738  boolean keep_rfx;
740 } _vppaw;
741 
742 _vppaw *on_vpp_advanced_clicked(LiVESButton *, livespointer);
743 
744 void on_decplug_advanced_clicked(LiVESButton *button, livespointer user_data);
745 
746 LiVESList *get_external_window_hints(lives_rfx_t *rfx);
747 boolean check_encoder_restrictions(boolean get_extension, boolean user_audio, boolean save_all);
748 
750 
751 #endif
_vid_playback_plugin::palette
int palette
width in pixels, but converted to macropixels for the player
Definition: plugins.h:181
on_decplug_advanced_clicked
void on_decplug_advanced_clicked(LiVESButton *button, livespointer user_data)
Definition: plugins.c:2575
_vppaw::fps_entry
LiVESWidget * fps_entry
Definition: plugins.h:735
lives_decoder_sys_t::name
const char * name
plugin name
Definition: plugins.h:414
lives_param_t::special_type
lives_param_special_t special_type
Definition: plugins.h:607
vpp_try_match_palette
boolean vpp_try_match_palette(_vid_playback_plugin *vpp, weed_layer_t *layer)
Definition: plugins.c:1066
lives_decoder_sys_t
Definition: plugins.h:412
lives_struct_def_t
112 bytes
Definition: lsd.h:241
_encoder::of_allowed_acodecs
int of_allowed_acodecs
Definition: plugins.h:265
lives_param_type_t
lives_param_type_t
Definition: plugins.h:500
lives_clip_data_t::height
int height
Definition: plugins.h:348
LIVES_INTENTION_MIX
@ LIVES_INTENTION_MIX
Definition: plugins.h:59
lives_param_t::transition
boolean transition
Definition: plugins.h:564
_vppaw::apply_fx
LiVESWidget * apply_fx
Definition: plugins.h:734
plugin_request_by_space
LiVESList * plugin_request_by_space(const char *plugin_type, const char *plugin_name, const char *request)
Definition: plugins.c:64
lives_rfx_t::is_template
boolean is_template
Definition: plugins.h:656
memset_f
void *(* memset_f)(void *, int, size_t)
Definition: machinestate.h:23
RFX_STATUS_RENAME
@ RFX_STATUS_RENAME
indicates a copy operation to test
Definition: plugins.h:622
lives_plugin_id_t::api_version_major
int api_version_major
version of interface API
Definition: plugins.h:86
get_plugin_result
LiVESList * get_plugin_result(const char *command, const char *delim, boolean allow_blanks, boolean strip)
Definition: plugins.c:30
lives_clip_data_t::current_clip
int current_clip
plugin should init this to 0 if URI changes
Definition: plugins.h:344
lives_clip_data_t::interlace
lives_interlace_t interlace
Definition: plugins.h:350
pp_get_param
const weed_plant_t * pp_get_param(weed_plant_t **pparams, int idx)
Definition: plugins.c:1042
LIVES_INTENTION_SPLIT
@ LIVES_INTENTION_SPLIT
Definition: plugins.h:60
lives_param_t::special_type_index
int special_type_index
Definition: plugins.h:608
weed_params_to_rfx
lives_param_t * weed_params_to_rfx(int npar, weed_plant_t *instance, boolean show_reinits)
Definition: plugins.c:3201
_vppaw::plugin
_vid_playback_plugin * plugin
Definition: plugins.h:730
module_unload
void module_unload(void)
this is called when module is unloaded
on_vpp_advanced_clicked
_vppaw * on_vpp_advanced_clicked(LiVESButton *, livespointer)
Definition: plugins.c:727
set_yuv_palette_subspace
boolean set_yuv_palette_subspace(int subspace_type)
host sets the palette subspace (optional)
lives_clip_data_t::URI
char * URI
the URI of this cdata
Definition: plugins.h:334
lives_param_t::onchange
boolean onchange
is there a trigger ?
Definition: plugins.h:595
lives_decoder_t
Definition: plugins.h:449
LIVES_PARAM_SPECIAL_TYPE_SCALEDPOINT
@ LIVES_PARAM_SPECIAL_TYPE_SCALEDPOINT
type may be used in framedraw
Definition: plugins.h:525
lives_rfx_t::status
lives_rfx_status_t status
Definition: plugins.h:631
lives_param_special_t
lives_param_special_t
Definition: plugins.h:518
LIVES_PARAM_STRING
@ LIVES_PARAM_STRING
Definition: plugins.h:505
LIVES_INTENTION_OTHER
@ LIVES_INTENTION_OTHER
Definition: plugins.h:62
lives_clip_data_t::palettes
int * palettes
number forames from one keyframe to the next, 0 if unknown
Definition: plugins.h:375
lives_intentcaps_t::in_chan_types
uint64_t in_chan_types
channel types accepted
Definition: plugins.h:77
lives_clip_data_t::current_palette
int current_palette
plugin should init this to palettes[0] if URI changes
Definition: plugins.h:378
lives_rfx_t::name
char * name
the name of the executable (so we can run it !)
Definition: plugins.h:626
lives_rfx_t::action_desc
char * action_desc
for Weed "Applying $s"
Definition: plugins.h:628
lives_rfx_t::params
lives_param_t * params
Definition: plugins.h:649
rip_audio
int64_t rip_audio(const lives_clip_data_t *, const char *fname, int64_t stframe, int64_t nframes, unsigned char **abuff)
lives_intentcaps_t::capabilities
uint64_t capabilities
type specific capabilities
Definition: plugins.h:80
malloc_f
void *(* malloc_f)(size_t)
Definition: machinestate.h:18
pp_get_chan
const weed_plant_t * pp_get_chan(weed_plant_t **pparams, int idx)
Definition: plugins.c:1054
LIVES_INTENTION_BACKUP
@ LIVES_INTENTION_BACKUP
Definition: plugins.h:51
adv_timing_t
Definition: plugins.h:272
lives_clip_data_t::offs_x
int offs_x
x and y offsets of picture within frame for primary pixel plane
Definition: plugins.h:355
LIVES_PARAM_COLRGB24
@ LIVES_PARAM_COLRGB24
Definition: plugins.h:504
lives_rfx_t::menu_text
char * menu_text
for Weed, this is the filter_class "name"
Definition: plugins.h:627
lives_fx_candidate_t::list
LiVESList * list
list of filter_idx from which user can delegate
Definition: plugins.h:687
plugin_run_param_window
char * plugin_run_param_window(const char *scrap_text, LiVESVBox *vbox, lives_rfx_t **ret_rfx)
create an interface window for a plugin; possibly run it, and return the parameters
Definition: plugins.c:3717
rfx_params_store_free
void rfx_params_store_free(lives_rfx_t *, void **store)
LIVES_PARAM_SPECIAL_TYPE_MERGEALIGN
@ LIVES_PARAM_SPECIAL_TYPE_MERGEALIGN
Definition: plugins.h:534
LIVES_INTENTION_DUPLICATE
@ LIVES_INTENTION_DUPLICATE
Definition: plugins.h:61
realloc_f
void *(* realloc_f)(void *, size_t)
Definition: machinestate.h:25
chill_out
boolean chill_out(const lives_clip_data_t *cdata)
free buffers when we arent playing sequentially / on standby
chill_decoder_plugin
boolean chill_decoder_plugin(int fileno)
Definition: plugins.c:2425
LIVES_RFX_SOURCE_RFX
@ LIVES_RFX_SOURCE_RFX
Definition: plugins.h:513
RFX_STATUS_ANY
@ RFX_STATUS_ANY
indicates free choice of statuses
Definition: plugins.h:615
_encoder::audio_codec
uint32_t audio_codec
Definition: plugins.h:235
lives_clip_data_t::width
int width
Definition: plugins.h:347
LIVES_INTENTION_RESTORE
@ LIVES_INTENTION_RESTORE
Definition: plugins.h:52
set_colRGBA32_param
void set_colRGBA32_param(void *value, short red, short green, short blue, short alpha)
Definition: plugins.c:3166
get_external_window_hints
LiVESList * get_external_window_hints(lives_rfx_t *rfx)
get the interface hints set by a Weed filter in the filter_class.
Definition: plugins.c:3618
ticks_t
int64_t ticks_t
Definition: main.h:97
do_rfx_cleanup
void do_rfx_cleanup(lives_rfx_t *)
Definition: plugins.c:2671
_vid_playback_plugin
Definition: plugins.h:123
LIVES_PARAM_NUM
@ LIVES_PARAM_NUM
Definition: plugins.h:502
lives_param_t::dp
int dp
decimals, 0 for int and bool
Definition: plugins.h:575
_vppaw::pal_entry
LiVESWidget * pal_entry
Definition: plugins.h:736
weed_to_rfx
lives_rfx_t * weed_to_rfx(weed_plant_t *plant, boolean show_reinits)
Definition: plugins.c:3564
lives_rfx_t::onchange_strings
LiVESList * onchange_strings
rfxscript for constructing the params, param window and onchange triggers
Definition: plugins.h:655
open_vid_playback_plugin
_vid_playback_plugin * open_vid_playback_plugin(const char *name, boolean in_use)
Definition: plugins.c:1099
set_colRGB24_param
void set_colRGB24_param(void *value, short red, short green, short blue)
Definition: plugins.c:3149
lives_clip_data_t::lsd
lives_struct_def_t lsd
Definition: plugins.h:321
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:69
do_plugin_encoder_error
void do_plugin_encoder_error(const char *plugin_name_or_null)
Definition: plugins.c:1531
lives_param_t::reinit
int reinit
Definition: plugins.h:569
lives_rfx_t::num_in_channels
int num_in_channels
Definition: plugins.h:630
lives_decoder_t::cdata
lives_clip_data_t * cdata
Definition: plugins.h:451
_vid_playback_plugin::fixed_fps_numer
int fixed_fps_numer
Definition: plugins.h:186
lives_interlace_t
lives_interlace_t
Definition: main.h:790
lives_param_t::edited
boolean edited
Definition: plugins.h:598
_vid_playback_plugin::play_paramtmpls
const weed_plant_t ** play_paramtmpls
Definition: plugins.h:193
lives_intention_t
lives_intention_t
Definition: plugins.h:41
lives_param_t::multi
short multi
multivalue type - single value, multi value, or per channel
Definition: plugins.h:585
calloc_f
void *(* calloc_f)(size_t, size_t)
Definition: machinestate.h:26
lives_clip_data_t::offs_y
int offs_y
Definition: plugins.h:356
LIVES_PARAM_SPECIAL_TYPE_SINGLEPOINT
@ LIVES_PARAM_SPECIAL_TYPE_SINGLEPOINT
type may be used in framedraw
Definition: plugins.h:524
LIVES_PARAM_SPECIAL_TYPE_RECT_DEMASK
@ LIVES_PARAM_SPECIAL_TYPE_RECT_DEMASK
type may be used in framedraw
Definition: plugins.h:522
_vid_playback_plugin::extra_argc
int extra_argc
Definition: plugins.h:190
LIVES_INTENTION_ANALYSE
@ LIVES_INTENTION_ANALYSE
Definition: plugins.h:57
save_vpp_defaults
void save_vpp_defaults(_vid_playback_plugin *, char *file)
Definition: plugins.c:181
LIVES_INTENTION_UNKNOWN
@ LIVES_INTENTION_UNKNOWN
Definition: plugins.h:42
set_fps
boolean set_fps(double fps)
_vid_playback_plugin::fixed_fps_denom
int fixed_fps_denom
Definition: plugins.h:187
lives_rfx_t
Definition: plugins.h:625
adv_timing_t::ctiming_ratio
double ctiming_ratio
a ctiming_ratio of 0. indicates that none of the other values are set.
Definition: plugins.h:278
lives_param_t::max
double max
for string this is max characters
Definition: plugins.h:579
get_double_param
double get_double_param(void *value)
Definition: plugins.c:3086
free_f
void(* free_f)(void *)
Definition: machinestate.h:19
RFX_STATUS_WEED
@ RFX_STATUS_WEED
indicates an internal RFX, created from a weed instance
Definition: plugins.h:616
_vppaw::intention
int intention
Definition: plugins.h:739
close_vid_playback_plugin
void close_vid_playback_plugin(_vid_playback_plugin *)
Definition: plugins.c:998
LIVES_PARAM_SPECIAL_TYPE_FILEREAD
@ LIVES_PARAM_SPECIAL_TYPE_FILEREAD
Definition: plugins.h:528
set_double_param
void set_double_param(void *value, double)
Definition: plugins.c:3119
adv_timing_t::kdecode_time
double kdecode_time
avg time to decode inter frame
Definition: plugins.h:280
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)
lives_clip_data_t::rec_rowstrides
int * rec_rowstrides
if non-NULL, plugin can set recommended vals, pointer to single value set by host
Definition: plugins.h:351
plugin_request
LiVESList * plugin_request(const char *plugin_type, const char *plugin_name, const char *request)
Definition: plugins.c:54
LIVES_INTENTION_STREAM
@ LIVES_INTENTION_STREAM
Definition: plugins.h:46
lives_clip_data_t::priv
void * priv
Definition: plugins.h:332
lives_rfx_source_t
lives_rfx_source_t
Definition: plugins.h:512
param_copy
void param_copy(lives_param_t *dest, lives_param_t *src, boolean full)
Definition: plugins.c:3020
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
lives_param_t
Definition: plugins.h:538
close_clip_decoder
void close_clip_decoder(int clipno)
Definition: plugins.c:2382
_vid_playback_plugin::play_params
weed_plant_t ** play_params
Definition: plugins.h:194
LIVES_PARAM_UNDISPLAYABLE
@ LIVES_PARAM_UNDISPLAYABLE
Definition: plugins.h:509
lives_clip_data_t::kframe_start
int64_t kframe_start
Definition: plugins.h:371
_vid_playback_plugin::num_alpha_chans
int num_alpha_chans
Definition: plugins.h:197
lives_intentcaps_t::out_chan_types
uint64_t out_chan_types
channel types produced
Definition: plugins.h:78
check_encoder_restrictions
boolean check_encoder_restrictions(boolean get_extension, boolean user_audio, boolean save_all)
Definition: plugins.c:1557
lives_clip_data_t::kframe_dist
int64_t kframe_dist
frame number of first keyframe (usually 0)
Definition: plugins.h:372
get_mime_type
void get_mime_type(char *text, int maxlen, const lives_clip_data_t *)
Definition: plugins.c:2513
lives_clip_data_t::YUV_sampling
int YUV_sampling
plugin can change per frame
Definition: plugins.h:381
lives_rfx_t::props
uint32_t props
Definition: plugins.h:633
lives_clip_data_t::arate
int arate
Definition: plugins.h:389
lives_clip_data_t::frame_width
int frame_width
frame is the surrounding part, including any black border (>=width)
Definition: plugins.h:357
_vid_playback_plugin::alpha_chans
weed_plant_t ** alpha_chans
Definition: plugins.h:195
lives_rfx_t::num_params
int num_params
Definition: plugins.h:644
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_plugin_id_t::api_version_minor
int api_version_minor
Definition: plugins.h:87
lives_plugin_id_t::capabilities
lives_intentcaps_t * capabilities
for future use
Definition: plugins.h:91
lives_clip_data_t::achans
int achans
Definition: plugins.h:390
lives_clip_data_t::ext_malloc
malloc_f * ext_malloc
Definition: plugins.h:324
_vid_playback_plugin::audio_codec
uint32_t audio_codec
Definition: plugins.h:169
rfx_free_all
void rfx_free_all(void)
Definition: plugins.c:3010
lives_param_t::min
double min
Definition: plugins.h:578
get_int_param
int get_int_param(void *value)
Definition: plugins.c:3079
init_audio
boolean init_audio(int sample_rate, int nchans, int argc, char **argv)
newer style
adv_timing_t::buffer_flush_time
double buffer_flush_time
avg time to decode keyframe
Definition: plugins.h:281
lives_clip_data_t::frame_height
int frame_height
Definition: plugins.h:358
store_rfx_params
void ** store_rfx_params(lives_rfx_t *)
return an array of parameter values
set_palette
boolean set_palette(int palette)
host sets the palette used
lives_param_t::list
LiVESList * list
for string list (choices)
Definition: plugins.h:582
_vid_playback_plugin::fixed_fpsd
double fixed_fpsd
Definition: plugins.h:188
adv_timing_t::kframe_inter_time
double kframe_inter_time
avg time to seek from keyframe to keyframe (const) :: default == 0. (use kframe_nseek_time)
Definition: plugins.h:286
LIVES_PARAM_SPECIAL_TYPE_NONE
@ LIVES_PARAM_SPECIAL_TYPE_NONE
Definition: plugins.h:519
render_fx_get_params
void render_fx_get_params(lives_rfx_t *, const char *plugin_name, short status)
Definition: plugins.c:2707
_vppaw::spinbuttonh
LiVESWidget * spinbuttonh
Definition: plugins.h:732
LIVES_INTENTION_EFFECT_REALTIME
@ LIVES_INTENTION_EFFECT_REALTIME
Definition: plugins.h:56
lives_clip_data_t::nclips
int nclips
number of clips (titles) in container
Definition: plugins.h:336
lives_clip_data_t::par
float par
pixel aspect ratio (sample width / sample height)
Definition: plugins.h:360
decoder_plugin_move_to_first
boolean decoder_plugin_move_to_first(const char *name)
Definition: plugins.c:2072
vid_playback_plugin_exit
void vid_playback_plugin_exit(void)
Definition: plugins.c:1413
get_bool_param
boolean get_bool_param(void *value)
Definition: plugins.c:3072
LIVES_PARAM_SPECIAL_TYPE_PASSWORD
@ LIVES_PARAM_SPECIAL_TYPE_PASSWORD
Definition: plugins.h:530
LIVES_PARAM_SPECIAL_TYPE_RECT_MULTIRECT
@ LIVES_PARAM_SPECIAL_TYPE_RECT_MULTIRECT
type may be used in framedraw
Definition: plugins.h:523
lives_clip_data_t::jump_limit
int64_t jump_limit
for internal use
Definition: plugins.h:369
_vid_playback_plugin::capabilities
uint64_t capabilities
Definition: plugins.h:177
lives_rfx_t::menuitem
LiVESWidget * menuitem
the menu item which activates this effect
Definition: plugins.h:643
set_rfx_param_by_name_string
boolean set_rfx_param_by_name_string(lives_rfx_t *, const char *name, const char *value, boolean update_visual)
Definition: plugins.c:3124
lives_param_t::source
void * source
Definition: plugins.h:602
LIVES_PARAM_SPECIAL_TYPE_FONT_CHOOSER
@ LIVES_PARAM_SPECIAL_TYPE_FONT_CHOOSER
Definition: plugins.h:531
LIVES_INTENTION_UPLOAD
@ LIVES_INTENTION_UPLOAD
Definition: plugins.h:54
palette
_palette * palette
interface colour settings
Definition: main.c:101
adv_timing_t::kframe_nseek_time
double kframe_nseek_time
time to flush buffers after a seek
Definition: plugins.h:282
_encoder
Definition: plugins.h:233
lives_clip_data_t::ext_realloc
realloc_f * ext_realloc
Definition: plugins.h:329
lives_rfx_status_t
lives_rfx_status_t
Definition: plugins.h:611
lives_clip_data_t::sync_hint
int sync_hint
Definition: plugins.h:407
open_decoder_plugin
lives_decoder_sys_t * open_decoder_plugin(const char *plname)
Definition: plugins.c:2438
LIVES_INTENTION_CONVERT
@ LIVES_INTENTION_CONVERT
Definition: plugins.h:58
lives_fx_candidate_t::delegate
int delegate
offset in list of current delegate
Definition: plugins.h:688
lives_rfx_t::flags
uint32_t flags
Definition: plugins.h:645
MAX_PARAM_WIDGETS
#define MAX_PARAM_WIDGETS
max number of display widgets per parameter (currently 7 for transition param with mergealign - spin ...
Definition: plugins.h:488
lives_param_t::label
char * label
Definition: plugins.h:543
LIVES_PARAM_SPECIAL_TYPE_FILEWRITE
@ LIVES_PARAM_SPECIAL_TYPE_FILEWRITE
Definition: plugins.h:529
lives_intentcaps_t::intent
uint64_t intent
Definition: plugins.h:76
sort_rfx_array
void sort_rfx_array(lives_rfx_t *in_array, int num_elements)
Definition: plugins.c:2909
rip_audio_cleanup
void rip_audio_cleanup(const lives_clip_data_t *)
lives_rfx_t::gui_strings
LiVESList * gui_strings
rfxscript for constructing the params, param window and onchange triggers
Definition: plugins.h:654
lives_clip_data_t::YUV_clamping
int YUV_clamping
Definition: plugins.h:382
lives_fx_candidate_t::rfx
lives_rfx_t * rfx
pointer to rfx for current delegate (or NULL)
Definition: plugins.h:690
lives_rfx_t::needs_reinit
int needs_reinit
Definition: plugins.h:657
AUDIO_CODEC_MAX
#define AUDIO_CODEC_MAX
Definition: plugins.h:250
weed_layer_t
weed_plant_t weed_layer_t
Definition: colourspace.h:71
get_frame
boolean get_frame(const lives_clip_data_t *, int64_t frame, int *rowstrides, int height, void **pixel_data)
frame starts at 0
render_audio_frame_float
boolean render_audio_frame_float(float **audio, int nsamps)
memmove_f
void *(* memmove_f)(void *, const void *, size_t)
Definition: machinestate.h:24
lives_decoder_t::decoder
const lives_decoder_sys_t * decoder
Definition: plugins.h:450
_vid_playback_plugin::YUV_clamping
int YUV_clamping
Definition: plugins.h:183
_vppaw::spinbuttonw
LiVESWidget * spinbuttonw
Definition: plugins.h:733
lives_clip_data_t::ext_memset
memset_f * ext_memset
Definition: plugins.h:327
lives_clip_data_t::seek_flag
int seek_flag
plugin can change per frame
Definition: plugins.h:397
_vid_playback_plugin::fwidth
int fwidth
Definition: plugins.h:179
lives_fx_candidate_t
Definition: plugins.h:686
lives_clip_data_t
Definition: plugins.h:319
lives_colRGB48_t
Definition: main.h:316
lives_clip_data_t::YUV_subspace
int YUV_subspace
Definition: plugins.h:383
plugin_request_with_blanks
LiVESList * plugin_request_with_blanks(const char *plugin_type, const char *plugin_name, const char *request)
Definition: plugins.c:47
get_colRGBA32_param
void get_colRGBA32_param(void *value, lives_colRGBA64_t *rgba)
Definition: plugins.c:3098
lives_param_t::hidden
uint32_t hidden
Definition: plugins.h:546
lives_clip_data_t::ext_free
free_f * ext_free
Definition: plugins.h:325
RFX_STATUS_BUILTIN
@ RFX_STATUS_BUILTIN
factory presets
Definition: plugins.h:612
lives_clip_data_t::fwd_seek_time
int64_t fwd_seek_time
Definition: plugins.h:368
_vid_playback_plugin::extra_argv
char ** extra_argv
Definition: plugins.h:191
check_rfx_for_lives
boolean check_rfx_for_lives(lives_rfx_t *)
Definition: plugins.c:2661
lives_param_t::name
char * name
Definition: plugins.h:540
lives_fx_candidate_t::func
ulong func
menuitem activation function for current delegate
Definition: plugins.h:689
_vid_playback_plugin::handle
void * handle
Definition: plugins.h:126
lives_clip_data_t::plugin_id
lives_plugin_id_t plugin_id
Definition: plugins.h:322
LIVES_PARAM_UNKNOWN
@ LIVES_PARAM_UNKNOWN
Definition: plugins.h:501
_vppaw
video playback plugin window - fixed part
Definition: plugins.h:729
lives_clip_data_t::ainterleaf
boolean ainterleaf
Definition: plugins.h:393
rfx_params_free
void rfx_params_free(lives_rfx_t *)
Definition: plugins.c:2973
RFX_STATUS_INTERNAL
@ RFX_STATUS_INTERNAL
used for parsing RFX scraps generated internally (will possiblky replace SCRAP)
Definition: plugins.h:618
RFX_STATUS_SCRAP
@ RFX_STATUS_SCRAP
used for parsing RFX scraps from external apps
Definition: plugins.h:617
lives_decoder_sys_t::handle
void * handle
may be shared between several instances
Definition: plugins.h:415
adv_timing_t::kframe_kframe_time
double kframe_kframe_time
avg extra time per iframe to arrive at following kframe
Definition: plugins.h:285
LIVES_INTENTION_PLAY
@ LIVES_INTENTION_PLAY
Definition: plugins.h:45
RFX_STATUS_TEST
@ RFX_STATUS_TEST
test effects in the advanced menu
Definition: plugins.h:614
find_rfx_param_by_name
lives_param_t * find_rfx_param_by_name(lives_rfx_t *, const char *name)
Definition: plugins.c:3189
adv_timing_t::kframe_delay_time
double kframe_delay_time
avg time to seek to following keyframe (const)
Definition: plugins.h:283
lives_param_t::source_type
lives_rfx_source_t source_type
Definition: plugins.h:604
LIVES_INTENTION_EFFECT
@ LIVES_INTENTION_EFFECT
Definition: plugins.h:55
lives_rfx_t::source_type
lives_rfx_source_t source_type
Definition: plugins.h:650
lives_colRGBA64_t
Definition: main.h:322
lives_param_t::changed
boolean changed
Definition: plugins.h:597
lives_plugin_id_t::pl_version_major
int pl_version_major
version of plugin
Definition: plugins.h:89
adv_timing_t::idecode_time
double idecode_time
Definition: plugins.h:279
_vppaw::dialog
LiVESWidget * dialog
Definition: plugins.h:731
lives_intentcaps_t::intents
uint64_t intents
Definition: plugins.h:79
set_yuv_palette_clamping
boolean set_yuv_palette_clamping(int clamping_type)
host sets the palette sampling (optional)
LIVES_RFX_SOURCE_WEED
@ LIVES_RFX_SOURCE_WEED
Definition: plugins.h:514
_encoder::capabilities
uint32_t capabilities
Definition: plugins.h:255
lives_clip_data_t::fps
float fps
Definition: plugins.h:364
set_bool_param
void set_bool_param(void *value, boolean)
Definition: plugins.c:3103
clone_decoder
lives_decoder_t * clone_decoder(int fileno)
Definition: plugins.c:2181
lives_clip_data_t::ext_calloc
calloc_f * ext_calloc
Definition: plugins.h:330
_vppaw::keep_rfx
boolean keep_rfx
Definition: plugins.h:738
lives_param_t::step_size
double step_size
Definition: plugins.h:562
get_extension
char * get_extension(const char *filename)
Definition: utils.c:3217
LIVES_INTENTION_TRANSCODE
@ LIVES_INTENTION_TRANSCODE
Definition: plugins.h:47
lives_decoder_t::refs
int refs
Definition: plugins.h:452
LIVES_INTENTION_DOWNLOAD
@ LIVES_INTENTION_DOWNLOAD
Definition: plugins.h:53
load_decoders
LiVESList * load_decoders(void)
Definition: plugins.c:2092
set_int_param
void set_int_param(void *value, int)
Definition: plugins.c:3114
_vid_playback_plugin::YUV_subspace
int YUV_subspace
Definition: plugins.h:184
lives_clip_data_t::video_start_time
float video_start_time
Definition: plugins.h:362
lives_param_t::value
void * value
current value(s)
Definition: plugins.h:576
lives_clip_data_t::frame_gamma
int frame_gamma
values WEED_GAMMA_UNKNOWN (0), WEED_GAMMA_SRGB (1), WEED_GAMMA_LINEAR (2)
Definition: plugins.h:384
rfx_clean_exe
void rfx_clean_exe(lives_rfx_t *rfx)
Definition: plugins.c:3676
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:2286
lives_plugin_id_t
Definition: plugins.h:83
lives_clip_data_t::ext_memcpy
memcpy_f * ext_memcpy
Definition: plugins.h:326
find_rfx_plugin_by_name
int find_rfx_plugin_by_name(const char *name, short status)
Definition: plugins.c:3177
load_vpp_defaults
void load_vpp_defaults(_vid_playback_plugin *, char *file)
Definition: plugins.c:265
array_to_string_list
LiVESList * array_to_string_list(char **array, int offset, int len)
Definition: plugins.c:2883
LIVES_RFX_SOURCE_NEWCLIP
@ LIVES_RFX_SOURCE_NEWCLIP
Definition: plugins.h:515
lives_param_t::wrap
boolean wrap
Definition: plugins.h:571
get_rfx_param_by_name_string
boolean get_rfx_param_by_name_string(lives_rfx_t *rfx, const char *name, char **return_value)
Definition: plugins.c:3141
lives_clip_data_t::asigned
boolean asigned
Definition: plugins.h:392
lives_rfx_t::source
void * source
points to the source (e.g. a weed_plant_t)
Definition: plugins.h:651
get_best_audio
int64_t get_best_audio(_vid_playback_plugin *)
Definition: plugins.c:1441
LIVES_INTENTION_RENDER
@ LIVES_INTENTION_RENDER
Definition: plugins.h:48
play_frame
boolean play_frame(weed_layer_t *frame, int64_t tc, weed_layer_t *ret)
updated version of render_frame: input is a weed_layer and timecode, if ret is non NULL,...
lives_param_t::change_blocked
boolean change_blocked
Definition: plugins.h:600
filter_encoders_by_img_ext
LiVESList * filter_encoders_by_img_ext(LiVESList *encoders, const char *img_ext)
Definition: plugins.c:2006
get_plugin_list
LiVESList * get_plugin_list(const char *plugin_type, boolean allow_nonex, const char *plugdir, const char *filter_ext)
Definition: plugins.c:115
LIVES_PARAM_SPECIAL_TYPE_ASPECT_RATIO
@ LIVES_PARAM_SPECIAL_TYPE_ASPECT_RATIO
Definition: plugins.h:535
ulong
#define ulong
Definition: main.h:178
_vid_playback_plugin::YUV_sampling
int YUV_sampling
Definition: plugins.h:182
set_rfx_params_from_store
void set_rfx_params_from_store(lives_rfx_t *rfx, void **store)
lives_param_t::def
void * def
default values
Definition: plugins.h:581
LIVES_PARAM_COLRGBA32
@ LIVES_PARAM_COLRGBA32
Definition: plugins.h:507
anames
const char *const anames[AUDIO_CODEC_MAX]
Definition: plugins.c:21
LIVES_PARAM_BOOL
@ LIVES_PARAM_BOOL
Definition: plugins.h:503
set_yuv_palette_sampling
boolean set_yuv_palette_sampling(int sampling_type)
host sets the palette sampling (optional)
get_colRGB24_param
void get_colRGB24_param(void *value, lives_colRGB48_t *rgb)
Definition: plugins.c:3093
boolean
int boolean
Definition: videoplugin.h:54
lives_param_t::group
int group
Definition: plugins.h:572
render_frame
boolean render_frame(int hsize, int vsize, int64_t timecode, void **pixel_data, void **return_data, void **play_params)
display one frame, adding effects if you like, and resizing it to screen size if possible (VPP_CAN_RE...
close_decoder_plugin
void close_decoder_plugin(lives_decoder_t *)
Definition: plugins.c:2361
RFX_STATUS_COPY
@ RFX_STATUS_COPY
indicates a copy operation to test
Definition: plugins.h:621
lives_clip_data_t::max_decode_fps
float max_decode_fps
optional info ////////////////
Definition: plugins.h:367
lives_plugin_id_t::pl_version_minor
int pl_version_minor
Definition: plugins.h:90
lives_param_t::use_mnemonic
boolean use_mnemonic
Definition: plugins.h:545
rfx_free
void rfx_free(lives_rfx_t *)
Definition: plugins.c:2987
LIVES_PARAM_STRING_LIST
@ LIVES_PARAM_STRING_LIST
Definition: plugins.h:506
plugin_request_by_line
LiVESList * plugin_request_by_line(const char *plugin_type, const char *plugin_name, const char *request)
Definition: plugins.c:59
_vppaw::rfx
lives_rfx_t * rfx
Definition: plugins.h:737
lives_clip_data_t::ext_memmove
memmove_f * ext_memmove
Definition: plugins.h:328
lives_param_t::type
lives_param_type_t type
Definition: plugins.h:573
memcpy_f
void *(* memcpy_f)(void *, const void *, size_t)
Definition: machinestate.h:21
get_capabilities
capability * get_capabilities(void)
Definition: main.c:3023
lives_intentcaps_t
Definition: plugins.h:75
lives_rfx_t::min_frames
int min_frames
for Weed, 1
Definition: plugins.h:629
unload_decoder_plugins
void unload_decoder_plugins(void)
Definition: plugins.c:2411
lives_clip_data_t::nframes
int64_t nframes
Definition: plugins.h:349
lives_clip_data_t::asamps
int asamps
Definition: plugins.h:391
rfx_copy
void rfx_copy(lives_rfx_t *dest, lives_rfx_t *src, boolean full)
Definition: plugins.c:2931
adv_timing_t::kframe_extra_time
double kframe_extra_time
extra time to seek from kframe to kframe per iframe between them :: default == kframe_delay_time
Definition: plugins.h:287
_vid_playback_plugin::num_play_params
int num_play_params
Definition: plugins.h:196
RFX_STATUS_CUSTOM
@ RFX_STATUS_CUSTOM
custom effects in the custom menu
Definition: plugins.h:613
lives_param_t::desc
char * desc
Definition: plugins.h:541
lives_param_t::flags
int flags
Definition: plugins.h:544