void VideoFrameSource_sV::slotExtractSmallFrames() { emit signalNextTask(tr("Extracting thumbnail-sized frames from the video file"), m_videoInfo->framesCount); m_timer->start(100); if (rebuildRequired(FrameSize_Small)) { m_ffmpegSemaphore.acquire(); m_ffmpeg->waitForFinished(2000); m_ffmpeg->terminate(); disconnect(m_ffmpeg, SIGNAL(finished(int)), this, 0); connect(m_ffmpeg, SIGNAL(finished(int)), this, SLOT(slotExtractOrigFrames())); extractFramesFor(FrameSize_Small, m_ffmpeg); m_ffmpegSemaphore.release(); } else {
/// \todo What if image missing? void ImagesFrameSource_sV::slotContinueInitialization() { emit signalNextTask("Creating preview images from the input images", m_imagesList.size()); for (; m_nextFrame < m_imagesList.size(); m_nextFrame++) { QString outputFile(framePath(m_nextFrame, FrameSize_Small)); if (QFile(outputFile).exists()) { emit signalTaskItemDescription("Resized image already exists for " + QFileInfo(m_imagesList.at(m_nextFrame)).fileName()); } else { emit signalTaskItemDescription(QString("Re-sizing image %1 to:\n%2") .arg(QFileInfo(m_imagesList.at(m_nextFrame)).fileName()) .arg(outputFile)); QImage small = QImage(m_imagesList.at(m_nextFrame)).scaled(m_sizeSmall, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); small.save(outputFile); } emit signalTaskProgress(m_nextFrame); if (m_stopInitialization) { break; } } m_initialized = true; emit signalAllTasksFinished(); }