From d66126f998dd85394e8148f08cb51cfaa8d9a634 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Fri, 6 Dec 2024 23:44:27 +0100 Subject: [PATCH] GstEngine: Add missing seek Fixes #1568 --- src/engine/gstengine.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/engine/gstengine.cpp b/src/engine/gstengine.cpp index 9f8688acb..3f0e30809 100644 --- a/src/engine/gstengine.cpp +++ b/src/engine/gstengine.cpp @@ -264,7 +264,17 @@ bool GstEngine::Load(const QUrl &media_url, const QUrl &stream_url, const Engine bool GstEngine::Play(const bool pause, const quint64 offset_nanosec) { - if (!current_pipeline_ || current_pipeline_->is_buffering() || current_pipeline_->state() == GstState::GST_STATE_PLAYING) return false; + if (!current_pipeline_ || current_pipeline_->is_buffering()) { + return false; + } + + if (current_pipeline_->state() == GstState::GST_STATE_PLAYING) { + if (offset_nanosec != 0 || beginning_offset_nanosec_ != 0) { + Seek(offset_nanosec); + PlayDone(GST_STATE_CHANGE_SUCCESS, false, offset_nanosec, current_pipeline_->id()); + } + return true; + } if (OldExclusivePipelineActive()) { qLog(Debug) << "Delaying play because a exclusive pipeline is already active...";