From: Jean-Baptiste Mardelle Date: Sun, 9 Mar 2008 19:02:43 +0000 (+0000) Subject: Get ready for rendering only part of timeline X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=082c0c36bfe1f878a1c77e2c7d9b35f2cf6ce9ff;p=kdenlive Get ready for rendering only part of timeline svn path=/branches/KDE4/; revision=2030 --- diff --git a/renderer/kdenlive_render.cpp b/renderer/kdenlive_render.cpp index ef4c0b1b..a79f030b 100644 --- a/renderer/kdenlive_render.cpp +++ b/renderer/kdenlive_render.cpp @@ -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" diff --git a/renderer/renderjob.cpp b/renderer/renderjob.cpp index 09b6ed42..08d4ed08 100644 --- a/renderer/renderjob.cpp +++ b/renderer/renderjob.cpp @@ -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); diff --git a/renderer/renderjob.h b/renderer/renderjob.h index 5cfb81ae..a094d282 100644 --- a/renderer/renderjob.h +++ b/renderer/renderjob.h @@ -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(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b2692476..454bfd01 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -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); } } diff --git a/src/monitor.cpp b/src/monitor.cpp index a0d445ae..2bb071df 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -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); }