Video Overlay Software API
Jonathan R. Haws <Jonathan.Haws <at> sdl.usu.edu> writes:
> I am looking for a software API that I can use to develop a UI that will
> display an analog video stream on the screen with overlaid controls
> (buttons, indicators, etc.).
Maybe these are a good place to look at developing software for gentoo:
> The latency for the video
> display must be less than 1/4 second to meet the design requirements, so
> something that can be programmed in separate threads (a video thread and
> an overlay thread) may be the best option.
You'll need to find or develop a 'low latency' method to collect the video
(frames). I'm not so sure how experienced you are with video, so some of this
advice may not be relevant for you:
1. Look at the existing projects for frame grabbers and the device drivers
for the hardware portion of the related software: bttv/xawtv/camE has been
around for ever and the driver code has been fundamentally changed over time.
Here is a more current listing: 
Looking at some of the oldest driver code will show you have the 'bt848' chips
works. The bt848 chips have been replaced by new chips (878) and others.
Reading the data sheets on the chips will tell you quite a lot about
what is possible (This all assumes you are going to use a 'cots'
video capture hardware system that plugs into the pci slot of a (gentoo)
computer. If you are custom designing hardwareware (fpga, dsp, analog circuits)
then it may not be useful.
2. Find the relevant devise drivers for other chipsets used in video capture,
in the latest linux kernels for good places to look at what has already been
coded. This is a very dynamic area for device drivers (over the last few
years) so the driver code for a given video chipset and easily have changed
of the coarse of that time.
3. Look at ffmpeg and the developers therein, as you might be able to
learn quite a lot from previously (failed) projects and new efforts.
3. Keep you gui tools simple and lightweight. There are many graphical
toolkits you can use to create your graphics (UI). This is a huge,
separate effort. You may decide to use existing code for all of the low
level code and then just spin your own (UI) on top of a striped down
version of ffmpeg. My choice, QT4.
4. Read the sources to a lot of projects and talk to the folks at these
projects, before you start off 'half-baked'.....(caveat emptor)!
On gentoo here is a great place to begin your search:
camstream Ogg OGM matroska
5. If you are looking into low latency video, for machine control
types of projects, then look into some 'image processing' areas
such as robotics for ideas in published 'white paper' and from
the standard journal publications. ACM, IEEE and the various
research area related to (computer) vision.
This is a very active, complex area you have chosen to work in. READ
(research) quite a lot and then narrow your focus on something that is
realistically achievable. Drop me some private email, if you like.
email@example.com mailing list