Advice on video libraries



Hi,

I'm looking for some advice on video libraries. I'm in the process of
writing a Linux library for a colleague of mine. This library is intended
to run specialized cognitive psychology experiments, which involve the
presentation of visual stimuli and the collection of responses via
specialized input hardware. Part of what the library must do is to handle
the video display, and the main requirement on that score is timing
precision. I must be able to prepare a display (which could be
pre-generated and stored as a TIFF or other graphics file) and switch the
video display over to it instantly -- or as near to instantly as the video
hardware allows, meaning switching at the point of the vertical blank in
the video display cycle. I must also know when that vertical blank occurs
so as to be able to start a timer to get precise human reaction time data.
In all of this, the order of precision is on the millisecond level, which
is pretty sloppy by the standards of some sorts of data collection and
industrial tools, but far more precise than I could get with, say, a C++
"cout" or C "printf()".

Anyhow, I'm considering four libraries, at least three of which seem, upon
initial investigation, to support the necessary vertical blank timing
interfaces:

- SVGAlib
- DirectFB
- SDL
- OpenGL

OpenGL is definitely overkill, but I know of at least one other
psychological experiment-running program that uses it, so I'm pretty sure
it's got the features I'd need. The SVGAlib and DirectFB documention both
mention the necessary vertical blank synchronization routines, but I don't
know in practice if they'd work properly for my needs. I've just started
looking at SDL on the advice of a friend of mine, but I don't yet know if
it's even got the necessary vertical blank synchronization.

I don't need anything that's very fancy in terms of, say, 3D graphics or
dynamic displays. Simply presenting a static image is fine. Ideally, I'd
like to be able to support a wide variety of graphics modes and have a
good selection of video cards that are compatible. Simplicity of coding
from C++ is desirable.

So, any suggestions on what might work well for me?

--
Rod Smith, rodsmith@xxxxxxxxxxxxx
http://www.rodsbooks.com
Author of books on Linux, FreeBSD, and networking
.



Relevant Pages

  • Re: Advice on video libraries
    ... I'm looking for some advice on video libraries. ... video display over to it instantly -- or as near to instantly as the video ... In all of this, the order of precision is on the millisecond level, which ...
    (comp.os.linux.development.apps)
  • Re: FAQ Topic - What online resources are available? (2009-01-29)
    ... The Ajax performance video mentions that IE 8 spends more time on layout and rendering. ... If layout and rendering takes a bulk of the time, ... Latency is often used to mean network latency -- how much time it takes for the client to get its first byte of an HTTP response from the server. ... "Make good use of Ajax Libraries" ...
    (comp.lang.javascript)
  • Re: Video/Image Analysis
    ... additional vision-related libraries she has created. ... that are implemented as a standard DirectShow filter, ... If the frame rate is low enough, you could probably do this internally ... inspect the RGB pixels of a video stream. ...
    (comp.robotics.misc)
  • Re: How Libraries have changed. Audi Visual Section
    ... the costs are about the same as borrowing from the ... I can choose any video from a massive selection and keep it for ... libraries can compete with this service. ...
    (uk.local.geordie)
  • Re: The Krooborg bubbles over with turd-blossoms
    ... lasted around 65 minutes and ended when neither Mr. Krueger ... projector in the room prior to the debate, ... there was a video projector in the room. ... a video display would not be a problem and you would ...
    (rec.audio.opinion)