AMD Publishes New Code For Open-Source VCE Video Encode
AMD has published a second version of their open-source Linux driver code for exposing the "VCE" video engine on modern Radeon GPUs under Linux via OpenMAX for accelerated H.264 video encoding.
Earlier this month AMD shipped a bunch of open-source code for enabling the VCE engine on newer GPUs like Sea Islands, Kaveri, and Kabini within the open-source driver. VCE2 is what's exposed by this code and is optimized for encoding a low-latency H.264 stream for wireless displays but can also be used for general purpose H.264 video encoding. This open-source code exposes the video encode capabilities via the recently mainlined OpenMAX Gallium3D state tracker in mainline Mesa. For application support, GStreamer has OpenMAX support so any application targeting this open-source multimedia framework can now seamlessly target the open-source AMD GPU driver for faster H.264 encoding. Those unfamiliar with the recent open-source AMD VCE activity can read my AMD Open-Sources VCE Video Encode Engine Code announcement that was first to publicly talk about this major code drop.
Today's revised VCE patch-set by Christian König is based upon the recently merged OpenMAX state tracker and has other changes. It doesn't extend the VCE hardware support at all but is still limited to the very recent VCE2-based hardware; VCE1 support for the Radeon HD 7000 "Southern Islands" and other slightly older GPUs may or may not come in the future.
On the user-space side the VCE support code should be merged in plenty of time for Mesa 10.2 that will be released in about three months (not the imminent Mesa 10.1 release). On the kernel side the new VCE firmware blob and Radeon DRM driver changes will likely be merged into the Linux 3.15 kernel in the months ahead.
The new AMD VCE Linux code can be found on the Mesa-dev list along with some instructions for basic usage with GStreamer's OpenMAX support.