From 76fa4745d0a261d35fd517ac0e05bc3b8ddeb239 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Sat, 7 Oct 2023 02:47:12 +0200 Subject: [PATCH] GstEnginePipeline: Only update last known position when possible Fixes flaky seeking where gst_element_query_position() returns -1 when seeking. --- src/engine/gstenginepipeline.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/engine/gstenginepipeline.cpp b/src/engine/gstenginepipeline.cpp index e9cd549f6..3bfb51355 100644 --- a/src/engine/gstenginepipeline.cpp +++ b/src/engine/gstenginepipeline.cpp @@ -1488,7 +1488,10 @@ void GstEnginePipeline::BufferingMessageReceived(GstMessage *msg) { qint64 GstEnginePipeline::position() const { if (pipeline_is_initialized_) { - gst_element_query_position(pipeline_, GST_FORMAT_TIME, &last_known_position_ns_); + gint64 current_position = 0; + if (gst_element_query_position(pipeline_, GST_FORMAT_TIME, ¤t_position)) { + last_known_position_ns_ = current_position; + } } return last_known_position_ns_;