My approach is: ...
I can't comment on the technical details, because I am not an OpenGL expert at all. But I'd like to test it when you're finished. There may be a workaround for the glReadPixels slowlyness. I've seen that both mplayer and xine can draw a 2D movie fast onto an OpenGL texture, as long as the player window isn't overlapped too much. At least they pretend to use OpenGL to render the video. Once the window is overlapped, it becomes slow as hell( 1 fps, if not less).
One note though, just one week ago I've had a nVidia 6800 on a 8x AGP bus. And I still could get ~500MB/s readback using glReadPixels(), that makes ~100 fps. This 1fps glReadPixels() is clearly an ATI issue. That's also why I would never buy an ATI card, because, honestly, they suck (I've had one, and it sucked badly, their drivers crashed the whole computer hardly when I've tried to play World of Warcraft).
Sure it's an ATI driver bug. But I can't change my notebooks graphics chip ;) To be fair: The ATI driver is constantly improving, and it's really useable now. The only thing that bothers me right now, is the recent regression on old cards introduced with fglrx 8.19.10. I really hope they fix it.
How is the nvidia driver doing recently? Does it have acpi suspend support? How is the speed compared to the Windows drivers?
Stefan