playoutdelay

package
v0.0.0-...-dba810d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 11, 2026 License: GPL-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package playoutdelay implements the WebRTC playout-delay RTP header extension (http://www.webrtc.org/experiments/rtp-hdrext/playout-delay).

Chrome's adaptive jitter buffer is one-way: it grows when packet timing gets jittery (e.g. the JetKVM H.264 encoder emitting variable-size frames during high-motion content like fullscreen YouTube on the host) and stubbornly refuses to shrink back, leaving the "Playback Delay" graph stuck at hundreds of milliseconds until the page is reloaded. Receiver- side knobs like jitterBufferTarget / playoutDelayHint / setMinimumJitterBufferDelay all cap the steady-state floor but cannot pull a ratcheted buffer back down.

The playout-delay extension is the sender-side counterpart: each outgoing RTP packet carries the desired minimum and maximum playout delay (in 10 ms increments). Chrome honours it as an authoritative override of its adaptive logic. We send min=max=0 on every video packet, which keeps the receiver pinned at the absolute floor.

Reference: https://webrtc.googlesource.com/src/+/HEAD/docs/native-code/rtp-hdrext/playout-delay/README.md

Index

Constants

View Source
const URI = "http://www.webrtc.org/experiments/rtp-hdrext/playout-delay"

Variables

This section is empty.

Functions

This section is empty.

Types

type Factory

type Factory struct {
	MinDelay10ms uint16
	MaxDelay10ms uint16
}

Factory creates playout-delay interceptors with the given min/max bounds in 10 ms units. JetKVM uses min=max=0 — no buffering beyond decoder needs.

func NewFactory

func NewFactory() *Factory

func (*Factory) NewInterceptor

func (f *Factory) NewInterceptor(_ string) (interceptor.Interceptor, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
⌂ 换网址