Transition from Intel(R) Media SDK to Intel(R) oneVPL
The following terms are used to describe APIs:
Intel® Media SDK API: 1.x API version of Intel® Media SDK (latest update is 1.35).
Removed API: Intel® Media SDK functionality removed from oneVPL, such as audio or Flexible Encode Infrastructure (FEI).
Core API: API functions and features that both Intel® Media SDK and oneVPL share. These API functions do not include the following:
Removed API functions or features from Intel® Media SDK API.
New features from oneVPL (2.x enhanced API).
oneVPL API: oneVPL API version 2.x, as described in oneVPL 2.x+API. oneVPL API consists of core API and 2.x enhanced API.
2.x enhanced API: New enhanced programming features added to API that consist of core API and 2.x enhanced API.
The diagram below shows the relationship between these API subsets:
The core API is designed to include nearly all 1.x functionality. It means developers can easily switch to the 2.x API in oneVPL. The core API subset continues to work across legacy hardware supported by the Intel(R) Media SDK runtime and hardware supported by the oneVPL runtime. Most GPU hardware released since 2020 used the oneVPL Intel GPU runtime, which implements the VPL 2.x API. If you are running Media SDK applications on recent GPU hardware, this indicates that with no modification, your code already uses the VPL core API subset, and your transition should be painless. In most cases, all that is needed to transition existing applications from Intel® Media SDK to Intel® oneVPL is to recompile with oneVPL headers or relink to oneVPL dispatcher.
See Transition Tutorial for an example demonstrating the steps to transition applications from Intel® Media SDK to oneVPL.
The tutorial includes upgrading from 1.x session initialization to 2.x initialization. Intel(R) Media SDK 1.x API initialization is based on MFXInit manages sessions.MFXInit is available in the 2.x API. However, you will see the deprecation warnings. The use of MFXInit* restricts the API level to 1.x, even if the GPU runtime implementation enables 2.x API features. The tutorial includes simple steps to upgrade to 2.x initialization. This is not required but helps use more features.