-
-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathclock_sync_backend.go
40 lines (35 loc) · 1.34 KB
/
clock_sync_backend.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Code generated by generate_bindings.py script from roc-streaming/bindgen
// roc-toolkit git tag: v0.3.0, commit: 57b932b8
package roc
// Clock synchronization algorithm.
//
// Defines how sender and receiver clocks are synchronized.
//
//go:generate stringer -type ClockSyncBackend -trimprefix ClockSyncBackend -output clock_sync_backend_string.go
type ClockSyncBackend int
const (
// Disable clock synchronization.
//
// In this mode, sender and receiver clocks are not synchronized. This mode is
// generally not recommended, since clock drift will lead to periodic playback
// disruptions caused by underruns and overruns.
ClockSyncBackendDisable ClockSyncBackend = -1
// Default backend.
//
// Current default is ClockSyncBackendNiq.
ClockSyncBackendDefault ClockSyncBackend = 0
// Clock synchronization based on network incoming queue size.
//
// In this mode, receiver monitors incoming queue size and adjusts playback
// clock speed to match the estimated capture clock speed.
//
// Pros:
// - works with any protocol (does not require RTCP or NTP)
//
// Cons:
// - synchronizes only clock speed, but not position; different receivers will
// have different (constant) delays
// - affected by network jitter; spikes in packet delivery will cause slow
// oscillations in clock speed
ClockSyncBackendNiq ClockSyncBackend = 2
)