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.

Error message about MFX_ERR_UNSUPPORTED

Tseng_w_
Beginner
1,192 Views

Hello everyone,

When I run "Intel Media H264 Encode" in Graphedit, I got error MFX_ERR_UNSUPPORTED.

I create a pushsource filter to connect to " H264 Encode Filter". It could link to  " H264 Encode Filter" in graphedit. But, when I push the play button, it throws a error MFX_ERR_UNSUPPORTED. 

In the function of "CEncVideoFilter::StartStreaming(void)".

when it goes to this line.

sts = m_pEncoder->Init(&m_mfxParamsVideo, &m_mfxParamsVPP, this); 

it could return error "-3". And I find it could return error -3 in the below function.

sts = InternalReset(pVideoParams, pVPPParams, false);

I try to use the below block in graphedit and it could run well.

File Source -> MP4 spliter -> H264 Decoder -> H264 Encoder ->File Writer.

If it run well, why do I get error MFX_ERR_UNSUPPORTED ??

I also post the pin information for reference.

Thanks

Tseng

0 Kudos
8 Replies
Petter_L_Intel
Employee
1,192 Views

Hi Tseng,

There could be many reasons for this failure, but the issue is likely related to not being able to find Media SDK HW and/or SW DLL.

Make sure you have recent Intel HD Graphics driver installed and that the Intel HD Graphics device is active.

Can you share a bit more information about you machine configuration. An easy way to do this is to dump the output from Media SDK sys_analyzer tool (you'll find it in the SDK tools folder).

Regards,
Petter 

0 Kudos
Tseng_w_
Beginner
1,192 Views

Hi Petter,

Thanks for your replay.

I have checked the system infofmation by analysis tool. I upload it for ref. The column of Supported all is Yes,but the Dec & Enc is 'x'. I didn't get the 'x' could mean 'Support' or ' not Support'. If it means support, why I still get the error  MFX_ERR_UNSUPPORTED.

I also upload the log file. It has some error "MFX_ERR_NOT_INITIALIZED". Please check it and give me some advices. Thanks a lot. 

Best Regards,

Tseng

0 Kudos
Tseng_w_
Beginner
1,192 Views

Hi,

I modified the source filter, and it could pass the error of MFX_ERR_UNSUPPORTED now.

I faced new issue that occur in "CEncVideoFilter::Receive(IMediaSample* pSample)" function. As the below code ,when it query interface, it could return 'No Interface'.

hr = pSample->QueryInterface(IID_IMFXSample, reinterpret_cast<void**>(&pMFXSample));

The pointer pMFXSample will be set to NULL.

Could someone give me advice ? 

Big Thinks

Tseng

 

0 Kudos
Petter_L_Intel
Employee
1,192 Views

Hi Tseng,

From the log you shared I can see that SW path is successful but as you indicated HW acceleration path fails (MFX_ERR_UNSUPPORTED). This is quite strange since the sys_analyzer log indicates that the driver you have installed exposes HW acceleration correctly.

I do not suggest ignoring the "MFX_ERR_UNSUPPORTED" error code.

It seems you have made modifications to the sample filters? Does the unmodified filters work?

It also looks like you are using an old version of Media SDK. Could you try the same workload using Media SDK 2013 and corresponding samples?

Regards,
Petter 

0 Kudos
Tseng_w_
Beginner
1,192 Views

Hi Petter,

I have updated my Intel Graphy Driver, and tried again. It seems libary loaded successfully as the following message.

INFO :library loaded succesfully
SDK DLL File Version=4.13.3.7
SDK DLL Product Version=4.0.1531377.55492
SDK DLL File Size=11214232
MFXInit.impl=HARDWARE
MFXInit.ver=1.1
MFXInit.status=MFX_ERR_NONE

But it still doesn't work. It could return 'No Interface' as I mentioned before. I'm using the 2013 SDK to test and I don't modify any samples. I just build it and put it in graphyedit for test.  

 I upload the log file for ref.

Thanks a lot.

Tseng

0 Kudos
Petter_L_Intel
Employee
1,192 Views

Hi Tseng,

Judging from from the log you sent, I do not see any Media SDK API issues. HW accelerated session is initialized successfully and the encoder is also initialized successfully.

The issue your facing is likely due to filter incompatibility with the source filter you are using. The Media SDK DShow sample filters are also validated with a small set of filters (such as file input filter). You may have to modify input filter or Media SDK encode filter to adapt to the scenario you are pursuing.

I suggest trying alternate input filters or to isolate and address the filter incompatibility issue.

Regards,
Petter 

0 Kudos
Tseng_w_
Beginner
1,192 Views

Hi Petter,

I think the hw libary work well. I pass the NO_INTERFACE error, and set 'm_pEncoder->m_bmfxSample = false;'. It could start encoding. My question is what does it mean if I get NO_INTERFACE form query interface,  

Thanks,

Tseng

0 Kudos
Petter_L_Intel
Employee
1,192 Views

Hi Tseng, 

The reason you're getting NO_INTERFACE status from "hr = pSample->QueryInterface(IID_IMFXSample, reinterpret_cast<void**>(&pMFXSample));" is due to the fact that the upstream filter you have connected is not a Media SDK type filter (such as the Media SDK decode filters). In that case the sample encode filter assumes that the input frame is store in a system memory buffer. You can see in the preceding code path how that is handled. 

If your upstream filter somehow delivers frames in a different way you will have to modify the sample to adapt to that scenario.

Regards,
Petter 

0 Kudos
Reply