================================ ------------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. ==========