diff --git a/app/common/memorypool.h b/app/common/memorypool.h index b97f62fd7..28955989f 100644 --- a/app/common/memorypool.h +++ b/app/common/memorypool.h @@ -188,7 +188,7 @@ public: } ~Arena() { - QLinkedList copy = lent_elements_; + std::list copy = lent_elements_; foreach (Element* e, copy) { e->release(); } @@ -211,7 +211,7 @@ public: ElementPtr e = std::make_shared(this, reinterpret_cast(data_ + i * element_sz_)); - lent_elements_.append(e.get()); + lent_elements_.push_back(e.get()); return e; } } @@ -230,9 +230,9 @@ public: available_.replace(index, true); - lent_elements_.removeOne(e); + lent_elements_.remove(e); - if (lent_elements_.isEmpty()) { + if (lent_elements_.empty()) { locker.unlock(); parent_->ArenaIsEmpty(this); } @@ -281,7 +281,7 @@ public: size_t element_sz_; - QLinkedList lent_elements_; + std::list lent_elements_; }; @@ -301,7 +301,7 @@ public: } // All arenas were empty, we'll need to create a new one - if (arenas_.isEmpty()) { + if (arenas_.empty()) { qDebug() << "No arenas, creating new..."; } else { qDebug() << "All arenas are full, creating new..."; @@ -326,7 +326,7 @@ public: return nullptr; } - arenas_.append(a); + arenas_.push_back(a); return a->Get(); } @@ -340,7 +340,7 @@ public: if (!a->GetUsageCount()) { qDebug() << "Removing an empty arena"; - arenas_.removeOne(a); + arenas_.remove(a); delete a; } } @@ -358,7 +358,7 @@ protected: private: int element_count_; - QLinkedList arenas_; + std::list arenas_; QMutex lock_; diff --git a/app/render/backend/renderbackend.cpp b/app/render/backend/renderbackend.cpp index f92385327..7b4519a44 100644 --- a/app/render/backend/renderbackend.cpp +++ b/app/render/backend/renderbackend.cpp @@ -140,7 +140,7 @@ RenderTicketPtr RenderBackend::RenderFrame(const rational &time) RenderTicketPtr ticket = std::make_shared(RenderTicket::kTypeVideo, TimeRange(time, time)); - render_queue_.append(ticket); + render_queue_.push_back(ticket); RunNextJob(); @@ -156,7 +156,7 @@ RenderTicketPtr RenderBackend::RenderAudio(const TimeRange &r) RenderTicketPtr ticket = std::make_shared(RenderTicket::kTypeAudio, r); - render_queue_.append(ticket); + render_queue_.push_back(ticket); RunNextJob(); @@ -237,7 +237,7 @@ void RenderBackend::Close() void RenderBackend::RunNextJob() { // If queue is empty, nothing to be done - if (render_queue_.isEmpty()) { + if (render_queue_.empty()) { return; } @@ -295,7 +295,8 @@ void RenderBackend::RunNextJob() worker->SetVideoDownloadMatrix(video_download_matrix_); worker->SetCopyMap(©_map_); - RenderTicketPtr ticket = render_queue_.takeFirst(); + RenderTicketPtr ticket = render_queue_.front(); + render_queue_.pop_front(); switch (ticket->GetType()) { case RenderTicket::kTypeVideo: @@ -316,7 +317,7 @@ void RenderBackend::RunNextJob() break; } - if (render_queue_.isEmpty()) { + if (render_queue_.empty()) { // No more jobs, can exit here break; } diff --git a/app/render/backend/renderbackend.h b/app/render/backend/renderbackend.h index f428f09fe..7762947f6 100644 --- a/app/render/backend/renderbackend.h +++ b/app/render/backend/renderbackend.h @@ -102,7 +102,7 @@ private: QThreadPool pool_; - QLinkedList render_queue_; + std::list render_queue_; struct WorkerData { RenderWorker* worker; diff --git a/app/render/backend/renderticket.h b/app/render/backend/renderticket.h index 573b5f259..3432b0df5 100644 --- a/app/render/backend/renderticket.h +++ b/app/render/backend/renderticket.h @@ -21,6 +21,7 @@ #ifndef RENDERTICKET_H #define RENDERTICKET_H +#include #include #include "codec/frame.h" diff --git a/app/task/cache/cache.cpp b/app/task/cache/cache.cpp index fd5b1985e..dae6329e3 100644 --- a/app/task/cache/cache.cpp +++ b/app/task/cache/cache.cpp @@ -62,7 +62,7 @@ QFuture CacheTask::DownloadFrame(FramePtr frame, const QByteArray &hash) return QtConcurrent::run(&download_threads_, FrameHashCache::SaveCacheFrame, hash, frame); } -void CacheTask::FrameDownloaded(const QByteArray &hash, const QLinkedList ×) +void CacheTask::FrameDownloaded(const QByteArray &hash, const std::list ×) { foreach (const rational& t, times) { viewer()->video_frame_cache()->SetHash(t, hash); diff --git a/app/task/cache/cache.h b/app/task/cache/cache.h index 66d4a4661..e603991f9 100644 --- a/app/task/cache/cache.h +++ b/app/task/cache/cache.h @@ -42,7 +42,7 @@ public slots: protected: virtual QFuture DownloadFrame(FramePtr frame, const QByteArray &hash) override; - virtual void FrameDownloaded(const QByteArray& hash, const QLinkedList& times) override; + virtual void FrameDownloaded(const QByteArray& hash, const std::list& times) override; virtual void AudioDownloaded(const TimeRange& range, SampleBufferPtr samples) override; diff --git a/app/task/export/export.cpp b/app/task/export/export.cpp index 3371b2c49..9916ccdb5 100644 --- a/app/task/export/export.cpp +++ b/app/task/export/export.cpp @@ -144,7 +144,7 @@ QFuture ExportTask::DownloadFrame(FramePtr frame, const QByteArray &hash) return QtConcurrent::run(FrameColorConvert, color_processor_, frame); } -void ExportTask::FrameDownloaded(const QByteArray &hash, const QLinkedList ×) +void ExportTask::FrameDownloaded(const QByteArray &hash, const std::list ×) { FramePtr f = rendered_frame_.value(hash); diff --git a/app/task/export/export.h b/app/task/export/export.h index 183f60fdc..8a8c7ae7f 100644 --- a/app/task/export/export.h +++ b/app/task/export/export.h @@ -41,7 +41,7 @@ public slots: protected: virtual QFuture DownloadFrame(FramePtr frame, const QByteArray &hash) override; - virtual void FrameDownloaded(const QByteArray& hash, const QLinkedList& times) override; + virtual void FrameDownloaded(const QByteArray& hash, const std::list& times) override; virtual void AudioDownloaded(const TimeRange& range, SampleBufferPtr samples) override; diff --git a/app/task/render/render.h b/app/task/render/render.h index 8f525f14b..f7cdcc3ed 100644 --- a/app/task/render/render.h +++ b/app/task/render/render.h @@ -41,7 +41,7 @@ protected: virtual QFuture DownloadFrame(FramePtr frame, const QByteArray &hash) = 0; - virtual void FrameDownloaded(const QByteArray& hash, const QLinkedList& times) = 0; + virtual void FrameDownloaded(const QByteArray& hash, const std::list& times) = 0; virtual void AudioDownloaded(const TimeRange& range, SampleBufferPtr samples) = 0; diff --git a/app/task/taskmanager.cpp b/app/task/taskmanager.cpp index ed3aa9852..ffcb82a0d 100644 --- a/app/task/taskmanager.cpp +++ b/app/task/taskmanager.cpp @@ -102,8 +102,8 @@ void TaskManager::AddTask(Task* t) void TaskManager::CancelTask(Task *t) { - if (failed_tasks_.contains(t)) { - failed_tasks_.removeOne(t); + if (std::find(failed_tasks_.begin(), failed_tasks_.end(), t) != failed_tasks_.end()) { + failed_tasks_.remove(t); emit TaskRemoved(t); t->deleteLater(); } else { @@ -125,7 +125,7 @@ void TaskManager::TaskFinished() } else { // Task failed, keep it so the user can see the error message emit TaskFailed(t); - failed_tasks_.append(t); + failed_tasks_.push_back(t); } watcher->deleteLater(); diff --git a/app/task/taskmanager.h b/app/task/taskmanager.h index 497c1d8cf..f0cdc3501 100644 --- a/app/task/taskmanager.h +++ b/app/task/taskmanager.h @@ -119,7 +119,7 @@ private: /** * @brief Internal list of failed tasks */ - QLinkedList failed_tasks_; + std::list failed_tasks_; /** * @brief Task thread pool diff --git a/app/widget/viewer/viewerqueue.h b/app/widget/viewer/viewerqueue.h index d91f57b9e..8a421d05c 100644 --- a/app/widget/viewer/viewerqueue.h +++ b/app/widget/viewer/viewerqueue.h @@ -32,14 +32,14 @@ struct ViewerPlaybackFrame { FramePtr frame; }; -class ViewerQueue : public QLinkedList { +class ViewerQueue : public std::list { public: ViewerQueue() = default; void AppendTimewise(const ViewerPlaybackFrame& f, int playback_speed) { - if (this->isEmpty() || (this->last().timestamp < f.timestamp) == (playback_speed > 0)) { - this->append(f); + if (this->empty() || (this->back().timestamp < f.timestamp) == (playback_speed > 0)) { + this->push_back(f); } else { for (iterator i=this->begin(); i!=this->end(); i++) { if ((i->timestamp > f.timestamp) == (playback_speed > 0)) {