H.264 / AVC Hardware Variable Length Decoding (VLD) - CAVLC.H.264 / AVC Hardware Variable Length Decoding (VLD) - CABAC.H.264 AVC decode acceleration High Profile.H.264 AVC encode acceleration Main Profile.MPEG-4 SP / MPEG-4 ASP, more commonly known as Xvid) decode acceleration VC-1 / WMV3 decode acceleration Advanced Profile.MPEG-2 decode acceleration Main Profile.VA-API currently supports these video codecs in the official mainline version, but note that exactly which video codecs are supported depends on the hardware and the driver's capabilities. libva-vdpau-driver for cards supported by VDPAU.
AMDGPU-PRO drivers for AMD graphics cards on Linux.Mesa open-source drivers for AMD and NVIDIA graphics cards.Intel Quick Sync open-source drivers for Linux.Supported hardware and drivers Īs of 2019, VA-API is natively supported by: 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 main motivation for VA-API is to enable hardware-accelerated video decode at various entry-points ( VLD, IDCT, motion compensation, deblocking ) for the prevailing coding standards today ( MPEG-2, MPEG-4 ASP/ H.263, MPEG-4 AVC/H.264, H.265/HEVC, and VC-1/WMV3). Īn example of vainfo output, showing supported video codecs for VA-API acceleration Other hardware and manufacturers can freely use this open standard API for hardware accelerated video processing with their own hardware without paying a royalty fee.
The VA-API specification was originally designed by Intel for its GMA (Graphics Media Accelerator) series of GPU hardware with the specific purpose of eventually replacing the XvMC standard as the default Unix multi-platform equivalent of Microsoft Windows DirectX Video Acceleration (DxVA) API, but today the API is no longer limited to Intel-specific hardware or GPUs. Accelerated processing includes support for video decoding, video encoding, subpicture blending, and rendering. VA-API video decode/encode interface is platform and window system independent but is primarily targeted at Direct Rendering Infrastructure (DRI) in X Window System on Unix-like operating systems (including Linux, FreeBSD, Solaris), and Android, however it can potentially also be used with direct framebuffer and graphics sub-systems for video output. It is implemented by the free and open-source library libva, combined with a hardware-specific driver, usually provided together with the GPU driver. Video Acceleration API ( VA-API) is an open source application programming interface that allows applications such as VLC media player or GStreamer to use hardware video acceleration capabilities, usually provided by the graphics processing unit (GPU).