I plan to develop a tool for realtime video manipulation using C++, Qt and OpenGL. Video overlay isn't an option since shaders should be used for frame processing. At the moment I imagine a following sequence of steps:
- Decode video (CPU)
- Preprocess it (optional, CPU)
- Transer it to video memory (GPU using DMA)
- Further process it using vertex and fragment shaders (GPU)
- Render it (GPU)
I'm looking for some general advice explaning what extentions or technics can be used here. Is there a good reason to use Direct3D instead?