[239/906] start to write the gtk doc

This commit is contained in:
Julien Isorce 2008-09-29 23:45:10 +02:00 committed by Matthew Waters
parent 49455136b7
commit 1a7d45a789
11 changed files with 261 additions and 8 deletions

View file

@ -96,9 +96,6 @@ gst_gl_test_src_smpte (GstGLTestSrc * v, GstGLBuffer * buffer, int w, int h)
glMatrixMode (GL_PROJECTION); glMatrixMode (GL_PROJECTION);
glLoadIdentity (); glLoadIdentity ();
glMatrixMode (GL_MODELVIEW);
glLoadIdentity ();
for (i = 0; i < 7; i++) { for (i = 0; i < 7; i++) {
glColor4f (vts_colors[i].R * (1 / 255.0f), vts_colors[i].G * (1 / 255.0f), glColor4f (vts_colors[i].R * (1 / 255.0f), vts_colors[i].G * (1 / 255.0f),
vts_colors[i].B * (1 / 255.0f), 1.0f); vts_colors[i].B * (1 / 255.0f), 1.0f);
@ -173,7 +170,7 @@ gst_gl_test_src_smpte (GstGLTestSrc * v, GstGLBuffer * buffer, int w, int h)
glEnd (); glEnd ();
} }
glColor4f (0.5, 0.5, 0.5, 1.0); glColor4f (1.0, 1.0, 1.0, 1.0);
glBegin (GL_QUADS); glBegin (GL_QUADS);
glVertex3f (-1.0 + 2.0 * (0.75), -1.0 + 2.0 * 1, 0); glVertex3f (-1.0 + 2.0 * (0.75), -1.0 + 2.0 * 1, 0);
glVertex3f (-1.0 + 2.0 * (1.0), -1.0 + 2.0 * 1, 0); glVertex3f (-1.0 + 2.0 * (1.0), -1.0 + 2.0 * 1, 0);

View file

@ -19,6 +19,20 @@
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
/**
* SECTION:element-glbumper
*
* Bump mapping using the normal method.
*
* <refsect2>
* <title>Examples</title>
* |[
* gst-launch -v videotestsrc ! glupload ! glbumper location=normalmap.bmp ! glimagesink
* ]| A pipeline to test normal mapping.
* FBO and GLSL are required.
* </refsect2>
*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif

View file

@ -18,6 +18,30 @@
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
/**
* SECTION:element-glcolorscale
*
* video frame scaling and colorspace conversion.
*
* <refsect2>
* <title>Scaling and Color space conversion</title>
* <para>
* Equivalent to glupload ! gldownload.
* </para>
* <refsect2>
* <title>Examples</title>
* |[
* gst-launch -v videotestsrc ! "video/x-raw-yuv" ! glcolorscale ! ximagesink
* ]| A pipeline to test colorspace conversion.
* FBO is required.
|[
* gst-launch -v videotestsrc ! "video/x-raw-yuv, width=640, height=480, format=(fourcc)AYUV" ! glcolorscale ! \
* "video/x-raw-yuv, width=320, height=240, format=(fourcc)YV12" ! autovideosink
* ]| A pipeline to test hardware scaling and colorspace conversion.
* FBO and GLSL are required.
* </refsect2>
*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif

View file

@ -19,6 +19,45 @@
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
/**
* SECTION:element-gldownload
*
* download opengl textures into video frames.
*
* <refsect2>
* <title>Color space conversion</title>
* <para>
* When needed, the color space conversion is made in a fragment shader using
* one frame buffer object instance.
* </para>
* <refsect2>
* <title>Examples</title>
* |[
* 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 RGB32T 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.
* </refsect2>
*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif

View file

@ -18,6 +18,24 @@
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
/**
* SECTION:element-glfilterapp
*
* The resize and redraw callbacks can be set from a client code.
*
* <refsect2>
* <title>CLient callbacks</title>
* <para>
* The graphic scene can be written from a client code through the
* two glfilterapp properties.
* </para>
* </refsect2>
* <refsect2>
* <title>Examples</title>
* see gst-plugins-gl/tests/examples/generic/recordgraphic
* </refsect2>
*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif

View file

@ -18,6 +18,28 @@
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
/**
* SECTION:element-glfiltercube
*
* The resize and redraw callbacks can be set from a client code.
*
* <refsect2>
* <title>Examples</title>
* |[
* gst-launch -v videotestsrc ! glupload ! glfiltercube ! glimagesink
* ]| A pipeline to mpa textures on the 6 cube faces..
* FBO is required.
* |[
* gst-launch -v videotestsrc ! glupload ! glfiltercube ! video/x-raw-gl, width=640, height=480 ! glimagesink
* ]| Resize scene after drawing the cube.
* The scene size is greater than the input video size.
|[
* gst-launch -v videotestsrc ! glupload ! video/x-raw-gl, width=640, height=480 ! glfiltercube ! glimagesink
* ]| Resize scene before drawing the cube.
* The scene size is greater than the input video size.
* </refsect2>
*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif

View file

@ -19,6 +19,23 @@
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
/**
* SECTION:element-glfilterglass
*
* Map textures on moving glass.
*
* <refsect2>
* <title>Examples</title>
* |[
* gst-launch -v videotestsrc ! glupload ! glfilterglass ! glimagesink
* ]| A pipeline inspired from http://www.mdk.org.pl/2007/11/17/gl-colorspace-conversions
* FBO is required.
* |[
* gst-launch -v videotestsrc ! glupload ! glfilterglass ! "video/x-raw-gl, width=640, height=480" ! glimagesink
* ]| The scene is greater than the input size.
* </refsect2>
*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif

View file

@ -20,6 +20,65 @@
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
/**
* SECTION:element-glimagesink
*
* glimagesink renders video frames to a drawable on a local or remote
* display using OpenGL. This element can receive a Window ID from the
* application through the XOverlay interface and will then render video
* frames in this drawable.
* If no Window ID was provided by the application, the element will
* create its own internal window and render into it.
*
* <refsect2>
* <title>Scaling</title>
* <para>
* Depends on the driver, OpenGL handles hardware accelerated
* scaling of video frames. This means that the element will just accept
* incoming video frames no matter their geometry and will then put them to the
* drawable scaling them on the fly. Using the #GstXvImageSink:force-aspect-ratio
* property it is possible to enforce scaling with a constant aspect ratio,
* which means drawing black borders around the video frame.
* </para>
* </refsect2>
* <refsect2>
* <title>Events</title>
* <para>
* Through the gl thread, glimagesink handle some events coming from the drawable
* to manage its appearance even when the data is not flowing (GST_STATE_PAUSED).
* That means that even when the element is paused, it will receive expose events
* from the drawable and draw the latest frame with correct borders/aspect-ratio.
* </para>
* </refsect2>
* <refsect2>
* <title>Examples</title>
* |[
* gst-launch -v videotestsrc ! "video/x-raw-rgb" ! glimagesink
* ]| A pipeline to test hardware scaling.
* 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-yuv, format=(fourcc)I420" ! glimagesink
* ]| A pipeline to test hardware scaling and hardware colorspace conversion.
* When your driver supports GLSL (OpenGL Shading Language needs OpenGL >= 2.1),
* the 4 following format YUY2, UYVY, I420, YV12 and AYUV are converted to RGB32
* through some fragment shaders and using one framebuffer (FBO extension OpenGL >= 1.4).
* If your driver does not support GLSL but supports MESA_YCbCr extension then
* the you can use YUY2 and UYVY. In this case the colorspace conversion is automatically
* made when loading the texture and therefore no framebuffer is used.
* |[
* gst-launch -v gltestsrc ! glimagesink
* ]| A pipeline 100% OpenGL.
* 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-plugins-gl/tests/examples/generic/cube
* ]| The graphic FPS scene can be greater than the input video FPS.
* The graphic scene can be written from a client code through the
* two glfilterapp properties.
* </refsect2>
*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif

View file

@ -25,16 +25,16 @@
* *
* <refsect2> * <refsect2>
* <para> * <para>
* The gltestsrc element is used to produce test video data in a wide variaty * The gltestsrc element is used to produce test video texture.
* of formats. The video test data produced can be controlled with the "pattern" * The video test produced can be controlled with the "pattern"
* property. * property.
* </para> * </para>
* <title>Example launch line</title> * <title>Example launch line</title>
* <para> * <para>
* <programlisting> * <programlisting>
* gst-launch -v gltestsrc pattern=snow ! ximagesink * gst-launch -v gltestsrc pattern=smpte ! glimagesink
* </programlisting> * </programlisting>
* Shows random noise in an X window. * Shows original SMPTE color bars in a window.
* </para> * </para>
* </refsect2> * </refsect2>
*/ */

View file

@ -19,6 +19,51 @@
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
/**
* SECTION:element-glupload
*
* upload video frames video frames into opengl textures.
*
* <refsect2>
* <title>Color space conversion</title>
* <para>
* Depends on the driver and when needed, the color space conversion is made
* in a fragment shader using one frame buffer object instance, or using
* mesa ycbcr .
* </para>
* </refsect2>
* <refsect2>
* <title>Examples</title>
* |[
* gst-launch -v videotestsrc ! "video/x-raw-rgb" ! glupload ! glimagesink
* ]| A pipeline to test hardware scaling.
* 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-yuv, format=(fourcc)I420" ! glupload ! glimagesink
* ]| A pipeline to test hardware scaling and hardware colorspace conversion.
* When your driver supports GLSL (OpenGL Shading Language needs OpenGL >= 2.1),
* the 4 following format YUY2, UYVY, I420, YV12 and AYUV are converted to RGB32
* through some fragment shaders and using one framebuffer (FBO extension OpenGL >= 1.4).
* If your driver does not support GLSL but supports MESA_YCbCr extension then
* the you can use YUY2 and UYVY. In this case the colorspace conversion is automatically
* made when loading the texture and therefore no framebuffer is used.
* |[
* gst-launch -v videotestsrc ! "video/x-raw-rgb, width=320, height=240" ! glupload ! \
* "video/x-raw-gl, width=640, height=480" ! glimagesink
* ]| A pipeline to test hardware scaling.
* Frame buffer extension is required. Inded one FBO is used bettween glupload and glimagesink,
* because the texture needs to be resized.
* |[
* gst-launch -v videotestsrc ! "video/x-raw-yuv, width=320, height=240" ! glupload ! \
* "video/x-raw-gl, width=640, height=480" ! glimagesink
* ]| A pipeline to test hardware scaling.
* Frame buffer extension is required. Inded one FBO is used bettween glupload and glimagesink,
* because the texture needs to be resized. Depends on your driver the color space conversion
* is made in a fragment shader using one frame buffer object instance, or using mesa ycbcr .
* </refsect2>
*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif

View file

@ -21,6 +21,24 @@
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
/**
* SECTION:plugin-opengl
*
* Cross-platform OpenGL plugin.
* <refsect2>
* <title>Debugging</title>
* </refsect2>
* <refsect2>
* <title>Examples</title>
* |[
* gst-launch-0.10 --gst-debug=gldisplay:3 videotestsrc ! glimagesink
* ]| A debugging pipeline.
|[
* GST_GL_SHADER_DEBUG=1 gst-launch-0.10 videotestsrc ! glimagesink
* ]| A debugging pipelines related to shaders.
* </refsect2>
*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif