From 04176bede1ecca332bf8ac8608a12cd835f6a818 Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Thu, 11 Oct 2018 14:34:40 +1100 Subject: [PATCH] ptp clock: Wait for ANNOUNCE before selecting a master Previously, with opportunistic sync we'd track a master clock as soon as we see a SYNC message, and hence sync up faster, but then we'd announce we're synched before seeing the ANNOUNCE, leaving the clock details like grandmaster-clock empty. A better way is to start tracking the clock opportunistically, but not announce we're synched until we've also seen the ANNOUNCE. --- libs/gst/net/gstptpclock.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libs/gst/net/gstptpclock.c b/libs/gst/net/gstptpclock.c index 2db4175..c2d0915 100644 --- a/libs/gst/net/gstptpclock.c +++ b/libs/gst/net/gstptpclock.c @@ -2405,8 +2405,9 @@ gst_ptp_clock_ensure_domain_clock (GstPtpClock * self) for (l = domain_clocks; l; l = l->next) { PtpDomainData *clock_data = l->data; - if (clock_data->domain == self->priv->domain - && clock_data->last_ptp_time != 0) { + if (clock_data->domain == self->priv->domain && + clock_data->have_master_clock && clock_data->last_ptp_time != 0) { + GST_DEBUG ("Switching domain clock on domain %d", clock_data->domain); self->priv->domain_clock = clock_data->domain_clock; got_clock = TRUE; break; -- 2.7.4