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:
Smart dispatcher with discovery of implementation capabilities. See oneVPL Session for more details.
Simplified decoder initialization. See Decoding Procedures for more details.
New memory management and components (session) interoperability. See Internal Memory Management and Decoding Procedures for more details.
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 Intel® Media Software Development Kit user plugin framework is obsolete. Intel® Media Software Development Kit RAW acceleration (Camera API) which is implemented as plugin is also obsolete, oneVPL enables RAW acceleration (Camera API) through oneVPL runtime such as oneVPL GPU runtime.
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.
Raw Acceleration. Intel® Media Software Development Kit RAW acceleration (Camera API) which is implemented as plugin is obsolete, replaced by oneVPL and oneVPL runtime implementation. OneVPL reused most of Intel® Media Software Development Kit Camera API, but oneVPL camera API is not backward compatible with Intel® Media Software Development Kit camera API due to obsolete plugin mechanism in oneVPL and a few difference between oneVPL and Intel® Media Software Development Kit. The major difference between oneVPL and Intel® Media Software Development Kit are listed: 1) mfxCamGammaParam and mfxExtCamGammaCorrection are removed in oneVPL; 2) Added reserved bytes in mfxExtCamHotPixelRemoval, mfxCamVignetteCorrectionParam and mfxCamVignetteCorrectionElement for future extension; 3) Changed CCM from mfxF64 to mfxF32 in mfxExtCamColorCorrection3x3 and added more reserved bytes.
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 obsolete 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.