## GstNetClientClock

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

## Functions

GstClock * | gst_net_client_clock_new ()
GstClock * | gst_ntp_clock_new ()

## Properties

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

## Types and Values

struct | GstNetClientClock
typedef | GstNtpClock

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GstObject
                ╰── GstClock
                    ╰── GstSystemClock
                        ╰── GstNetClientClock
                            ╰── GstNtpClock

## Includes

    #include <gst/net/gstnet.h>

## 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.

## Functions

### 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` .

#### Parameters

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` .

#### Parameters

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

## Types and Values

### struct GstNetClientClock

    struct GstNetClientClock;

Opaque GstNetClientClock structure.

### GstNtpClock

    typedef struct _GstNetClientClock GstNtpClock;

## Property Details

### The `“address”` property

      “address”                  gchar *

The IP address of the machine providing a time server.

Flags: Read / Write / Construct

Default value: "127.0.0.1"

### The `“base-time”` property

      “base-time”                guint64

Initial time that is reported before synchronization.

Flags: Read / Write / Construct Only

Default value: 0

### The `“bus”` property

      “bus”                      GstBus *

A GstBus on which to send clock status information.

Flags: Read / Write

### The `“internal-clock”` property

      “internal-clock”           GstClock *

Internal clock that directly slaved to the remote clock.

Flags: Read

### The `“minimum-update-interval”` property

      “minimum-update-interval”  guint64

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

Flags: Read / Write

Default value: 50000000

### The `“port”` property

      “port”                     gint

The port on which the remote server is listening.

Flags: Read / Write / Construct

Allowed values: [0,65535]

Default value: 5637

### The `“round-trip-limit”` property

      “round-trip-limit”         guint64

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

Flags: Read / Write

Default value: 1000000000

## See Also

GstClock, GstNetTimeProvider, GstPipeline