Hi All In our application we have added the option of capturing video from our playback stream. It works fine but performance is problematic. We are currently using a simple glReadPixels call to get the immage from the videocard, this takes around 5-6 ms in addition we append the immage to an AVI video stream this takes another 12 ms. It should be possible to put the 12 in another thread, but I was vondering if it would be possible to do the same with part of the glReadPixels call using PBO's.
This is what I have in mind: >From the Draw thread on initialrendercallback I would: glBindBuffer(GL_PIXEL_PACK_BUFFER_ARB, read_pbo) glReadPixels() //ASYNC SignalVideoThread() //Async and the in the video recorder thread when signaled glBindBuffer(GL_PIXEL_PACK_BUFFER_ARB, copy_pbo); GLubyte* src = (GLubyte*)ext->glMapBuffer(GL_PIXEL_PACK_BUFFER_ARB, GL_READ_ONLY_ARB); AVIStream.addframe(src) glUnmapBuffer(GL_PIXEL_PACK_BUFFER_ARB); glBindBuffer(GL_PIXEL_PACK_BUFFER_ARB, 0); Can someone tell me if this is feasable?, I was thinking that it would be problematic to do the gl calls from another thread? or should I use a compleately different approach? This is run on windowsXP, Core2 quad, Nvidia GX280 Brgs. Ralf Stokholm Arenalogic www.arenalogic.com
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

