diff --git a/app/render/backend/exporter.cpp b/app/render/backend/exporter.cpp index 8a22e65d3..139a383ae 100644 --- a/app/render/backend/exporter.cpp +++ b/app/render/backend/exporter.cpp @@ -18,6 +18,9 @@ Exporter::Exporter(ViewerOutput* viewer, export_status_(false), export_msg_(tr("Export hasn't started yet")) { + debug_timer_.setInterval(5000); + connect(&debug_timer_, &QTimer::timeout, this, &Exporter::DebugTimerMessage); + connect(this, &Exporter::ExportEnded, this, &Exporter::deleteLater); } @@ -148,6 +151,7 @@ void Exporter::EncodeFrame() if (waiting_for_frame_ >= viewer_node_->Length()) { video_done_ = true; + debug_timer_.stop(); ExportSucceeded(); } @@ -155,6 +159,8 @@ void Exporter::EncodeFrame() void Exporter::FrameRendered(const rational &time, FramePtr value) { + debug_timer_.stop(); + const QMap& time_hash_map = video_backend_->frame_cache()->time_hash_map(); QByteArray this_hash = time_hash_map.value(time); @@ -172,6 +178,8 @@ void Exporter::FrameRendered(const rational &time, FramePtr value) qDebug() << " Waiting for" << waiting_for_frame_.toDouble(); EncodeFrame(); + + debug_timer_.start(); } void Exporter::AudioRendered() @@ -247,3 +255,8 @@ void Exporter::VideoHashesComplete() video_backend_->InvalidateCache(range); } } + +void Exporter::DebugTimerMessage() +{ + qDebug() << "Still waiting for" << waiting_for_frame_.toDouble(); +} diff --git a/app/render/backend/exporter.h b/app/render/backend/exporter.h index 490a775f0..f3e2c53c0 100644 --- a/app/render/backend/exporter.h +++ b/app/render/backend/exporter.h @@ -3,6 +3,7 @@ #include #include +#include #include #include "codec/encoder.h" @@ -73,6 +74,8 @@ private: QHash cached_frames_; + QTimer debug_timer_; + private slots: void FrameRendered(const rational &time, FramePtr value); @@ -88,6 +91,8 @@ private slots: void VideoHashesComplete(); + void DebugTimerMessage(); + }; #endif // EXPORTER_H