m_requestList.removeAll(info);
m_requestList.append(info);
m_infoMutex.unlock();
- if (!m_infoThread.isRunning())
+ if (!m_infoThread.isRunning()) {
m_infoThread = QtConcurrent::run(this, &Render::processFileProperties);
+ }
}
void Render::forceProcessing(const QString &id)
{
- m_infoMutex.lock();
+ if (m_processingClipId == id) return;
+ QMutexLocker lock(&m_infoMutex);
for (int i = 0; i < m_requestList.count(); i++) {
requestClipInfo info = m_requestList.at(i);
if (info.clipId == id) {
}
}
}
- m_infoMutex.unlock();
}
int Render::processingItems()
{
- m_infoMutex.lock();
+ QMutexLocker lock(&m_infoMutex);
int count = m_requestList.count();
if (!m_processingClipId.isEmpty()) {
// one clip is currently processed
count++;
}
- m_infoMutex.unlock();
return count;
}
bool Render::isProcessing(const QString &id)
{
if (m_processingClipId == id) return true;
- m_infoMutex.lock();
+ QMutexLocker lock(&m_infoMutex);
for (int i = 0; i < m_requestList.count(); i++) {
requestClipInfo info = m_requestList.at(i);
if (info.clipId == id) {
- m_infoMutex.unlock();
return true;
}
}
- m_infoMutex.unlock();
return false;
}
while (!m_requestList.isEmpty()) {
m_infoMutex.lock();
info = m_requestList.takeFirst();
- m_infoMutex.unlock();
m_processingClipId = info.clipId;
+ m_infoMutex.unlock();
+
QString path;
bool proxyProducer;
if (info.xml.hasAttribute("proxy") && info.xml.attribute("proxy") != "-") {
Mlt::Frame *frame = producer->get_frame();
if (frame && frame->is_valid()) {
QImage img = KThumb::getFrame(frame, imageWidth, fullWidth, info.imageHeight);
- delete frame;
emit replyGetImage(info.clipId, img);
}
+ if (frame) delete frame;
}
m_processingClipId.clear();
emit replyGetFileProperties(info.clipId, producer, stringMap(), stringMap(), info.replaceProducer);
int video_max = 0;
int default_audio = producer->get_int("audio_index");
int audio_max = 0;
+
+ int scan = producer->get_int("meta.media.progressive");
+ filePropertyMap["progressive"] = QString::number(scan);
// Find maximum stream index values
for (int ix = 0; ix < producer->get_int("meta.media.nb_streams"); ix++) {