#include "clipmanager.h"
-#include "addclipcommand.h"
+#include "commands/addclipcommand.h"
#include "kdenlivesettings.h"
#include "docclipbase.h"
#include "kdenlivedoc.h"
m_audioThumbsQueue(),
m_doc(doc),
m_generatingAudioId(),
- m_abortThumb(false)
+ m_abortThumb(false),
+ m_closing(false)
{
m_clipIdCounter = 1;
m_folderIdCounter = 1;
ClipManager::~ClipManager()
{
+ m_closing = true;
m_abortThumb = true;
m_thumbsThread.waitForFinished();
m_thumbsMutex.lock();
void ClipManager::stopThumbs(const QString &id)
{
+ if (m_requestedThumbs.isEmpty() || m_closing) return;
m_abortThumb = true;
m_thumbsThread.waitForFinished();
m_thumbsMutex.lock();
while (!values.isEmpty() && clip->thumbProducer() && !m_abortThumb) {
clip->thumbProducer()->getThumb(values.takeFirst());
}
- if (m_abortThumb) {
- // keep the requested frames that were not processed
- m_thumbsMutex.lock();
- foreach (int frame, values)
- m_requestedThumbs.insertMulti(producerId, frame);
- m_thumbsMutex.unlock();
- }
}
}