================================
------------EFFECTS-------------
================================
==========
Kdenlive uses MLT for all video/audio effects/filters.
For filters that provide metadata the GUI can be generated automatically.
If the generated GUI is not sufficient a custom one can be build using a XML
file describing the effect and its parameters.
==========
==========
The basic structure of a XML filter description:
--------------------------------------------------------------------------------------
01
02
03 Filter name
04 Filter the image
05 Anon
06
07 Amount of filtering
08
09
10 Enable
11
15
--------------------------------------------------------------------------------------
Line 1:
- required to make strings used in the effect translatable
Line 2:
- tag: MLT ("mlt_service") name of the effect
- id: internal kdenlive id, can be anything, but must be unique for each effect
- type: (default = "video") whether effect modifies video or audio (use "audio" then)
- unique: (default = "0") this effect cannot be attached multiple times to one clip (speed, fades, ...)
- version: (optional) minimum version of the effect required to be available (works only if the MLT filter provides the necessary metadata)
Line 3:
- name of the effect that will appear to the user
Line 4:
- Short description of the effect to be shown in the effect list
- Additionally a part can be added inside. It's content will be available in the effect stack (see frei0r_lightgraffiti.xml for an example):
- supports HTML formatting (requires the use of CDATA)
Line 5:
- name of the author(s) of the filter (not of the XML file ;))
The rest:
- list of effect parameters:
- tag "name": visible name of the parameter (depending on the GUI this parameter uses)
- tag "comment": (optional) description of the parameter (support HTML formatting) (not yet supported by all widgets)
- attribute "name": MLT filter parameter name
- attribute "paramprefix": a string to be prepended to the parameter value before passing it to MLT
- attribute "default": initial value, format depends on parameter type
- attribute "type": widget (GUI) to use
- "fixed":
- sets a (MLT filter) parameter, but does not expose it to the user (no GUI)
- "constant":
- number
- represented by a slider
- additional parameter attributes:
- "factor": (optional) values coming from MLT will be multiplied with factor
- "offset": (optional) will be added to values coming from MLT after "factor" is applied
- "min": smallest value possible (after multiplying with "factor")
- "max": largest value possible (after multiplying with "factor")
- "suffix": (optional) displayed unit of the values
- "double":
- synonym for "constant"
- "bool":
- true/false
- represented by a checkbox
- "list":
- multiple choice
- represented by a drop-down menu
- additional parameter attribute:
- "paramlist": list of possible values separated by semicolon (no whitespaces!)
- addtional tag:
- "paramlistdisplay": (optional) list of names to use for the values separated by comma
- "position":
- time stored as frame number
- represented by a slider
- "color":
- color value, similar to representation HTML ("#rrggbb"/"#aarrggbb" or "0xrrggbbaa")
- represented by a button opening the KDE color dialog + a color picker button
- additional attributes:
- "alpha": (default = "0") use to enable alpha support
- "keyframe":
- keyframable number
- keyframes are opt-in (only one keyframe by default -> should be prefered over "constant" whenever possible)
- works with MLT filters that utilize start/end values
- same attributes as "constant"
- additional attributes:
- "intimeline": (default = "0") parameter to preselect for editing in the timeline (only one parameter can have "1")
- "widget": (optional) GUI based on the standard keyframe GUI (possible values: "corners")
- "simplekeyframe":
- works with MLT filters that use mlt_geometry for keyframe support (includes all frei0r filters)
- same attributes as "keyframe"
- "geometry":
- a rectangle: postion + dimension + additional value
- works with MLT filters using mlt_geometry
- the rect can be edited on the project monitor
- additional attributes:
- "fixed": (default = "0") use to disable keyframe support
- "showrotation": (default = "0") use to enable support to 3 axis rotation
- "opacity": (default = "true") use to disable support of the opacity setting
- "url":
- url/path
- represented by button to open "file open" dialog
- "wipe":
- special GUI for the wipe transition makes it possible to select a direction of a slide
- "addedgeometry":
- parameter linked to a "geometry" parameter
- "curve":
- cubic curve editor for the frei0r color curves filter (old version)
- "bezier_spline":
- cubic Bézier spline editor for the frei0r color curves filter (new version, might be reused for other filters)
- "roto-spline":
- GUI for the rotoscoping filter (spline on the monitor)
- "keywords":
- Text entry with a selection of possible keywords to be inserted in the text.
- additional tags:
- "keywords": list of possible keyword values separated by semicolon
- "keywordsdisplay": list of names to use for the values separated by semicolon
- "fontfamily":
- Font typeface entry
==========
==========
Effects can be blacklisted in kdenlive/data/blacklisted_effects.txt
All effects with a custom XML GUI need to be blacklisted.
==========
==========
Effects can be assigned to an effect category in kdenlive/data/kdenliveeffectscategory.rc.
==========
==========
Kdenlive parses the effect folder at each startup, so that if you have an XML file describing a new effect,
just copy it to your ~/.kde/share/apps/kdenlive/effects/ folder and restart Kdenlive to enable the new effect.
==========