1. 03 Jun, 2015 2 commits
    • Sebastian Dröge's avatar
      ptp: Don't use SIOCGIFHWADDR on Apple · 3af74817
      Sebastian Dröge authored
      Just #ifdef the code for now, this should be implemented around
      IOKit later instead of using ioctls.
    • Sebastian Dröge's avatar
      ptp: Initial implementation of a PTP clock · 8d777598
      Sebastian Dröge authored
      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 gst_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.
      gst_ptp_clock_new() 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, the GstPtpClock::internal-clock property and
      the related notify::clock signal can be used. Once the internal clock
      is not NULL, the PTP domain's time is known. Alternatively you can wait
      for this with gst_ptp_clock_wait_ready().
      To gather statistics about the PTP clock synchronization,
      gst_ptp_statistics_callback_add() can be used. This gives the
      application the possibility to collect all kinds of statistics
      from the clock synchronization.