Linux video acceleration

With the advent of open source UVD support for my HD5750 in Linux, I’ve been trying to understand what is needed for accelerating video under Linux, and how all the components work together. So I drew a diagram to try and make sense of it all:

Linux video acceleration

Sufficed to say, it’s not pretty. The key thing is that there are currently two main modern acceleration API’s under Linux – Video Acceleration API (VA-API) and Video Decode and Presentation API for Unix (VDPAU). They don’t support all video formats, just some. Not all video drivers support them all (open source Intel and closed source AMD support VA-API, closed source nVidia and open source AMD supports VDPAU), and the support for each of these varies wildly from one piece of software to the next – for example, VLC uses VA-API, the closed source Flash player uses VDPAU.

If you’re using a driver that only supports VDPAU, you have a bit more luck, because VA-API currently exposes just a subset of the VDPAU functionality (though this will probably change in the upcoming VA-API release). A wrapper driver has therefore been written that can convert from VA-API to VDPAU, so VA-API software can still be accelerated on VDPAU only drivers. As far as I understand though, the reverse is not true of VA-API drivers and VDAPU software.

Posted on June 24, 2013 at 9:49 pm by Carlos Corbacho · Permalink
In: Linux

Leave a Reply

You must be logged in to post a comment.