Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

strange results with MFXQueryIMPL when calling with different version

boukhalfa__zakaria
1,098 Views
I have following simple test case:

MFXVideoSession session;

mfxStatus sts;
mfxIMPL impl = MFX_IMPL_AUTO_ANY;
//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
boukhalfa__zakaria
1,098 Views

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                         10.18.10.4358       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.

0 Kudos
Harshdeep_B_Intel
1,098 Views

Hi Zack, 

Can you let me know what version of MediaSDK you are using. Please confirm if you have latest MediaSDK 2016 installed : https://software.intel.com/en-us/media-sdk. Also, the driver installed on the machine is the latest from https://downloadcenter.intel.com/. 

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

Thanks,

0 Kudos
boukhalfa__zakaria
1,098 Views

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;
    Params_in.IOPattern = MFX_IOPATTERN_IN_SYSTEM_MEMORY;

    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;
        MSDK_ZERO_MEMORY(Params_in.mfx.reserved5);
    }

    // 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                               2.4.0.34            Active
        Intel(R) HD Graphics 3000                    9.17.10.4229        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
471}
  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.

0 Kudos
boukhalfa__zakaria
1,098 Views

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

0 Kudos
Reply