GstEnginePipeline: Only update last known position when possible

Fixes flaky seeking where gst_element_query_position() returns -1 when seeking.
This commit is contained in:
Jonas Kvinge 2023-10-07 02:47:12 +02:00
parent 6f4d26e9d3
commit 76fa4745d0

View File

@ -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, &current_position)) {
last_known_position_ns_ = current_position;
}
}
return last_known_position_ns_;