Al,
The proscribed video API for Windows is called
DirectShow. It is a very different beast than Video4Linux. First off, DShow is
based on MS COM technologies, meaning that the interfaces are provided by
dynamically loadable modules referenced by a Globally Unique Identifier. The
DShow API is very complex, as there must be over 30 individual interfaces which
must be learned to get the components working.
DShow is a very interesting technology though. It
allows the programmer to create filter graphs by inserting various components
{tuners, compressors, renderers} into the graph. Each component has pins, either
input or output pins. Those pins can be enumerated on the filter, and then
attached to another filter. Most of the time the pin can render the required
filters downstream.
As I said, there is nothing on Linux which
comes close to the complexity of the DShow API. This doesn't mean I think DShow
is superiour, it is a nice design. I think it is a bit complex for what it
does, but it does make some things easier for the application level
programmer.
I have been working on a COM implementation for
Linux. It is currently still in the design phase, but with about two weeks of
work it will be a full implementation. Once the COM ability is there, writing
components for DShow will not be so difficult. It will require wrapping the
Video4Linux API in the directshow components...
If anyone else is trying to support DirectShow on
Linux, please contact me.. I have some interesting ideas and would like to share
them with others with a similar interest.
Thank you,
Michael Uman
Senior Software Engineer
Softwaremagic.net
|