]> git.sesse.net Git - kdenlive/blobdiff - renderer/kdenlive_render.cpp
Use char for single character [krazy 1-44] by Mikko Rapeli
[kdenlive] / renderer / kdenlive_render.cpp
index 8a08c2683f3bec11707017a91087f69bba5d0c77..056c2519740a45f412064207701524a9496740ec 100644 (file)
@@ -32,6 +32,7 @@ int main(int argc, char **argv)
     QStringList args = app.arguments();
     QStringList preargs;
     QString locale;
+    int pid = 0;
     int in = -1;
     int out = -1;
     if (args.count() >= 7) {
@@ -48,6 +49,11 @@ int main(int argc, char **argv)
             usekuiserver = true;
             args.removeFirst();
         }
+        if (QString(args.at(0)).startsWith("-pid:")) {
+            pid = QString(args.at(0)).section(':', 1).toInt();
+            args.removeFirst();
+        }
+
         if (QString(args.at(0)).startsWith("-locale:")) {
             locale = QString(args.at(0)).section(':', 1);
             args.removeFirst();
@@ -63,7 +69,8 @@ int main(int argc, char **argv)
         QString profile = args.takeFirst();
         QString rendermodule = args.takeFirst();
         QString player = args.takeFirst();
-        QString src = args.takeFirst();
+       QUrl srcurl = QUrl::fromEncoded(args.takeFirst().toUtf8());
+        QString src = srcurl.path();
         QUrl desturl = QUrl::fromEncoded(args.takeFirst().toUtf8());
         QString dest = desturl.path();
         bool dualpass = false;
@@ -74,7 +81,7 @@ int main(int argc, char **argv)
         if (vprepos >= 0) {
             vpre=args.at(vprepos);
         }
-        QStringList vprelist = vpre.replace("vpre=", "").split(",");
+        QStringList vprelist = vpre.replace("vpre=", "").split(',');
         if (vprelist.size() > 0) {
             args.replaceInStrings(QRegExp("^vpre=.*"), QString("vpre=").append(vprelist.at(0)));
         }
@@ -84,20 +91,21 @@ int main(int argc, char **argv)
             dualpass = true;
             doerase = false;
             args.replace(args.indexOf("pass=2"), "pass=1");
+            if (args.contains("vcodec=libx264")) args << QString("passlogfile=%1").arg(dest + ".log");
         } else {
             args.removeAll("pass=1");
             doerase = erase;
         }
 
         qDebug() << "//STARTING RENDERING: " << erase << "," << usekuiserver << "," << render << "," << profile << "," << rendermodule << "," << player << "," << src << "," << dest << "," << preargs << "," << args << "," << in << "," << out ;
-        RenderJob *job = new RenderJob(doerase, usekuiserver, render, profile, rendermodule, player, src, dest, preargs, args, in, out);
+        RenderJob *job = new RenderJob(doerase, usekuiserver, pid, render, profile, rendermodule, player, src, dest, preargs, args, in, out);
         if (!locale.isEmpty()) job->setLocale(locale);
         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");
-            RenderJob *dualjob = new RenderJob(erase, usekuiserver, render, profile, rendermodule, player, src, dest, preargs, args, in, out);
+            RenderJob *dualjob = new RenderJob(erase, usekuiserver, pid, render, profile, rendermodule, player, src, dest, preargs, args, in, out);
             QObject::connect(job, SIGNAL(renderingFinished()), dualjob, SLOT(start()));
         }
         app.exec();