mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-21 07:46:38 +00:00
263255137e
gstgl doesn't undo/overwrite what GL state the examples are changing anymore. As such, the examples need to reset the GL state themselves to be able to play nice with libgstgl |
||
---|---|---|
.. | ||
.gitignore | ||
AsyncQueue.h | ||
cocoa_utils.mm | ||
gstthread.cpp | ||
gstthread.h | ||
main.cpp | ||
pipeline.cpp | ||
pipeline.h | ||
qglrenderer.cpp | ||
qglrenderer.h | ||
qglwtextureshare.pro | ||
README |
Requires: >= Qt 5.1 for the x11extras module (or else you need to get x11extras from gitorious yourself) This example illustrates how to integrate Gstreamer GL plugin with Qt. In particular it uses glupload with fakesink elements to create texture with decoded video frame. This texture is shared with QGLWidget derived class, which paints a cube with video texture on each face. To compile the example, include and library paths might be adjusted in .pro file according to your installation of the gstreamer and corresponding development files. Most probably, the adjustments will be necessary on Windows. To run the example simply start executable file after compilation. If there is no command line arguments provided, then videotestsrc element will be used to generate video. The following pipeline will be created in this case: videotestsrc ! video/x-raw, width=640, height=480, framerate=(fraction)30/1 ! glupload ! fakesink sync=1 It is also possible to provide the video file name as a first command line parameter, i.e. ./qglwtextureshare myvideo.ogv . In this case, the following pipeline will be executed: filesrc location=myvideo.ogv ! decodebin2 ! glupload ! fakesink sync=1 I would appreciate any feedback and improvement suggestions for this example. Have fun :-) Andrey Nechypurenko (andreynech@gmail.com)