web.archive.org

VAAPI hardware decoding

Hardware Supported

Intel® GMA X4500HD.
Intel® HD Graphics (in Intel® 2010 Core™ i7/i5/i3 processor family).
Intel® HD Graphics 2000/3000 (in 2nd Generation Intel® Core™ i7/i5/i3 Processor family, codenamed Sandy Bridge).
Intel® HD Graphics 2500/4000 (in 3rd Generation Intel® Core™ i7/i5/i3 Processor family, codenamed Ivy Bridge).

Features

Support MPEG2 decode acceleration Main Profile @ HL up to 80 Mbps.
Support VC-1 decode acceleration Advanced Profile @ Level 3 up to 40 Mbps (HD Graphics 2000/2500/3000/4000 only).
Support H.264/AVC decode acceleration High Profile @ L4.1 up to 40 Mbps, with:
H.264 / AVC Hardware Variable Length Decoding (VLD) - CABAC
H.264 / AVC Hardware Variable Length Decoding (VLD) - CAVLC
H.264 / AVC Hardware Inverse Transform (IT)
H.264 / AVC Hardware Motion Compensation (HWMC)
H.264 / AVC Hardware In-Loop Deblocking (ILDB)
Support H.264/AVC encode acceleration Main Profile @ L4.1 up to 40 Mbps (HD Graphics 2000/2500/3000/4000 only).

VAAPI Capability MPEG2 decode H.264/AVC decode VC-1 decode H.264/AVC encode
Intel® GMA X4500HD Yes Yes with g45-h264 branch Not implemented Not supported by hardware
Intel® HD Graphics Yes Yes Not implemented Not supported by hardware
Intel® HD Graphics 2000/3000 Yes Yes Yes Yes
Intel® Ivy Bridge Yes Yes Yes Yes

Recommended system packages

2012.02 release is recommended. The key components include:
Kernel: Linux 3.2 or later
Libdrm: libdrm 2.4.31

Latest VA API releases

The latest VA API packages recommended for Intel® graphics cards are:
Libva: libva 1.0.15
Libva-driver-intel: libva-driver-intel 1.0.17

In order to use VA-API, you need a media player that supports it. e.g. VLC 1.1.x, MPlayer with VA-API support, and GStreamer with VA-API support.

Install Instructions

libdrm

./autogen.sh
./configure
make
make install

libva

./autogen.sh (if compiling from a git clone'd repository)
./configure
make
make install

libva-driver-intel

./autogen.sh (if compiling from a git clone'd repository)
./configure
make
make install

mplayer-vaapi

Get MPlayer with VA-API support from mplayer-vaapi on Gitorious
git clone -b hwaccel-vaapi git://gitorious.org/vaapi/mplayer.git mplayer-vaapi

./configure --enable-x11 --enable-vaapi
make
make install

gstreamer-vaapi

Get GStreamer with VA-API support from gstreamer-vaapi on Gitorious
git clone git://gitorious.org/vaapi/gstreamer-vaapi.git gstreamer-vaapi

Dependencies: gstreamer-0.10 >= 0.10.36, gst-plugins-bad >= 0.10.22.

./autogen.sh
./configure
make
make install

Known Issues

During stress testing, sometimes mplayer stops at a frame in some streams

Under certain circumstance, very short period of arrtifacts on one frame when playing back some streams