Back in 2007, Adobe's Mike Melanson, who is responsible for much of the Linux work on the Adobe Flash Player, had blogged about
the jungle of audio output methods. Linux audio has been a mess with so many choices and each project like PulseAudio having its advantages and disadvantages. Things have improved somewhat over the past three years, but Mike is now focusing his attention on the Linux video acceleration APIs. Melanson has published a new blog post not calling the video APIs a jungle, but rather
a thicket.
This blog post is rather short but he promises to post more later. Mike's chart isn't as complex as what he had done in 2007, but just shows the application sitting above Crystal HD and VA-API. Below VA-API is then VDPAU and XvBA and then finally the video hardware itself. Using
Crystal HD decoding is a new option from Broadcom with their hardware and open-source drivers while
VA-API has been around for a while and natively implemented in some drivers, but most commonly is used as a front-end video API where Splitted Desktop Systems has written
VDPAU and
XvBA back-ends so that it can be used atop NVIDIA and ATI/AMD hardware, respectively. There are no Linux applications that directly implement the X-Video Bitstream Acceleration API as AMD has not opened up its API or otherwise provided patches to directly implement its support.
In regards to VDPAU, there are plenty of applications that support it directly like
MPlayer/FFmpeg,
MythTV, and
XBMC. VDPAU is currently found on NVIDIA hardware, but S3 Graphics
claims to support it, but the Video Decode and Presentation API for Unix support
may come to Gallium3D.
VDPAU is certainly a favorite and allows
HD video playback with very low-end GPUs and CPUs. Not shown in Melanson's chart is
XvMC, but this extension is not nearly as powerful as VDPAU/XvBA/VA-API.
Last year it looked like
Adobe would use VDPAU, but that hasn't yet arrived. The Adobe Flash Player 10.1 Beta was
recently released and the Windows version featured wonderful video acceleration while the Linux client went without any support. For what it's worth, the Gnash project that aims to provide a free software implementation of Flash/SWF, already has
VA-API patches available.