Windows Vista Tips

Windows Vista Tips > Newsgroups > Windows Vista Drivers > Re: Beginner question: making a new kind of device using webcams?

Reply
Thread Tools Display Modes

Re: Beginner question: making a new kind of device using webcams?

 
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      08-04-2010
Just read the video stream off the camera (ANY camera) using DirectShow, and do your detection there.

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

"Navigateur" <> wrote in message news:86408c5d-c888-4395-98c4-...
> I'm a beginner but I'm determined to do this.
>
> How, in a nutshell, do I make a driver that is automatically installed
> upon plugging in 2 specific webcams, that when called upon does some
> real-time vision-based detection on the images (using OpenCV, my own
> code) and then exposes custom-fired events and variables based on what
> is found in the detection, which can be accessed system-wide by any
> application, but which does not expose the images from the cameras, or
> automatically install default drivers for webcams.
>
> In other words, a vision-based user interface.
>
> I'm aware of UVC, and AvStream.
>
> Any ideas for ANY part of this are welcome. I'll take all ideas you
> have very seriously.
>
> Many thanks,
> N

 
Reply With Quote
 
 
 
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      08-06-2010
>How would I make the 2 specific cameras be recognized and registered
>as one (specific) device?


You need to design a way to merge the 2 video streams first.

Then, this "merger" should be implemented as one more DirectShow filter.

>Could I still use UVC drivers + a custom KS
>proxy DirectShow plug-in?


Yes.

>DirectShow events, CORBA


How is this related? isn't this a Linux replacement for SOAP and similar things? how is it related to video?

Surely DirectShow supports properties on filters.

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

 
Reply With Quote
 
Tim Roberts
Guest
Posts: n/a

 
      08-06-2010
Navigateur <> wrote:
>
>What's your recommended overall architecture for this?
>
>How would I make the 2 specific cameras be recognized and registered
>as one (specific) device?


You wouldn't. You would have an APPLICATION connect to those two cameras
in standard DirectShow graphs, and have the application expose services to
clients. Perhaps as a COM server, or a network server, or some other
interprocess communication stream.

>Could I still use UVC drivers + a custom KS proxy DirectShow plug-in?


Well, if you don't want to provide streaming data from these cameras, why
would you consider combining the two in KS?

Really, that's a bad idea to begin with.

>For events/variables, should I use
>DirectShow events, CORBA or something else? (given that I want the
>events/variables to be easily available to multiple applications
>running on all platforms, not only by native Windows apps).


To go cross-platform, you're pretty much locked in to sockets.
--
Tim Roberts,
Providenza & Boekelheide, Inc.
 
Reply With Quote
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      08-06-2010
>Maxim: by events/variables, I mean my own basic detection events/
>variables fired by me, not video events. Can DS filters perform bi-


Write your app which will host a DS graph, and expose OA events and methods from it.

>Regardless of the architecture I choose, am I right that I would
>definitely need an .exe running to kick-start and run the DirectShow
>filter?


Correct.

>So I have another stupid beginner question: can I have this
>application instantiate automatically when the device is plugged in,


Write an additional service/Run key app which will monitor the device arrival events, or start the app from the coinstaller DLL.

>and which stops when they unplug it? (Additionally, can I make it
>restart every time they force-kill the process in "Task Manager"?)


This would be a major misfeature. If the user wants to kill the app, he must be able to do this.

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

 
Reply With Quote
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      08-06-2010
OLE Automation events

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

"Navigateur" <> wrote in message news:17667a7f-4d93-4046-8f20-...
> What are OA events?
>>
>> Write your app which will host a DS graph, and expose OA events and methods from it.
>>

 
Reply With Quote
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      08-07-2010
>How would I use sockets in the most convenient and cross-platform way?

Sockets are too low a level.

I would prefer HTTP+XML+SOAP. It is IIRC not-so-hard to be made compatible with DCOM and CORBA.

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

 
Reply With Quote
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      08-08-2010
>be worth making my own compact custom solution with my own data types?

Depends on your platform.

With OA, you're tied to Windows. There is no OA in UNIXen.

With CORBA, you're tied _to particular CORBA package_ (under any popular UNIX and maybe even Windows) - the standard is too vague and different implementations are incompatible in terms of APIs (compatibe in terms of network protocol though).

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

 
Reply With Quote
 
m
Guest
Posts: n/a

 
      08-09-2010
This is a situation where it will be mush easier in the long run if you use
a standard package / middleware instead of rolling your own. In the short
term, the features that the industry standard offerings have may seem
overkill, but if you roll you own, you will have to implement them sooner or
later. And the work to translate network to host byte order pales in
comparison with the work required to map code pages on non-ASCII systems; as
I have the misfortune of experiencing.

I echo Maxim's suggestion of XML / SOAP as the simplest, but COBERA & MQ are
also viable. In all cases though, you should not attempt this in KM, but
pass this work off to a UM service. All of these products use sockets
underneath, since socketys constitute the basis of all modern networking,
but abstract the binary details from you and allow you to focus on the data
that you want sent.

"Navigateur" <> wrote in message
news:b42f9c9d-d52f-4e42-9c93-...
> I meant making my own simple (bi-directional) method invocation
> "standard" for my app, using TCP? Tim said sockets are cross-platform,
> right? What, in total, is the minimum I need to make for this to work?
>
> On Aug 8, 1:33 pm, "Maxim S. Shatskih"
> <ma...@storagecraft.com.no.spam> wrote:
>> >be worth making my own compact custom solution with my own data types?

>>
>> Depends on your platform.
>>
>> With OA, you're tied to Windows. There is no OA in UNIXen.
>>
>> With CORBA, you're tied _to particular CORBA package_ (under any popular
>> UNIX and maybe even Windows) - the standard is too vague and different
>> implementations are incompatible in terms of APIs (compatibe in terms of
>> network protocol though).
>>
>> --
>> Maxim S. Shatskih
>> Windows DDK MVP
>> ma...@storagecraft.comhttp://www.storagecraft.com

>

 
Reply With Quote
 
 
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Game Compatibility BCurrey Windows Vista Games 6 11-29-2007 08:11 PM
WMDC, Ipaq PPC2K3, Vista Jan, Philippe ActiveSync 8 06-28-2007 02:54 PM
Going Golfing but not with Vista markbyrn Windows Vista Games 15 03-08-2007 10:59 AM
americas army stuttering under vista premium ernie Windows Vista Games 0 02-27-2007 10:20 PM
problem in dxdiag Peewee64 Windows Vista Games 0 02-14-2007 09:49 PM



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59