<compositors>

    <!-- COMPOSITORS -->
    <compositortransition mlt_service="composite">
        <name>##opacity</name>
        <property name="force_track" args="editor=no_editor">0</property>
        <property name="geometry" args="editor=slider range_in=0,100 range_out=0,100 exptype=opacity_in_geom_kf_single displayname=Opacity">0/0:SCREENSIZE:100</property>
    </compositortransition>
    <compositortransition mlt_service="composite">
        <name>##pict_in_pict</name>
        <property name="force_track" args="editor=no_editor">0</property>
        <property name="geometry" args="editor=geometry_editor range_in=0,100 range_out=0,100 exptype=geom_opac_kf displayname=Opacity">"0=0/0:SCREENSIZE:100"</property>
        <property name="aligned" args="editor=no_editor">0</property>
        <property name="distort" args="editor=no_editor">0</property>
        <property name="fill" args="editor=no_editor">1</property>        
        <property name="operator" args="editor=no_editor exptype=not_parsed_transition">over</property>
        <property name="deinterlace" args="editor=no_editor">0</property>
        <property name="progressive" args="editor=no_editor">1</property>
        <extraeditor name="composite_properties"></extraeditor> 
    </compositortransition>
    <compositortransition mlt_service="affine">
        <name>##affine</name>
        <property name="force_track" args="editor=no_editor">0</property>
        <property name="rotate_x" args="range_in=-180,180 range_out=-180,180 editor=keyframe_editor_clip exptype=keyframe_hcs_transition displayname=Rotate!X">0=0.0</property>
        <property name="rotate_y" args="range_in=-180,180 range_out=-180,180 editor=keyframe_editor_clip exptype=keyframe_hcs_transition displayname=Rotate!Y">0=0.0</property>
        <property name="rotate_z" args="range_in=-180,180 range_out=-180,180 editor=keyframe_editor_clip exptype=keyframe_hcs_transition displayname=Rotate!Z">0=0.0</property>
        <property name="geometry" args="editor=geometry_editor range_in=0,100 range_out=0,100 exptype=geom_opac_kf displayname=Opacity">"0=0/0:SCREENSIZE:100"</property>
        <property name="shear_x" args="editor=keyframe_editor_clip exptype=keyframe_hcs_transition range_in=0,360 range_out=0,360 displayname=Shear!X">0=0.0</property>
        <property name="shear_y" args="editor=keyframe_editor_clip exptype=keyframe_hcs_transition range_in=0,360 range_out=0,360 displayname=Shear!Y">0=0.0</property>
        <property name="distort" args="editor=booleancheckbox displayname=Distort">0</property>
    </compositortransition>
    <compositortransition mlt_service="composite">
        <name>##opacity_kf</name>
        <property name="force_track" args="editor=no_editor">0</property>
        <property name="geometry" args="editor=keyframe_editor_clip_fade range_in=0,100 range_out=0,100 exptype=opacity_in_geom_kf displayname=Opacity">0=0/0:SCREENSIZE:100</property>
        <property name="aligned" args="editor=no_editor">0</property>
        <property name="distort" args="editor=no_editor">0</property>
        <property name="fill" args="editor=no_editor">1</property>        
        <property name="operator" args="editor=no_editor exptype=not_parsed_transition">over</property>
        <property name="deinterlace" args="editor=no_editor">0</property>
        <property name="progressive" args="editor=no_editor">1</property>
        <extraeditor name="composite_properties"></extraeditor>
    </compositortransition>
    <compositortransition mlt_service="luma">
        <name>##wipe</name>
        <property name="force_track" args="editor=no_editor">0</property>
        <property name="resource" args="editor=wipe_select exptype=wipe_resource displayname=Wipe!Type">WIPE_PATHbi-linear_y.pgm</property>
        <property name="invert" args="editor=booleancheckbox displayname=Invert">0</property>
        <property name="softness" args="range_in=0,100 displayname=Softness">0.0</property>
        <property name="reverse" args="editor=combobox exptype=default cbopts=Forward:0,Backward:1 displayname=Wipe!Direction">0</property>
    </compositortransition>
    <compositortransition mlt_service="region">
        <name>##region</name>
        <property name="force_track" args="editor=no_editor">0</property>
        <property name="composite.geometry" args="editor=geometry_editor range_in=0,100 range_out=0,100 exptype=geom_opac_kf displayname=Wipe!Amount">"0=0/0:SCREENSIZE:100"</property>
        <property name="composite.luma" args="editor=wipe_select exptype=wipe_resource displayname=Wipe!Type">WIPE_PATHbi-linear_y.pgm</property>
        <property name="composite.luma_invert" args="editor=booleancheckbox displayname=Invert">0</property>
        <property name="composite.softness" args="editor=slider range_in=0,100 displayname=Softness">0.5</property>        
        <property name="composite.aligned" args="editor=no_editor">0</property>
        <property name="composite.distort" args="editor=no_editor">0</property>
        <property name="composite.fill" args="editor=no_editor">1</property>        
        <property name="composite.operator" args="editor=no_editor exptype=not_parsed_transition">over</property>
        <property name="composite.deinterlace" args="editor=no_editor">0</property>
        <property name="composite.progressive" args="editor=no_editor">1</property>
        <extraeditor name="region_properties"></extraeditor> 
    </compositortransition>
    <compositortransition mlt_service="frei0r.cairoaffineblend">
        <name>##affineblend</name>
        <property name="x" args="editor=no_editor exptype=not_parsed_transition">0=0.5</property>
        <property name="y" args="editor=no_editor exptype=not_parsed_transition">0=0.5</property>
        <property name="x scale" args="editor=no_editor exptype=not_parsed_transition">0=0.2</property>
        <property name="y scale" args="editor=no_editor exptype=not_parsed_transition">0=0.2</property>
        <property name="rotation" args="editor=no_editor exptype=not_parsed_transition">0=0.0</property>
        <property name="anchor x" args="editor=no_editor exptype=not_parsed_transition">0=0.5</property>
        <property name="anchor y" args="editor=no_editor exptype=not_parsed_transition">0=0.5</property>
        <property name="opacity" args="editor=no_editor exptype=not_parsed_transition">0=1.0</property>
        <extraeditor name="rotation_geometry_editor"></extraeditor> 
        <property name="blend mode" args="editor=combobox exptype=default_transition displayname=Blend!Mode cbopts=Normal:normal,Add:add,Multiply:multiply,Screen:screen,Overlay:overlay,Darken:darken,Lighten:lighten,ColorDodge:colordodge,Colorburn:colorburn,Hardlight:hardlight,Softlight:softlight,Difference:difference,Exclusion:exclusion,HSLHue:hslhue,HSLSaturation:hslsaturation,HSLColor:hslcolor,HSLLuminosity:hslluminosity">normal</property>
    </compositortransition>
    <compositortransition mlt_service="frei0r.cairoblend">
        <name>##blend</name>
        <property name="0" args="editor=keyframe_editor_clip_fade range_in=0,100 range_out=0,1 exptype=keyframe_hcs_transition displayname=Opacity">0=1.0</property>
        <property name="1" args="editor=combobox exptype=default_transition displayname=Blend!Mode cbopts=Normal:normal,Add:add,Multiply:multiply,Screen:screen,Overlay:overlay,Darken:darken,Lighten:lighten,ColorDodge:colordodge,Colorburn:colorburn,Hardlight:hardlight,Softlight:softlight,Difference:difference,Exclusion:exclusion,HSLHue:hslhue,HSLSaturation:hslsaturation,HSLColor:hslcolor,HSLLuminosity:hslluminosity">normal</property>
        <property name="automatic" args="editor=no_editor">1</property>
        <property name="force_track" args="editor=no_editor">0</property>
    </compositortransition>
    <compositortransition mlt_service="matte">
        <name>##matte</name>
    </compositortransition>


    <!-- AUTOFADES -->
    <compositortransition mlt_service="composite" autofadecompositor="True">
        <name>##auto_fade_in</name>
        <property name="force_track" args="editor=no_editor">0</property>
        <property name="geometry" args="editor=fade_length exptype=opacity_in_geom_kf displayname=Fade!In!Length">0=0/0:SCREENSIZE:100</property>
        <property name="aligned" args="editor=no_editor">0</property>
        <property name="distort" args="editor=no_editor">0</property>
        <property name="fill" args="editor=no_editor">1</property>        
        <property name="operator" args="editor=no_editor exptype=not_parsed_transition">over</property>
        <property name="deinterlace" args="editor=no_editor">0</property>
        <property name="progressive" args="editor=no_editor">1</property>
        <extraeditor name="composite_properties"></extraeditor>
    </compositortransition>

    <compositortransition mlt_service="composite" autofadecompositor="True">
        <name>##auto_fade_out</name>
        <property name="force_track" args="editor=no_editor">0</property>
        <property name="geometry" args="editor=fade_length exptype=opacity_in_geom_kf displayname=Fade!Out!Length">0=0/0:SCREENSIZE:100</property>
        <property name="aligned" args="editor=no_editor">0</property>
        <property name="distort" args="editor=no_editor">0</property>
        <property name="fill" args="editor=no_editor">1</property>        
        <property name="operator" args="editor=no_editor exptype=not_parsed_transition">over</property>
        <property name="deinterlace" args="editor=no_editor">0</property>
        <property name="progressive" args="editor=no_editor">1</property>
        <extraeditor name="composite_properties"></extraeditor>
    </compositortransition>
    
    
    
    <!-- BLENDS -->
    <compositortransition mlt_service="frei0r.darken">
        <name>##darken</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.hardlight">
        <name>##hardlight</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.addition">
        <name>##add</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.burn">
        <name>##burn</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.difference">
        <name>##difference</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.divide">
        <name>##divide</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.color_only">
        <name>##color_only</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.dodge">
        <name>##dodge</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.grain_extract">
        <name>##grain_extract</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.grain_merge">
        <name>##grain_merge</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.hue">
        <name>##hue</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.lighten">
        <name>##lighten</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.multiply">
        <name>##multiply</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.overlay">
        <name>##overlay</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.saturation">
        <name>##saturation</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.screen">
        <name>##screen</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.softlight">
        <name>##softlight</name>
    </compositortransition>
        <compositortransition mlt_service="frei0r.subtract">
        <name>##subtract</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.value">
        <name>##value</name>
    </compositortransition>

    <!-- ALPHA OPS -->
    <compositortransition mlt_service="frei0r.alphaxor">
        <name>##alphaxor</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.alphain">
        <name>##alphain</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.alphaout">
        <name>##alphaout</name>
    </compositortransition>

    <!-- If these two supposedly Porter-Duff ops they ain't doing the right thing
    <compositortransition mlt_service="frei0r.alphaatop">
        <name>##alphaatop</name>
    </compositortransition>
    <compositortransition mlt_service="frei0r.alphaover">
        <name>##alphaover</name>
    </compositortransition>
    -->
    
</compositors>
