]> git.sesse.net Git - kdenlive/blobdiff - src/kthumb.cpp
Fix lots of issues with slowmotioned clips (bugs in move, resize, copy, load & save)
[kdenlive] / src / kthumb.cpp
index 88aa4492857a10158eeae35e81085461059fce7d..a836be141d614e0e1df2e2d912119a24a45f4539 100644 (file)
@@ -132,7 +132,11 @@ KThumb::KThumb(ClipManager *clipManager, KUrl url, const QString &id, const QStr
 }
 
 KThumb::~KThumb() {
-    if (audioThumbProducer.isRunning()) audioThumbProducer.exit();
+    if (audioThumbProducer.isRunning()) {
+        slotAudioThumbOver();
+        audioThumbProducer.stop_me = true;
+        audioThumbProducer.wait(300);
+    }
 }
 
 void KThumb::setProducer(Mlt::Producer *producer) {
@@ -140,17 +144,26 @@ void KThumb::setProducer(Mlt::Producer *producer) {
     m_dar = producer->profile()->dar();
 }
 
+void KThumb::clearProducer() {
+    m_producer = NULL;
+}
+
 bool KThumb::hasProducer() const {
     return m_producer != NULL;
 }
 
-void KThumb::updateClipUrl(KUrl url) {
+void KThumb::updateThumbUrl(const QString &hash) {
+    m_thumbFile = m_clipManager->projectFolder() + "/thumbs/" + hash + ".thumb";
+}
+
+void KThumb::updateClipUrl(KUrl url, const QString &hash) {
     m_url = url;
     if (m_producer) {
         char *tmp = Render::decodedString(url.path());
         m_producer->set("resource", tmp);
         delete[] tmp;
     }
+    m_thumbFile = m_clipManager->projectFolder() + "/thumbs/" + hash + ".thumb";
 }
 
 //static