Mandatory APIs and Functions#
Disclaimer#
Developers can implement any subset of the Intel® VPL API. The specification makes no claim about what encoder, decoder, VPP filter, or any other underlying features are mandatory for the implementation. The Intel® VPL API is designed such that users have several options to discover capabilities exposed by the implementation:
Before or after session creation: Users can get a list of supported encoders, decoders, VPP filters, correspondent color formats, and memory types with the help of the
MFXEnumImplementations()
function. For more details, see Intel® VPL Dispatcher Interactions.After session is created: Users can call Query functions to obtain low level implementation capabilities.
Attention
The legacy Intel® Media Software Development Kit implementation does not support the first approach to obtain capabilities.
Exported Functions#
The Exported Functions table lists all
functions that must be exposed by any Intel® Video Processing Library implementation.
The realization of all listed functions is mandatory; most functions may return
mfxStatus::MFX_ERR_NOT_IMPLEMENTED
.
Note
Functions MFXInit()
and MFXInitEx()
are not required to be
exported.
See Mandatory APIs for details about which functions, in which conditions,
must not return mfxStatus::MFX_ERR_NOT_IMPLEMENTED
.
Function |
API Version |
---|---|
1.0 |
|
1.0 |
|
1.0 |
|
1.1 |
|
1.1 |
|
1.1 |
|
1.1 |
|
1.1 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.0 |
|
1.19 |
|
1.31 |
|
1.31 |
|
1.31 |
|
2.0 |
|
2.0 |
|
2.0 |
|
2.0 |
|
2.0 |
|
2.0 |
|
2.1 |
|
2.1 |
|
2.1 |
|
2.1 |
|
2.1 |
|
2.1 |
|
2.1 |
Mandatory APIs#
All implementations must implement the APIs listed in the Mandatory APIs table:
Functions |
Description |
---|---|
Required functions for the dispatcher to create a session. |
|
Required functions for the dispatcher to return implementation capabilities. |
|
Required function for synchronization of asynchronous operations. |
If the implementation exposes any encoder, decoder, or VPP filter, it must implement the corresponding mandatory APIs, as described in the Mandatory Encode, Decode, VPP and Decode+VPP APIs tables:
Functions |
Description |
---|---|
Required functions if the implementation implements any encoder. |
Functions |
Description |
---|---|
Required functions if the implementation implements any decoder. |
Functions |
Description |
---|---|
Required functions if the implementation implements any VPP filter. |
Functions |
Description |
---|---|
Required functions if the implementation implements any Decode+VPP component. |
Note
Mandatory functions must not return the
MFX_ERR_NOT_IMPLEMENTED
status.
If at least one of the encoder, decoder, or VPP filter functions is implemented,
the MFXQueryImplsDescription()
function must return a valid
mfxImplDescription
structure instance with mandatory capabilities
of the implementation, including decoder, encoder, or VPP capabilities information.
If the implementation supports internal memory allocation by exposing at least one of the
function from that family: internal memory allocation and management API then
implementation of whole scope of the mfxFrameSurfaceInterface
structure as a part of
the mfxFrameSurface1
is mandatory.
Any other functions or extension buffers are optional for the implementation.