parseEffectFile(&MainWindow::customEffects,
&MainWindow::audioEffects,
&MainWindow::videoEffects,
- itemName, filtersList, producersList);
+ itemName, filtersList, producersList, repository);
}
}
}
// 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);
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());