]> git.sesse.net Git - kdenlive/blobdiff - renderer/kdenlive_render.cpp
fix bug when no vpre= is set
[kdenlive] / renderer / kdenlive_render.cpp
index a577e2069d89dd8bd564d1f71c586e1da59d2348..4c25a213c9020d3a5c029518b413bdd072cf6714 100644 (file)
@@ -21,6 +21,7 @@
 #include <QCoreApplication>
 #include <QStringList>
 #include <QString>
+#include <QUrl>
 #include <QtDebug>
 
 #include "renderjob.h"
@@ -35,7 +36,7 @@ int main(int argc, char **argv)
     if (args.count() >= 7) {
         // Remove program name
         args.removeFirst();
-        
+
         bool erase = false;
         if (args.at(0) == "-erase") {
             erase = true;
@@ -58,9 +59,17 @@ int main(int argc, char **argv)
         QString rendermodule = args.takeFirst();
         QString player = args.takeFirst();
         QString src = args.takeFirst();
-        QString dest = args.takeFirst();
+        QUrl desturl = QUrl::fromEncoded(args.takeFirst().toUtf8());
+        QString dest = desturl.path();
         bool dualpass = false;
         bool doerase;
+        QString vpre;
+               int vprepos=args.indexOf(QRegExp("vpre=.*"));
+               if (vprepos>=0)
+                       vpre=args.at(vprepos);
+        QStringList vprelist=vpre.replace("vpre=","").split(",");
+        if (vprelist.size()>0)
+            args.replaceInStrings(QRegExp("^vpre=.*"),QString("vpre=").append(vprelist.at(0)));
         if (args.contains("pass=2")) {
             // dual pass encoding
             dualpass = true;
@@ -71,6 +80,9 @@ int main(int argc, char **argv)
         RenderJob *job = new RenderJob(doerase, usekuiserver, render, profile, rendermodule, player, src, dest, preargs, args, in, out);
         job->start();
         if (dualpass) {
+            if (vprelist.size()>1)
+                args.replaceInStrings(QRegExp("^vpre=.*"),QString("vpre=").append(vprelist.at(1)));
+            args.replace(args.indexOf("pass=1"), "pass=2");
             args.replace(args.indexOf("pass=1"), "pass=2");
             RenderJob *dualjob = new RenderJob(erase, usekuiserver, render, profile, rendermodule, player, src, dest, preargs, args, in, out);
             QObject::connect(job, SIGNAL(renderingFinished()), dualjob, SLOT(start()));