#include <QCoreApplication>
#include <QStringList>
#include <QString>
+#include <QUrl>
#include <QtDebug>
#include "renderjob.h"
QStringList preargs;
int in = -1;
int out = -1;
- if (!args.isEmpty()) args.takeFirst();
- if (args.count() >= 4) {
+ if (args.count() >= 7) {
+ // Remove program name
+ args.removeFirst();
+
bool erase = false;
if (args.at(0) == "-erase") {
erase = true;
- args.takeFirst();
+ args.removeFirst();
}
bool usekuiserver = false;
if (args.at(0) == "-kuiserver") {
usekuiserver = true;
- args.takeFirst();
- }
- if (args.at(0).startsWith("in=")) {
- in = args.at(0).section('=', -1).toInt();
- args.takeFirst();
- }
- if (args.at(0).startsWith("out=")) {
- out = args.at(0).section('=', -1).toInt();
- args.takeFirst();
+ args.removeFirst();
}
- if (args.at(0).startsWith("preargs=")) {
- QString a = args.at(0).section('=', 1);
- preargs = a.split(' ', QString::SkipEmptyParts);
- args.takeFirst();
- }
- QString render = args.at(0);
- args.takeFirst();
- QString profile = args.at(0);
- args.takeFirst();
- QString rendermodule = args.at(0);
- args.takeFirst();
- QString player = args.at(0);
- args.takeFirst();
- QString src = args.at(0);
- args.takeFirst();
- QString dest = args.at(0);
- args.takeFirst();
+ if (args.at(0).startsWith("in="))
+ in = args.takeFirst().section('=', -1).toInt();
+ if (args.at(0).startsWith("out="))
+ out = args.takeFirst().section('=', -1).toInt();
+ if (args.at(0).startsWith("preargs="))
+ preargs = args.takeFirst().section('=', 1).split(' ', QString::SkipEmptyParts);
+
+ QString render = args.takeFirst();
+ QString profile = args.takeFirst();
+ QString rendermodule = args.takeFirst();
+ QString player = args.takeFirst();
+ QString src = 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;
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()));