Intel® oneAPI Video Processing Library (oneVPL) will no longer be included in the Intel® oneAPI Base Toolkit. Please find current and future updates on our GitHub site: oneVPL Change Log. Releases can be found here.
Version History
Date | Version | Major Change Summary |
---|---|---|
New Updates in GitHub | github.com/oneapi-src/oneVPL/releases | |
December 2022 | 2023.0 | Q4 2023 Release |
November 2022 | 2022.3.1 | Q4 2022 Release |
September 2022 | 2022.3.0 | Q3 2022 Release |
April 2022 | 2022.1.0 | Q1 2022 Release |
November 2021 | 2022.0.0 | Q4 2021 Release |
September 2021 | 2021.6.0 | Dispatcher updated to 2.5 spec. |
August 2021 | 2021.5.0 | Dispatcher build support expanded |
June 2021 | 2021.4.0 | Q2 2021 Release |
April 2021 | 2021.3.0 | Dispatcher updated to 2.3 spec |
March 2021 | 2021.2.2 | Q1 2021 Release |
November 2020 | 2021.1.1 | Initial Release |
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
- oneVPL project on GitHub* for dispatcher, tools, docs, examples, tests, etc.
- oneVPL-intel-GPU on GitHub* for the oneVPL implementation for newer GPUs
- Intel Media SDK for the Legacy GPU implementation
For Key Linux graphics stack dependencies:
- Media driver for Intel® Media driver for VAAPI
- gmmlib for Intel® Graphics Memory Management Library
- libva for the VAAPI implementation
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
Added
- Parallel encoding feature added to sample_multi_transcode allows distribution of work between 2 GPUs (2x2 mode) and 2 media engines on 1 GPU (1x2 mode). See doc/smt-tracer-readme.md for more info.
- Support for HDR color description SMPTE ST 2084 added to sample_multi_transcode for correct processing of this format
- Dockerfile provides an example of dpcpp-blur environment setup
- Support added for Intel(R) Data Center GPU Flex Series (formerly Arctic Sound-M) and processor graphics for 13th Generation Intel® Core processors (products formerly known as Raptor Lake)
- Support for Red Hat* Enterprise Linux 9, CentOS* Stream 9, SUSE* Linux Enterprise Server 15 SP4, and Rocky* 9 Linux OSes added
- Low latency Linux initialization option
Changed
- Buffer size is now dynamically reallocated for IVF format input to sample_multi_transcode to support very high bitrate .ivf file input.
- Removed the C++/Python previews.
Deprecated
- None
Fixed
- Added missing UYVY FourCC to oneVPL sample* tools
- CMAKE_*_DOCDIR not correctly configured when using custom prefix
- Slow mfxBitstream buffer allocation in sample* tools
- Example sample.json files include expected output strings for Media SDK GPU runtime
- Example readmes clarified
- Added missing API version check to dpcpp-blur example
- Added missing pkg-config support to system_analyser build
- Fixed AV1 temporal scaling issue in sample_multi_transcode
Features
- C API dispatcher implements the oneVPL specification found in the oneAPI spec.
- Examples: the source code in the examples directory of the oneVPL project shows usage of the oneVPL API.
- Tools: the source code in the tools directory of the oneVPL project can be used to check the platform media capabilities and performance from the command line. These programs are also pre-built in the bin directory.
- CPU implementation: For more details see https://github.com/oneapi-src/oneVPL-cpu. Please note: while the oneVPL GPU implementations are fully functional, the CPU implementation is currently for reference only and not intended to be competitive in terms of performance or features.
- The tools directory provides utilities to check the platform capability and performance from the command line. These programs are also pre-built in the "bin" directory.
Issues and Limitations
General
- 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.
- NuGet packages may be missing correct .targets
Dispatcher
- 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.
- For legacy GPU hardware enabled by Intel(R) Media SDK, only API features up to 1.35 are available, even when initialized with MFXLoad. For more details, see Upgrading from Intel® Media SDK to Intel® oneAPI Video Processing Library
- 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.
- For cross-compilation, pkg-config files may not be installed in the correct location.
Tools and samples
- Releases installed before the oneVPL API version 2.4 or bafore, may cause cmake build failures on Linux* OS due to compatibility issues. Prior package versions were aligned with release versions rather than API. As a result, "find_package" looks for a current version (2.4) but finds a larger legacy version (2021.2.2) and assumes forward compatibility.
- sample_decode may not finish or hang with multi-resolution input in external memory mode with CPU implementation.
- legacy sample_vpp sample in hardware mode is not supported on Skylake systems.
- 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.
- For CPU implementation, colorspace flags are required when using sample_* tools,. If colorspace is not set tools will fail. Note: CPU implementation default colorspaces are I420 and I010.
- The sample_multi_transcode tool included in this release is only intended for GPU operation.
- 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.
- sample_decode rendering has known performance and stability issues
- hello-transcode sample only supports the oneVPL CPU implementation.
- Inference interop samples may crash if used with mismatched models
- 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.
- sample_decode may stop responding if input changes resolution.
- sample_encode software mode does not support NV12 as the input color format. Use i420 with the "i420" argument since NV12 is the default format.
- sample_encode does not support preprocess commands for scaling or color conversion for CPU
- -lowpower:on feature not available for Linux sample_* tools
- sample* tools only partially implement IVF container support, and may not work wit all IVF input files
- When using SMT parfiles for multiple adapters, adapter must be specified on each line of the parfile
CPU Implementation
- The CPU implementation is currently for reference only and not intended to be competitive in terms of performance or features.
- CPU implementation default colorspaces are I420 and I010. This does not match GPU default colorspaces of NV12/P010. For sample_* tools, colorspace flags must be added to command lines to work around this issue. For example code and application code, additional logic must be added to handle default colorspace differences.
- sample_encode does not support preprocess commands for scaling or color conversion for CPU
- 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.
- CPU implementation decode error recovery is limited. Decode of corrupted bitstreams may fail.
- Only a small subset of parameters and functions from the specification are implemented. For more information on mandatory and optional APIs and features, see the oneVPL specification.
- MFX_BITSTREAM_EOS from the input bitstream dataFlag is ignored by MFXVideoDECODE_DecodeFrameAsync().
- Windows* OS app verifier detects memory leak from CPU implementation when openH264 is enabled.
For more information about installation, please see:
- Intel oneAPI Video Processing Library System Requirements
- Get Started with the oneAPI Video Processing Library
Previous oneAPI Releases
Notices and Disclaimers
FFmpeg is an open source project licensed under LGPL and GPL. See https://www.ffmpeg.org/legal.html. You are solely responsible for determining if your use of FFmpeg requires any additional licenses. Intel is not responsible for obtaining any such licenses, nor liable for any licensing fees due, in connection with your use of FFmpeg.
No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.
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.
This document contains information on products, services and/or processes in development. All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest forecast, schedule, specifications and roadmaps.
The products and services described may contain defects or errors which may cause deviations from published specifications. Current characterized errata are available on request.
Intel, the Intel logo, Intel Core, Intel Atom, and Xeon are trademarks of Intel Corporation in the U.S. and/or other countries.
Microsoft, Windows®, and the Windows® logo are trademarks, or registered trademarks of Microsoft Corporation in the United States and/or other countries.
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 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.
*Other names and brands may be claimed as the property of others.
Copyright 2023 Intel Corporation.
This software and the related documents are Intel copyrighted materials, and your use of them is governed by the express license under which they were provided to you. Unless the License provides otherwise, you may not use, modify, copy, publish, distribute, disclose or transmit this software or the related documents without Intel's prior written permission.
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.