Skip to content

SMPTE ST 2110 — Uncompressed over IP

The professional broadcast IP standard: uncompressed video (ST 2110-20) and audio (ST 2110-30) over the network, hardware-paced for low latency. It exposes the same plugin ABI as VDI/MXL, so it chains transparently into any pipeline.

  • Library: libst2110.so · Implementation: C++ on Intel MTL + DPDK
  • Direction: tx and rx
{
"direction": "tx",
"mtl": {
"interface": "0000:af:00.0",
"local_ip": "192.168.96.10", "netmask": "255.255.255.0",
"tx_queues_cnt": 16, "rx_queues_cnt": 16
},
"video": {
"ip": "239.168.85.20", "port": 20000, "payload_type": 96,
"width": 1920, "height": 1080, "fps": "p25",
"format": "v210", "transport_format": "yuv_422_10bit",
"pacing": "narrow", "packing": "BPM", "framebuff_cnt": 4
},
"audio": {
"ip": "239.168.85.21", "port": 30000, "payload_type": 97,
"sampling": "48kHz", "channels": 2, "ptime": "1ms"
}
}
  • mtl.interface is a DPDK PCIe address, not a Linux interface name — the NIC is bound to DPDK.
  • pacing: narrow is gapped, ST 2110-21-compliant hardware pacing.
  • transport_format / packing follow ST 2110-20 conventions.
  • plugin_query_config returns runtime stats (uptime, frame counts, RX/TX packet stats, watchdog health).

One shared device handle per process, created on first use and reference counted. Received frames arrive by interrupt and are bridged to the polling read API through a lock-free ring buffer, and a watchdog monitors frame progress so a stalled stream is detected rather than silently starving.