oneVPL for Intel® Media Software Development Kit Users

oneVPL is source compatible with Intel® Media Software Development Kit. Applications can use Intel® Media Software Development Kit to target older hardware and oneVPL to target everything else. Some obsolete features of Intel® Media Software Development Kit have been omitted from oneVPL. Hereinafter the term “Legacy” will be used to describe a behavior when oneVPL is called by Intel® Media Software Development Kit applications.

oneVPL Ease of Use Enhancements

oneVPL provides improved ease of use compared to Intel® Media Software Development Kit. Ease of use enhancements include the following:

New APIs in oneVPL

oneVPL introduces new functions that are not available in Intel® Media Software Development Kit.

New oneVPL dispatcher functions:

New oneVPL memory management functions:

New oneVPL implementation capabilities retrieval functions:

New oneVPL session initialization:

Intel® Media Software Development Kit Feature Removals

The following Intel® Media Software Development Kit features are considered obsolete and are not included in oneVPL:

  • Audio support. oneVPL is intended for video processing. Audio APIs that duplicate functionality from other audio libraries such as Sound Open Firmware have been removed.

  • ENC and PAK interfaces. Part of the Flexible Encode Infrastructure (FEI) and plugin interfaces which provide additional control over the encoding process for AVC and HEVC encoders. This feature was removed because it is not widely used by customers.

  • User plugins architecture. oneVPL enables robust video acceleration through API implementations of many different video processing frameworks. Support of a SDK user plugin framework is obsolete.

  • External buffer memory management. A set of callback functions to replace internal memory allocation is obsolete.

  • Video Processing extended runtime functionality. Video processing function MFXVideoVPP_RunFrameVPPAsyncEx is used for plugins only and is obsolete.

  • External threading. The new threading model makes the MFXDoWork function obsolete.

  • Multi-frame encode. A set of external buffers to combine several frames into one encoding call. This feature was removed because it is device specific and not commonly used.

  • Surface Type Neutral Transcoding. Opaque memory support is removed and replaced with internal memory allocation concept.

Intel® Media Software Development Kit API Removals

The following Intel® Media Software Development Kit functions are not included in oneVPL:

  • Audio related functions

    • MFXAudioCORE_SyncOperation()

    • MFXAudioDECODE_Close()

    • MFXAudioDECODE_DecodeFrameAsync()

    • MFXAudioDECODE_DecodeHeader()

    • MFXAudioDECODE_GetAudioParam()

    • MFXAudioDECODE_Init()

    • MFXAudioDECODE_Query()

    • MFXAudioDECODE_QueryIOSize()

    • MFXAudioDECODE_Reset()

    • MFXAudioENCODE_Close()

    • MFXAudioENCODE_EncodeFrameAsync()

    • MFXAudioENCODE_GetAudioParam()

    • MFXAudioENCODE_Init()

    • MFXAudioENCODE_Query()

    • MFXAudioENCODE_QueryIOSize()

    • MFXAudioENCODE_Reset()

  • Flexible encode infrastructure functions

    • MFXVideoENC_Close()

    • MFXVideoENC_GetVideoParam()

    • MFXVideoENC_Init()

    • MFXVideoENC_ProcessFrameAsync()

    • MFXVideoENC_Query()

    • MFXVideoENC_QueryIOSurf()

    • MFXVideoENC_Reset()

    • MFXVideoPAK_Close()

    • MFXVideoPAK_GetVideoParam()

    • MFXVideoPAK_Init()

    • MFXVideoPAK_ProcessFrameAsync()

    • MFXVideoPAK_Query()

    • MFXVideoPAK_QueryIOSurf()

    • MFXVideoPAK_Reset()

  • User plugin functions

    • MFXAudioUSER_ProcessFrameAsync()

    • MFXAudioUSER_Register()

    • MFXAudioUSER_Unregister()

    • MFXVideoUSER_GetPlugin()

    • MFXVideoUSER_ProcessFrameAsync()

    • MFXVideoUSER_Register()

    • MFXVideoUSER_Unregister()

    • MFXVideoUSER_Load()

    • MFXVideoUSER_LoadByPath()

    • MFXVideoUSER_UnLoad()

    • MFXDoWork()

  • Memory functions

    • MFXVideoCORE_SetBufferAllocator()

  • Video processing functions

    • MFXVideoVPP_RunFrameVPPAsyncEx()

  • Memory type and IOPattern enumerations

    • MFX_IOPATTERN_IN_OPAQUE_MEMORY

    • MFX_IOPATTERN_OUT_OPAQUE_MEMORY

    • MFX_MEMTYPE_OPAQUE_FRAME

Important

Corresponding extension buffers are also removed.

The following behaviors occur when attempting to use a Intel® Media Software Development Kit API that is not supported by oneVPL:

  • Code compiled with the oneVPL API headers will generate a compile and/or link error when attempting to use a removed API.

  • Code previously compiled with Intel® Media Software Development Kit and executed using a oneVPL runtime will generate an MFX_ERR_NOT_IMPLEMENTED error when calling a removed function.

Intel® Media Software Development Kit Legacy API

oneVPL contains following header files from Intel® Media Software Development Kit included for the simplification of existing applications migration to oneVPL:

  • mfxvideo++.h

Important

Intel® Media Software Development Kit obsolette API removed from those header files. Code compiled with the oneVPL API headers will generate a compile and/or link error when attempting to use a removed API.