gldownload

gldownload — A from GL to video flow filter

Synopsis

                    GstGLDownload;

Object Hierarchy

  GObject
   +----GstObject
         +----GstElement
               +----GstBaseTransform
                     +----GstGLDownload

Description

download opengl textures into video frames.

Color space conversion

When needed, the color space conversion is made in a fragment shader using one frame buffer object instance.


Examples

gst-launch -v videotestsrc ! "video/x-raw-rgb" ! glupload ! gldownload ! \
  "video/x-raw-rgb" ! ximagesink
A pipeline to test downloading. No special opengl extension is used in this pipeline, that's why it should work with OpenGL >= 1.1. That's the case if you are using the MESA3D driver v1.3.
gst-launch -v videotestsrc ! "video/x-raw-rgb, width=640, height=480" ! glupload ! gldownload ! \
  "video/x-raw-rgb, width=320, height=240" ! ximagesink
A pipeline to test hardware scaling. Frame buffer extension is required. Inded one FBO is used bettween glupload and gldownload, because the texture needs to be resized.
gst-launch -v gltestsrc ! gldownload ! xvimagesink
A pipeline to test hardware colorspace conversion. Your driver must support GLSL (OpenGL Shading Language needs OpenGL >= 2.1). Texture RGB32 is converted to one of the 4 following format YUY2, UYVY, I420, YV12 and AYUV, through some fragment shaders and using one framebuffer (FBO extension OpenGL >= 1.4). MESA >= 7.1 supports GLSL but it's made in software.
gst-launch -v videotestsrc ! glupload ! gldownload ! "video/x-raw-yuv, format=(fourcc)YUY2" ! glimagesink
A pipeline to test hardware colorspace conversion FBO and GLSL are required.

Details

GstGLDownload

typedef struct _GstGLDownload GstGLDownload;