When blocking, the sink element will not have received a buffer
yet and the position query will fail. Instead, we make use of
the running time of the buffer we blocked on.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/160>
priv = stream->priv;
g_mutex_lock (&priv->lock);
+
+ if (priv->blocking && GST_CLOCK_TIME_IS_VALID (priv->blocked_running_time)) {
+ *position = priv->blocked_running_time;
+ g_mutex_unlock (&priv->lock);
+ return TRUE;
+ }
+
/* depending on the transport type, it should query corresponding sink */
if (priv->configured_protocols & GST_RTSP_LOWER_TRANS_UDP)
sink = priv->udpsink[0];