]> git.sesse.net Git - kdenlive/blobdiff - src/clipitem.cpp
Fix in / out points for effects with some images (negative in points). at some point...
[kdenlive] / src / clipitem.cpp
index 5f1c6686b87d2894131a81b2f87bc4c3c9dfb659..f3a3babab39b555d59972190935b49174155802a 100644 (file)
@@ -316,7 +316,7 @@ bool ClipItem::checkKeyFrames()
         bool effModified = false;
 
         // go through all params which have keyframes
-        foreach (const QString &kfr, keyframeParams) {
+        foreach(const QString &kfr, keyframeParams) {
             const QStringList keyframes = kfr.split(';', QString::SkipEmptyParts);
             QStringList newKeyFrames;
             bool cutKeyFrame = false;
@@ -1416,8 +1416,14 @@ EffectsParameterList ClipItem::addEffect(const QDomElement effect, bool /*animat
 
     // special case: the affine effect need in / out points
     if (effectId == "pan_zoom") {
-        parameters.addParam("in", QString::number(cropStart().frames(m_fps)));
-        parameters.addParam("out", QString::number((cropStart() + cropDuration()).frames(m_fps)));
+        int start = cropStart().frames(m_fps);
+        int end = (cropStart() + cropDuration()).frames(m_fps);
+        if (start < 0) {
+            end -= start;
+            start = 0;
+        }
+        parameters.addParam("in", QString::number(start));
+        parameters.addParam("out", QString::number(end));
     }
 
     QDomNodeList params = effect.elementsByTagName("parameter");