From: Marc Price (marcp++at++rd.bbc.co.uk)
Date: 06/21/2000 07:25:56
After searching the archives of this mailing list, I have
found that people have experienced similar problems to
myself, with various SGI machines. However, I have not seen any
threads from ppl trying to do this with an Octane.
So, I am trying to texture map live video onto a simple
plane in a scene-graph using Performer on an Octane workstation,
with Octane graphics (+ extra texture memory option) and 601 serial
digital video (625 line / 50 fields per second).
I have based my code on the movietex.c example (although, I'm using
the C++ API). I'm experiencing a few problems:
1) Octane is unable to achieve full frame rate - even with an
otherwise empty scenegraph. (The OpenGL `vidtotex.c' program
achieves full, genlocked frame rate without any problem).
I am aware that in order for the hardware to achieve full rate
video textures, the odd and even video fields must be loaded into
separate areas of texture memory, so that one field can be loaded
while the previous field is displayed (double-buffering).
Under OpenGL, this is enabled with the glHint() call, thus:
glHint(GL_TEXTURE_MULTI_BUFFER_HINT_SGIX, GL_FASTEST);
I suspect that Performer is not enabling this double-buffering
hardware mode, thus yielding a subsequent impact on overall
performance. I tried issuing the glHint() command to see if
this fixed the problem, but this caused the X server to crash
as soon as the call was made! So, I'm either barking up the
wrong tree, or I'm missing some detail here.
Any advice on this would be gratefully received.
2) Just to add extra complication to the problem, I am also
feeding a key signal to the second channel, which I would like
to use, via the blender, to make the background region of the
video transparent. This actually works reasonably well (albeit
with the above performance problems), except for one minor
detail.
The key signal is a CCIR video signal, with a signal range
of 16 - 235. However, the blender expects the alpha signal to
have a full 0 - 255 range. This results in foreground video
being partially transparent, and background video being
partially visible. I tried to place the colour-space converter
into the video path, in an attempt to convert from CCIR to YUV,
but this caused extra problems, and didn't fix the original
one.
Does anyone know of another work-around to fix this?
Many thanx in advance for any comments and advice.....
Marc
Dr Marc Price
------------------------------------------------------------------------
BBC R&D Dept., Tel: +44 (0)1737 839789
Kingswood Warren, email: Marc.Price++at++rd.bbc.co.uk
Tadworth, Fax: +44 (0)1737 839665
Surrey KT20 6NP
This archive was generated by hypermail 2b29 : Wed Jun 21 2000 - 07:28:14 PDT