MXL — Media Exchange Layer
MXL — Media Exchange Layer
Section titled “MXL — Media Exchange Layer”MXL moves raw frames zero-copy between processes like VDI, but every flow also carries NMOS-style descriptors — format URN, grain rate, colorimetry, components — so MXL streams have standards-grade identity other tooling can see.
- Library:
libplugin-mxl.so(+ runtimelibmxl*.so*) · Implementation: C++ wrapping the MXL C library - Addressing:
mxl://…
Configuration
Section titled “Configuration”The JSON passed to plugin_open is the flow descriptor:
{ "id": "5fbec3b1-1b0f-417d-9059-8b94a47197ef", "label": "MXL Test Flow, 1080p25", "format": "urn:x-nmos:format:video", "media_type": "video/v210", "grain_rate": { "numerator": 25, "denominator": 1 }, "frame_width": 1920, "frame_height": 1080, "interlace_mode": "progressive", "colorspace": "BT709", "components": [ { "name": "Y", "width": 1920, "height": 1080, "bit_depth": 10 }, { "name": "Cb", "width": 960, "height": 1080, "bit_depth": 10 }, { "name": "Cr", "width": 960, "height": 1080, "bit_depth": 10 } ]}MXL_DOMAIN (env, or a domain path in the host config) selects the
shared-memory domain (default /dev/shm/mxl_domain).
Malformed configuration is not handled gracefully — keep it valid rather than
relying on the plugin to reject it. plugin_read_timeout may not be
implemented; check before relying on it.
