What I am trying to do
I am trying to create a sample USB camera streaming application (more or less like stripped version of amcap) using DirectShow framework with VC++ language using VS2008. Following is the filter graph information that I use to build.
Filter Graph
Web Camera (Capture Pin) - Smart Tee (Preview Pin) - Transform filter converting monochrome Y8 to YUY2 - Video Mixing Render.
Additional Info
- Web Camera streams at 640x480, Y8 @ 30FPS.
- Tested on Windows 7 Professional, Intel i3 - Works Good, able to stream VGA @ 30FPS.
- No Preview Pin available in video capture filter.
Issue
With the same filter graph setup, I am facing issue on Windows 8 Intel i3 PC. But, if I replace Smart Tee filter with Infinte Tee sample provided in Microsoft SDK, it is working good. Why is it so that smart tee filter is not working in Windows 8?
EDIT: Issue is that I'm not able to connect video capture filter to smart tee filter on Windows 8, but able to connect on Windows 7. I tried through graphedit tool. Windows 8 is trying to form following graph for Y8 media sub type (YUY2 is working correctly).
Web Camera (Capture Pin) - Transform filter converting monochrome Y8 to YUY2 - Smart Tee (Preview Pin) - Video Mixing Render.
And when I run the graph, graphedit closes with exception.
If I do not register transform filter, I receive this error when connecting Capture filter with smart tee. 'These filters cannot agree on a connection. Verify type compatibility of input and output pin. No combination of intermediate filter could be found to make connection. (Return code = 0x80040217)'.
Also, if I use Infinte tee filter, there is frame rate drop after every few minutes. What is the difference between smart tee filter on Windows 7 and Windows 8? What can be used as alternate to smart tee?
Thanks in advance for your help.