# JitterBufferConfig

<a id="jitterbufferconfig"></a>

# JitterBufferConfig

```cpp
#include <icy/webrtc/jitterbuffer.h>

struct JitterBufferConfig
```

[Defined in src/webrtc/include/icy/webrtc/jitterbuffer.h:30](https://github.com/auscaster/icey/blob/main/src/webrtc/include/icy/webrtc/jitterbuffer.h#L30)

Receive-side jitter buffer behaviour for depacketized WebRTC media frames.

The jitter buffer sits after libdatachannel depacketization and before icey emits encoded AudioPacket/VideoPacket objects to downstream decoders or recorders. It reorders frames by RTP-derived media timestamp and delays release long enough to absorb moderate network jitter.

## Public Attributes

| Return | Name | Description |
|--------|------|-------------|
| `bool` | [`enabled`](#enabled-1)  | False keeps the current zero-buffer receive path. |
| `std::int64_t` | [`minDelayMs`](#mindelayms)  | Base playout delay in milliseconds. |
| `std::int64_t` | [`maxDelayMs`](#maxdelayms)  | Upper bound for the adaptive playout delay. |
| `double` | [`adaptiveFactor`](#adaptivefactor)  | Extra delay multiplier applied to observed inter-arrival variance. |
| `std::int64_t` | [`tickIntervalMs`](#tickintervalms)  | Poll interval for releasing buffered frames. |

---

<a id="enabled-1"></a>

### enabled

```cpp
bool enabled = false
```

[Defined in src/webrtc/include/icy/webrtc/jitterbuffer.h:32](https://github.com/auscaster/icey/blob/main/src/webrtc/include/icy/webrtc/jitterbuffer.h#L32)

False keeps the current zero-buffer receive path.

---

<a id="mindelayms"></a>

### minDelayMs

```cpp
std::int64_t minDelayMs = 20
```

[Defined in src/webrtc/include/icy/webrtc/jitterbuffer.h:33](https://github.com/auscaster/icey/blob/main/src/webrtc/include/icy/webrtc/jitterbuffer.h#L33)

Base playout delay in milliseconds.

---

<a id="maxdelayms"></a>

### maxDelayMs

```cpp
std::int64_t maxDelayMs = 120
```

[Defined in src/webrtc/include/icy/webrtc/jitterbuffer.h:34](https://github.com/auscaster/icey/blob/main/src/webrtc/include/icy/webrtc/jitterbuffer.h#L34)

Upper bound for the adaptive playout delay.

---

<a id="adaptivefactor"></a>

### adaptiveFactor

```cpp
double adaptiveFactor = 1.5
```

[Defined in src/webrtc/include/icy/webrtc/jitterbuffer.h:35](https://github.com/auscaster/icey/blob/main/src/webrtc/include/icy/webrtc/jitterbuffer.h#L35)

Extra delay multiplier applied to observed inter-arrival variance.

---

<a id="tickintervalms"></a>

### tickIntervalMs

```cpp
std::int64_t tickIntervalMs = 5
```

[Defined in src/webrtc/include/icy/webrtc/jitterbuffer.h:36](https://github.com/auscaster/icey/blob/main/src/webrtc/include/icy/webrtc/jitterbuffer.h#L36)

Poll interval for releasing buffered frames.
