Showing results for 
Search instead for 
Did you mean: 

strange results with MFXQueryIMPL when calling with different version

I have following simple test case:

MFXVideoSession session;

mfxStatus sts;
//mfxVersion version = { { MFX_VERSION_MINOR, MFX_VERSION_MAJOR } }; // is in my lib version = { 13, 1}
mfxVersion version = { { 0, 1 } };

sts = session.Init(impl, &version);
sts = MFXQueryIMPL(session, &impl);
sts = MFXQueryVersion((mfxSession)session, &version);


Initializing a session with

mfxVersion version = { { 0, 1 } };


I get from MFXQueryIMPL an impl = 514

When initializing a session with :

mfxVersion version = { { MFX_VERSION_MINOR, MFX_VERSION_MAJOR } };

I get from MFXQueryIMPL an impl = 1


Can anybody explain this strange behaviour to me?

0 Kudos
4 Replies

Here the results of the analyzer:

Intel Media SDK System Analyzer (32 bit)

The following versions of Media SDK API are supported by platform/driver:

        Version Target  Supported       Dec     Enc
        1.0     HW      Yes             X       X
        1.0     SW      Yes             X       X
        1.1     HW      Yes             X       X
        1.1     SW      Yes             X       X
        1.3     HW      Yes             X       X
        1.3     SW      Yes             X       X
        1.4     HW      Yes             X       X
        1.4     SW      Yes             X       X
        1.5     HW      Yes             X       X
        1.5     SW      Yes             X       X
        1.6     HW      Yes             X       X
        1.6     SW      Yes             X       X
        1.7     HW      Yes             X       X
        1.7     SW      Yes             X       X
        1.8     HW      Yes             X       X
        1.8     SW      Yes             X       X

Graphics Devices:
        Name                                         Version             State
        Intel(R) HD Graphics                      Active

System info:
        CPU:    Intel(R) Core(TM) i5-3450 CPU @ 3.10GHz
        OS:     Microsoft Windows 10 Pro
        Arch:   64-Bit

Installed Media SDK packages (be patient...processing takes some time):


The analyzer crashed at my system after reporting this stats.


Hi Zack, 

Can you let me know what version of MediaSDK you are using. Please confirm if you have latest MediaSDK 2016 installed : Also, the driver installed on the machine is the latest from 

Let me know after about, if same behavior is seen?



With a driver update it works on my system. Thanks.

However we have another issue, with an older system:

I use following test case for that:

#include <mfxvideo++.h>
#include <sample_defs.h>
#include <sample_utils.h>

int main(int argc, char** argv)
    MFXVideoSession session;

    mfxStatus sts;
    mfxIMPL impl = MFX_IMPL_AUTO_ANY;
    mfxVersion version;
    version.Major = 1;
    version.Minor = 0;

    sts = session.Init(impl, &version);
    if (MFX_ERR_NONE != sts)
        sts = session.Init(impl, &version);

    mfxVideoParam Params_in;
    int size = sizeof(Params_in);
    memset(&Params_in, 0, sizeof(Params_in));

    Params_in.mfx.CodecId = MFX_CODEC_JPEG;
    Params_in.mfx.TargetUsage = MFX_TARGETUSAGE_BEST_QUALITY;
    Params_in.mfx.TargetKbps = 1200;
    Params_in.mfx.RateControlMethod = MFX_RATECONTROL_CBR;
    Params_in.mfx.FrameInfo.FrameRateExtN = 30;
    Params_in.mfx.FrameInfo.FrameRateExtD = 1;
    Params_in.mfx.FrameInfo.FourCC = MFX_FOURCC_NV12;
    Params_in.mfx.FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV420;
    Params_in.mfx.FrameInfo.PicStruct = MFX_PICSTRUCT_PROGRESSIVE;
    Params_in.mfx.FrameInfo.CropX = 0;
    Params_in.mfx.FrameInfo.CropY = 0;
    Params_in.mfx.FrameInfo.CropW = 720;
    Params_in.mfx.FrameInfo.CropH = 576;
    Params_in.mfx.FrameInfo.Width = 720;
    Params_in.mfx.FrameInfo.Height = 576;

    sts = MFXQueryIMPL(session, &impl);
    sts = MFXQueryVersion((mfxSession)session, &version);

    MFXVideoENCODE enc(session);
    sts = enc.Query(&Params_in, &Params_in);

    mfxFrameAllocRequest Request;
    memset(&Request, 0, sizeof(Request));
    sts = enc.QueryIOSurf(&Params_in, &Request);

    if (MFX_CODEC_JPEG == Params_in.mfx.CodecId)
        Params_in.mfx.Interleaved     = 1;
        Params_in.mfx.Quality         = 100;    // 1 to 100, where 100 is best
        Params_in.mfx.RestartInterval = 0;

    // Initialize the Media SDK encoder
    sts = enc.Init(&Params_in); // ERROR : returns MFX_ERR_INVALID_VIDEO_PARAM
    return 0;

I got an error within the encoder init function, because of invalid video params

This is the output of the analyzer:

Intel Media SDK System Analyzer (32 bit)

The following versions of Media SDK API are supported by platform/driver:

        Version Target  Supported       Dec     Enc
        1.0     HW      Yes             X       X
        1.0     SW      Yes             X       X
        1.1     HW      Yes             X       X
        1.1     SW      Yes             X       X
        1.3     HW      Yes             X       X
        1.3     SW      Yes             X       X
        1.4     HW      Yes             X       X
        1.4     SW      Yes             X       X
        1.5     HW      No
        1.5     SW      Yes             X       X
        1.6     HW      No
        1.6     SW      Yes             X       X
        1.7     HW      No
        1.7     SW      Yes             X       X
        1.8     HW      No
        1.8     SW      Yes             X       X

Graphics Devices:
        Name                                         Version             State
        Matrox OrionHD                                 Active
        Intel(R) HD Graphics 3000                  Active

System info:
        CPU:    Intel(R) Core(TM) i5-2405S CPU @ 2.50GHz
        OS:     Microsoft Windows 7 Professional
        Arch:   32-Bit

Installed Media SDK packages (be patient...processing takes some time):

Installed Media SDK DirectShow filters:

Installed Intel Media Foundation Transforms:
  Intel« Hardware VC-1 Decoder MFT : {059A5BAE-5D7A-4C5E-8F7A-BFD57D1D6AAA}
  Intel« Hardware H.264 Decoder MFT : {45E5CE07-5AC7-4509-94E9-62DB27CF8F96}
  Intel« Hardware MPEG-2 Decoder MFT : {CD5BA7FF-9071-40E9-A462-8DC5152B1776}
  Intel« Quick Sync Video H.264 Encoder MFT : {4BE8D3C0-0515-4A37-AD55-E4BAE19AF
  Intel« Hardware Preprocessing MFT : {EE69B504-1CBF-4EA6-8137-BB10F806B014}

Analysis complete... [press ENTER]


The system is the second generation CPU like you can see. The SDK is from 2015.

In the release notes it is mentioned that only the 3rd generation is supported. So I don't know whether this is an issue?

Thanks for you support Harsh.


I updated to the latest driver and also tested it with the 2016 SDK. No difference.