Community
cancel
Showing results for 
Search instead for 
Did you mean: 
yoe
Beginner
435 Views

Media SDK compatibility issues

 

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
417 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");

 

 

 

yoe
Beginner
384 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.

AthiraM_Intel
Moderator
312 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.


yoe
Beginner
304 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

 

yoe
Beginner
290 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?

AthiraM_Intel
Moderator
272 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.


AthiraM_Intel
Moderator
196 Views

Hi,


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



Thanks


AthiraM_Intel
Moderator
154 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



Reply