coming from Windows (MSVC++ 2005): What SDK or alike do you recommend to port an C++ application (DirectShow+Direct3D) to Linux playing video file + using fragment shaders?
Tom
coming from Windows (MSVC++ 2005): What SDK or alike do you recommend to port an C++ application (DirectShow+Direct3D) to Linux playing video file + using fragment shaders?
Tom
is there any reason you need a fragment shader at all? (are you doing post processing on the video images?). You don't need to do any shader coding to get a video playing with OpenGL.
I would use ffmpeg (libavcodec actually) to do the video decoding. Displaying a frame just requires an OpenGL texture and a call to glTexSubImage2D each frame to do the update.
You need to use OpenGL instead.
Some tip for the implementation:
- To achieve a good performance you
need to make sure a good video card
driver is installed.
- If you are not familiar with OpenGL
start it with the 'Red book' - OpenGL
Programming Guide
- You may need to download the latest extension header from here
http://www.opengl.org/registry/
- The library GLEW may help you in
identifying the available
extension.
- Include the GL/gl.h and the glext.h file in your project
- Link to the driver's opengl dynamic library: /usr/lib64/libGL.so or simmilar
Fragment shader needed: yes for some post processsing I guess there are solutions to supports H.264 with FFMPEG too, so I'll check that thx!
i would also check the gstreamer framework on linux if you need to port a more complicated directshow application. it also has some sort of graph for media playback to build. it is totally different, but if you have experience and the need for complicated directshow, then you will see some analogy.
and gstreamer also has an opengl plugin for image effects and shaders, ....
http://www.gstreamer.net/ http://www.gstreamer.net/releases/gst-plugins-gl/0.10.1.html