33#ifndef __WEED_EFFECTS_H__
34#define __WEED_EFFECTS_H__
44#define WEED_FILTER_API_VERSION 200
45#define WEED_FILTER_API_VERSION 200
48#define WEED_PLANT_PLUGIN_INFO 1
49#define WEED_PLANT_FILTER_CLASS 2
50#define WEED_PLANT_FILTER_INSTANCE 3
51#define WEED_PLANT_CHANNEL_TEMPLATE 4
52#define WEED_PLANT_PARAMETER_TEMPLATE 5
53#define WEED_PLANT_CHANNEL 6
54#define WEED_PLANT_PARAMETER 7
55#define WEED_PLANT_GUI 8
56#define WEED_PLANT_HOST_INFO 9
59#define WEED_PARAM_UNSPECIFIED 0
60#define WEED_PARAM_INTEGER 1
61#define WEED_PARAM_FLOAT 2
62#define WEED_PARAM_TEXT 3
63#define WEED_PARAM_SWITCH 4
64#define WEED_PARAM_COLOR 5
71 int32_t red, green, blue,
alpha;
83#define WEED_COLORSPACE_RGB 1
84#define WEED_COLORSPACE_RGBA 2
88#define WEED_HOST_SUPPORTS_LINEAR_GAMMA (1 << 0)
89#define WEED_HOST_SUPPORTS_PREMULTIPLIED_ALPHA (1 << 1)
92#define WEED_FILTER_NON_REALTIME (1 << 0)
93#define WEED_FILTER_IS_CONVERTER (1 << 1)
94#define WEED_FILTER_HINT_STATELESS (1 << 2)
95#define WEED_FILTER_PREF_LINEAR_GAMMA (1 << 3)
96#define WEED_FILTER_PREF_PREMULTIPLIED_ALPHA (1 << 4)
97#define WEED_FILTER_HINT_PROCESS_LAST (1 << 5)
98#define WEED_FILTER_HINT_MAY_THREAD (1 << 6)
99#define WEED_FILTER_HINT_MAYBE_UNSTABLE (1 << 7)
100#define WEED_FILTER_CHANNEL_SIZES_MAY_VARY (1 << 8)
101#define WEED_FILTER_PALETTES_MAY_VARY (1 << 9)
104#define WEED_FILTER_CHANNEL_LAYOUTS_MAY_VARY (1 << 15)
105#define WEED_FILTER_AUDIO_RATES_MAY_VARY (1 << 16)
108#define WEED_CHANNEL_REINIT_ON_SIZE_CHANGE (1 << 0)
109#define WEED_CHANNEL_REINIT_ON_PALETTE_CHANGE (1 << 1)
110#define WEED_CHANNEL_REINIT_ON_ROWSTRIDES_CHANGE (1 << 2)
111#define WEED_CHANNEL_OPTIONAL (1 << 3)
112#define WEED_CHANNEL_CAN_DO_INPLACE (1 << 4)
113#define WEED_CHANNEL_NEEDS_NATURAL_SIZE (1 << 5)
116#define WEED_CHANNEL_REINIT_ON_RATE_CHANGE WEED_CHANNEL_REINIT_ON_SIZE_CHANGE
117#define WEED_CHANNEL_REINIT_ON_LAYOUT_CHANGE WEED_CHANNEL_REINIT_ON_PALETTE_CHANGE
120#define WEED_PARAMETER_REINIT_ON_VALUE_CHANGE (1 << 0)
121#define WEED_PARAMETER_VARIABLE_SIZE (1 << 1)
122#define WEED_PARAMETER_VALUE_PER_CHANNEL (1 << 2)
123#define WEED_PARAMETER_VALUE_IRRELEVANT (1 << 3)
126#define WEED_GUI_REINIT_ON_VALUE_CHANGE (1 << 0)
127#define WEED_GUI_CHOICES_SET_ON_INIT (1 << 1)
130#define WEED_INSTANCE_UPDATE_GUI_ONLY (1 << 0)
133#define WEED_ERROR_PLUGIN_INVALID 64
134#define WEED_ERROR_FILTER_INVALID 65
135#define WEED_ERROR_TOO_MANY_INSTANCES 66
136#define WEED_ERROR_REINIT_NEEDED 67
137#define WEED_ERROR_NOT_READY 68
139#define WEED_VERBOSITY_SILENT -2
140#define WEED_VERBOSITY_CRITICAL -1
141#define WEED_VERBOSITY_ERROR 0
142#define WEED_VERBOSITY_WARN 1
143#define WEED_VERBOSITY_INFO 2
144#define WEED_VERBOSITY_DEBUG 3
153 int32_t plugin_weed_min_api_version,
154 int32_t plugin_weed_max_api_version,
155 int32_t plugin_filter_min_api_version,
156 int32_t plugin_filter_max_api_version);
173#define WEED_LEAF_FILTERS "filters"
174#define WEED_LEAF_HOST_INFO "host_info"
175#define WEED_LEAF_VERSION "version"
178#define WEED_LEAF_PACKAGE_NAME "package_name"
179#define WEED_LEAF_MAINTAINER "maintainer"
180#define WEED_LEAF_URL "url"
181#define WEED_LEAF_DESCRIPTION "description"
182#define WEED_LEAF_ERROR_NUMBER "error_number"
183#define WEED_LEAF_ERROR_TEXT "error_text"
187#define WEED_LEAF_FILTER_API_VERSION "filter_api_version"
188#define WEED_LEAF_GET_FUNC "weed_leaf_get_func"
189#define WEED_LEAF_SET_FUNC "weed_leaf_set_func"
190#define WEED_LEAF_DELETE_FUNC "weed_leaf_delete_func"
191#define WEED_PLANT_NEW_FUNC "weed_plant_new_func"
192#define WEED_PLANT_FREE_FUNC "weed_plant_free_func"
193#define WEED_PLANT_LIST_LEAVES_FUNC "weed_plant_list_leaves_func"
194#define WEED_LEAF_NUM_ELEMENTS_FUNC "weed_leaf_num_elements_func"
195#define WEED_LEAF_ELEMENT_SIZE_FUNC "weed_leaf_element_size_func"
196#define WEED_LEAF_SEED_TYPE_FUNC "weed_leaf_seed_type_func"
197#define WEED_LEAF_GET_FLAGS_FUNC "weed_leaf_get_flags_func"
198#define WEED_LEAF_MALLOC_FUNC "weed_malloc_func"
199#define WEED_LEAF_FREE_FUNC "weed_free_func"
200#define WEED_LEAF_MEMSET_FUNC "weed_memset_func"
201#define WEED_LEAF_MEMCPY_FUNC "weed_memcpy_func"
202#define WEED_LEAF_MEMMOVE_FUNC "weed_memmove_func"
203#define WEED_LEAF_CALLOC_FUNC "weed_calloc_func"
204#define WEED_LEAF_REALLOC_FUNC "weed_realloc_func"
207#define WEED_LEAF_HOST_NAME "host_name"
208#define WEED_LEAF_HOST_VERSION "host_version"
209#define WEED_LEAF_FLAGS "flags"
210#define WEED_LEAF_VERBOSITY "verbosity"
211#define WEED_LEAF_LAYOUT_SCHEMES "layout_schemes"
212#define WEED_LEAF_PLUGIN_INFO "plugin_info"
216#define WEED_LEAF_NAME "name"
217#define WEED_LEAF_AUTHOR "author"
221#define WEED_LEAF_PALETTE_LIST "palette_list"
224#define WEED_LEAF_INIT_FUNC "init_func"
225#define WEED_LEAF_DEINIT_FUNC "deinit_func"
226#define WEED_LEAF_PROCESS_FUNC "process_func"
227#define WEED_LEAF_IN_PARAMETER_TEMPLATES "in_param_tmpls"
228#define WEED_LEAF_OUT_PARAMETER_TEMPLATES "out_param_tmpls"
229#define WEED_LEAF_IN_CHANNEL_TEMPLATES "in_chan_tmpls"
230#define WEED_LEAF_OUT_CHANNEL_TEMPLATES "out_chan_tmpls"
231#define WEED_LEAF_GUI "gui"
232#define WEED_LEAF_EXTRA_AUTHORS "extra_authors"
233#define WEED_LEAF_MICRO_VERSION "micro_version"
234#define WEED_LEAF_ICON "icon"
235#define WEED_LEAF_LICENSE "license"
236#define WEED_LEAF_COPYRIGHT "copyright"
239#define WEED_LEAF_PREFERRED_FPS "target_fps"
240#define WEED_LEAF_HSTEP "hstep"
241#define WEED_LEAF_VSTEP "vstep"
242#define WEED_LEAF_ALIGNMENT_HINT "alignment_hint"
245#define WEED_LEAF_WIDTH "width"
246#define WEED_LEAF_HEIGHT "height"
247#define WEED_LEAF_MAXWIDTH "maxwidth"
248#define WEED_LEAF_MAXHEIGHT "maxheight"
249#define WEED_LEAF_MINWIDTH "minwidth"
250#define WEED_LEAF_MINHEIGHT "minheight"
251#define WEED_LEAF_YUV_CLAMPING "YUV_clamping"
252#define WEED_LEAF_YUV_SAMPLING "YUV_sampling"
253#define WEED_LEAF_YUV_SUBSPACE "YUV_subspace"
254#define WEED_LEAF_NATURAL_SIZE "natural_size"
255#define WEED_LEAF_INNER_SIZE "inner_size"
259#define WEED_LEAF_AUDIO_RATE "audio_rate"
260#define WEED_LEAF_MAX_AUDIO_CHANNELS "max_audio_chans"
261#define WEED_LEAF_MIN_AUDIO_LENGTH "min_audio_len"
262#define WEED_LEAF_MAX_AUDIO_LENGTH "max_audio_len"
263#define WEED_LEAF_CHANNEL_LAYOUTS "channel_layouts"
266#ifndef WEED_CHANNEL_LAYOUT_TYPE
267#define WEED_CHANNEL_LAYOUT_TYPE "default"
268#define WEED_CH_FRONT_LEFT 0x00000001
269#define WEED_CH_FRONT_RIGHT 0x00000002
270#define WEED_CH_FRONT_CENTER 0x00000004
271#define WEED_CH_LAYOUT_MONO (WEED_CH_FRONT_CENTER)
272#define WEED_CH_LAYOUT_STEREO (WEED_CH_FRONT_LEFT | WEED_CH_FRONT_RIGHT)
273#define WEED_CH_LAYOUT_DEFAULT_1 WEED_CH_LAYOUT_MONO
274#define WEED_CH_LAYOUT_DEFAULT_2 WEED_CH_LAYOUT_STEREO
275#define WEED_CH_LAYOUTS_DEFAULT (WEED_CH_LAYOUT_DEFAULT_2, WEED_CH_LAYOUT_DEFAULT_1}
276#define WEED_CH_LAYOUTS_DEFAULT_MIN2 (WEED_CH_LAYOUT_DEFAULT_2}
280#define WEED_LEAF_LAYOUT_SCHEME "layout_scheme"
285#define WEED_LEAF_FILTER_CLASS "filter_class"
286#define WEED_LEAF_IN_PARAMETERS "in_parameters"
287#define WEED_LEAF_OUT_PARAMETERS "out_parameters"
288#define WEED_LEAF_IN_CHANNELS "in_channels"
289#define WEED_LEAF_OUT_CHANNELS "out_channels"
291#define WEED_LEAF_FPS "fps"
292#define WEED_LEAF_TARGET_FPS "target_fps"
295#define WEED_LEAF_EASE_IN_FRAMES "ease_in_frames"
296#define WEED_LEAF_EASE_OUT_FRAMES "ease_out_frames"
298#define WEED_LEAF_EASE_IN "ease_in"
299#define WEED_LEAF_EASE_OUT "ease_out"
307#define WEED_LEAF_IS_AUDIO "is_audio"
312#define WEED_LEAF_MAX_REPEATS "max_repeats"
318#define WEED_LEAF_TEMPLATE "template"
324#define WEED_LEAF_PIXEL_DATA "pixel_data"
325#define WEED_LEAF_CURRENT_PALETTE "current_palette"
326#define WEED_LEAF_ROWSTRIDES "rowstrides"
329#define WEED_LEAF_AUDIO_DATA "audio_data"
330#define WEED_LEAF_AUDIO_DATA_LENGTH "audio_data_len"
331#define WEED_LEAF_AUDIO_RATE "audio_rate"
332#define WEED_LEAF_AUDIO_CHANNELS "audio_channels"
336#define WEED_LEAF_OFFSET "offset"
337#define WEED_LEAF_DISABLED "disabled"
343#define WEED_LEAF_PIXEL_ASPECT_RATIO "par"
344#define WEED_LEAF_GAMMA_TYPE "gamma_type"
345#define WEED_LEAF_ALPHA_PREMULTIPLIED "alpha_premult"
351#define WEED_LEAF_DEFAULT "default"
352#define WEED_LEAF_MIN "min"
353#define WEED_LEAF_MAX "max"
354#define WEED_LEAF_PARAM_TYPE "param_type"
360#define WEED_LEAF_NEW_DEFAULT "new_default"
361#define WEED_LEAF_GROUP "group"
362#define WEED_LEAF_COLORSPACE "colorspace"
363#define WEED_LEAF_IS_TRANSITION "is_transition"
364#define WEED_LEAF_IS_VOLUME_MASTER "is_vol_master"
367#define WEED_LEAF_WRAP "wrap"
368#define WEED_LEAF_MAXCHARS "maxchars"
369#define WEED_LEAF_LABEL "label"
370#define WEED_LEAF_DECIMALS "decimals"
371#define WEED_LEAF_STEP_SIZE "step_size"
372#define WEED_LEAF_USE_MNEMONIC "use_mnemonic"
373#define WEED_LEAF_CHOICES "choices"
374#define WEED_LEAF_CHOICES_LANGUAGES "choices_langs"
375#define WEED_LEAF_HIDDEN "hidden"
376#define WEED_LEAF_COPY_VALUE_TO "copy_value_to"
380#define WEED_LEAF_VALUE "value"
383#define WEED_LEAF_CHOICES_LANGUAGE "choices_lang"
Definition: weed-effects.h:74
double blue
Definition: weed-effects.h:75
Definition: weed-effects.h:66
int32_t blue
Definition: weed-effects.h:67
Definition: weed-effects.h:78
double alpha
Definition: weed-effects.h:79
Definition: weed-effects.h:70
int32_t alpha
Definition: weed-effects.h:71
void(* weed_display_f)(weed_plant_t *parameter)
Definition: weed-effects.h:168
int64_t weed_timecode_t
Definition: weed-effects.h:146
weed_error_t(* weed_process_f)(weed_plant_t *filter_instance, weed_timecode_t timestamp)
Definition: weed-effects.h:163
void(* weed_desetup_f)(void)
Definition: weed-effects.h:162
weed_error_t(* weed_init_f)(weed_plant_t *filter_instance)
Definition: weed-effects.h:164
weed_error_t(* weed_deinit_f)(weed_plant_t *filter_instance)
Definition: weed-effects.h:165
weed_plant_t *(* weed_bootstrap_f)(weed_default_getter_f *, int32_t plugin_weed_min_api_version, int32_t plugin_weed_max_api_version, int32_t plugin_filter_min_api_version, int32_t plugin_filter_max_api_version)
Definition: weed-effects.h:152
weed_error_t(* weed_interpolate_f)(weed_plant_t **in_values, weed_plant_t *out_value)
Definition: weed-effects.h:169
weed_error_t(* weed_default_getter_f)(weed_plant_t *plant, const char *key, void *value)
Definition: weed-effects.h:149
int32_t weed_error_t
Definition: weed.h:70
weed_leaf_t weed_plant_t
Definition: weed.h:125