tomb18 - 2014-01-16

I have been having a lot of issues with commercial DirectShow .NET packages (Mitov.com, VisioForge) used to capture video from a AverMedia HD Game Broadcaster VGA. The software is simple: select the card and the input and display the capture in a display component.
In all cases I find they run fine on my development machine, fine when installed on fresh Windows 7 and 8 machines but fail when sent to clients who use the same hardware. Failure modes are usually freezing of the video within a few seconds, to no video when the screens are resized. In all cases I send the same install package and have verified that the clients are using the correct libraries.

Now, recently I just changed my video card on my development machine, and one of the packages (Visioforge) started doing the same thing as on the client. Pulling my hair out.

So I decided to try out DirectShow.Net with a capture example demo, actually a few different ones.
I built the solution with Visual Studio 2010 C# and ran it. It was perfect. Then I decided to create my own form (not use the demo), but used all the same code. I then ran it:

Result: No video, unless I resize the screen. Then it stops. Keep resizing and the screen updates while resizing. Sometimes if I disconnect and reconnect it will work. It always works with a webcam.

So, I wondered what was the difference? I searched everywhere and then I found it. On the builds with the original demos, the Build configuration for Active Solution Platform was set to ANY CPU.
On my version, it was set to x86. I changed my version to ANY CPU and now it works perfect.

I suspect it is the same thing in all of the other programs I have tried, but I cannot test this since my program uses ASIO4ALL which is a 32 bit only driver.

Does anyone have any idea of what is going on?

I have asked this question in a few other places, but suspect that the people here are the real experts.

Thanks in advance, Tom