Libvpl
Intel® Video Processing Library (Intel® VPL) API, dispatcher, and examples
Install / Use
/learn @intel/LibvplREADME
Intel® Video Processing Library (Intel® VPL)
Intel® Video Processing Library (Intel® VPL) provides access to hardware accelerated video decode, encode, and processing capabilities on Intel® GPUs to support AI visual inference, media delivery, cloud gaming, and virtual desktop infrastructure use cases.
See the specification for additional information.
This repository contains the following components:
- Copies of the Intel® VPL API header files. The version of the API is listed in the mfxdefs.h file.
- Intel® VPL Dispatcher
- Examples demonstrating API usage
[!IMPORTANT]
Intel® VPL Tools are no longer in this repository. They have all been moved to https://github.com/intel/libvpl-tools
To use Intel® VPL for video processing you need to install at least one implementation. Here is a list:
- Intel® VPL GPU Runtime for use on Intel® Iris® Xe graphics and newer
- Intel® Media SDK for use on legacy Intel® graphics
Architecture
graph TD;
dispatcher["Intel® VPL Dispatcher"]-->oneVPL-intel-gpu;
dispatcher-->msdk["Intel® MediaSDK"];
As shown in this diagram, the Intel® VPL Dispatcher forwards function calls from the application to use the selected runtime.
Dispatcher behavior when targeting Intel® GPUs
Runtime loaded by Intel® VPL Dispatcher and their Microsoft* DirectX* support:
| GPU | Media SDK | Intel® VPL | Microsoft* DirectX* Support | |--------------------------------------------|------------------|------------------|-----------------------------| | Earlier platforms, back to BDW (Broadwell) |:heavy_check_mark:| | DX9/DX11 | | ICL (Ice Lake) |:heavy_check_mark:| | DX9/DX11 | | JSL (Jasper Lake) |:heavy_check_mark:| | DX9/DX11 | | EHL (Elkhart Lake) |:heavy_check_mark:| | DX9/DX11 | | SG1 |:heavy_check_mark:| | DX9/DX11 | | TGL (Tiger Lake) |:heavy_check_mark:|:heavy_check_mark:| DX9/DX11* | | DG1 (Intel® Iris® Xe MAX graphics) |:heavy_check_mark:|:heavy_check_mark:| DX11* | | RKL (Rocket Lake) | |:heavy_check_mark:| DX11 | | ADL-S (Alder Lake S) | |:heavy_check_mark:| DX11 | | ADL-P (Alder Lake P) | |:heavy_check_mark:| DX11 | | ADL-N (Alder Lake N) | |:heavy_check_mark:| DX11 | | DG2 (Intel® Arc™ A-Series Graphics) | |:heavy_check_mark:| DX11 | | ATSM (Intel® Data Center GPU Flex Series) | |:heavy_check_mark:| DX11 | | RPL-S (Raptor Lake S) | |:heavy_check_mark:| DX11 | | RPL-P (Raptor Lake P) | |:heavy_check_mark:| DX11 | | MTL (Meteor Lake) | |:heavy_check_mark:| DX11 | | ARL-S (Arrow Lake S) | |:heavy_check_mark:| DX11 | | ARL-H (Arrow Lake H) | |:heavy_check_mark:| DX11 | | LNL (Lunar Lake) | |:heavy_check_mark:| DX11 | | Future platforms... | |:heavy_check_mark:| DX11 |
For TGL and DG1, if both Intel® VPL and Intel® Media SDK runtime are installed then the Intel® VPL Dispatcher will prefer Intel® VPL runtime unless the application requests D3D9 by setting the filter property "mfxImplDescription.AccelerationMode" to MFX_ACCEL_MODE_VIA_D3D9.
Installing Intel® VPL
Installation options
Intel® VPL may be installed:
- from source code. See install and use instructions at INSTALL.md.
- from Linux packages. See Intel® software for general purpose GPU capabilities
Using Intel® VPL
Configure your shell environment
If you did not install to standard system locations, you need to set up the environment, so tools like CMake and pkg-config can find the library and headers.
For Linux:
source <vpl-install-location>/etc/vpl/vars.sh
For Windows:
<vpl-install-location>\etc\vpl\vars.bat
Link to Intel® VPL with CMake
Add the following code to your CMakeLists, assuming TARGET is defined as the component that wants to use Intel® VPL:
if(WIN32 AND CMAKE_SIZEOF_VOID_P EQUAL 4)
set(CMAKE_LIBRARY_ARCHITECTURE x86)
endif()
find_package(VPL REQUIRED)
target_link_libraries(${TARGET} VPL::dispatcher)
Link to Intel® VPL from Bash with pkg-config
The following command line illustrates how to link a simple program to Intel® VPL using pkg-config.
gcc program.cpp `pkg-config --cflags --libs vpl`
How to Contribute
See CONTRIBUTING.md for more information.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Security
See the Intel® Security Center for information on how to report a potential security issue or vulnerability.
Backward Compatibility
No code changes may be introduced that would regress support for any currently supported hardware. All contributions must ensure continued compatibility and functionality across all supported hardware platforms. Failure to maintain hardware compatibility may result in the rejection or reversion of the contribution.
Any deliberate modifications or removal of hardware support will be transparently communicated in the release notes.
API options are solely considered as a stable interface. Any debug parameters, environmental variables, and internal data structures, are not considered as an interface and may be changed or removed at any time.
Related Skills
qqbot-channel
349.0kQQ 频道管理技能。查询频道列表、子频道、成员、发帖、公告、日程等操作。使用 qqbot_channel_api 工具代理 QQ 开放平台 HTTP 接口,自动处理 Token 鉴权。当用户需要查看频道、管理子频道、查询成员、发布帖子/公告/日程时使用。
docs-writer
100.3k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
349.0kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
Design
Campus Second-Hand Trading Platform \- General Design Document (v5.0 \- React Architecture \- Complete Final Version)1\. System Overall Design 1.1. Project Overview This project aims t
