Software/vaapi

News

* Jul 13'09 -- libVA mailing list was created on fd.o (http://lists.freedesktop.org/mailman/listinfo/libva)

* Jul 01'09 -- libVA news on LWN (http://lwn.net/Articles/339349/)

* Jul 01'09 -- Add MPEG2 VLD driver into libVA for Intel integrated G45 graphics chip

* Jun 12'09 -- Update VAAPI to version 0.30 to include encode support

* Sep 13'07 -- Create libVA git repository on freedesktop.org

About

The main motivation for VAAPI (Video Acceleration API) is to enable hardware accelerated video decode/encode at various entry-points (VLD, IDCT, Motion Compensation etc.) for the prevailing coding standards today (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3). Extending XvMC was considered, but due to its original design for MPEG-2 MotionComp only, it made more sense to design an interface from scratch that can fully expose the video decode capabilities in today's GPUs.

The current video decode/encode interface is window system independent, so that potentially it can be used with graphics sub-systems other than X. In a nutshell it is basically a scheme to pass various types of data buffers from the application to the GPU for decoding or encoding. Feedback on the API is greatly welcomed, as this is intended to be a community collaborative effort.

Version 0.31 of libva, an implementation of VAAPI for Linux, is now available via git from the following location (http://cgit.freedesktop.org/libva/):

    git clone git://anongit.freedesktop.org/git/libva

Specification

Latest VAAPI decode/encode specification can be found at http://cgit.freedesktop.org/libva/tree/src/va.h,

Post-processing interface can be found at http://cgit.freedesktop.org/libva/tree/src/x11/va_x11.h

Drivers (back-ends) that implement VA API

- Intel Embedded Graphics Drivers (IEGD):

- Intel GMA500 driver (OEM only):

- Intel integrated G45 graphics chips:

- VDPAU back-end for NVIDIA and VIA chipsets:

- VIA / S3 Graphics Accelerated Linux Driver:

- XvBA / ATI Graphics Backend (for proprietary driver only)

Other back-ends are currently under development.

Decoding Hardware with no backend available

Software using VA API

- FFmpeg (always use latest SVN tree):

- Fluendo video codec pack for Intel Atom (GStreamer):

- MPlayer/VAAPI:

- RealPlayer for MID:

- VideoLAN - VLC media player:

libVA sample code

* Hardware video decoding acceleration demos:

* decode sample program:

* encode sample program:

* post-processing sample program:

Architecture

Linux_vaAPI.gif

Contact

Jonathan Bian (jonathan.bian@intel.com); Austin Yuan (shengquan.yuan@intel.com)