]> git.sesse.net Git - kdenlive/commitdiff
renderer: get ready for real use
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 9 Mar 2008 17:51:40 +0000 (17:51 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 9 Mar 2008 17:51:40 +0000 (17:51 +0000)
svn path=/branches/KDE4/; revision=2028

renderer/kdenlive_render.cpp
renderer/renderjob.cpp
renderer/renderjob.h

index 77e3beea297e9a49ec0ce44d4ca8fe1572beed25..938ba0fe254ec3be6092952419b38c365da1933b 100644 (file)
@@ -41,7 +41,7 @@
 **
 ****************************************************************************/
 
-
+#include <stdio.h>
 #include <QCoreApplication>
 #include <QStringList>
 #include <QString>
@@ -52,12 +52,28 @@ int main(int argc, char **argv)
 {
     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");
+    }
 }
 
index 3d5594221cc92b9e3141937f0a9b083374c5a0eb..33f004965d2f0b1658e97f6fdda71cc116f7bcce 100644 (file)
 
 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);
@@ -54,12 +54,11 @@ void RenderJob::receivedStderr() {
 }
 
 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);
 }
 
index e71aa432fd4c685ef1e49bb9bc595b9a9d4c50de..41bbed1625fa89a455a9a97e8963d58acefeea9d 100644 (file)
@@ -28,7 +28,7 @@
 class RenderJob : public QObject {
     Q_OBJECT
 public:
-    RenderJob(QString scenelist, QString dest, QString player);
+    RenderJob(QString renderer, QString player, QString scenelist, QString dest, QStringList args);
     ~RenderJob();
     void start();