]> git.sesse.net Git - kdenlive/commitdiff
Get ready for rendering only part of timeline
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 9 Mar 2008 19:02:43 +0000 (19:02 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 9 Mar 2008 19:02:43 +0000 (19:02 +0000)
svn path=/branches/KDE4/; revision=2030

renderer/kdenlive_render.cpp
renderer/renderjob.cpp
renderer/renderjob.h
src/mainwindow.cpp
src/monitor.cpp

index ef4c0b1b4d9e26e0814f7b8e5ca4585bfbfa69ba..a79f030b3200140b289c847418f44746b5d37eeb 100644 (file)
@@ -51,6 +51,8 @@
 int main(int argc, char **argv) {
     QCoreApplication app(argc, argv);
     QStringList args = app.arguments();
+    int in = -1;
+    int out = -1;
     if (!args.isEmpty()) args.takeFirst();
     if (args.count() >= 4) {
         bool erase = false;
@@ -58,6 +60,14 @@ int main(int argc, char **argv) {
             erase = 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();
+        }
         QString render = args.at(0);
         args.takeFirst();
         QString player = args.at(0);
@@ -66,13 +76,15 @@ int main(int argc, char **argv) {
         args.takeFirst();
         QString dest = args.at(0);
         args.takeFirst();
-        RenderJob *job = new RenderJob(erase, render, player, src, dest, args);
+        RenderJob *job = new RenderJob(erase, render, player, src, dest, args, in, out);
         job->start();
         app.exec();
     } else {
         fprintf(stderr, "Kdenlive video renderer for MLT.\nUsage: "
-                "kdenlive_render [-erase] [renderer] [player] [src] [dest] [[arg1] [arg2] ...]\n"
+                "kdenlive_render [-erase] [in=pos] [out=pos] [renderer] [player] [src] [dest] [[arg1] [arg2] ...]\n"
                 "  -erase: if that parameter is present, src file will be erased at the end\n"
+                "  in=pos: start rendering at frame pos\n"
+                "  out=pos: end rendering at frame pos\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"
index 09b6ed42e3101555b24e9d47a2eb05d9c789de19..08d4ed08051b577e8871375a68fe93093812dab3 100644 (file)
@@ -24,7 +24,7 @@
 
 static QDBusConnection connection(QLatin1String(""));
 
-RenderJob::RenderJob(bool erase, QString renderer, QString player, QString scenelist, QString dest, QStringList args) : QObject() {
+RenderJob::RenderJob(bool erase, QString renderer, QString player, QString scenelist, QString dest, QStringList args, int in, int out) : QObject() {
     m_scenelist = scenelist;
     m_dest = dest;
     m_player = player;
@@ -32,7 +32,10 @@ RenderJob::RenderJob(bool erase, QString renderer, QString player, QString scene
     m_erase = erase;
     m_renderProcess = new QProcess;
     m_prog = renderer;
-    m_args << scenelist << "-consumer" << "avformat:" + m_dest << "progress=1" << args;
+    m_args << scenelist;
+    if (in != -1) m_args << "in=" + QString::number(in);
+    if (out != -1) m_args << "out=" + QString::number(out);
+    m_args << "-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);
index 5cfb81ae03bdfda841d0c9325a208e79095a70eb..a094d282869703961a7c0d59651cfe8ba04dea90 100644 (file)
@@ -28,7 +28,7 @@
 class RenderJob : public QObject {
     Q_OBJECT
 public:
-    RenderJob(bool erase, QString renderer, QString player, QString scenelist, QString dest, QStringList args);
+    RenderJob(bool erase, QString renderer, QString player, QString scenelist, QString dest, QStringList args, int in = -1, int out = -1);
     ~RenderJob();
     void start();
 
index b2692476584fa35a76baf2dc2185a6f8fb77ccf2..454bfd01193ef23a688d42e41c02971ec244c887 100644 (file)
@@ -482,7 +482,9 @@ void MainWindow::slotRenderProject() {
         kDebug() << "///////  STARTING EXPORT: " << temp.fileName() << ", TO: " << exportFile.path();
         m_projectMonitor->saveSceneList(temp.fileName());
         QStringList args;
-        args << "-erase" << "inigo" << "kmplayer" << temp.fileName() << exportFile.path();
+        args << "-erase";
+        if (0) args << "in=50" << "out=150";
+        args << "inigo" << "kmplayer" << temp.fileName() << exportFile.path();
         QProcess::startDetached("kdenlive_render", args);
     }
 }
index a0d445aeca47e23f47e8e5d3ae5cd9621a85ebfc..2bb071df68e8b5158b4edf0ecbaa65ee5cb7d819 100644 (file)
@@ -135,7 +135,7 @@ void Monitor::seekCursor(int pos) {
     int rulerPos = (int)(pos * m_scale);
     m_position = pos;
     ui.monitor_time->setText(m_monitorManager->timecode().getTimecodeFromFrames(pos));
-    kDebug() << "seek: " << pos << ", scale: " << m_scale;
+    //kDebug() << "seek: " << pos << ", scale: " << m_scale;
     m_ruler->slotNewValue(rulerPos);
 }