0

I'm working on a video capture application using DirectShow and have noticed certain problems. In particular, with a Microsoft LifeCam Studio camera, the following strange situation occurs:

If the order of adding the capture filters is: video capture first, then audio (camera microphone), then the image from the camera gets a strong pinkish tint - looks like a black and white image run through a color transform to make it pink.

If I swap the order of adding the filters: audio (microphone) first, then video, then the problem goes away.

I've first noticed this in my application but have since verified that the same happens in Graph-Edit.

Is there any reasonable explanation for this phenomenon?

Mike Dinescu
  • 54,171
  • 16
  • 118
  • 151
  • Order of adding filters is likely to result in different effective topologies. You are interested to compare them (since you can get them). One of the filters on the video leg is obviously doing an incorrect transformation. – Roman R. Sep 23 '14 at 19:37
  • The topology is very straight-forward: [LifeCam WDM Caputer Source (Capture PIN) --> (INPUT PIN) Video Renderer] [LifeCam WDM Capture Source (Microphone PIN) --> (INPUT PIN) Default DirectSound)] – Mike Dinescu Sep 23 '14 at 19:39
  • Is this the real topology or it is what you expect it to be? Connecting live source capture pin to video renderer is incorrect. Then if the topology is like you said (sounds unlikely to me) you want to check media types. Then there is a chance capture driver is buggy (you want to check this out by connecting through another filter, even doing zero transformation). – Roman R. Sep 23 '14 at 19:57
  • That's the topology shown in Graph Edit. I thought that's the real topology. How can I verify that that is indeed what it is? Can you please elaborate on the second part of your suggestion? (let's chat if you have a few minutes) – Mike Dinescu Sep 23 '14 at 20:09
  • Doing virtually any DirectShow development, you want to register your application graph on ROT and inspect it with external tool. The options are described in [this question](http://stackoverflow.com/questions/27832/how-can-i-reverse-engineer-a-directshow-graph). I personally don't do ROT stuff from code and I have it done with [DirectShowSpy](http://alax.info/blog/777), which works for third party apps also, and then I use GraphStudioNext instead of Microsoft's GraphEdit. You can access real filter graph in real time and check its pins and connections. – Roman R. Sep 23 '14 at 20:15
  • Thanks, I'll continue to troubleshoot. In the mean time I've had a crash from the ks.sys driver and had to reboot. After the reboot the camera no longer displays the pink tint so I'll have to keep an eye out for it in case it comes back.. – Mike Dinescu Sep 23 '14 at 21:11
  • One last question - what should I select: GraphStudioNext 64bit or 32bit? And the direct show spy - 64 bit or 32bit? I'm developing on Windws 7 64 bit but my application is 32 bit - would the 64 bit spy filter, and studio next be able to debug 32bit apps? I would also like to use the spy to inspect Media Player Home Cinema (64 bit) – Mike Dinescu Sep 23 '14 at 21:25
  • You need to match bitness of your application (both graph* apps and spy) regardless from OS bitness. Also you need proppage.DLL from Windows SDK installed (or just full SDK with it). – Roman R. Sep 24 '14 at 04:57
  • Roman - Diregard my previous commend (deleted now). Thank you again for all your help. I'm able to spy both 32bit and 64bit graphs now. – Mike Dinescu Sep 24 '14 at 22:35

0 Answers0