I'm experimenting with the Intel Media SDK and it seems my initialisation steps are executed correctly. This involves creating a bitstream to read my h264 file, creating a MFXVideoSession, finding the right Intel GPU (I have a multi GPU system), creating the D3D11 device and context, creating the allocators and allocating the actual frames. I'm checking all of the results and after I've initialised the above list, I don't get any errors.
Next step is the actual decoding. I created an array with mfxFrameSurface1* (aka memory pool), find a free mfxFrameSurface1 as described by the Developers Guide and then I pass this into DecodeFrameAsync and it returns MFX_ERR_UNDEFINED_BEHAVIOR. I've pasted part of my code here.
I'm using the Intel Media SDK 188.8.131.529 on Win 8.1 with Intel i5 3570K.
Any reasons what may cause the MFX_ERR_UNDEFINED_BEHAVIOR result from DecodeFrameAsync?
Some reasons I could think of, but which I'm not sure about:
- My output surface isn't allocated; not sure if this is necessary, see here.
- Maybe because I'm not allocating my "work" mfxFrameSurface1* correctly.
- Maybe I'm setting faulty data on the mfxBitstream, see here
Hello there - Thanks for pasting your code. The init part of the application looks alright, but there are some comments in the main while() loop you have. We can go over it in detail (please send me a message), or I would highly recommend you take a look at the tutorials code to get a very simple understanding of what the Media SDK code for decode/encode should look like. These tutorials are easy to understand (unlike our samples that could be daunting) and have comments to help developers. Hope you have better luck starting with our tutorials. Let me know if that works for you.
Here is the link to download the tutorials - https://software.intel.com/en-us/intel-media-server-studio-support/training
And here is an article that showcases framework for Media SDK applications - https://software.intel.com/en-us/articles/framework-for-developing-applications-using-media-sdk
Thanks for your reply and thoughts. I would really appreciate going over the issue in detail. I've sent you an message.
And, thanks for linking to the other examples. I will look into those as well, though I also want to spend a bit more time to figure out why my code isn't working. I'm sure it's a tiny issue as none of the initialisation functions are returning an error.