Updated the rendering dialog:

* add option to disable audio
* Re-organise categories
* Improved info in the "Running jobs" widget, including crash log

svn path=/branches/KDE4/; revision=2927
parent 579e6e7c
......@@ -42,9 +42,10 @@
</group>
<group name="DVD" renderer="avformat" type="av">
<groupname id="dvd">DVD</groupname>
<profile name="PAL 4:3 vob" standard="PAL" extension="vob" args="f=dvd vcodec=mpeg2video acodec=ac3 b=5000k maxrate=8000k minrate=0 bufsize=1835008 mux_packet_s=2048 mux_rate=10080000 ab=192k ar=48000 s=720x576 g=15 me_range=63 trellis=1 profile=dv_pal" />
<profile name="PAL 16:9 vob" standard="PAL" extension="vob" args="f=dvd vcodec=mpeg2video acodec=ac3 b=5000k maxrate=8000k minrate=0 bufsize=1835008 mux_packet_s=2048 mux_rate=10080000 ab=192k ar=48000 s=720x576 g=15 me_range=63 trellis=1 profile=dv_pal_wide" />
<profile name="PAL 16:9 vob" standard="PAL" extension="vob" args="f=dvd vcodec=mpeg2video acodec=ac3 b=5000k maxrate=8000k minrate=0 bufsize=1835008 mux_packet_s=2048 mux_rate=10080000 ab=192k ar=48000 s=720x576 g=15 me_range=63 trellis=1 profile=dv_pal_wide" />
<profile name="NTSC 4:3 vob" standard="NTSC" extension="vob" args="f=dvd vcodec=mpeg2video acodec=ac3 s=720x480 b=6000k maxrate=9000k minrate=0 bufsize=1835008 mux_packet_s=2048 mux_rate=10080000 ab=192k ar=48000 g=18 me_range=63 trellis=1 profile=dv_ntsc" />
<profile name="NTSC 16:9 vob" standard="NTSC" extension="vob" args="f=dvd vcodec=mpeg2video acodec=ac3 s=720x480 b=6000k maxrate=9000k minrate=0 bufsize=1835008 mux_packet_s=2048 mux_rate=10080000 ab=192k ar=48000 g=18 me_range=63 trellis=1 profile=dv_ntsc_wide" />
</group>
......@@ -160,6 +161,7 @@
</group>
<group name="Media players" renderer="avformat" type="av">
<groupname id="mediaplayers">Media players</groupname>
<profile name="Windows Media Player wmv7 400k" extension="avi" args="acodec=libmp3lame ab=128k ar=48000 ac=2 vcodec=wmv1 minrate=0 b=400k s=%widthx%height aspect=%dar" />
<profile name="Windows Media Player wmv7 1000k" extension="avi" args="acodec=libmp3lame ab=128k ar=48000 ac=2 vcodec=wmv1 minrate=0 b=1000k s=%widthx%height aspect=%dar" />
<profile name="Windows Media Player wmv7 2000k" extension="avi" args="acodec=libmp3lame ab=128k ar=48000 ac=2 vcodec=wmv1 minrate=0 b=2000k s=%widthx%height aspect=%dar" />
......@@ -169,6 +171,7 @@
</group>
<group name="Web sites" renderer="avformat" type="av">
<groupname id="websites">Web sites</groupname>
<profile name="Dailymotion 320x240" extension="flv" args="f=flv acodec=libmp3lame ab=128k ar=44100 vcodec=flv minrate=0 b=800k s=320x240 aspect=%dar trellis=1" />
<profile name="Dailymotion 512x384" extension="mp4" args="f=mp4 acodec=libfaac ab=96k ar=44100 vcodec=libx264 minrate=0 b=600k s=512x384 aspect=%dar mbd=2 trellis=1 mv4=1" />
<profile name="Dailymotion 1280x720" extension="mp4" args="f=mp4 acodec=libfaac ab=96k ar=44100 vcodec=libx264 minrate=0 b=1500k s=1280x720 aspect=%dar mbd=2 trellis=1 mv4=1" />
......@@ -181,13 +184,15 @@
<group name="Wav" renderer="avformat" type="audio">
<profile name="22050" extension="wav" args="f=wav ar=22050" />
<profile name="32000" extension="wav" args="f=wav ar=32000" />
<profile name="44100" extension="wav" args="f=wav ar=44100" />
<profile name="48000" extension="wav" args="f=wav ar=48000" />
<groupname id="audioonly">Audio only</groupname>
<profile name="wav 22050" extension="wav" args="f=wav ar=22050" />
<profile name="wav 32000" extension="wav" args="f=wav ar=32000" />
<profile name="wav 44100" extension="wav" args="f=wav ar=44100" />
<profile name="wav 48000" extension="wav" args="f=wav ar=48000" />
</group>
<group name="Lossless/HQ" renderer="avformat" type="av">
<groupname id="lossless">Lossless / HQ</groupname>
<profile name="ffv1 lossless (video) + flac (sound)" extension="mp4" args="f=mp4 acodec=flac acodec=flac ar=48000 ab=1024k ac=2 vcodec=ffv1 qscale=1 s=%widthx%height aspect=%dar" />
<profile name="huffyuv lossless (video) + pcm_s16le (sound)" extension="avi" args="f=avi acodec=pcm_s16le ac=2 vcodec=huffyuv s=%widthx%height aspect=%dar" />
<profile name="MPEG-2 I-frame only (video) + mp2 (sound)" extension="mpg" args="f=mpeg acodec=mp2 ab=384k ar=48000 ac=2 vcodec=mpeg2video qscale=1 qmin=1 s=%widthx%height aspect=%dar intra=1" />
......
......@@ -90,7 +90,8 @@ void RenderJob::slotAbort() {
if (m_kdenliveinterface) {
m_dbusargs[1] = -3;
m_kdenliveinterface->callWithArgumentList(QDBus::NoBlock, "setRenderingProgress", m_dbusargs);
m_dbusargs.append(QString());
m_kdenliveinterface->callWithArgumentList(QDBus::NoBlock, "setRenderingFinished", m_dbusargs);
}
if (m_jobUiserver) m_jobUiserver->call("terminate", QString());
if (m_erase) {
......@@ -107,6 +108,7 @@ void RenderJob::slotAbort() {
void RenderJob::receivedStderr() {
QString result = QString(m_renderProcess->readAllStandardError()).simplified();
if (!result.startsWith("Current Frame")) m_errorMessage.append(result + "<br>");
m_logstream << "ReceivedStderr from inigo: " << result << endl;
result = result.section(" ", -1);
int pro = result.toInt();
......@@ -203,8 +205,9 @@ void RenderJob::slotIsOver(int exitcode, QProcess::ExitStatus status) {
if (status == QProcess::CrashExit) {
// rendering crashed
if (m_kdenliveinterface) {
m_dbusargs[1] = -2;
m_kdenliveinterface->callWithArgumentList(QDBus::NoBlock, "setRenderingProgress", m_dbusargs);
m_dbusargs[1] = (int) - 2;
m_dbusargs.append(m_errorMessage);
m_kdenliveinterface->callWithArgumentList(QDBus::NoBlock, "setRenderingFinished", m_dbusargs);
}
QStringList args;
args << "--error" << tr("Rendering of %1 aborted, resulting video will probably be corrupted.").arg(m_dest);
......@@ -213,8 +216,9 @@ void RenderJob::slotIsOver(int exitcode, QProcess::ExitStatus status) {
QProcess::startDetached("kdialog", args);
} else {
if (m_kdenliveinterface) {
m_dbusargs[1] = -1;
m_kdenliveinterface->callWithArgumentList(QDBus::NoBlock, "setRenderingProgress", m_dbusargs);
m_dbusargs[1] = (int) - 1;
m_dbusargs.append(QString());
m_kdenliveinterface->callWithArgumentList(QDBus::NoBlock, "setRenderingFinished", m_dbusargs);
}
QDBusConnectionInterface* interface = QDBusConnection::sessionBus().interface();
if (interface && interface->isServiceRegistered("org.kde.knotify")) {
......
......@@ -47,6 +47,7 @@ private:
QString m_dest;
int m_progress;
QProcess *m_renderProcess;
QString m_errorMessage;
QString m_prog;
QString m_player;
QStringList m_args;
......
......@@ -417,11 +417,6 @@
<default>false</default>
</entry>
<entry name="experimentalrender" type="Bool">
<label>Show buggy rendering formats.</label>
<default>false</default>
</entry>
<entry name="audiocodecs" type="StringList">
<label>Available avformat audio codecs.</label>
<default></default>
......
......@@ -1443,6 +1443,7 @@ void MainWindow::slotDoRender(const QString &dest, const QString &render, const
}
if (!QFile::exists(KdenliveSettings::rendererpath())) {
KMessageBox::sorry(this, i18n("Cannot find the inigo program required for rendering (part of Mlt)"));
setRenderingProgress(dest, -3);
return;
}
args << KdenliveSettings::rendererpath() << m_activeDocument->profilePath() << render << videoPlayer;
......@@ -1471,6 +1472,10 @@ void MainWindow::setRenderingProgress(const QString &url, int progress) {
if (m_renderWidget) m_renderWidget->setRenderJob(url, progress);
}
void MainWindow::setRenderingFinished(const QString &url, int status, const QString &error) {
if (m_renderWidget) m_renderWidget->setRenderStatus(url, status, error);
}
void MainWindow::slotUpdateMousePosition(int pos) {
if (m_activeDocument)
switch (m_timecodeFormat->currentIndex()) {
......
......@@ -197,6 +197,7 @@ public slots:
void openFile(const KUrl &url);
void slotGotProgressInfo(const QString &message, int progress);
Q_SCRIPTABLE void setRenderingProgress(const QString &url, int progress);
Q_SCRIPTABLE void setRenderingFinished(const QString &url, int status, const QString &error);
private slots:
void newFile(bool showProjectSettings = true);
......
......@@ -8,5 +8,10 @@
<arg name="url" type="s" direction="in"/>
<arg name="progress" type="i" direction="in"/>
</method>
<method name="setRenderingFinished">
<arg name="url" type="s" direction="in"/>
<arg name="status" type="i" direction="in"/>
<arg name="error" type="s" direction="in"/>
</method>
</interface>
</node>
This diff is collapsed.
......@@ -73,6 +73,7 @@ public:
void focusFirstVisibleItem();
void setProfile(MltVideoProfile profile);
void setRenderJob(const QString &dest, int progress = 0);
void setRenderStatus(const QString &dest, int status, const QString &error);
private slots:
void slotUpdateButtons();
......@@ -86,7 +87,6 @@ private slots:
void slotCheckStartGuidePosition();
void slotCheckEndGuidePosition();
void showInfoPanel();
void slotUpdateExperimentalRendering();
void slotAbortCurrentJob();
private:
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment