Jetson Orin V4L2 Encoder Silently Drops BT.2020 and Full-Range Colorimetry
Developers report that the NVIDIA Jetson AGX Orin V4L2 encoder does not properly process or signal BT.2020 colorimetry metadata, defaulting to SMPTE170M and limited range. This limitation affects engineers relying on accurate full-range H.265 and AV1 encoding for streaming workflows on the platform.
Key Takeaways
- V4L2_COLORSPACE_BT2020 is silently replaced by V4L2_COLORSPACE_SMPTE170M in the tegrav4l2 encoder on L4T R36.4.7, while SMPTE170M and REC709 propagate correctly
- Full-range quantization falls back to limited range; VIDIOC_S_FMT returns EINVAL for all colorimetry sub-field configurations tested by the developer
- NVIDIA confirmed the Orin encoder hardware supports BT.2020 for 10-bit H.265 and AV1, but the V4L2 software layer does not propagate these settings correctly
- The affected platform is Jetson AGX Orin DevKit running kernel 5.15.148-tegra arm64 with L4T R36.4.7
- Developers remain uncertain whether incorrect colorimetry signaling affects encoded pixel data or only VUI/container metadata — a distinction critical for determining workaround viability
Why It Matters
Engineers building HDR or wide-gamut streaming pipelines on Jetson AGX Orin cannot rely on the V4L2 encoder to signal BT.2020 or full-range metadata correctly, forcing workarounds at the muxer or bitstream level — and only if the pixel data itself remains unmodified. NVIDIA has acknowledged the gap but has not committed to a timeline for a fix. The broader Jetson embedded encoding ecosystem has seen recurring colorimetry issues since at least August 2024, when a separate developer reported partial BT.709 signaling failures on the same platform. Watch for NVIDIA L4T release notes mentioning tegrav4l2 colorimetry fixes in upcoming JetPack updates.
Additional Context
The BT.2020 colorimetry gap is not an isolated issue on the Jetson platform. In August 2024, a developer on NVIDIA's Jetson forums reported that H.264 encoding on a Jetson AGX Orin running L4T R36.3 failed to correctly signal BT.709 colorspace metadata — the encoder set colour_primaries and transfer_characteristics to 0 (a reserved value) instead of the correct values, causing decoders to misidentify the stream as BT.601 limited range. NVIDIA responded by providing a patched library for L4T R35.5.0, but the thread suggests the fix was not propagated to later releases at the time. NVIDIA's own V4L2 encoder documentation references a control ID, V4L2_CID_MPEG_VIDEOENC_EXTEDED_COLORFORMAT (V4L2_CID_MPEG_BASE+548), designed to enable or disable setting extended color format values in VUI info. The documentation notes this control must be set after V4L2_CID_MPEG_VIDEOENC_INSERT_VUI is enabled and after formats are set on both planes. However, the forum report indicates that even when developers attempt to use the standard V4L2 colorspace API and detailed sub-fields (ycbcr_enc, quantization, xfer_func), the tegrav4l2 driver returns EINVAL and discards the values — suggesting the control exists in the API surface but is not fully implemented for all color space configurations. Colorimetry metadata propagation issues are not unique to Jetson. In January 2023, a GitHub issue on the rigaya/NVEnc project reported color desaturation when encoding AV1 with HDR metadata on desktop NVIDIA GPUs (RTX 4090), where HDR10 metadata including mastering display and MaxCLL was not properly signaled in the AV1 bitstream. The NVEnc maintainer fixed the issue in version 7.13 by adding metadata at the container level as well as the bitstream level. That fix addressed desktop NVENC via the Video Codec SDK, a separate code path from the Jetson tegrav4l2 encoder — but it underscores that NVIDIA's colorimetry handling has had gaps across both its embedded and desktop encoder stacks. More recently, in April 2026, NVIDIA forum moderators confirmed that the Jetson platform does not support the libnvidia-encode.so library used on desktop NVIDIA GPUs, and that developers must use the jetson_multimedia_api or GStreamer's nvv4l2h265enc plugin instead. This architectural separation means colorimetry fixes applied to desktop NVENC via driver updates do not automatically reach Jetson users, who depend on L4T release cycles for encoder improvements.
Read full article at forums.developer.nvidia.com
Get this in your inbox → Subscribe
Enjoy our coverage?
Add StreamingMeme as a preferred source on Google to see more of our streaming news at the top of your Search results.
Add as preferred source