I created a project that merges the FF_HandsViewer and DF_FaceTracking projects found in the framework CSharp samples directory. (Note: I'm using them as 32-bit apps using the RSSDK 32-bit DLLs). I merged in both of their main form too. The only significant modification is that I create a single PXCMSession at startup and pass it to each of the forms for their use.
Individually the services work fine. But if start both face tracking and hands viewing I get one of the following results when I start the second service (the order does not matter). So far I can't see any discernible patterns yet:
I kept the Task Manager open during all tests and CPU consumption never went over 69%.
IMPORTANT: If I run standalone each of the samples I merged into one separately, directly from the RealSense C# samples browser, the problem happens much, much less. In fact so far it has only happened once when I first loaded both apps and while the Face Tracking was still initializing (I had just hit the Start button), I quickly hit the Start button on the Hands Viewer app. Then both standalone apps stopped and the lights went out on the F200. However, after that, I can start/restart both standalone apps and they both work fine. I wish my merged app worked that well!
So what is the problem? Is it because:
Can anyone tell me what the problem is and how to fix? Some version info:
Intel RealSense Depth Camera Manager F200 - 126.96.36.199425
Intel RealSense SDK - 188.8.131.5298
Hard to answer. It may be a threading issue, or a camera firmware issue, or anything else really.
I would start doing unit tests with the different components, making sure that each one is able to run for a long time, say at least couple of hours.