]> git.sesse.net Git - kdenlive/commitdiff
Cleanup & fix melt job (like video stab) not keeping original clip profile
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 24 Sep 2012 12:00:09 +0000 (14:00 +0200)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 24 Sep 2012 12:00:09 +0000 (14:00 +0200)
src/clipstabilize.cpp
src/cliptranscode.cpp
src/docclipbase.cpp
src/kdenlivesettings.kcfg
src/projectlist.cpp
src/projecttree/meltjob.cpp
src/widgets/clipstabilize_ui.ui
src/widgets/cutjobdialog_ui.ui

index 6114707d5ac4c150806ce52be544fbbae9e14b1c..30a265d01640536b4424c94058e58cecbcac769f 100644 (file)
@@ -43,6 +43,7 @@ ClipStabilize::ClipStabilize(const QString &dest, int count, const QString &filt
     setupUi(this);
     setWindowTitle(i18n("Stabilize Clip"));
     auto_add->setText(i18np("Add clip to project", "Add clips to project", count));
+    auto_add->setChecked(KdenliveSettings::add_new_clip());
 
     QPalette p = palette();
     KColorScheme scheme(p.currentColorGroup(), KColorScheme::View, KSharedConfig::openConfig(KdenliveSettings::colortheme()));
@@ -132,6 +133,7 @@ ClipStabilize::~ClipStabilize()
     /*if (m_stabilizeProcess.state() != QProcess::NotRunning) {
         m_stabilizeProcess.close();
     }*/
+    KdenliveSettings::setAdd_new_clip(auto_add->isChecked());
 }
 
 QStringList ClipStabilize::params()
index 42a3a6ca5e2763c8e62b757dc33cf0aa7caaf630..c91ec59826bed8b6acdf6e969ded5268d6b27b64 100644 (file)
@@ -43,6 +43,7 @@ ClipTranscode::ClipTranscode(KUrl::List urls, const QString &params, const QStri
     log_text->setHidden(true);
     setWindowTitle(i18n("Transcode Clip"));
     auto_add->setText(i18np("Add clip to project", "Add clips to project", m_urls.count()));
+    auto_add->setChecked(KdenliveSettings::add_new_clip());
 
     if (m_urls.count() == 1) {
         QString fileName = m_urls.at(0).path(); //.section('.', 0, -1);
@@ -101,6 +102,7 @@ ClipTranscode::ClipTranscode(KUrl::List urls, const QString &params, const QStri
 
 ClipTranscode::~ClipTranscode()
 {
+    KdenliveSettings::setAdd_new_clip(auto_add->isChecked());
     if (m_transcodeProcess.state() != QProcess::NotRunning) {
         m_transcodeProcess.close();
     }
index 876dadcde95b5ed466a25631d741ad2335322f39..9b55d6b16ab75209a302b3bd320909807d055fb9 100644 (file)
@@ -44,8 +44,8 @@ DocClipBase::DocClipBase(ClipManager *clipManager, QDomElement xml, const QStrin
         m_audioFrameCache(),
         m_refcount(0),
         m_baseTrackProducers(),
-        m_audioTrackProducers(),
         m_videoTrackProducers(),
+        m_audioTrackProducers(),
         m_snapMarkers(QList < CommentedTime >()),
         m_duration(),
         m_thumbProd(NULL),
index 16a0b8b5c503062c52ec8cab63e609fa4b65049b..ac858ebcae3e86cd7521fda996bc67287e690049 100644 (file)
       <default>true</default>
     </entry>
     
-    <entry name="add_clip_cut" type="Bool">
+    <entry name="add_new_clip" type="Bool">
       <label>Add cutted clips to project after transcoding.</label>
       <default>true</default>
     </entry>
index abe5881b388504dd22e77abf730b44d877b5d1f4..e0ff8d2a3a8f3ff45164fc6003096690147d17fe 100644 (file)
@@ -2760,7 +2760,7 @@ void ProjectList::slotCutClipJob(const QString &id, QPoint zone)
     Ui::CutJobDialog_UI ui;
     ui.setupUi(d);
     ui.extra_params->setVisible(false);
-    ui.add_clip->setChecked(KdenliveSettings::add_clip_cut());
+    ui.add_clip->setChecked(KdenliveSettings::add_new_clip());
     ui.file_url->fileDialog()->setOperationMode(KFileDialog::Saving);
     ui.extra_params->setMaximumHeight(QFontMetrics(font()).lineSpacing() * 5);
     ui.file_url->setUrl(KUrl(dest));
@@ -2793,11 +2793,11 @@ void ProjectList::slotCutClipJob(const QString &id, QPoint zone)
         }
     }
     QString extraParams = ui.extra_params->toPlainText().simplified();
-    KdenliveSettings::setAdd_clip_cut(ui.add_clip->isChecked());
+    KdenliveSettings::setAdd_new_clip(ui.add_clip->isChecked());
     delete d;
 
     QStringList jobParams;
-    jobParams << dest << item->clipUrl().path() << timeIn << timeOut << QString::number(duration) << QString::number(KdenliveSettings::add_clip_cut());
+    jobParams << dest << item->clipUrl().path() << timeIn << timeOut << QString::number(duration) << QString::number(KdenliveSettings::add_new_clip());
     if (!extraParams.isEmpty()) jobParams << extraParams;
     CutClipJob *job = new CutClipJob(item->clipType(), id, jobParams);
     if (job->isExclusive() && hasPendingJob(item, job->jobType)) {
@@ -2841,7 +2841,7 @@ void ProjectList::slotTranscodeClipJob(const QString &condition, QString params,
     ui.extra_params->setVisible(false);
     d->adjustSize();
     ui.button_more->setIcon(KIcon("configure"));
-    ui.add_clip->setChecked(KdenliveSettings::add_clip_cut());
+    ui.add_clip->setChecked(KdenliveSettings::add_new_clip());
     ui.extra_params->setPlainText(params.simplified().section(' ', 0, -2));
     QString mess = desc;
     mess.append(' ' + i18np("(%1 clip)", "(%1 clips)", ids.count()));
@@ -2851,7 +2851,7 @@ void ProjectList::slotTranscodeClipJob(const QString &condition, QString params,
         return;
     }
     params = ui.extra_params->toPlainText().simplified();
-    KdenliveSettings::setAdd_clip_cut(ui.add_clip->isChecked());
+    KdenliveSettings::setAdd_new_clip(ui.add_clip->isChecked());
     int index = 0;
     foreach(const QString &id, ids) {
         ProjectItem *item = getItemById(id);
@@ -2870,7 +2870,7 @@ void ProjectList::slotTranscodeClipJob(const QString &condition, QString params,
         int max = item->clipMaxDuration();
         QString duration = QString::number(max);
         jobParams << duration;
-        jobParams << QString::number(KdenliveSettings::add_clip_cut());
+        jobParams << QString::number(KdenliveSettings::add_new_clip());
         jobParams << params;
         CutClipJob *job = new CutClipJob(item->clipType(), id, jobParams);
         if (job->isExclusive() && hasPendingJob(item, job->jobType)) {
index 6bc6a19807dfb9a0b8b7586983731fd7aee55070..605ad342709f14e2c9c0c6446ff19997d9ebc144 100644 (file)
@@ -91,22 +91,25 @@ void MeltJob::startJob()
         setStatus(JOBCRASHED);
         return;
     }
-    
-    m_profile = m_producer->profile();
-
-    Mlt::Producer *prod;
+    Mlt::Producer *prod ;
+    m_profile = new Mlt::Profile;
+    m_profile->set_explicit(false);
     if (out == -1) {
-        prod = new Mlt::Producer(*m_profile,  m_url.toUtf8().constData());
+       prod = new Mlt::Producer(*m_profile,  m_url.toUtf8().constData());
     }
-    else 
-        prod = m_producer->cut(in, out);
+    else {
+       Mlt::Producer *tmp = new Mlt::Producer(*m_profile,  m_url.toUtf8().constData());
+        prod = tmp->cut(in, out);
+       delete tmp;
+    }
+    m_profile->from_producer(*prod);
+    m_profile->set_explicit(true);
     QStringList list = producerParams.split(' ', QString::SkipEmptyParts);
     foreach(const QString &data, list) {
         if (data.contains('=')) {
             prod->set(data.section('=', 0, 0).toUtf8().constData(), data.section('=', 1, 1).toUtf8().constData());
         }
     }
-
     if (consumer.contains(":")) {
         m_consumer = new Mlt::Consumer(*m_profile, consumer.section(':', 0, 0).toUtf8().constData(), consumer.section(':', 1).toUtf8().constData());
     }
index 7510b0e5fcb77307a9043d442389606b7679210d..10d8e1914c83374ba0bcc9f025a0bed47a7f4183 100644 (file)
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>290</width>
-    <height>198</height>
+    <height>122</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -41,7 +41,7 @@
      </property>
     </widget>
    </item>
-   <item row="5" column="2">
+   <item row="6" column="2">
     <widget class="QDialogButtonBox" name="buttonBox">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
     </widget>
    </item>
-   <item row="3" column="0" colspan="2">
+   <item row="4" column="0" colspan="2">
     <widget class="QCheckBox" name="auto_add">
      <property name="text">
       <string>Add clip to project</string>
      </property>
     </widget>
    </item>
-   <item row="5" column="0" colspan="2">
+   <item row="6" column="0" colspan="2">
     <spacer name="horizontalSpacer">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
     </spacer>
    </item>
+   <item row="3" column="0">
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
   </layout>
  </widget>
  <customwidgets>
index 3652fbc8fa96823bcc7a662900259b509ab4e58f..e61ccffb5b7373dd8bb1c215c63011605e8d9e56 100644 (file)
@@ -58,7 +58,7 @@
    <item row="2" column="0" colspan="2">
     <widget class="QCheckBox" name="add_clip">
      <property name="text">
-      <string>Add new clip to project</string>
+      <string>Add clip to project</string>
      </property>
     </widget>
    </item>