[Kdenlive-devel] Question about the wave effect

Mads Bondo Dydensborg mads at dydensborg.dk
Mon Oct 13 21:29:35 UTC 2008


Hi alle

Looking at wave.xml: 
<!DOCTYPE kpartgui>
<effect tag="wave" id="wave">
        <name>Wave</name>
        <description>Make waves on your clip with keyframes</description>
        <author>Leny Grisel</author>
        <parameter type="keyframe" name="start" max="100" min="0" default="5">
                <name>Amplitude</name>
        </parameter>
        <parameter type="constant" name="deformX" max="100" min="0" 
default="1">
                <name>Horizontal factor</name>
        </parameter>
        <parameter type="constant" name="deformY" max="100" min="0" 
default="1">
                <name>Vertical factor</name>
        </parameter>
</effect>

And comparing with the code in MLT, I get the impression that this does not 
reflect the code very well?

Keyframes are not supported at the moment, is that right? So, there is no way 
to change the amplitude of the waves?

I tried modifying the xml to better reflect the mlt source - this is my try:
<!DOCTYPE kpartgui>
<effect tag="wave" id="wave">
	<name>Wave</name>
	<description>Make waves on your clip with keyframes</description>
	<author>Leny Grisel</author>
	<parameter type="keyframe" name="start" max="100" min="0" default="5">
		<name>Amplitude</name>
	</parameter>
	<parameter type="double" name="wave" default="1">
		<name>Wave amplitude</name>
	</parameter>
	<parameter type="bool" name="deformX" default="1">
		<name>Horizontal factor</name>
	</parameter>
	<parameter type="bool" name="deformY" default="1">
		<name>Vertical factor</name>
	</parameter>
</effect>

This works well for deformX and deformY, but sadly, does not work well for 
wave. Looking at the code in effectstackedit.cpp it appears that "double" 
and "constant" are treated very much alike:

//TODO constant, list, bool, complex , color, geometry, position
        if (type == "double" || type == "constant") {
            createSliderItem(paramName, value.toInt(), 
pa.attribute("min").toInt(), pa.attribute("max").toInt());
            delete toFillin;
            toFillin = NULL;

However, I _think_ that the mlt code really wants a double between 0 and 1 for 
the wave parameter? 

So, I guess my question is this: Is that right? What is the state of parsing 
the effect xml files? Could we help out there?

Regards

Mads

-- 
Mads Bondo Dydensborg   mads at dydensborg.dk   http://www.madsdydensborg.dk/

All national institutions of churches, whether Jewish, Christian or
Turkish, appear to me no other than human inventions, set up to terrify and
enslave mankind, and monopolize power and profit.
                                        - Thomas Paine (The Age of Reason)




More information about the Kdenlive mailing list