Intel® VPL for Intel® Media Software Development Kit Users#
Intel® VPL is source compatible with Intel® Media Software Development Kit. Applications can use Intel® Media Software Development Kit to target older hardware and Intel® VPL to target everything else. Some obsolete features of Intel® Media Software Development Kit have been omitted from Intel® VPL. Hereinafter the term “Legacy” will be used to describe a behavior when Intel® VPL is called by Intel® Media Software Development Kit applications.
Intel® VPL Ease of Use Enhancements#
Intel® VPL 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 Intel® VPL 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 Intel® VPL#
Intel® VPL introduces new functions that are not available in Intel® Media Software Development Kit.
New Intel® VPL dispatcher functions:
New Intel® VPL memory management functions:
New Intel® VPL implementation capabilities retrieval functions:
New Intel® VPL 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 Intel® VPL:
Audio support. Intel® VPL 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. Intel® VPL 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, Intel® VPL enables RAW acceleration (Camera API) through Intel® VPL runtime such as Intel® VPL 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 Intel® VPL and Intel® VPL runtime implementation. Intel® VPL reused most of Intel® Media Software Development Kit Camera API, but Intel® VPL camera API is not backward compatible with Intel® Media Software Development Kit camera API due to obsolete plugin mechanism in Intel® VPL and a few difference between Intel® VPL and Intel® Media Software Development Kit. The major difference between Intel® VPL and Intel® Media Software Development Kit are listed: 1) mfxCamGammaParam and mfxExtCamGammaCorrection are removed in Intel® VPL; 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 Intel® VPL:
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 Intel® VPL:
Code compiled with the Intel® VPL 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 Intel® VPL runtime will generate an
MFX_ERR_NOT_IMPLEMENTED
error when calling a removed function.
Intel® Media Software Development Kit Legacy API#
Intel® VPL contains following header files from Intel® Media Software Development Kit included for the simplification of existing applications migration to Intel® VPL:
mfxvideo++.h
Important
Intel® Media Software Development Kit obsolete API removed from those header files. Code compiled with the Intel® VPL API headers will generate a compile and/or link error when attempting to use a removed API.