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.

Media SDK compatibility issues

yoe
Beginner
1,618 Views

 

In my code, the "_mfx_session.InitEx" return -3("MFX_ERR_UNSUPPORTED = -3, /* undeveloped feature */").

I compare with the decode sample, sample use "ExtBufHolder<mfxInitParam>", but I use "mfxInitParam", 

Is the new version of media SDK incompatible with the previous program?

 

Operating System: Windows 10 专业版 64-bit (10.0, Build 19041) (19041.vb_release.191206-1406)

Processor: 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz (8 CPUs), ~2.6GHz

Driver Version: 27.20.100.9268

 

	mfxStatus sts = MFX_ERR_NONE;
	mfxInitParam initPar;
	memset(&initPar, 0x00, sizeof(initPar));
	memset(&_mfx_video_params, 0x00, sizeof(_mfx_video_params));
    
	// we set version to 1.0 and later we will query actual version of the library which will got leaded
	initPar.Version.Major = 1;
	initPar.Version.Minor = 0;
	initPar.GPUCopy = MFX_GPUCOPY_ON;
	// try searching on all display adapters
	initPar.Implementation = MFX_IMPL_HARDWARE_ANY;
    if (RENDER_DX11_HW == m_renderType){
        initPar.Implementation |= MFX_IMPL_VIA_D3D11;
    }

	//_mfx_video_params.mfx.FrameInfo.FourCC = MFX_MAKEFOURCC('N', 'V', '1', '2');
	//_mfx_video_params.mfx.FrameInfo.ChromaFormat = 1;

	MSDK_ZERO_MEMORY(m_DecodeErrorReport);
	m_DecodeErrorReport.Header.BufferId = MFX_EXTBUFF_DECODE_ERROR_REPORT;

	{
		unique_lock_t lock(_g_mutex);
		sts = _mfx_session.InitEx(initPar);
	}

 

 

the newest sample code:

 

using mfxInitParamlWrap     = ExtBufHolder<mfxInitParam>;

 

 

    mfxInitParamlWrap initPar;

    // we set version to 1.0 and later we will query actual version of the library which will got leaded
    initPar.Version.Major = 1;
    initPar.Version.Minor = 0;

    initPar.GPUCopy = pParams->gpuCopy;

    if (pParams->nThreadsNum)
    {
        auto threadsPar = initPar.AddExtBuffer<mfxExtThreadsParam>();
        threadsPar->NumThread = pParams->nThreadsNum;
    }
    if (pParams->SchedulingType)
    {
        auto threadsPar = initPar.AddExtBuffer<mfxExtThreadsParam>();
        threadsPar->SchedulingType = pParams->SchedulingType;
    }
    if (pParams->Priority)
    {
        auto threadsPar = initPar.AddExtBuffer<mfxExtThreadsParam>();
        threadsPar->Priority = pParams->Priority;
    }

    if (pParams->eDeinterlace)
    {
        m_diMode = pParams->eDeinterlace;
    }

    if (pParams->bUseFullColorRange)
    {
        m_bVppFullColorRange = pParams->bUseFullColorRange;
    }

    bool bResolutionSpecified = pParams->Width || pParams->Height; // potentially VPP can be inserted

    if (bResolutionSpecified)
        m_bDecOutSysmem = pParams->bUseHWLib ? false : true;
    else
        m_bDecOutSysmem = m_memType == SYSTEM_MEMORY;

    m_eWorkMode = pParams->mode;

    m_monitorType = pParams->monitorType;
    // create device and allocator
#if defined(LIBVA_SUPPORT)
    m_libvaBackend = pParams->libvaBackend;
#endif // defined(MFX_LIBVA_SUPPORT)

    sts = GetImpl(*pParams, initPar.Implementation);
    MSDK_CHECK_STATUS(sts, "GetImpl failed");

    sts = m_mfxSession.InitEx(initPar);

 

0 Kudos
8 Replies
yoe
Beginner
1,600 Views

hi, I chI changed the code of sample to be the same as mine, which also returns -3.

The sample code I modified has been uploaded as an attachment, thank you very much.  @Mark_L_Intel1 

 

    //mfxInitParamlWrap initPar;
    mfxInitParam initPar;

    // we set version to 1.0 and later we will query actual version of the library which will got leaded
    initPar.Version.Major = 1;
    initPar.Version.Minor = 0;

    initPar.GPUCopy = pParams->gpuCopy;

    /*
    if (pParams->nThreadsNum)
    {
        auto threadsPar = initPar.AddExtBuffer<mfxExtThreadsParam>();
        threadsPar->NumThread = pParams->nThreadsNum;
    }
    if (pParams->SchedulingType)
    {
        auto threadsPar = initPar.AddExtBuffer<mfxExtThreadsParam>();
        threadsPar->SchedulingType = pParams->SchedulingType;
    }
    if (pParams->Priority)
    {
        auto threadsPar = initPar.AddExtBuffer<mfxExtThreadsParam>();
        threadsPar->Priority = pParams->Priority;
    }
    */

    if (pParams->eDeinterlace)
    {
        m_diMode = pParams->eDeinterlace;
    }

    if (pParams->bUseFullColorRange)
    {
        m_bVppFullColorRange = pParams->bUseFullColorRange;
    }

    bool bResolutionSpecified = pParams->Width || pParams->Height; // potentially VPP can be inserted

    if (bResolutionSpecified)
        m_bDecOutSysmem = pParams->bUseHWLib ? false : true;
    else
        m_bDecOutSysmem = m_memType == SYSTEM_MEMORY;

    m_eWorkMode = pParams->mode;

    m_monitorType = pParams->monitorType;
    // create device and allocator
#if defined(LIBVA_SUPPORT)
    m_libvaBackend = pParams->libvaBackend;
#endif // defined(MFX_LIBVA_SUPPORT)

    sts = GetImpl(*pParams, initPar.Implementation);
    MSDK_CHECK_STATUS(sts, "GetImpl failed");

    sts = m_mfxSession.InitEx(initPar);
    MSDK_CHECK_STATUS(sts, "m_mfxSession.InitEx failed");

 

 

 

0 Kudos
yoe
Beginner
1,567 Views

@Gael_H_Intel    @Mark_L_Intel1 
Why didn't anyone pay attention to my question?
Shouldn't the new Intel drivers be compatible with old applications?

-----------

In addition, my original code is normal in other versions. Only in this version can initex fail.

0 Kudos
AthiraM_Intel
Moderator
1,495 Views

Hi,


Thanks for reaching out to us. We are extremely sorry for the delay.


Could you please share the following details:


1) Media SDK version?

2) API version reported when running your code?

3) Is it possible to use the same tutorial code available along with the Media SDK?


Thanks.


0 Kudos
yoe
Beginner
1,487 Views

1)Media SDK version: 1.34

2)API version: 1.20

3)Because the code of the mediasdk header file used in our program has been modified by us, direct replacement is not feasible and it is very difficult to combine.

----PS:I tracked it with SDK tracker and found that it was caused by the failure to load libmfxhw32.dll. Why can sample load successfully, but my program can't load successfully?

yoe_0-1628138881760.png

API version.jpgMediaSDK version.jpg

 

0 Kudos
yoe
Beginner
1,473 Views

@AthiraM_Intel 
After I updated libmfx.lib in the new SDK this afternoon, the problem was solved, There are recent updates to this library, right?

0 Kudos
AthiraM_Intel
Moderator
1,455 Views

Hi,


Glad to know that your issue is resolved.


The latest Media SDK version for windows is 2021 R1.

To know more about the changes in the latest release please refer the below link :


https://software.intel.com/content/www/us/en/develop/download/media-sdk-windows-release-notes.html


Hope this helps.


Thanks.


0 Kudos
AthiraM_Intel
Moderator
1,379 Views

Hi,


Could you please give us an update? Has the solution provided helped?



Thanks


0 Kudos
AthiraM_Intel
Moderator
1,337 Views

Hi,


I assume that the solution provided helped. If you need any additional information, please post a new question as this thread will no longer be monitored by Intel. 



Thanks



0 Kudos
Reply