Video Driver Question

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Video Driver Question

Kirk W. Fraser
How would you approach getting a visual image into Smalltalk?  In WinXP,
even Paint links itself to an active video feed from a webcam or scanner.
How can that feature be accomplished in Dolphin?  And how can live video be
acquired so it can be processed in real time?  I assume accessing the right
Windows .dll would provide a bitmap, but how specifically?

Thanks,
Kirk


Reply | Threaded
Open this post in threaded view
|

Re: Video Driver Question

Bill Schwab-2
Kirk,

> How would you approach getting a visual image into Smalltalk?  In WinXP,
> even Paint links itself to an active video feed from a webcam or scanner.
> How can that feature be accomplished in Dolphin?  And how can live video
be
> acquired so it can be processed in real time?  I assume accessing the
right
> Windows .dll would provide a bitmap, but how specifically?

For stills, look at TWAIN and EZ-TWAIN.  I'm not at all sure how XP's Paint
gets video, and I <evilGrin>don't have an XP system for
reference</evilGrin>.

For video, I found a great deal (via PC Connection) on a Videum card
(http://www.winnov.com/) and have been quite happy with it, though my use of
it to date has been limited to weekend tinkering.  I chose it because of
price, and ability to capture audio, video and stills; the latter
requirement was the least negotiable and limited the field considerably.  I
was also quite impressed by their wide support of 9x/NT/2k and Linux
(haven't verified that the latter works, yet).  Either they spend a lot of
time posting bogus messages to their own newgroup, or they have some
satisfied customers.  It also ships with an SDK in the form of OCX controls
and help files.  A limited test with Dolphin's ActiveX hosting had video on
the screen in a hurry.  For good or bad, I found that the control must be
hosted visually in order to work.

The short version is that I bought the card with one task in mind, and later
recognized the potential to grab and process video.  So far, there is no
evidence to suggest that it can't be done, though I can't claim any
real-world success stories either.

Have a good one,

Bill

--
Wilhelm K. Schwab, Ph.D.
[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: Video Driver Question

Kirk W. Fraser
"Bill Schwab" <[hidden email]> wrote
> For stills, look at TWAIN and EZ-TWAIN.  I'm not at all sure how XP's
Paint
> gets video, and I <evilGrin>don't have an XP system for
> reference</evilGrin

I looked for TWAIN in the D.XP class hierarchy browser but did not find it.

The video input which works on my W.XP's Paint and Movie Maker is
the USB port.  <moustache twirling>I wonder if USB could handle several
cameras simultaneously! </moustache twirling>

> For video, I found a great deal (via PC Connection) on a Videum card
> (http://www.winnov.com/) and have been quite happy with it,

Thanks I looked it up but I can make do with my NVida GeForce 4 AGP
card which doubles as a near top of the line OpenGL game graphics card,
which Creative-Computing's 3D library can drive via D.XP.  It has a
video-in that works fine with W.XP Movie Maker.

I want to bring it in to Dolphin to do more interesting stuff like trying to
identify visual objects in real time.

> A limited test with Dolphin's ActiveX hosting had video on
> the screen in a hurry.  For good or bad, I found that the control must
> be hosted visually in order to work.

Please explain.  I have long had my head in the sand regarding ActiveX
hoping it was yet another Microsoft technology that would bite the bit bin.
How do I use it and what do you mean about contol hosted visually?


Reply | Threaded
Open this post in threaded view
|

Re: Video Driver Question

Bill Schwab-2
Kirk,

> > For stills, look at TWAIN and EZ-TWAIN.  I'm not at all sure how XP's
> Paint
> > gets video, and I <evilGrin>don't have an XP system for
> > reference</evilGrin
>
> I looked for TWAIN in the D.XP class hierarchy browser but did not find
it.

Look for EZ-TWAIN wrappers.  I think Ian has one on his web site; failing
that, I have one in my image that I could make available.


> I want to bring it in to Dolphin to do more interesting stuff like trying
to
> identify visual objects in real time.
>
> > A limited test with Dolphin's ActiveX hosting had video on
> > the screen in a hurry.  For good or bad, I found that the control must
> > be hosted visually in order to work.
>
> Please explain.  I have long had my head in the sand regarding ActiveX
> hoping it was yet another Microsoft technology that would bite the bit
bin.

Not ActiveX, at least not until Windows itself disappears.  The ActiveX
_name_ is just more MS marketing nonsense, but the technology is COM; kill
COM and you kill Windows as we know it.  Kill Windows?  IMHO, .NET was
created for basically that purpose, with the goal of changing the market to
pay-by-the-clock-cycle, and I doubt it will succeed.

Ok, so what is ActiveX?  Think back to OCX controls, which were originally
known as OLE controls, or was it the other way around :)  Same technology,
different name.  Hype aside, VC++, MFC, and the App and Class Wizards made
these controls fairly easy to build; for C++, it was about as simple as
things were going to get.

OCX controls, were(are) the 32-bit, COM-based relacement for the old 16-bit
VBX controls.  OCX controls were great, but they were big because they did
so many things, including persistence of design-time settings, and
interacting with a visual container.  Every feature was provided by one or
more COM interfaces supported by the control; lots of features meant lots of
interfaces, which meant lots of code, which meant big controls.  As web
sites started making money, the need for a way to quickly download a needed
control to a customer's computer became clear.  Java was pressing too,
because once a customer had the JVM (in theory/threat to MS, I'm *not*
defending Java), small amounts of code could go a long way, and the VM
offered the possibility of limiting what the code could do (aka security).

The MS response was to create something "new" called ActiveX controls.  The
non-hyped version of it is that they simply required fewer COM interfaces to
be present; arguably, it was simply a matter of making containers that were
more tolerant of getting "sorry" as a response to QueryInterface().  This
allowed controls that didn't do much to be smaller, so they'd be quicker to
download.  It's clever, and effective.

What about that JVM and security?  Simple.  ActiveX was native code, so MS
was, well, screwed on this front.  They could have arranged to run the
controls with limited permissions, but that wasn't really an option on 9x,
and it would make riskier but more powerful controls impossible to build
(those Java guys could turn off that sandbox thing and do almost anything,
so MS had to match the capability).  The answer: ask the control whether or
not it can be trusted!!!!!!  Seriously; I wish I were making this up.  One
day, one of my cash cows stopped working (I think it was IE 4 that added
this stuff), and it turned out that the browser was refusing to script the
control.  A few minutes searching turned up C++ source code to have the
control mark itself as safe, and suddenly the browser was willing to load
and script it, otherwise unchanged.  The glossy adds didn't go into that
much detail, they simply talked up "ActiveX Security".  And, of course, Java
lost the lime light on its own merrits (or lack thereof).

In summary, ActiveX==COM, though it's really the latest name given to COM
DLL components that might or might not offer visual interfaces in
cooperation with a container.  To Dolphin, "ActiveX hosting" generally means
using a type library to generate code (seriously slick stuff).  Dolphin can
host both visual and non-visual controls.


> How do I use it and what do you mean about contol hosted visually?

In terms of the above, it means that the control offers lots of interfaces
(which not unique to the Videum controls) to appear inside of a "control
container" such as VB, MS Office apps, IE, Dolphin, etc.  Between the
control site (the container part of the conversation) and the control
itself, there are 20 or so interfaces involved - see Inside OLE for details.
The bottom line is that the Videum controls won't work unless "all" of those
interfaces are exercised.  Since it's a visual control, that's legal.  Some
visual controls can do useful things w/o being hosted visually, the Videum
controls cannot.  Does that help?

Have a good one,

Bill

--
Wilhelm K. Schwab, Ph.D.
[hidden email]