Mandatory APIs and Functions

Disclaimer

Developers can implement any subset of the oneVPL API. The specification makes no claim about what encoder, decoder, VPP filter, or any other underlying features are mandatory for the implementation. The oneVPL API is designed in the way that users have several options to discover capabilities exposed by the implementation:

  1. Before session creation, users can get list of supported encoders, decoders, VPP filters, corespondent color formats, and memory types with help of the MFXEnumImplementations() function.

  2. Once the 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 oneAPI 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 and in which conditions must not return mfxStatus::MFX_ERR_NOT_IMPLEMENTED.

Exported Functions

Function

API Version

MFXClose()

1.0

MFXQueryIMPL()

1.0

MFXQueryVersion()

1.0

MFXJoinSession()

1.0

MFXDisjoinSession()

1.0

MFXCloneSession()

1.0

MFXSetPriority()

1.0

MFXGetPriority()

1.0

MFXVideoCORE_SetFrameAllocator()

1.0

MFXVideoCORE_SetHandle()

1.0

MFXVideoCORE_GetHandle()

1.0

MFXVideoCORE_SyncOperation()

1.0

MFXVideoENCODE_Query()

1.0

MFXVideoENCODE_QueryIOSurf()

1.0

MFXVideoENCODE_Init()

1.0

MFXVideoENCODE_Reset()

1.0

MFXVideoENCODE_Close()

1.0

MFXVideoENCODE_GetVideoParam()

1.0

MFXVideoENCODE_GetEncodeStat()

1.0

MFXVideoENCODE_EncodeFrameAsync()

1.0

MFXVideoDECODE_Query()

1.0

MFXVideoDECODE_DecodeHeader()

1.0

MFXVideoDECODE_QueryIOSurf()

1.0

MFXVideoDECODE_Init()

1.0

MFXVideoDECODE_Reset()

1.0

MFXVideoDECODE_Close()

1.0

MFXVideoDECODE_GetVideoParam()

1.0

MFXVideoDECODE_GetDecodeStat()

1.0

MFXVideoDECODE_SetSkipMode()

1.0

MFXVideoDECODE_GetPayload()

1.0

MFXVideoDECODE_DecodeFrameAsync()

1.0

MFXVideoVPP_Query()

1.0

MFXVideoVPP_QueryIOSurf()

1.0

MFXVideoVPP_Init()

1.0

MFXVideoVPP_Reset()

1.0

MFXVideoVPP_Close()

1.0

MFXVideoVPP_GetVideoParam()

1.0

MFXVideoVPP_GetVPPStat()

1.0

MFXVideoVPP_RunFrameVPPAsync()

1.0

MFXVideoCORE_QueryPlatform()

1.19

MFXMemory_GetSurfaceForVPP()

2.0

MFXMemory_GetSurfaceForEncode()

2.0

MFXMemory_GetSurfaceForDecode()

2.0

MFXQueryImplsDescription()

2.0

MFXReleaseImplDescription()

2.0

MFXInitialize()

2.0

Mandatory APIs

All implementations must implement the APIs listed in the Mandatory APIs table:

Mandatory APIs

Functions

Description

Required functions for the dispatcher to create a session.

Required functions for the dispatcher to return implementation capabilities.

MFXVideoCORE_SyncOperation()

Required function for synchronization of asynchronous operations.

If the implementation implements any encoder, decoder, or VPP filter, it must implement the corresponding mandatory APIs, as described in the Mandatory Encode, Decode and VPP APIs tables:

Mandatory Encode APIs

Functions

Description

Required functions if the implementation implements any encoder.

Mandatory Decode APIs

Functions

Description

Required functions if the implementation implements any decoder.

Mandatory VPP APIs

Functions

Description

Required functions if the implementation implements any VPP filter.

Note

Mandatory functions must not return the MFX_ERR_NOT_IMPLEMENTED status.

If at least one of encoder or decoder or VPP filter is implemented, MFXQueryImplsDescription() function must return valid mfxImplDescription structure instance with mandatory capabilities of the implementation including decoder, encoder, or VPP capabilities information.

Any other functions or extension buffers are optional for the implementation.