From 6768f614c752102d0dad00227b6c4de48502a677 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Sat, 29 Oct 2022 18:45:09 +0200 Subject: [PATCH] GstEngine: Call SetState right before setFuture --- src/engine/gstengine.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/engine/gstengine.cpp b/src/engine/gstengine.cpp index bd0844ceb..44449c73a 100644 --- a/src/engine/gstengine.cpp +++ b/src/engine/gstengine.cpp @@ -235,13 +235,14 @@ bool GstEngine::Play(const quint64 offset_nanosec) { if (!current_pipeline_ || current_pipeline_->is_buffering()) return false; - QFuture future = current_pipeline_->SetState(GST_STATE_PLAYING); QFutureWatcher *watcher = new QFutureWatcher(); - int pipeline_id = current_pipeline_->id(); - QObject::connect(watcher, &QFutureWatcher::finished, this, [this, watcher, offset_nanosec, pipeline_id]() { - PlayDone(watcher->result(), offset_nanosec, pipeline_id); + const int pipeline_id = current_pipeline_->id(); + QObject::connect(watcher, &QFutureWatcher::finished, this, [this, watcher, pipeline_id, offset_nanosec]() { + const GstStateChangeReturn ret = watcher->result(); watcher->deleteLater(); + PlayDone(ret, offset_nanosec, pipeline_id); }); + QFuture future = current_pipeline_->SetState(GST_STATE_PLAYING); watcher->setFuture(future); if (is_fading_out_to_pause_) {