Brussels / 3 & 4 February 2024


V4L2 Stateless Video Encoding: Hardware Support and uAPI

Support for hardware video codecs has been around in V4L2 since the memory-to-memory (M2M) framework was merged in 2010. While it initially allowed support for firmware-driven stateful implementations, it did not cover the case of stateless hardware codecs where the kernel has to configure hardware blocks directly instead of relying on a (proprietary) firmware.

Stateless video decoding became supported in 2018 after Bootlin's successful crowdfunding campaign targeting Allwinner platforms. The only remaining piece missing after this work was support for stateless video encoders.

This talk will present the current effort to bring support for stateless video encoders in mainline V4L2. This includes an overview of the current preliminary work on selected hardware platforms and video codecs as well as a brief summary of today's out-of-tree support. It will be followed by an introduction to the difficult process of creating a new userspace API to support them in mainline Linux, the inherent trade-offs that need arbitration and why this is taking time to converge.


Photo of Paul Kocialkowski Paul Kocialkowski