GstPtpClock implements a PTP (IEEE1588:2008) ordinary clock in slave-only mode, that allows a GStreamer pipeline to synchronize to a PTP network clock in some specific domain.
The PTP subsystem can be initialized with ptp_init, which then starts a helper process to do the actual communication via the PTP ports. This is required as PTP listens on ports < 1024 and thus requires special privileges. Once this helper process is started, the main process will synchronize to all PTP domains that are detected on the selected interfaces.
PtpClock then allows to create a GstClock that provides the PTP time
from a master clock inside a specific PTP domain. This clock will only return valid timestamps once the timestamps in the PTP domain are
known. To check this, you can use wait_for_sync, the GstClock:GstPtpClock:synced
signal and
is_synced.
To gather statistics about the PTP clock synchronization, ptp_statistics_callback_add can be used. This gives the application the possibility to collect all kinds of statistics from the clock synchronization.