GstNetClientClock

GstNetClientClock — Special clock that synchronizes to a remote time provider.

Synopsis

#include <gst/net/gstnet.h>

struct              GstNetClientClock;
typedef             GstNtpClock;
GstClock *          gst_net_client_clock_new            (const gchar *name,
                                                         const gchar *remote_address,
                                                         gint remote_port,
                                                         GstClockTime base_time);
GstClock *          gst_ntp_clock_new                   (const gchar *name,
                                                         const gchar *remote_address,
                                                         gint remote_port,
                                                         GstClockTime base_time);

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GstObject
               +----GstClock
                     +----GstSystemClock
                           +----GstNetClientClock
                                 +----GstNtpClock
  GObject
   +----GInitiallyUnowned
         +----GstObject
               +----GstClock
                     +----GstSystemClock
                           +----GstNetClientClock
                                 +----GstNtpClock

Properties

  "address"                  gchar*                : Read / Write / Construct
  "base-time"                guint64               : Read / Write / Construct Only
  "bus"                      GstBus*               : Read / Write
  "internal-clock"           GstClock*             : Read
  "minimum-update-interval"  guint64               : Read / Write
  "port"                     gint                  : Read / Write / Construct
  "round-trip-limit"         guint64               : Read / Write

Description

GstNetClientClock implements a custom GstClock that synchronizes its time to a remote time provider such as GstNetTimeProvider. GstNtpClock implements a GstClock that synchronizes its time to a remote NTPv4 server.

A new clock is created with gst_net_client_clock_new() or gst_ntp_clock_new(), which takes the address and port of the remote time provider along with a name and an initial time.

This clock will poll the time provider and will update its calibration parameters based on the local and remote observations.

The "round-trip" property limits the maximum round trip packets can take.

Various parameters of the clock can be configured with the parent GstClock "timeout", "window-size" and "window-threshold" object properties.

A GstNetClientClock and GstNtpClock is typically set on a GstPipeline with gst_pipeline_use_clock().

If you set a GstBus on the clock via the "bus" object property, it will send GST_MESSAGE_ELEMENT messages with an attached GstStructure containing statistics about clock accuracy and network traffic.

Details

struct GstNetClientClock

struct GstNetClientClock;

Opaque GstNetClientClock structure.


GstNtpClock

typedef struct _GstNetClientClock GstNtpClock;

gst_net_client_clock_new ()

GstClock *          gst_net_client_clock_new            (const gchar *name,
                                                         const gchar *remote_address,
                                                         gint remote_port,
                                                         GstClockTime base_time);

Create a new GstNetClientInternalClock that will report the time provided by the GstNetTimeProvider on remote_address and remote_port.

name :

a name for the clock

remote_address :

the address or hostname of the remote clock provider

remote_port :

the port of the remote clock provider

base_time :

initial time of the clock

Returns :

a new GstClock that receives a time from the remote clock.

gst_ntp_clock_new ()

GstClock *          gst_ntp_clock_new                   (const gchar *name,
                                                         const gchar *remote_address,
                                                         gint remote_port,
                                                         GstClockTime base_time);

Create a new GstNtpClock that will report the time provided by the NTPv4 server on remote_address and remote_port.

name :

a name for the clock

remote_address :

the address or hostname of the remote clock provider

remote_port :

the port of the remote clock provider

base_time :

initial time of the clock

Returns :

a new GstClock that receives a time from the remote clock.

Since 1.6

Property Details

The "address" property

  "address"                  gchar*                : Read / Write / Construct

The IP address of the machine providing a time server.

Default value: "127.0.0.1"


The "base-time" property

  "base-time"                guint64               : Read / Write / Construct Only

Initial time that is reported before synchronization.

Default value: 0


The "bus" property

  "bus"                      GstBus*               : Read / Write

A GstBus on which to send clock status information.


The "internal-clock" property

  "internal-clock"           GstClock*             : Read

Internal clock that directly slaved to the remote clock.


The "minimum-update-interval" property

  "minimum-update-interval"  guint64               : Read / Write

Minimum polling interval for packets, in nanoseconds(0 = no limit).

Default value: 50000000


The "port" property

  "port"                     gint                  : Read / Write / Construct

The port on which the remote server is listening.

Allowed values: [0,65535]

Default value: 5637


The "round-trip-limit" property

  "round-trip-limit"         guint64               : Read / Write

Maximum tolerable round-trip interval for packets, in nanoseconds (0 = no limit).

Default value: 1000000000

See Also

GstClock, GstNetTimeProvider, GstPipeline