Version History
Date | Version | Major Change Summary |
November 2020 | 2021.1.1 | Initial Release |
March 2021 | 2021.2.2 | Q1 2021 Release |
April 2021 | 2021.3.0 | Dispatcher updated to 2.3 spec |
June 2021 | 2021.4.0 | Q2 2021 Release |
August 2021 | 2021.5.0 | Dispatcher build support expanded |
September 2021 | 2021.6.0 | Dispatcher updated to 2.5 spec |
Where to Find the Release
For more information on how to acquire the package see the product page.
To explore and download the source code, see the open source oneVPL project on GitHub*.
Sample code can be found in release package or downloaded directly from the oneAPI-samples repo.
For information about the Intel® oneAPI Video Processing Library (oneVPL) specification, see the product specification.
For information about transitioning from Intel® Media SDK to oneVPL, see the transition guide.
New in This Release
- Updated dispatcher and CPU runtime to API 2.5
- Internal memory support added to dpcpp-blur sample
- HEVC 4:2:2 planar decode support added to CPU runtime
Preview Examples of Video Processing Library Release
oneVPL 2021.6.0 has been updated to include functional and security updates. Users should update to the latest version.
Features
- C API dispatcher implementing oneVPL specification
- CPU implementation. For more details see https://github.com/oneapi-src/oneVPL-cpu
- The code sample in oneAPI-Samples repository can be used by beginners to get started with oneVPL programming model.
- The source code in the "examples" directory of oneVPL project shows the more usage of oneVPL API. The code in "examples/hello" includes additional usage of the API; the code in "examples/coreAPI" shows the API that is backward-compatible with legacy APIs; the code in "examples/interop" shows how to integrate oneVPL with other frameworks.
- The source code in the "tools" directory of oneVPL project can be used to check the platform capability and performance from the command line. These programs are also pre-built in the "bin" directory.
- The source code in the "preview" directory of oneVPL project shows the new features and APIs for preview purpose. They might be changed based on the feedback so compatibility with future releases is not guaranteed. Please note that the "preview" directory is under "examples" directory in the release package.
Installation Notes
Implementation plugins are loaded at runtime. The path to the plugins is defined by the VPL_EXTENSIONS_PATH environment variable.
For more information about installation, please see:
- Intel oneAPI Video Processing Library System Requirements
- Get Started with the oneAPI Video Processing Library
Issues and Limitations
- On Ubuntu 20.04, during basekit install you may see a warning about missing OpenCL support. You can verify the graphics stack components are correctly installed by running one of the interop samples with -hw. See https://github.com/oneapi-src/oneVPL for more information.
C++/Python previews
This is a preview release made available to gather feedback for API improvements. Compatibility with future releases is not guaranteed.
Dispatcher
- In multi-adapter configurations with a mix of legacy and Xe GPUs, only the oneVPL implementation will be loaded. This means legacy MSDK device(s) cannot be used in this scenario. In this case oneVPL applications should target only the Xe device(s). If an application must target both, use Media SDK dispatcher and choose the default runtime to load with the INTEL_MEDIA_RUNTIME environment variable. See the Media SDK Readme for more information.
- Builds of oneVPL from source assume single configuration generators on Linux and multi configuration generators on Windows.
- MFXInit() and MFXInitEx() functions have been deprecated in the 2.0 oneVPL Specification. Use MFXLoad() instead. See the transition guide for more details.
- If initialized with MFXInit() or MFXInitEx(), support is limited to the 1.x API and will load Intel® Media SDK hardware library rather than oneVPL hardware library.
- If both Intel® Media SDK and oneVPL hardware libraries are installed, only oneVPL libraries will be loaded via MFXLoad(). See the oneVPL specification for more details.
- The Intel® Media SDK runtimes enabling legacy GPU hardware only provide API features up to 1.35, even when initialized with MFXLoad. For more details, see Upgrading from Intel® Media SDK to Intel® oneAPI Video Processing Library.
- The libmfx.dll and libmfx.so.2021.1.11 dispatchers are deprecated. They are provided for backwards compatibility only and will be removed from a future release. They do not include any changes since the 2021.1.1 release.
- Dispatcher support has been extended to include hardware implementations, including those that implement API versions lower then 2.0. Applications patterned after the 2021.1.1 release samples, rather than the 2.0 specification may fail after re-build as the previous sample code made the assumption that 2.0 APIs would be available. To remedy this please follow the coding patterns in the oneVPL spec.
Tools and samples
- Releases installed prior to the 2.4 API update may cause CMAKE build failures on Linux due to compatibility issues. Prior package versions were aligned with release version, rather than API. As a result find_package will look for a current version i.e. 2.4 but find a larger legacy usage i.e. 2021.2.2 and assume forward compatibility.
- decvpp_tool requires the graphics stack installed even when in CPU only mode.
- sample_decode may not finish with multi-resolution input in external memory mode with CPU runtime.
- sample_encode does not work in case of enabled VPP and internal memory allocator.
- legacy-vpp sample in hardware mode is not supported on Sky Lake.
- decvpp_tool does not support gen12 platforms on Windows in Hardware mode.
- Encode B-frame distance setting is inconsistent between CPU and GPU implementations. For the CPU implementation 0 means no B-frames, while for the GPU implementation 1 means no B-frames.
- Colorspace flags are required when using sample_* tools, if colorspace is not set tools will fail.
- The sample_multi_transcode tool included in this release is only intended for GPU operation to remain more closely aligned with the version of this tool released with Intel® Media SDK.
- The sample_multi_transcode tool has a synchronization issue in 1->N pipelines. When decode is faster than encoders, the issue can cause the free frames consumed faster than the framework released, eventually resulting in tool crash when there is no more memory available.
- hello-transcode sample only supports the Intel® oneVPL CPU implementation in this release.
- sample_decode may stop responding if the input is switched between multiple resolutions.
- sample_encode occasionally hangs for (CPU) SVT-HEVC encodes when using VBR in Ubuntu 18.04.
- sample_encode does not support preprocess commands for scaling or color conversion.
- sample_encode, sample_decode, and sample_vpp are not in sync with Intel® Media SDK's version of these tools. This will be corrected in future releases.
- Windows samples are installed to C:\Program Files (x86)\Intel\oneAPI\vpl\latest\examples by default. This should not be a writable location, so you will not be able to build samples here. To build examples, copy this folder to another location first.
CPU Implementation
- CPU compilation on WSL2 is not currently supported, but precompiled CPU implementation will work on WSL2 systems.
- Decode input bitstream buffer size must be large enough to hold several frames. Buffer sizes that are too small may cause issues. The necessary minimum size is stream dependent but enough for 10 frames is a conservative estimate.
- AVC/H.264 encode is disabled due to licensing restrictions. To enable it, refer to the instructions to Optionally enable H.264 encode.
- A subset of parameters and functions from the specification are implemented. For more information on mandatory and optional APIs and features, see the oneVPL specification.
- For the Windows* release, Visual C++* Redistributable for Visual Studio* 2015 or higher is required. Without this, an error reporting a missing MSVCP140.dll will be generated.
- MFX_BITSTREAM_EOS from the input bitstream dataFlag is ignored by MFXVideoDECODE_DecodeFrameAsync().
Notices and Disclaimers
Intel technologies may require enabled hardware, software or service activation.
No product or component can be absolutely secure.
Your costs and results may vary.
© Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others.
No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.
The products described may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.
Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.