-
Notifications
You must be signed in to change notification settings - Fork 91
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
New in This Release =================== * Updated dispatcher API to 2.4 * Advanced OpenVINO interop sample w/ remoteBlob support (Linux only) * C++ API and Samples (Preview) * Python API and Samples (Preview) * Added logging capability to Dispatcher * Added new tools: sample_multi_transcode and decvpp_tool * Added debug libraries to Windows package For more information on the preview C++/Python APIs and Samples, see https://software.intel.com/content/www/us/en/develop/articles/onevpl-preview-examples.html Issues and Limitations ====================== C++/Python previews ------------------- * This is a preview release made available to gather feedback for API improvements. Compatibility with future releases is not guaranteed. 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(R) Media SDK hardware library rather than oneVPL hardware library. * If both Intel(R) Media SDK and oneVPL hardware libraries are installed, only oneVPL libraries will be loaded via MFXLoad(). See the oneVPL specification for more details. * The 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](https://software.intel.com/content/www/us/en/develop/articles/upgrading-from-msdk-to-onevpl.html). * 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](https://spec.oneapi.com/versions/latest/elements/oneVPL/source/API_ref/VPL_disp_api_func.html#_CPPv47MFXLoadv) Tools and samples ----------------- * 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. * Input size should be aligned to 16 bytes for sample_encode. * 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(R) 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 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 work if the input is scaled or color converted. * sample_encode, sample_decode, and sample_vpp are not in sync with 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. * When configuring systems to run the OpenVINO interop samples in Linux gmmlib version conflicts can occur. Debug shows undefined GmmLib symbols as the cause of a runtime error. This can be mitigated by using the media stack integrated with OpenVINO installation. Uninstall other versions of libva, iHD, and libgmm then select Media SDK when installing OpenVINO as described in the [OpenVINO install documentation](https://docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_linux.html#install-openvino).
- Loading branch information
Showing
297 changed files
with
42,280 additions
and
12,577 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Each line is a file pattern followed by one or more owners. | ||
# last matching pattern takes the most precedence. | ||
|
||
* @intel-innersource/onevpl-maintainer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
# Build/Install oneAPI Video Processing Library from Source | ||
|
||
This document describes how to build from the source code in this repo. | ||
Please note: this repo contains only headers, dispatcher, examples, and tools. | ||
In most cases an implementation must also be installed. | ||
|
||
## Prerequisites | ||
|
||
To build this project you will need: | ||
|
||
- A compiler with C++11 support | ||
- CMake 3.10 or newer | ||
|
||
On Windows, you will also need: | ||
|
||
- Visual Studio Build Tools 2017 | ||
* Visual C++ ATL for x86 and x64 | ||
- Visual Studio 2019 | ||
* C++ ATL for latest 'X' build tools (x86 & x64) | ||
|
||
## Basic build and installation of this package | ||
|
||
Build the project with the following commands: | ||
|
||
Linux: | ||
``` | ||
cd <vpl-repo-clone-location> | ||
export VPL_INSTALL_DIR=`pwd`/_vplbuild | ||
mkdir _build | ||
mkdir $VPL_INSTALL_DIR | ||
cd _build | ||
cmake .. -DCMAKE_INSTALL_PREFIX=$VPL_INSTALL_DIR | ||
cmake --build . --config Release | ||
cmake --build . --config Release --target install | ||
``` | ||
|
||
Windows DOS cmd prompt: | ||
``` | ||
cd <vpl-repo-clone-location> | ||
export VPL_INSTALL_DIR=%cd%/_vplbuild | ||
mkdir _build | ||
mkdir %VPL_INSTALL_DIR% | ||
cd _build | ||
cmake .. -DCMAKE_INSTALL_PREFIX=%VPL_INSTALL_DIR% | ||
cmake --build . --config Release | ||
cmake --build . --config Release --target install | ||
``` | ||
|
||
You can find the build output in the location chosen for CMAKE_INSTALL_PREFIX, VPL_INSTALL_DIR. | ||
|
||
For more build/install information see INSTALL.md | ||
|
||
## Helper scripts and options | ||
|
||
Additionally, helper scripts are available in the `script` folder to run these cmake commands. | ||
For more details see script/README.md | ||
|
||
You can build the project using the helper scripts with the following commands. | ||
|
||
First, set VPL_INSTALL_DIR if you wish to override the defaults and supply your own build/install location. | ||
``` | ||
cd <vpl-repo-clone-location> | ||
script/bootstrap | ||
script/build | ||
script/install | ||
``` | ||
The build script can take an additional argument for 32-bit builds in Windows: | ||
``` | ||
script/build -A x86_32 | ||
``` | ||
|
||
Note that on Linux the default vpl install location is /usr/local and may require sudo for write access | ||
|
||
Note that on Windows there may be an error with the following message: | ||
``` | ||
Cannot open include file: 'atlbase.h': No such file or directory | ||
``` | ||
Ensure that the ATL build tools are installed through Visual Studio and that the path to the file is on the include path that the Visual Studio compiler uses | ||
|
||
## Getting an Implementation | ||
|
||
The base package is limited to the dispatcher and samples. To use oneVPL for video processing you need to install at least one implementation. Current implementations: | ||
|
||
- [oneVPL-cpu](https://github.com/oneapi-src/oneVPL-cpu) for use on CPU | ||
- [oneVPL-intel-gpu](https://github.com/oneapi-src/oneVPL-intel-gpu) for use on Intel Xe graphics and newer | ||
- [Media SDK](https://github.com/Intel-Media-SDK/MediaSDK) for use on legacy Intel graphics | ||
|
||
Follow the instructions on the respective repos to install the desired implementation | ||
|
||
## End-To-End Scripts for oneVPL base and CPU implementation | ||
|
||
You can build oneVPL base and CPU implementation with the End-To-End scripts provided in the scripts folder. Refer to the script/README.md for more details regarding the scripts. | ||
|
||
These scripts assume oneVPL and oneVPL-cpu are cloned into the same parent folder. They also assume that the prerequisites have been met for their respective platform | ||
|
||
Note: `.bat` versions are also provided for Windows. | ||
|
||
Note: On Windows the e2e scripts need to first clean intermediate build results that were built outside the script | ||
|
||
Use the following commands to run the e2e scripts: | ||
|
||
``` | ||
cd <vpl-root> | ||
oneVPL/script/e2e/bootstrap | ||
oneVPL/script/e2e/build | ||
``` | ||
|
||
Optionally you may set the environment variables VPL_INSTALL_DIR and | ||
VPL_BUILD_DEPENDENCIES to specify a location to install the project and to | ||
store the built dependencies respectivly. | ||
|
||
|
||
``` | ||
cd <vpl-root> | ||
export VPL_BUILD_DEPENDENCIES=<dependencies-cache> | ||
export VPL_INSTALL_DIR=<vpl-install-location> | ||
oneVPL/script/e2e/bootstrap | ||
oneVPL/script/e2e/build | ||
``` | ||
|
||
You can also clear build results by calling the clean script. | ||
Note, if VPL_INSTALL_DIR is set it will be cleared too. | ||
|
||
|
||
``` | ||
cd <vpl-root> | ||
oneVPL/script/e2e/clean | ||
``` | ||
|
||
A complete rebuild can be forced by cleaning and then rebuilding. | ||
|
||
``` | ||
cd <vpl-root> | ||
export VPL_BUILD_DEPENDENCIES=<dependencies-cache> | ||
export VPL_INSTALL_DIR=<vpl-install-location> | ||
oneVPL/script/e2e/clean | ||
oneVPL/script/e2e/bootstrap | ||
oneVPL/script/e2e/build | ||
``` |
Oops, something went wrong.