**
****************************************************************************/
-
+#include <stdio.h>
#include <QCoreApplication>
#include <QStringList>
#include <QString>
{
QCoreApplication app(argc, argv);
QStringList args = app.arguments();
- args.takeFirst();
- QString player;
- if (args.count() == 3) player = args.at(2);
- //fprintf(stderr, "ARGS: %s %s", qPrintable(args.at(0)), qPrintable(args.at(1)));
- RenderJob *job = new RenderJob(args.at(0), args.at(1), player);
- job->start();
- app.exec();
+ if (!args.isEmpty()) args.takeFirst();
+ if (args.count() >= 4) {
+ QString render = 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();
+ RenderJob *job = new RenderJob(render, player, src, dest, args);
+ job->start();
+ app.exec();
+ }
+ else {
+ fprintf(stderr, "Kdenlive video renderer for MLT.\nUsage: "
+ "kdenlive_render [renderer] [player] [src] [dest] [[arg1] [arg2] ...]\n"
+ " render: path to inigo rendrer\n"
+ " player: path to video player to play when rendering is over, use '-' to disable playing\n"
+ " src: source file (usually westley playlist)\n"
+ " dest: destination file\n"
+ " args: space separated libavformat arguments\n");
+ }
}
static QDBusConnection connection(QLatin1String(""));
-RenderJob::RenderJob(QString scenelist, QString dest, QString player) : QObject() {
+RenderJob::RenderJob(QString renderer, QString player, QString scenelist, QString dest, QStringList args) : QObject() {
m_scenelist = scenelist;
m_dest = dest;
m_player = player;
m_progress = 0;
m_renderProcess = new QProcess;
- m_prog = "inigo";
- m_args << scenelist << "-consumer" << "avformat:" + m_dest << "progress=1";
+ m_prog = renderer;
+ m_args << scenelist << "-consumer" << "avformat:" + m_dest << "progress=1"<<args;
connect(m_renderProcess, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(slotIsOver(int, QProcess::ExitStatus)));
connect(m_renderProcess, SIGNAL(readyReadStandardError()), this, SLOT(receivedStderr()));
m_renderProcess->setReadChannel(QProcess::StandardError);
}
void RenderJob::start() {
- QDBusInterface kuiserver("org.kde.JobViewServer", "/JobViewServer", "org.kde.JobViewServer", QDBusConnection::sessionBus());
- QDBusReply<QString> reply = kuiserver.call("requestView", "kdenlive", "kdenlive", 1);
- //kDebug()<<"///// JOB REPLY: "<<reply;
- QStringList args;
- m_jobUiserver = new QDBusInterface("org.kde.JobViewServer", "/JobViewServer/JobView_1", "org.kde.JobView", QDBusConnection::sessionBus());
- reply = m_jobUiserver->call("setInfoMessage", tr("Rendering %1").arg(m_dest));
+ QDBusInterface kuiserver("org.kde.JobViewServer", "/JobViewServer", "org.kde.JobViewServer");
+ QDBusReply<QDBusObjectPath> objectPath = kuiserver.call("requestView", "kdenlive", "kdenlive", 1);
+ QString reply = ((QDBusObjectPath) objectPath).path();
+ m_jobUiserver = new QDBusInterface("org.kde.JobViewServer", reply, "org.kde.JobView");
+ m_jobUiserver->call("setInfoMessage", tr("Rendering %1").arg(m_dest));
m_renderProcess->start(m_prog, m_args);
}