diff options
author | Julien Isorce <julien.isorce@collabora.co.uk> | 2013-07-22 19:04:07 +0100 |
---|---|---|
committer | Julien Isorce <julien.isorce@collabora.co.uk> | 2013-07-22 19:04:07 +0100 |
commit | e0c85e17a56a64a2396e6e12ee2505ccc96bcabe (patch) | |
tree | 535875493c9065e95a1cbd4c4f1620e399aa4389 | |
parent | 6c21e5df46e3241d354ffde46ccceed5334b4238 (diff) |
tests/examples: fix 'doublecube' and 'pipelines'. Port 'recordgraphic'.
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | tests/examples/generic/Makefile.am | 2 | ||||
-rw-r--r-- | tests/examples/generic/doublecube/main.cpp | 58 | ||||
-rw-r--r-- | tests/examples/generic/recordgraphic/Makefile | 44 | ||||
-rw-r--r-- | tests/examples/generic/recordgraphic/Makefile.am | 8 | ||||
-rw-r--r-- | tests/examples/generic/recordgraphic/main.cpp | 42 | ||||
-rwxr-xr-x[-rw-r--r--] | tests/pipelines | 83 |
7 files changed, 107 insertions, 131 deletions
diff --git a/configure.ac b/configure.ac index 0f08087..b87a069 100644 --- a/configure.ac +++ b/configure.ac @@ -1048,6 +1048,7 @@ tests/examples/generic/Makefile tests/examples/generic/cube/Makefile tests/examples/generic/cubeyuv/Makefile tests/examples/generic/doublecube/Makefile +tests/examples/generic/recordgraphic/Makefile tests/examples/clutter/Makefile tests/examples/gtk/Makefile tests/examples/gtk/gtkvideooverlay/Makefile diff --git a/tests/examples/generic/Makefile.am b/tests/examples/generic/Makefile.am index dabd563..a334e12 100644 --- a/tests/examples/generic/Makefile.am +++ b/tests/examples/generic/Makefile.am @@ -1,2 +1,2 @@ -SUBDIRS = cube cubeyuv doublecube #recordgraphic +SUBDIRS = cube cubeyuv doublecube recordgraphic diff --git a/tests/examples/generic/doublecube/main.cpp b/tests/examples/generic/doublecube/main.cpp index 4725b04..9388133 100644 --- a/tests/examples/generic/doublecube/main.cpp +++ b/tests/examples/generic/doublecube/main.cpp @@ -51,7 +51,7 @@ static gboolean bus_call (GstBus *bus, GstMessage *msg, gpointer data) if (debug) { - g_print ("Debug deails: %s\n", debug); + g_print ("Debug details: %s\n", debug); g_free (debug); } @@ -67,22 +67,24 @@ static gboolean bus_call (GstBus *bus, GstMessage *msg, gpointer data) //display video framerate -static void identityCallback (GstElement *src, GstBuffer *buffer, GstElement* textoverlay) +static GstPadProbeReturn textoverlay_sink_pad_probe_cb (GstPad *pad, GstPadProbeInfo *info, GstElement* textoverlay) { static GstClockTime last_timestamp = 0; static gint nbFrames = 0 ; //display estimated video FPS nbFrames++ ; - if (GST_BUFFER_TIMESTAMP(buffer) - last_timestamp >= 1000000000) + if (GST_BUFFER_TIMESTAMP(info->data) - last_timestamp >= 1000000000) { std::ostringstream oss ; oss << "video framerate = " << nbFrames ; std::string s(oss.str()) ; g_object_set(G_OBJECT(textoverlay), "text", s.c_str(), NULL); - last_timestamp = GST_BUFFER_TIMESTAMP(buffer) ; + last_timestamp = GST_BUFFER_TIMESTAMP(info->data) ; nbFrames = 0 ; } + + return GST_PAD_PROBE_OK; } @@ -188,30 +190,35 @@ gboolean drawCallback (GLuint texture, GLuint width, GLuint height) } -static void cb_new_pad (GstElement* decodebin, GstPad* pad, GstElement* identity) +static void cb_new_pad (GstElement* decodebin, GstPad* pad, GstElement* element) { - GstPad* identity_pad = gst_element_get_static_pad (identity, "sink"); + GstPad* element_pad = gst_element_get_static_pad (element, "sink"); //only link once - if (GST_PAD_IS_LINKED (identity_pad)) + if (!element_pad || GST_PAD_IS_LINKED (element_pad)) { - gst_object_unref (identity_pad); + gst_object_unref (element_pad); return; } GstCaps* caps = gst_pad_get_current_caps (pad); GstStructure* str = gst_caps_get_structure (caps, 0); + + GstCaps* caps2 = gst_pad_query_caps (element_pad, NULL); + gst_caps_unref (caps2); + if (!g_strrstr (gst_structure_get_name (str), "video")) { gst_caps_unref (caps); - gst_object_unref (identity_pad); + gst_object_unref (element_pad); return; } gst_caps_unref (caps); - GstPadLinkReturn ret = gst_pad_link (pad, identity_pad); + GstPadLinkReturn ret = gst_pad_link (pad, element_pad); if (ret != GST_PAD_LINK_OK) - g_warning ("Failed to link with decodebin!\n"); + g_warning ("Failed to link with decodebin %d!\n", ret); + gst_object_unref (element_pad); } @@ -242,7 +249,7 @@ gint main (gint argc, gchar *argv[]) /* create elements */ GstElement* videosrc = gst_element_factory_make ("filesrc", "filesrc0"); GstElement* decodebin = gst_element_factory_make ("decodebin", "decodebin0"); - GstElement* identity = gst_element_factory_make ("identity", "identity0"); + GstElement* videoconvert = gst_element_factory_make ("videoscale", "videoconvert0"); GstElement* textoverlay = gst_element_factory_make ("textoverlay", "textoverlay0"); //textoverlay required I420 GstElement* tee = gst_element_factory_make ("tee", "tee0"); @@ -257,7 +264,7 @@ gint main (gint argc, gchar *argv[]) GstElement* glimagesink2 = gst_element_factory_make ("glimagesink", "glimagesink2"); - if (!videosrc || !decodebin || !identity || !textoverlay || !tee || + if (!videosrc || !decodebin || !videoconvert || !textoverlay || !tee || !queue0 || !glimagesink0 || !queue1 || !glfiltercube || !glimagesink1 || !queue2 || !glimagesink2) @@ -274,31 +281,38 @@ gint main (gint argc, gchar *argv[]) /* configure elements */ g_object_set(G_OBJECT(videosrc), "num-buffers", 1000, NULL); g_object_set(G_OBJECT(videosrc), "location", video_location.c_str(), NULL); - g_signal_connect(identity, "handoff", G_CALLBACK(identityCallback), textoverlay) ; g_object_set(G_OBJECT(textoverlay), "font_desc", "Ahafoni CLM Bold 30", NULL); g_object_set(G_OBJECT(glimagesink0), "client-reshape-callback", reshapeCallback, NULL); g_object_set(G_OBJECT(glimagesink0), "client-draw-callback", drawCallback, NULL); /* add elements */ - gst_bin_add_many (GST_BIN (pipeline), videosrc, decodebin, identity, textoverlay, tee, + gst_bin_add_many (GST_BIN (pipeline), videosrc, decodebin, videoconvert, textoverlay, tee, queue0, glimagesink0, queue1, glfiltercube, glimagesink1, queue2, glimagesink2, NULL); + GstPad* textoverlay_sink_pad = gst_element_get_static_pad (textoverlay, "video_sink"); + gst_pad_add_probe (textoverlay_sink_pad, GST_PAD_PROBE_TYPE_BUFFER, + (GstPadProbeCallback) textoverlay_sink_pad_probe_cb, (gpointer)textoverlay, NULL); + gst_object_unref (textoverlay_sink_pad); - gst_element_link_pads (videosrc, "src", decodebin, "sink"); - - g_signal_connect (decodebin, "pad-added", G_CALLBACK (cb_new_pad), identity); + if (!gst_element_link_many(videoconvert, textoverlay, tee, NULL)) + { + g_print ("Failed to link videoconvert to tee!\n"); + return -1; + } - if (!gst_element_link_pads(identity, "src", textoverlay, "video_sink")) + if (!gst_element_link(videosrc, decodebin)) { - g_print ("Failed to link identity to textoverlay!\n"); + g_print ("Failed to link videosrc to decodebin!\n"); return -1; } + + g_signal_connect (decodebin, "pad-added", G_CALLBACK (cb_new_pad), videoconvert); - if (!gst_element_link_many(textoverlay, tee, queue0, NULL)) + if (!gst_element_link_many(tee, queue0, NULL)) { - g_warning ("Failed to link one or more elements bettween textoverlay and queue0!\n"); + g_warning ("Failed to link one or more elements bettween tee and queue0!\n"); return -1; } diff --git a/tests/examples/generic/recordgraphic/Makefile b/tests/examples/generic/recordgraphic/Makefile deleted file mode 100644 index b7a4359..0000000 --- a/tests/examples/generic/recordgraphic/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -SRC=main.cpp -OBJ=$(SRC:.cpp=.o) -EXE=recordgraphic - -CPP=g++ -CPPFLAGS=-Wall -Werror -O3 -march=i686 -msse2 -mfpmath=sse -LDFLAGS= -LIBS=-lgstreamer-1.0 -RM=rm - -ifeq ($(OS),Windows_NT) -# Put Windows-specific stuff here (usefull for mingw32) -REXE=$(EXE).exe -CPPFLAGS=-I../../../../libxml2-2.6.30+.win32/include \ - -I../../../../libiconv/include \ - -I../../../../glib/include \ - -I../../../../gstreamer/include -#ld tool from mingw needs dll too -LDFLAGS+=-L../../../../glib/lib \ - -L../../../../gstreamer/lib \ - -L../../../../glib/bin \ - -L../../../../gstreamer/bin/bin -LIBS+=-lglib-2.0 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 \ - -lopengl32 -lglu32 -else -# Put Linux-specific stuff here -REXE=$(EXE) -CPPFLAGS+=-I/usr/include/gstreamer-1.0 \ - -I/usr/include/glib-2.0 \ - -I/usr/lib/glib-2.0/include \ - -I/usr/include/libxml2 -LIBS+=-lgstreamer-1.0 -lglib-2.0 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lGLU -lGL -endif - - -.PHONY : all -all: $(REXE) - -$(REXE): $(OBJ) - $(CPP) $(OBJ) $(LDFLAGS) $(LIBS) -o $@ - -.PHONY : clean -clean: - -$(RM) $(OBJ) core diff --git a/tests/examples/generic/recordgraphic/Makefile.am b/tests/examples/generic/recordgraphic/Makefile.am new file mode 100644 index 0000000..964176b --- /dev/null +++ b/tests/examples/generic/recordgraphic/Makefile.am @@ -0,0 +1,8 @@ + +noinst_PROGRAMS = recordgraphic + +recordgraphic_SOURCES = main.cpp + +recordgraphic_CXXFLAGS=$(GST_PLUGINS_GL_CFLAGS) $(GST_CXXFLAGS) $(GL_CFLAGS) +recordgraphic_LDADD=$(GST_PLUGINS_GL_LIBS) $(GST_LIBS) $(GL_LIBS) + diff --git a/tests/examples/generic/recordgraphic/main.cpp b/tests/examples/generic/recordgraphic/main.cpp index 6bc1947..c242df9 100644 --- a/tests/examples/generic/recordgraphic/main.cpp +++ b/tests/examples/generic/recordgraphic/main.cpp @@ -19,6 +19,10 @@ */ #include <GL/gl.h> +#include <GL/glu.h> +#if __WIN32__ || _WIN32 +# include <GL/glext.h> +#endif #include <gst/gst.h> #include <gst/video/video.h> @@ -47,7 +51,7 @@ static gboolean bus_call (GstBus *bus, GstMessage *msg, gpointer data) if (debug) { - g_print ("Debug deails: %s\n", debug); + g_print ("Debug details: %s\n", debug); g_free (debug); } @@ -156,15 +160,15 @@ gboolean drawCallback (GLuint width, GLuint height, GLuint texture, gpointer dat //equivalent command line: -//gst-launch-1.0 videotestsrc num_buffers=400 ! glupload ! gldownload ! -//ffenc_mpeg4 ! avimux ! filesink location="record.avi" +//gst-launch-1.0 videotestsrc num_buffers=400 ! gleffects effect=0 ! +//avenc_mpeg4 ! avimux ! filesink location="record.avi" // or -//gst-launch-1.0 videotestsrc num_buffers=400 ! glupload ! "video/x-raw, width=320, height=240" ! glfiltercube ! "video/x-raw, width=720, height=576" ! -//gldownload ! ffenc_mpeg4 ! avimux ! filesink location="record.avi" +//gst-launch-1.0 videotestsrc num_buffers=400 ! gleffects effect=0 ! "video/x-raw, width=320, height=240" ! glfiltercube ! "video/x-raw, width=720, height=576" ! +//avenc_mpeg4 ! avimux ! filesink location="record.avi" gint main (gint argc, gchar *argv[]) { GstStateChangeReturn ret; - GstElement *pipeline, *videosrc, *glupload, *glfilterapp, *gldownload, *ffenc_mpeg4, *avimux, *filesink; + GstElement *pipeline, *videosrc, *glfilterapp, *avenc_mpeg4, *avimux, *filesink; GMainLoop *loop; GstBus *bus; @@ -183,15 +187,13 @@ gint main (gint argc, gchar *argv[]) /* create elements */ videosrc = gst_element_factory_make ("videotestsrc", "videotestsrc0"); - glupload = gst_element_factory_make ("glupload", "glupload0"); glfilterapp = gst_element_factory_make ("glfilterapp", "glfilterapp0"); - gldownload = gst_element_factory_make ("gldownload", "gldownload0"); - ffenc_mpeg4 = gst_element_factory_make ("ffenc_mpeg4", "ffenc_mpeg40"); + avenc_mpeg4 = gst_element_factory_make ("avenc_mpeg4", "avenc_mpeg40"); avimux = gst_element_factory_make ("avimux", "avimux0"); filesink = gst_element_factory_make ("filesink", "filesink0"); - if (!videosrc || !glupload || !glfilterapp || !gldownload || !ffenc_mpeg4 || !avimux || !filesink) + if (!videosrc || !glfilterapp || !avenc_mpeg4 || !avimux || !filesink) { g_print ("one element could not be found \n"); return -1; @@ -219,30 +221,26 @@ gint main (gint argc, gchar *argv[]) g_object_set(G_OBJECT(filesink), "location", "record.avi", NULL); /* add elements */ - gst_bin_add_many (GST_BIN (pipeline), videosrc, glupload, glfilterapp, gldownload, - ffenc_mpeg4, avimux, filesink, NULL); + gst_bin_add_many (GST_BIN (pipeline), videosrc, glfilterapp, + avenc_mpeg4, avimux, filesink, NULL); /* link elements */ - gboolean link_ok = gst_element_link_filtered(videosrc, glupload, caps) ; + gboolean link_ok = gst_element_link_filtered(videosrc, glfilterapp, caps) ; gst_caps_unref(caps) ; if(!link_ok) { - g_warning("Failed to link videosrc to glupload!\n") ; + g_warning("Failed to link videosrc to glfilterapp!\n") ; return -1 ; } - if (!gst_element_link_many(glupload, glfilterapp, gldownload, NULL)) - { - g_print ("Failed to link one or more elements!\n"); - return -1; - } - link_ok = gst_element_link_filtered(gldownload, ffenc_mpeg4, outcaps) ; + + link_ok = gst_element_link_filtered(glfilterapp, avenc_mpeg4, outcaps) ; gst_caps_unref(outcaps) ; if(!link_ok) { - g_warning("Failed to link glvideomaker to ffenc_mpeg4!\n") ; + g_warning("Failed to link glfilterapp to avenc_mpeg4!\n") ; return -1 ; } - if (!gst_element_link_many(ffenc_mpeg4, avimux, filesink, NULL)) + if (!gst_element_link_many(avenc_mpeg4, avimux, filesink, NULL)) { g_print ("Failed to link one or more elements!\n"); return -1; diff --git a/tests/pipelines b/tests/pipelines index d4b8e02..4fafcc8 100644..100755 --- a/tests/pipelines +++ b/tests/pipelines @@ -1,5 +1,5 @@ -//list of pipelines that show the gst-plugins-gl capabilities -//(can use gst-launch-1.0 --gst-debug=gldisplay:3 pipeline) +#list of pipelines that show the gst-plugins-gl capabilities +#(can use gst-launch-1.0 --gst-debug=gldisplay:3 pipeline) gst-launch-1.0 videotestsrc ! glimagesink gst-launch-1.0 videotestsrc num_buffers = 200 ! glimagesink @@ -10,70 +10,69 @@ gst-launch-1.0 videotestsrc ! "video/x-raw, format=(string)YV12" ! glimagesink gst-launch-1.0 gltestsrc ! glimagesink gst-launch-1.0 gltestsrc ! "video/x-raw, width=720, height=576" ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! "video/x-raw, width=720, height=576" ! glimagesink -gst-launch-1.0 videotestsrc ! "video/x-raw, format=(string)AYUV, width=380, height=288" ! glupload ! "video/x-raw, width=720, height=576" ! glimagesink -gst-launch-1.0 videotestsrc ! "video/x-raw, format=(string)I420, width=720,height=576" ! glupload ! "video/x-raw, width=240, height=320" ! glimagesink - -gst-launch-1.0 videotestsrc ! glupload ! glfiltercube ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! glfiltercube ! glfiltercube ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! glfiltercube ! glimagesink force-aspect-ratio=1 -gst-launch-1.0 videotestsrc ! glupload ! glfiltercube red=1.0 green=0.5 blue=0.1 ! glfiltercube red=0.6 green=0.9 blue=1.0 ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! glfiltercube red=0.6 green=0.2 blue=1.0 ! glfiltercube fovy=50.0 znear=0.2 zfar=1000.0 ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! "video/x-raw, width=720, height=576" ! glfiltercube ! "video/x-raw, width=320, height=240" ! glimagesink -gst-launch-1.0 videotestsrc ! "video/x-raw, format=(string)AYUV, width=320, height=240" ! glupload ! "video/x-raw, width=720, height=576" ! glfiltercube ! "video/x-raw, width=320, height=240" ! glimagesink -gst-launch-1.0 videotestsrc ! "video/x-raw, width=320, height=240" ! glupload ! "video/x-raw, width=800, height=600" ! glimagesink -gst-launch-1.0 videotestsrc ! "video/x-raw, format=(string)YUY2, width=320, height=240" ! glupload ! "video/x-raw, width=800, height=600" ! glimagesink -gst-launch-1.0 videotestsrc ! "video/x-raw, format=(string)I420, width=320, height=240" ! glupload ! "video/x-raw, width=800, height=600" ! glimagesink +gst-launch-1.0 videotestsrc ! gleffects effect=0 ! "video/x-raw, width=720, height=576" ! glimagesink +gst-launch-1.0 videotestsrc ! "video/x-raw, format=(string)AYUV, width=380, height=288" ! gleffects effect=0 ! "video/x-raw, width=720, height=576" ! glimagesink +gst-launch-1.0 videotestsrc ! "video/x-raw, format=(string)I420, width=720,height=576" ! gleffects effect=0 ! "video/x-raw, width=240, height=320" ! glimagesink + +gst-launch-1.0 videotestsrc ! glfiltercube ! glimagesink +gst-launch-1.0 videotestsrc ! glfiltercube ! glfiltercube ! glimagesink +gst-launch-1.0 videotestsrc ! glfiltercube ! glimagesink force-aspect-ratio=1 +gst-launch-1.0 videotestsrc ! glfiltercube red=1.0 green=0.5 blue=0.1 ! glfiltercube red=0.6 green=0.9 blue=1.0 ! glimagesink +gst-launch-1.0 videotestsrc ! glfiltercube red=0.6 green=0.2 blue=1.0 ! glfiltercube fovy=50.0 znear=0.2 zfar=1000.0 ! glimagesink +gst-launch-1.0 videotestsrc ! gleffects effect=0 ! "video/x-raw, width=720, height=576" ! glfiltercube ! "video/x-raw, width=320, height=240" ! glimagesink +gst-launch-1.0 videotestsrc ! "video/x-raw, format=(string)AYUV, width=320, height=240" ! gleffects effect=0 ! "video/x-raw, width=720, height=576" ! glfiltercube ! "video/x-raw, width=320, height=240" ! glimagesink +gst-launch-1.0 videotestsrc ! "video/x-raw, width=320, height=240" ! gleffects effect=0 ! "video/x-raw, width=800, height=600" ! glimagesink +gst-launch-1.0 videotestsrc ! "video/x-raw, format=(string)YUY2, width=320, height=240" ! gleffects effect=0 ! "video/x-raw, width=800, height=600" ! glimagesink +gst-launch-1.0 videotestsrc ! "video/x-raw, format=(string)I420, width=320, height=240" ! gleffects effect=0 ! "video/x-raw, width=800, height=600" ! glimagesink gst-launch-1.0 gltestsrc ! glfiltercube ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! glfilterapp ! glimagesink +gst-launch-1.0 videotestsrc ! glfilterapp ! glimagesink gst-launch-1.0 gltestsrc ! glfilterapp ! glimagesink gst-launch-1.0 videotestsrc ! glcolorscale ! ximagesink gst-launch-1.0 videotestsrc ! glcolorscale ! glimagesink gst-launch-1.0 videotestsrc ! "video/x-raw, format=(string)YV12, width=640, height=480" ! glcolorscale ! "video/x-raw, width=320, height=240" ! ximagesink -gst-launch-1.0 gltestsrc ! gldownload ! glcolorscale ! glimagesink +gst-launch-1.0 gltestsrc ! videoconvert ! glcolorscale ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! gldownload ! ximagesink -gst-launch-1.0 videotestsrc ! glupload ! gldownload ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! gldownload ! "video/x-raw, format=(string)UYVY" ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! gldownload ! "video/x-raw, format=(string)AYUV" ! glimagesink +gst-launch-1.0 videotestsrc ! gleffects effect=0 ! ximagesink +gst-launch-1.0 videotestsrc ! gleffects effect=0 ! glimagesink +gst-launch-1.0 videotestsrc ! gleffects effect=0 ! "video/x-raw, format=(string)UYVY" ! glimagesink +gst-launch-1.0 videotestsrc ! gleffects effect=0 ! "video/x-raw, format=(string)AYUV" ! glimagesink -gst-launch-1.0 videotestsrc num_buffers=200 ! glupload ! video/x-raw, width=720, height=576 ! glfiltercube ! video/x-raw, width=320, height=240 ! gldownload ! ffenc_mpeg4 ! avimux ! filesink location="record.avi" -gst-launch-1.0 gltestsrc ! glfiltercube ! gldownload ! ximagesink -gst-launch-1.0 videotestsrc ! glupload ! gldownload ! glupload ! gldownload ! glupload ! glimagesink +gst-launch-1.0 videotestsrc num_buffers=200 ! gleffects effect=0 ! video/x-raw, width=720, height=576 ! glfiltercube ! video/x-raw, width=320, height=240 ! gleffects effect=0 ! avenc_mpeg4 ! avimux ! filesink location="record.avi" +gst-launch-1.0 gltestsrc ! glfiltercube ! ximagesink +gst-launch-1.0 videotestsrc ! gleffects effect=0 ! videoconvert ! gleffects effect=0 ! videoconvert ! glimagesink gst-launch-1.0 videotestsrc ! tee name=t t. ! queue ! glimagesink t. ! queue ! glimagesink t. ! queue ! glimagesink -gst-launch-1.0 videotestsrc ! tee name=t t. ! queue ! glimagesink t. ! queue ! glupload ! glfiltercube ! glimagesink -gst-launch-1.0 videotestsrc ! tee name=t t. ! queue ! glimagesink t. ! queue ! glupload ! glfiltercube ! glimagesink t. ! queue ! glcolorscale ! glimagesink +gst-launch-1.0 videotestsrc ! tee name=t t. ! queue ! glimagesink t. ! queue ! glfiltercube ! glimagesink +gst-launch-1.0 videotestsrc ! tee name=t t. ! queue ! glimagesink t. ! queue ! glfiltercube ! glimagesink t. ! queue ! glcolorscale ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! glfiltercube ! glfilterlaplacian ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! glfilterlaplacian ! glfiltercube ! glimagesink +gst-launch-1.0 videotestsrc ! glfiltercube ! glfilterlaplacian ! glimagesink +gst-launch-1.0 videotestsrc ! glfilterlaplacian ! glfiltercube ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! glfilterblur ! glimagesink +gst-launch-1.0 videotestsrc ! glfilterblur ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! glfiltercube ! gleffects effect=3 ! glimagesink +gst-launch-1.0 videotestsrc ! glfiltercube ! gleffects effect=3 ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! glbumper location=normalmap.png ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! glbumper location=bumpwall.png ! "video/x-raw, width=1200, height=800" ! glimagesink +gst-launch-1.0 videotestsrc ! glbumper location=normalmap.png ! glimagesink +gst-launch-1.0 videotestsrc ! glbumper location=bumpwall.png ! "video/x-raw, width=1200, height=800" ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! glfilterglass ! glimagesink -gst-launch-1.0 videotestsrc ! glupload ! "video/x-raw, width=640, height=480" ! glfilterglass ! glimagesink +gst-launch-1.0 videotestsrc ! glfilterglass ! glimagesink +gst-launch-1.0 videotestsrc ! gleffects effect=0 ! "video/x-raw, width=640, height=480" ! glfilterglass ! glimagesink -gst-launch-1.0 videotestsrc ! "video/x-raw, format=(string)YUY2" ! glupload ! queue ! glmosaic name=m ! glimagesink videotestsrc pattern=12 ! "video/x-raw, format=(string)I420, framerate=(fraction)5/1, width=100, height=200" ! glupload ! queue ! m. videotestsrc ! "video/x-raw, framerate=(fraction)15/1, width=1500, height=1500" ! glupload ! gleffects effect=3 ! queue ! m. videotestsrc ! glupload ! gleffects effect=2 ! queue ! m. videotestsrc ! glupload ! glfiltercube ! queue ! m. videotestsrc ! glupload ! gleffects effect=6 ! queue ! m. +gst-launch-1.0 videotestsrc ! "video/x-raw, format=(string)YUY2" ! gleffects effect=0 ! queue ! glmosaic name=m ! glimagesink videotestsrc pattern=12 ! "video/x-raw, format=(string)I420, framerate=(fraction)5/1, width=100, height=200" ! gleffects effect=0 ! queue ! m. videotestsrc ! "video/x-raw, framerate=(fraction)15/1, width=1500, height=1500" ! gleffects effect=3 ! queue ! m. videotestsrc ! gleffects effect=2 ! queue ! m. videotestsrc ! glfiltercube ! queue ! m. videotestsrc ! gleffects effect=6 ! queue ! m. -gst-launch-1.0 -v videotestsrc ! glupload ! gloverlay location=image.png proportion-png=40 proportion-video=40 xpos-png=75 ypos-png=50 xpos-video=30 ypos-video=50 rotate-png=2 rotate-video=2 angle-png=-15 angle-video=15 ! glimagesink +gst-launch-1.0 -v videotestsrc ! gloverlay location=image.png proportion-png=40 proportion-video=40 xpos-png=75 ypos-png=50 xpos-video=30 ypos-video=50 rotate-png=2 rotate-video=2 angle-png=-15 angle-video=15 ! glimagesink gst-launch-1.0 videotestsrc ! "video/x-raw, pixel-aspect-ratio=(fraction)5/2" ! glimagesink -gst-launch-1.0 videotestsrc ! "video/x-raw,format=(string)I420,width=720,height=576,pixel-aspect-ratio=(fraction)64/45" ! glupload ! glimagesink +gst-launch-1.0 videotestsrc ! "video/x-raw,format=(string)I420,width=720,height=576,pixel-aspect-ratio=(fraction)64/45" ! gleffects effect=0 ! glimagesink gst-launch-1.0 audiotestsrc ! libvisual_gl_projectM ! "video/x-raw,width=800, height=600" ! gleffects effect=tunnel ! glimagesink -gst-launch-1.0 audiotestsrc ! libvisual_gl_lv_gltest ! gldownload ! glimagesink +gst-launch-1.0 audiotestsrc ! libvisual_gl_lv_gltest ! videoconvert ! glimagesink -gst-launch-1.0 audiotestsrc ! libvisual_gl_lv_gltest ! gldownload ! ximagesink +gst-launch-1.0 audiotestsrc ! libvisual_gl_lv_gltest ! ximagesink // OPENGL ES 2.0 -LD_LIBRARY_PATH=/home/julien/dev/SDKPackage_OGLES2/Builds/OGLES2/LinuxX86/Lib/:/usr/lib/nvidia-current-updates/ gst-launch-1.0 videotestsrc ! glupload ! gleffects effect=2 ! glimagesink +LD_LIBRARY_PATH=/home/julien/dev/SDKPackage_OGLES2/Builds/OGLES2/LinuxX86/Lib/:/usr/lib/nvidia-current-updates/ gst-launch-1.0 videotestsrc ! gleffects effect=2 ! glimagesink |