]> git.sesse.net Git - kdenlive/blobdiff - src/docclipbase.cpp
Add center-crop option to slideshow clip.
[kdenlive] / src / docclipbase.cpp
index 4e26b005f95650ea4786ff89171f3cc196ddcc1a..fc74fbf14a29dd36343dd1bb0fd80d2b275d6d09 100644 (file)
@@ -702,6 +702,36 @@ void DocClipBase::slotRefreshProducer()
                 filter = clipService.filter(ct);
             }
         }
+        if (getProperty("crop") == "1") {
+            // we want a center crop filter effect
+            Mlt::Service clipService(m_baseTrackProducers.at(0)->get_service());
+            int ct = 0;
+            Mlt::Filter *filter = clipService.filter(ct);
+            while (filter) {
+                if (strcmp(filter->get("mlt_service"), "crop") == 0) {
+                    break;
+                }
+                ct++;
+                filter = clipService.filter(ct);
+            }
+
+            if (!filter || strcmp(filter->get("mlt_service"), "crop")) {
+                // filter does not exist, create it...
+                Mlt::Filter *filter = new Mlt::Filter(*(m_baseTrackProducers.at(0)->profile()), "crop");
+                filter->set("center", 1);
+                clipService.attach(*filter);
+            }
+        } else {
+            Mlt::Service clipService(m_baseTrackProducers.at(0)->get_service());
+            int ct = 0;
+            Mlt::Filter *filter = clipService.filter(0);
+            while (filter) {
+                if (strcmp(filter->get("mlt_service"), "crop") == 0) {
+                    clipService.detach(*filter);
+                } else ct++;
+                filter = clipService.filter(ct);
+            }
+        }
     }
 }
 
@@ -881,7 +911,7 @@ QMap <QString, QString> DocClipBase::properties() const
 
 bool DocClipBase::slotGetAudioThumbs()
 {
-    if (m_thumbProd == NULL) return false;
+    if (m_thumbProd == NULL || isPlaceHolder()) return false;
     if (!KdenliveSettings::audiothumbnails() || m_audioTimer == NULL) {
         if (m_audioTimer != NULL) m_audioTimer->stop();
         return false;