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

Another permanent MFX_WRN_DEVICE_BUSY

New Contributor I

First, I want to commend the support staff, you have an important and at times tough job. I think the IMSDK and it's teams are impressive.

If you search the forums for MFX_WRN_DEVICE_BUSY, you will see it is happening regularly to a number of people.

I have a heavily modified version of the tutorial  'simple_5_transcode_opaque_async_vppresize'.

I have tested my program on Win7/x64,  Win81/x64, Win Server 2012R2 x64


  • Win8.1/x64   libmfxhw64.dll     File Version:  / Product Version: 6.0.1536.342
  • Win7/x64   libmfxhw64.dll     File Version:  / Product Version: 6.0.1536.342
  • WinServer2012R2  File Version: / Product Version: 5.0.33362.27558 

On Win81 and WinServer, for the same bitstream I do not get MFX_WRN_DEVICE_BUSY, and my transcode completes.

On Win7 I get stuck in a MFX_WRN_DEVICE_BUSY on mfxVPP.RunFrameVPPAsync(...)

I understand you may not be able to justify looking at my custom code.

But please do tell me, what the potential sources of this error might be. What might cause unstopping MFX_WRN_DEVICE_BUSY from RunFrameVPPAsync()


Thanks in advance


0 Kudos
2 Replies
New Contributor I

Can this error ONLY be caused by bad bitsteams, or are there other known causes of this failure condition?

If there are other known causes, what are they?
Thanks, Cameron

0 Kudos

Hi Cameron, 

Thanks for the kind words. The reason why MFX_WRN_DEVICE_BUSY can vary depending upon the application. Basically what it means is that the device is busy and cannot complete the requested task. This can happen if your devices is busy executing the previous cmd so it will give this warning or if your device doesn't have surface which you have requested so, task cannot be accomplished.
One of the solution to handle this is to do SyncOperation instead of sleep for few milliseconds, with the SyncOperation  it should free up the surfaces which can be used. For eg -

sts = dec->DecodeFrameAsync(..);
if (MFX_WRN_DEVICE_BUSY == sts) {
mfxStatus res = session.SyncOperation(MFX_INFINITE);   //or SyncOperation.wait(5);
}while (sts ==MFX_WRN_DEVICE_BUSY)

Are you seeing this issue with specific inputs? If this problem still continues can you please send us the reproducer with the input so that it can be filed as a bug. Also, I hope you are using latest driver on your win7 system. Are you using same HW configration for all three OS you are working on, if not can you let us know the system details as well?



0 Kudos