Media (Intel® oneAPI Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools from Intel. This includes Intel® oneAPI Video Processing Library and Intel® Media SDK.

MFX_ERR_MORE_SURFACE in software implementation only

alex78
New Contributor I
148 Views

Dear all,

I have a working Media SDK decoder, I can successfully decode frames with very good performance and latency. Until now I have used MFX_IMPL_HARDWARE_ANY for session initialization, which worked as expected. Now I had the idea to also test the MFX_IMPL_SOFTWARE option to see the performance of the software implementation. But when using the MFX_IMPL_SOFTWARE option, after a successful call to DecodeHeader, all calls to DecodeFrameAsync return MFX_ERR_MORE_SURFACE. I am using AsyncDepth = 1 and IOPattern = MFX_IOPATTERN_OUT_SYSTEM_MEMORY for my mfxVideoParam structure. The obvious difference I saw between hardware and software implementation was that after a call to QueryIOSurf, the hardware implementation suggested to allocate 1 frame, the software implementation suggested 18 (through mfxFrameAllocRequest.NumFrameSuggested). In my code I use a minimalistic way of allocating the surfaces, exactly as demonstrated for example here https://software.intel.com/sites/default/files/managed/60/21/simple_decode.cpp

What can be the cause for the software implementation to break my decoder? Should additional information be needed, I will be glad to provide more details.

Thank you very much.

Alex

0 Kudos
1 Solution
Sravanthi_K_Intel
148 Views

Hello Alex - I tried to reproduce your issue (of SW impl breaking the decoder), but was not able to. Can you send more details on your system, error, input etc., - use this forum to see what details we need. https://software.intel.com/en-us/forums/topic/531083

Note: You seem to be working with an older version of the tutorials. There are updated tutorials here for use  http://software.intel.com/sites/default/files/mediasdk-tutorials-0.0.3.zip

View solution in original post

3 Replies
Sravanthi_K_Intel
149 Views

Hello Alex - I tried to reproduce your issue (of SW impl breaking the decoder), but was not able to. Can you send more details on your system, error, input etc., - use this forum to see what details we need. https://software.intel.com/en-us/forums/topic/531083

Note: You seem to be working with an older version of the tutorials. There are updated tutorials here for use  http://software.intel.com/sites/default/files/mediasdk-tutorials-0.0.3.zip

alex78
New Contributor I
148 Views

Hello,

thanks for the updated tutorials. After reviewing some of them, I figured out that I was not handling MFX_ERR_MORE_SURFACE properly in my code. Since the "hardware implementation" did not require more than 1 frame surface (mfxFrameAllocRequest.NumFrameSuggested) the error was not obvious to me and the decoder was working fine. Now I've fixed the code so that the software implementation works as well.

Sorry for wasting your time here.

Alex

Sravanthi_K_Intel
148 Views

Hello Alex - Glad you fixed the issue. No time waste at all - good to know about the limitations or gaps in our products.

Reply