]> git.sesse.net Git - kdenlive/blobdiff - src/clipmanager.cpp
Fix some avformat producer concurrency crashes
[kdenlive] / src / clipmanager.cpp
index d3669cadef5425fdd21162fcf951b1511c34a05e..0710fce51dcc85da8bbbfeadd4ddfa70a3acb5d2 100644 (file)
@@ -54,7 +54,9 @@ ClipManager::ClipManager(KdenliveDoc *doc) :
     connect(&m_modifiedTimer, SIGNAL(timeout()), this, SLOT(slotProcessModifiedClips()));
 
 #if KDE_IS_VERSION(4,5,0)
+    KImageCache::deleteCache("kdenlive-thumbs");
     pixmapCache = new KImageCache("kdenlive-thumbs", 1000000);
+    pixmapCache->setEvictionPolicy(KSharedDataCache::EvictOldest);
 #endif
 }
 
@@ -83,6 +85,13 @@ void ClipManager::clear()
 #endif
 }
 
+void ClipManager::clearCache()
+{
+#if KDE_IS_VERSION(4,5,0)
+    pixmapCache->clear();
+#endif
+}
+
 void ClipManager::checkAudioThumbs()
 {
     if (!KdenliveSettings::audiothumbnails()) {
@@ -249,7 +258,7 @@ void ClipManager::resetProducersList(const QList <Mlt::Producer *> prods, bool d
 {
     for (int i = 0; i < m_clipList.count(); i++) {
         if (m_clipList.at(i)->numReferences() > 0 || displayRatioChanged || fpsChanged) {
-            m_clipList.at(i)->deleteProducers(true);
+            m_clipList.at(i)->deleteProducers();
         }
     }
     QString id;