Just to add a few words to what Tim wrote.
I’ve done what he suggested in the past and it worked great. It is not terribly difficult, but it
requires certain degree of understanding of both TDI and KS, which makes the task rather hard.
In my case I did it hoping for performance benefits handling high bandwidth streams (80 MBit/s on
100 MBit/s network) and handling everything in kernel mode seemed to improve the odds of
succeeding a little bit. However I have to acknowledge that buming the priority of the streaming
thread to real time seemed to provide very similar results.
The other thing that appeared to be better with the KS solution was latency.
In your case however I doubt that either bandwidth or latency is an issue. It’s webcam, right?
So as it was suggested stick with the user mode solution. It should work for you just fine.
About “filter drivers” for webcam. There is no legal and supported way to write a filter driver
over a KS minidriver. Plain and simple - not supported. There are hacks and tricks that you can
play to achieve that, but they are just that - hacks. Search the archieve as this topic has been
discussed in the past multiple times.
– Max.
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-219010-
xxxxx@lists.osr.com] On Behalf Of Tim Roberts
Sent: Friday, September 02, 2005 9:47 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] How to send data from webcam in kernel mode to NIC
Amlan Mandal wrote:
> Hi,
> I want to capture video data from webcam driver & send data to
> nretwork card driver without ever going in user level.
> I have two questions
> 1. Can I do it without modifying in any vendor provided drivers?
Theoretically, yes. You could theoretically write a kernel streaming
rendering driver that accepts data in the format your web camera filter
produces and uses TDI to send that data to the network driver. Your
filter graph would consist of the web cam source driver, and your
renderer. No user-mode components, except for the parts that build the
graph.
However, such a thing would almost certainly be more difficult to
develop and debug than a user-mode DirectShow filter to do the same
thing, and there is no particular performance benefit. Your graph will
be constantly waiting for either the webcam or the network. You will
have CPU time to spare, so the few extra cycles are not an issue.
> 2.Can I use filter driver (to stream class or minidriver) to capture
> data & send to n/w driver?How can I make filter driver so that it
> intercepts data ?
Remember that a filter driver intercepts data that is on its way to
somwhere. If you implemented this in a filter driver, what app would
you be intecepting? No, creating a KS or DirectShow filter has to be
the better way.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@yahoo.com
To unsubscribe send a blank email to xxxxx@lists.osr.com