diff --git a/src/gst/gstpipewireclock.c b/src/gst/gstpipewireclock.c index 10607c3e7..5a735a8b5 100644 --- a/src/gst/gstpipewireclock.c +++ b/src/gst/gstpipewireclock.c @@ -34,16 +34,17 @@ gst_pipewire_clock_get_internal_time (GstClock * clock) GstClockTime result; uint64_t now; - if (G_UNLIKELY (!s)) - return pclock->last_time; - now = pw_stream_get_nsec(s->pwstream); + + if (G_UNLIKELY (!s)) + return pclock->last_time ? pclock->last_time : now; + #if 1 struct pw_time t; if (s->pwstream == NULL || pw_stream_get_time_n (s->pwstream, &t, sizeof(t)) < 0 || t.rate.denom == 0) - return pclock->last_time; + return pclock->last_time ? pclock->last_time : now; result = gst_util_uint64_scale (t.ticks, GST_SECOND * t.rate.num, t.rate.denom); result += now - t.now;