]> git.sesse.net Git - kdenlive/commitdiff
Add mlt and encoder threads to render dialog.
authorDan Dennedy <dan@dennedy.org>
Fri, 18 Feb 2011 07:01:54 +0000 (07:01 +0000)
committerDan Dennedy <dan@dennedy.org>
Fri, 18 Feb 2011 07:01:54 +0000 (07:01 +0000)
svn path=/trunk/kdenlive/; revision=5423

src/renderwidget.cpp
src/renderwidget.h
src/widgets/renderwidget_ui.ui

index 7b0d5117c2370ff6a658183f1784057d972b4b80..18b97b63bc12d7e36d665d6088c76b95a334392b 100644 (file)
@@ -43,6 +43,7 @@
 #include <QProcess>
 #include <QDBusConnectionInterface>
 #include <QDBusInterface>
+#include <QThread>
 
 const int GroupRole = Qt::UserRole;
 const int ExtensionRole = GroupRole + 1;
@@ -89,6 +90,10 @@ RenderWidget::RenderWidget(const QString &projectfolder, bool enableProxy, QWidg
     
     m_view.proxy_render->setHidden(!enableProxy);
 
+       m_view.encoder_threads->setMaximum(QThread::idealThreadCount());
+       m_view.encoder_threads->setValue(KdenliveSettings::encodethreads());
+       connect(m_view.encoder_threads, SIGNAL(valueChanged(int)), this, SLOT(slotUpdateEncodeThreads(int)));
+       
     m_view.rescale_keep->setChecked(KdenliveSettings::rescalekeepratio());
     connect(m_view.rescale_width, SIGNAL(valueChanged(int)), this, SLOT(slotUpdateRescaleWidth(int)));
     connect(m_view.rescale_height, SIGNAL(valueChanged(int)), this, SLOT(slotUpdateRescaleHeight(int)));
@@ -755,6 +760,10 @@ void RenderWidget::slotExport(bool scriptExport, int zoneIn, int zoneOut, const
     // disable audio if requested
     if (!exportAudio) renderArgs.append(" an=1 ");
 
+       // Set the thread counts
+       renderArgs.append(QString(" threads=%1").arg(KdenliveSettings::encodethreads()));
+       renderArgs.append(QString(" real_time=-%1").arg(KdenliveSettings::mltthreads()));
+
     // Check if the rendering profile is different from project profile,
     // in which case we need to use the producer_comsumer from MLT
     QString std = renderArgs;
@@ -780,7 +789,7 @@ void RenderWidget::slotExport(bool scriptExport, int zoneIn, int zoneOut, const
             break;
         }
     }
-
+       
     if (resizeProfile)
         render_process_args << "consumer:" + (scriptExport ? "$SOURCE" : playlistPath);
     else
@@ -1859,6 +1868,11 @@ void RenderWidget::missingClips(bool hasMissing)
     } else m_view.errorBox->setHidden(true);
 }
 
+void RenderWidget::slotUpdateEncodeThreads(int val)
+{
+       KdenliveSettings::setEncodethreads(val);
+}
+
 void RenderWidget::slotUpdateRescaleWidth(int val)
 {
     KdenliveSettings::setDefaultrescalewidth(val);
index 708d39a605c1b728b2fe8f30c0bd6cd672490164..11e9e08eae77e278d3f8d4f71b54ce36d0ce6970 100644 (file)
@@ -164,6 +164,7 @@ private slots:
     void slotPlayRendering(QTreeWidgetItem *item, int);
     void slotStartCurrentJob();
     void slotCopyToFavorites();
+    void slotUpdateEncodeThreads(int);
     void slotUpdateRescaleHeight(int);
     void slotUpdateRescaleWidth(int);
     void slotSwitchAspectRatio();
index be71963d581e09ed909c81107b3d862a7255eb61..b47f26cd29deedeaa4ec91e9a8c8fc8494987fe5 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>391</width>
-    <height>575</height>
+    <width>387</width>
+    <height>652</height>
    </rect>
   </property>
   <property name="windowTitle">
          </property>
         </widget>
        </item>
-       <item row="5" column="0" colspan="10">
+       <item row="6" column="0" colspan="10">
         <layout class="QHBoxLayout" name="horizontalLayout_2">
          <item>
           <widget class="QCheckBox" name="rescale">
             <property name="margin">
              <number>0</number>
             </property>
-            <item row="0" column="0">
-             <widget class="KIntNumInput" name="rescale_width">
-              <property name="minimum">
-               <number>0</number>
-              </property>
-             </widget>
-            </item>
             <item row="0" column="1">
              <widget class="QLabel" name="label_8">
               <property name="text">
               </property>
              </spacer>
             </item>
+            <item row="0" column="0">
+             <widget class="KIntNumInput" name="rescale_width">
+              <property name="minimum">
+               <number>0</number>
+              </property>
+             </widget>
+            </item>
            </layout>
           </widget>
          </item>
         </layout>
        </item>
-       <item row="6" column="0" colspan="10">
+       <item row="7" column="0" colspan="10">
         <widget class="QCheckBox" name="open_dvd">
          <property name="text">
           <string>Open Dvd wizard after rendering</string>
          </property>
         </widget>
        </item>
-       <item row="7" column="0" colspan="10">
+       <item row="8" column="0" colspan="10">
         <widget class="QCheckBox" name="create_chapter">
          <property name="text">
           <string>Create chapter file based on guides</string>
          </property>
         </widget>
        </item>
-       <item row="8" column="0" colspan="10">
+       <item row="9" column="0" colspan="10">
         <widget class="QCheckBox" name="open_browser">
          <property name="text">
           <string>Open browser window after export</string>
          </property>
         </widget>
        </item>
-       <item row="9" column="0" colspan="4">
+       <item row="10" column="0" colspan="4">
         <widget class="QCheckBox" name="play_after">
          <property name="text">
           <string>Play after render</string>
          </property>
         </widget>
        </item>
-       <item row="9" column="4" colspan="6">
+       <item row="10" column="4" colspan="6">
         <widget class="QCheckBox" name="tc_overlay">
          <property name="text">
           <string>Timecode overlay</string>
          </property>
         </widget>
        </item>
-       <item row="10" column="0" colspan="10">
+       <item row="11" column="0" colspan="10">
         <layout class="QHBoxLayout" name="horizontalLayout">
          <item>
           <widget class="QRadioButton" name="render_full">
          </item>
         </layout>
        </item>
-       <item row="11" column="0" colspan="10">
+       <item row="12" column="0" colspan="10">
         <widget class="QGroupBox" name="guides_box">
          <property name="title">
           <string/>
          </layout>
         </widget>
        </item>
-       <item row="14" column="0" colspan="3">
+       <item row="15" column="0" colspan="3">
         <widget class="QPushButton" name="buttonRender">
          <property name="text">
           <string>Render to File</string>
          </property>
         </widget>
        </item>
-       <item row="14" column="3" colspan="4">
+       <item row="15" column="3" colspan="4">
         <widget class="QPushButton" name="buttonGenerateScript">
          <property name="text">
           <string>Generate Script</string>
          </property>
         </widget>
        </item>
-       <item row="14" column="7" colspan="2">
+       <item row="15" column="7" colspan="2">
         <spacer name="horizontalSpacer">
          <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
         </spacer>
        </item>
-       <item row="14" column="9">
+       <item row="15" column="9">
         <widget class="KPushButton" name="buttonClose">
          <property name="text">
           <string>Close</string>
          </property>
         </widget>
        </item>
-       <item row="15" column="0" colspan="10">
+       <item row="16" column="0" colspan="10">
         <widget class="QGroupBox" name="errorBox">
          <property name="title">
           <string/>
          </layout>
         </widget>
        </item>
-       <item row="13" column="0" colspan="10">
+       <item row="14" column="0" colspan="10">
         <widget class="QCheckBox" name="proxy_render">
          <property name="text">
           <string>Render using proxy clips</string>
          </property>
         </widget>
        </item>
+       <item row="5" column="0" colspan="3">
+        <widget class="QLabel" name="label_9">
+         <property name="text">
+          <string>Encoder threads</string>
+         </property>
+        </widget>
+       </item>
+       <item row="5" column="4" colspan="2">
+        <widget class="KIntNumInput" name="encoder_threads">
+         <property name="minimum">
+          <number>1</number>
+         </property>
+         <property name="maximum">
+          <number>999</number>
+         </property>
+        </widget>
+       </item>
       </layout>
      </widget>
      <widget class="QWidget" name="tab_2">