#1152234 ITP: qcom-va-driver -- VA-API driver for Qualcomm Iris V4L2 devices

Package:
wnpp
Source:
wnpp
Submitter:
Christopher Obbard
Date:
2026-10-26 23:33:02 UTC
Severity:
normal
#1152234#5
Date:
2026-10-26 23:30:32 UTC
From:
To:
* Package name    : qcom-va-driver
  Version         : 1.1.0
  Upstream Contact: Xilin Wu <sophon@radxa.com>
* URL             : https://github.com/radxa-pkg/qcom-va-driver
* License         : Expat
  Programming Lang: C++, C
  Description     : VA-API driver for Qualcomm Iris V4L2 devices

 This experimental driver provides hardware-accelerated video decoding
 and H.264/HEVC encoding through the Qualcomm Iris stateful V4L2
 memory-to-memory interface.
 .
 Supported decoding: H.264 (Constrained Baseline, Main, High), HEVC
 (Main, Main10), VP9 (profiles 0 and 2) and AV1 (Main, where exposed
 by the hardware). Supported encoding: H.264 and HEVC Main (8-bit).
 Optional Vulkan-based video processing provides scaling, cropping,
 rotation, format conversion, overlays and HDR10 to SDR tone mapping.


Why is this package useful?

Qualcomm SoCs with the Iris video block (e.g. SC8280XP, X1E80100) have
an upstream stateful V4L2 driver in Linux, but most applications (e.g.
FFmpeg, GStreamer va plugin, mpv, VLC, Chromium, Kodi) use hardware
video acceleration through VA-API. This driver bridges the two so those
applications can decode and encode in hardware on these
platforms. Upstream has tested it on SC8280XP (Radxa Dragon Q8B) and
I have tested it on X1E80100 (Snapdragon X Elite).

There is no existing VA-API backend for this hardware in Debian. It is
not a generic V4L2 backend and is targeted specifically at Iris; the
project was previously named libva-v4l2.

Packaging notes:

 - Built for arm64 only, with the GPU (EGL/GLES/GBM) surface copy and
   Vulkan VPP backends enabled.
 - The CDSP VPP backend is disabled, as it needs toolchains downloaded
   at build time and Qualcomm Hexagon SDK components; the package has
   no non-free build or runtime dependencies and targets main.
 - The driver is installed as qcom_drv_video.so. The upstream
   system-wide environment snippets (/etc/profile.d,
   environment.d) that force GST_VA_ALL_DRIVERS and change GStreamer
   element ranks are not shipped; README.Debian documents how to set
   them manually instead.
 - Some features need Iris kernel patches that are carried in the
   upstream repository and are not yet in mainline Linux (decode-order
   output, larger capture pools, encoder deblocking controls, error
   timestamps, NOSHOW buffer recycling for AV1). This is documented
   in README.Debian and upstream is actively working on upstreaming the
   patches; this requirement will go away soon and will work with a
   vanilla Debian kernel.
 - The hardware regression tests are shipped in a separate
   qcom-va-driver-tests binary package under /usr/libexec.

Maintenance:

I plan to maintain this within the Debian Multimedia Maintainers team,
alongside libva and the other VA-API drivers, with myself as Uploader.
Packaging will live at:
https://salsa.debian.org/multimedia-team/qcom-va-driver

I am a Debian Developer and will upload it myself. I have access to
the supported hardware for testing.