From: Dan Dennedy Date: Thu, 17 Feb 2011 06:43:22 +0000 (+0000) Subject: Add support for mlt parallel-consumer to clip and project monitors. X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=53e75edc7ee97957c2deb9cff75f31eee2f592e9;p=kdenlive Add support for mlt parallel-consumer to clip and project monitors. svn path=/trunk/kdenlive/; revision=5415 --- diff --git a/src/kdenlivesettings.kcfg b/src/kdenlivesettings.kcfg index 9800a93f..ce01fb02 100644 --- a/src/kdenlivesettings.kcfg +++ b/src/kdenlivesettings.kcfg @@ -213,6 +213,16 @@ + + + 1 + + + + + 1 + + /tmp/ diff --git a/src/kdenlivesettingsdialog.cpp b/src/kdenlivesettingsdialog.cpp index 9bed2b3c..f0a3f6cb 100644 --- a/src/kdenlivesettingsdialog.cpp +++ b/src/kdenlivesettingsdialog.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -73,6 +74,7 @@ KdenliveSettingsDialog::KdenliveSettingsDialog(const QMap& map m_configEnv.mltpathurl->setMode(KFile::Directory); m_configEnv.mltpathurl->lineEdit()->setObjectName("kcfg_mltpath"); m_configEnv.rendererpathurl->lineEdit()->setObjectName("kcfg_rendererpath"); + m_configEnv.kcfg_mltthreads->setMaximum(QThread::idealThreadCount()); m_configEnv.tmppathurl->setMode(KFile::Directory); m_configEnv.tmppathurl->lineEdit()->setObjectName("kcfg_currenttmpfolder"); m_configEnv.projecturl->setMode(KFile::Directory); diff --git a/src/renderer.cpp b/src/renderer.cpp index 9ddfd753..48b25a29 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -205,6 +205,7 @@ void Render::buildConsumer(const QString profileName) m_mltConsumer->set("terminate_on_pause", 0); m_mltConsumer->set("buffer", 12); m_mltConsumer->set("deinterlace_method", "onefield"); + m_mltConsumer->set("real_time", KdenliveSettings::mltthreads()); mlt_log_set_callback(kdenlive_callback); } if (m_mltConsumer && m_mltConsumer->is_valid()) return; @@ -262,6 +263,7 @@ void Render::buildConsumer(const QString profileName) m_mltConsumer->set("progressive", 1); m_mltConsumer->set("audio_buffer", 1024); m_mltConsumer->set("frequency", 48000); + m_mltConsumer->set("real_time", KdenliveSettings::mltthreads()); } Mlt::Producer *Render::invalidProducer(const QString &id) @@ -1376,8 +1378,8 @@ void Render::refresh() void Render::setDropFrames(bool show) { if (m_mltConsumer) { - int dropFrames = 1; - if (show == false) dropFrames = 0; + int dropFrames = KdenliveSettings::mltthreads(); + if (show == false) dropFrames = -dropFrames; m_mltConsumer->stop(); if (m_winid == 0) m_mltConsumer->set("real_time", dropFrames); diff --git a/src/widgets/configenv_ui.ui b/src/widgets/configenv_ui.ui index f00f5117..b83442f6 100644 --- a/src/widgets/configenv_ui.ui +++ b/src/widgets/configenv_ui.ui @@ -6,8 +6,8 @@ 0 0 - 337 - 201 + 384 + 203 @@ -41,7 +41,7 @@ - + @@ -51,10 +51,10 @@ - + - + Qt::Vertical @@ -67,6 +67,33 @@ + + + + Processing threads + + + + + + + + 0 + 0 + + + + 1 + + + + + + + (>1 is experimental) + + + @@ -218,6 +245,7 @@ KUrlRequester QFrame
kurlrequester.h
+ 1 KPushButton