SMPTE ST 2110 — Uncompressed over IP
SMPTE ST 2110 — Uncompressed over IP
Section titled “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
Configuration
Section titled “Configuration”{ "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.interfaceis a DPDK PCIe address, not a Linux interface name — the NIC is bound to DPDK.pacing: narrowis gapped, ST 2110-21-compliant hardware pacing.transport_format/packingfollow ST 2110-20 conventions.plugin_query_configreturns runtime stats (uptime, frame counts, RX/TX packet stats, watchdog health).
Build & notes
Section titled “Build & notes”Heavyweight prerequisites: DPDK v25.11 with 7 MTL patches, Intel MTL v26.01+
built against that patched DPDK, a local prefix install, and a Python venv with
pyelftools for the Meson build. Design: one shared MTL device handle per
process (lazy-init, refcounted); interrupt-driven RX callbacks bridge to the
polling plugin_read API via a lock-free ring buffer; a stall watchdog
monitors frame progress.
