I plan to develop a tool for realtime video manipulation using C ++, QT and OpenGL. Video overlay is not an option because the shader should be used for frame processing. At the moment I imagine the following steps:
- Decode Video (CPU)
- Pre-process it (optional, CPU)
- Transfer it < / Li>
- Reader it (GPU)
I am using Messenger (GPU). I am looking for some general advice which explains how many degrees and technics can be used here. Is there any good reason to use Direct 3D instead? First of all, there is no clear way to use DMA on the PC.
First of all, there is no clear way to use DMA on PC.
In any case, step 3 "Texture data will change on the graphics card". OpenGL has the PBO (pixel buffer object) extension or good old glatexibase * function. In D3D 9 this is a lockout on texture or other methods (such as throwing arrows on scratch texture, then throwing in GPU texture). None of them will potentially use DMA, but you can not be sure.
Then the data is in texture, you can render it on a screen with some shadars (such as YCbCr conversion), or more complex processing effects (like Blur / Glow /...).
Presentation in another texture (renderer) to use Direct 3D is easy in a sense that the "clear way" of doing things is clearly defined in OpenGL for doing so much There are more options, and you Mr. sort should know what is fast (sometimes occur faster path different on different platforms or hardware).
Comments
Post a Comment