]> git.sesse.net Git - kdenlive/blobdiff - src/initeffects.cpp
Bezier Spline: requires version 0.2 of frei0r.curves
[kdenlive] / src / initeffects.cpp
index 6ce55d6266e2a2a88867e060a71c4bd6a4669b32..e0b93531d59a89ca68b47615e84011c747714c8a 100644 (file)
@@ -208,7 +208,7 @@ Mlt::Repository *initEffects::parseEffectFiles()
             parseEffectFile(&MainWindow::customEffects,
                             &MainWindow::audioEffects,
                             &MainWindow::videoEffects,
-                            itemName, filtersList, producersList);
+                            itemName, filtersList, producersList, repository);
         }
     }
 
@@ -317,7 +317,7 @@ void initEffects::parseCustomEffectsFile()
 }
 
 // static
-void initEffects::parseEffectFile(EffectsList *customEffectList, EffectsList *audioEffectList, EffectsList *videoEffectList, QString name, QStringList filtersList, QStringList producersList)
+void initEffects::parseEffectFile(EffectsList *customEffectList, EffectsList *audioEffectList, EffectsList *videoEffectList, QString name, QStringList filtersList, QStringList producersList, Mlt::Repository *repository)
 {
     QDomDocument doc;
     QFile file(name);
@@ -331,13 +331,21 @@ void initEffects::parseEffectFile(EffectsList *customEffectList, EffectsList *au
         return;
     }
 
-    /*QString groupName;
-    if (doc.elementsByTagName("effectgroup").item(0).toElement().tagName() == "effectgroup")
-        groupName = documentElement.attribute("name", QString());*/
-
     for (int i = 0; !effects.item(i).isNull(); ++i) {
         documentElement = effects.item(i).toElement();
         QString tag = documentElement.attribute("tag", QString());
+
+        if (documentElement.hasAttribute("version")) {
+            // a specific version of the filter is required
+            Mlt::Properties *metadata = repository->metadata(filter_type, tag.toUtf8().data());
+            if (metadata && metadata->is_valid()) {
+                double version = atof(metadata->get("version"));
+                if (documentElement.attribute("version").toDouble() > version)
+                    return;
+            }
+            delete metadata;
+        }
+
         bool ladspaOk = true;
         if (tag == "ladspa") {
             QString library = documentElement.attribute("library", QString());