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;
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);
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"
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;
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);
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();
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);
}
}
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);
}