Re: Advice on video libraries
- From: Jan Panteltje <pNaonStpealmtje@xxxxxxxxx>
- Date: Wed, 22 Mar 2006 12:00:25 GMT
On a sunny day (Wed, 22 Mar 2006 00:54:32 -0000) it happened
rodsmith@xxxxxxxxxxxxxxxxxxxx (Rod Smith) wrote in
<8rj6f3-ll4.ln1@xxxxxxxxxxxxxxxxxxxxx>:
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?
If you can 'pre-process' the whole experiment so it plays as a movie',
then you could use subtitler yuv to make anything fancy by
inserting pictures or text on a frame by frame basis.
http://panteltje.com/panteltje/subtitles/index.html
When played back in real time you have max possible resolution.
subtitler-yuv is no library, it is a video processor, it needs some
mjpegtools yuv format as input, could be black.
If you simply want fast rendering by far the simplest is
TinyPTC/x11 (it is a library), and you will have to write al stuff
yourself that you were talking about.
.
- References:
- Advice on video libraries
- From: Rod Smith
- Advice on video libraries
- Prev by Date: Re: Is stork a troll? (was Re: Trolltech QT license question)
- Next by Date: GNOME: How to display an URL in the default webbrowser.
- Previous by thread: Advice on video libraries
- Next by thread: GNOME: How to display an URL in the default webbrowser.
- Index(es):
Relevant Pages
|