Re: Advice on video libraries



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.



.



Relevant Pages

  • 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)
  • 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: 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: example of KIND to replace DOUBLE PRECISION
    ... precision kind parameters defined. ... what do you do when you need to use multiple libraries? ...
    (comp.lang.fortran)