I am doing a monitoring system which has opened four windows(Activex) decoding with Intel Media SDK at the same time. Every window is using directshow framework. These windows will initiate decoder(Intel MSDK) every 30 seconds to connect different video sources. But some windows will lay off after half hour. Through WinDebug, I find that the app constantly reported "Access Violation" in MFXVideoVPP_GetVPPStat function and come into endless loop. Please, see the attachment.
Windows Embedded Standard SP1 ,32bit Operating System
Intel Media SDK V126.96.36.19971
But, another computer has entirely same devices and drivers. Just, it runs Windows7 Enterprise. My app has been running for 48 hours. Thanks for you help.
Some initial observations. You are using Media SDK with an unsupported OS. We do not validate Media SDK capabilities on any other OS than Windows 7 and Vista. We cannot guarantee correct behavior on platform configurations not validated.
I also noticed that you are using an old verison of Media SDK. I strongly, suggest you migrate to Media SDK 2012.
Are you using the unmodified Media SDK sample DirectShow filters or have you made changes to the code?
Is your setup working fine on the other Win7 OS system?
I am having nearly the same issue as Dong using a different configuration on a Windows 7 system. I have a directshow H.264 encoder filter that uses the VPP to perform YUY2->NV12 conversion and deinterlacing, a user plugin than accepts the VPP output surface and tees the raw frame out into the host application through a frame server, and finally the video encode operation. In effect I call RunFrameVPPAsync, MFXVideoUSER_ProcessFrameAsync, and then EncodeFrameAsync.
The filter works as expected for a while, but eventually I see an access violation internally in the MediaSDK dll; typically in MFXVideoVPP_GetVPPStat. If I never load the user plugin I don't see the access violation, but if I even register it an do absolutely nothing with the plugin (mfxExecute is a noop) it still causes an access violation eventually. I have also tried explicitly using syncpoints on the VPP, user plugin, and encode operation to test this as a synchronous operation.
Everything is executing in system memory using the software implementation of the Media SDK. I'm at a loss for how to further debug the issue because the access violation always appears internally in the closed-source MediaSDK binaries. I've thoroughly checked the state of the pipeline after an access violation is triggered and synchronization/states look normal.
My next step is going to be rolling back to a previous SDK release to see if the issue still exists. I'll keep tracking this issue though to see if others are able to come up with anything.
What version of Media SDK are you using? 2013?
Can you please provide a Media SDK "pre-frame" trace log capturing the moment when the issue occurs?