1. 03 Jun, 2015 3 commits
    • Sebastian Dröge's avatar
    • Sebastian Dröge's avatar
      ptp: Add #defines to enable/disable improvements for unreliable networks · 5e1974fc
      Sebastian Dröge authored
      We should do some more measurements with all these and check how much sense
      they make for PTP. Also enabling them means not following IEEE1588-2008 by the
      letter anymore.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=749391
      5e1974fc
    • 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.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=749391
      8d777598