To my knowledge, the quoted text is very simplistic in the the way it views the problem.Which operating systems you want to support ? You can use OpenCV to capture and write frames to file, its cross-platform but AFAIK wont give you full control over camera parameters (like gain, exposure, zoom etc. ). On windows, you can use DirectShow, for linux there is v4l, I dont know about mac.
Definitely you dont have to write separate code for every camera model or write a driver, this would be ridiculous, just use one of mentioned interfaces (DirectShow, OpenCV, v4l).
But to put it in a bit more perspective what you can do, is read about v4l for linux and DirectShow/Media Foundtation for Windows, and see which cameras support both, and to how many cameras this amounts to.
If you feel that the large spectrum of cameras that you intend your software for are supporting these technologies, then you could start with that.
This will mean you will have to implement the windows code once for the windows version, and the v4l code once for linux.
But be aware, that it will always be a very partial list of cameras you support, and better code some checking code, that will let the user know, if his camera is not supported (or that his camera does not support the media access technology you are working with).
Generally, you will have to code support for each media technology you want to support, or, use libs that perhaps do that already, such as OpenCV and others.
These too, support might suport several such technologies, but with various levels of features.
Again, you will need to read the documentation for these libs, and see which one fits best you needs.
There is not yet "one ring to rule them all" in this.





Reply With Quote

Bookmarks