The Intel® Media SDK
maksenox and onabiull [vp9d] Lock reference frames before UpdateRefList
Make reference frames are locked (increase reference counter)
before UpdateRefList.

UpdateRefList prepares the references for the next frame and
removes frames from the current list, when it removes it calls
DecreaseRefCount function.
If frame refCount is zero Free function is called
this function clears Locked member and the reference frame
could be used as new target frame
while still in use by HW decoder.

Issue: MDP-52110
Test: Linux/ICL
Latest commit 4d41390 Dec 12, 2018

Intel® Media SDK

Intel® Media SDK provides an API to access hardware-accelerated video decode, encode and filtering on Intel® platforms with integrated graphics.

Supported video encoders: HEVC, AVC, MPEG-2, JPEG
Supported Video decoders: HEVC, AVC, VP8, MPEG-2, VC1, JPEG
Supported video pre-processing filters: Color Conversion, Deinterlace, Denoise, Resize, Rotate, Composition

Important note

The current version of Intel Media SDK is compatible with the open source Intel Media Driver for VAAPI. Intel Media SDK depends on LibVA.


You can find answers for the most frequently asked questions here.

Table of contents


Intel Media SDK is licensed under MIT license. See LICENSE for details.

How to contribute

See CONTRIBUTING for details. Thank you!


To get copy of Media SDK documentation use Git* with LFS support.

Please find full documentation under the doc/ folder. Key documents:

Visit our Github Wiki for the detailed setting and building instructions, runtime tips and other information.

You may also wish to visit Intel Media Server Studio support page for additional documentation.

Products which use Media SDK

System requirements

Operating System: Linux


Hardware: Intel platforms supported by the Intel Media Driver for VAAPI

Media SDK test and sample applications may require additional software packages (for example, X Server, Wayland, LibDRM, etc.) to be functional.

How to build

Build steps

Get sources with the following Git* command (pay attention that to get full Media SDK sources bundle it is required to have Git* with LFS support):

git clone msdk
cd msdk

To configure and build Media SDK install cmake version 2.8.5 or later and run the following commands:

mkdir build && cd build
cmake ..
make install

Media SDK depends on a number of packages which are identified and checked for the proper version during configuration stage. Please, make sure to install these packages to satisfy Media SDK requirements. After successful configuration 'make' will build Media SDK binaries and samples. The following cmake configuration options can be used to customize the build:

Option Values Description
API master|latest|major.minor Build mediasdk library with specified API. 'latest' will enable experimental features. 'master' will configure the most recent available published API (default: master).
ENABLE_OPENCL ON|OFF Enable OpenCL dependent code to be built (default: ON)
ENABLE_X11_DRI3 ON|OFF Enable X11 DRI3 dependent code to be built (default: OFF)
ENABLE_WAYLAND ON|OFF Enable Wayland dependent code to be built (default: OFF)
ENABLE_ITT ON|OFF Enable ITT (VTune) instrumentation support (default: OFF)
ENABLE_TEXTLOG ON|OFF Enable textlog trace support (default: OFF)
ENABLE_STAT ON|OFF Enable stat trace support (default: OFF)
BUILD_ALL ON|OFF Build all the BUILD_* targets below (default: OFF)
BUILD_RUNTIME ON|OFF Build mediasdk runtime, library and plugins (default: ON)
BUILD_SAMPLES ON|OFF Build samples (default: ON)
BUILD_TESTS ON|OFF Build unit tests (default: OFF)
BUILD_TOOLS ON|OFF Build tools (default: OFF)

The following cmake settings can be used to adjust search path locations for some components Media SDK build may depend on:

Setting Values Description
CMAKE_ITT_HOME Valid system path Location of ITT installation, takes precendence over CMAKE_VTUNE_HOME (by default not defined)
CMAKE_VTUNE_HOME Valid system path Location of VTune installation (default: /opt/intel/vtune_amplifier)

Visit our Github Wiki for advanced topics on setting and building Media SDK.

Enabling Instrumentation and Tracing Technology (ITT)

To enable the Instrumentation and Tracing Technology (ITT) API you need to:

and configure Media SDK with the -DENABLE_ITT=ON. In case of VTune it will be searched in the default location (/opt/intel/vtune_amplifier). You can adjust ITT search path with either CMAKE_ITT_HOME or CMAKE_VTUNE_HOME.

Once Media SDK was built with ITT support, enable it in a runtime creating per-user configuration file ($HOME/.mfx_trace) or a system wide configuration file (/etc/mfx_trace) with the following content:



  • In case of GCC compiler it is strongly recommended to use GCC version 6 or later since that's the first GCC version which has non-experimental support of C++11 being used in Media SDK.

See also

Intel Media SDK: