Commit graph

392 commits

Author SHA1 Message Date
Philippe Normand
bdcac6f435 examples/gl/gtk: fix overlay handling for macOS
The GTK+ window requires a NSView sub-view, not an NSWindow.
2017-08-30 15:16:39 +01:00
Julien Isorce
2fd84a6c86 gl: do not include GL headers in public gstgl headers
Except for gst/gl/gstglfuncs.h

It is up to the client app to include these headers.
It is coherent with the fact that gstreamer-gl.pc does not
require any egl.pc/gles.pc. I.e. it is the responsability
of the app to search these headers within its build setup.

For example gstreamer-vaapi includes explicitly EGL/egl.h
and search for it in its configure.ac.

For example with this patch, if an app includes the headers
  gst/gl/egl/gstglcontext_egl.h
  gst/gl/egl/gstgldisplay_egl.h
  gst/gl/egl/gstglmemoryegl.h
it will *no longer* automatically include EGL/egl.h and GLES2/gl2.h.
Which is good because the app might want to use the gstgl api only
without the need to bother about gl headers.

Also added a test: cd tests/check && make libs/gstglheaders.check

https://bugzilla.gnome.org/show_bug.cgi?id=784779
2017-08-22 10:00:19 +01:00
Tim-Philipp Müller
357fc8064a examples: fix compiler warning in compositor crossfade example
warning: control reaches end of non-void function
2017-08-03 20:21:17 +01:00
Thibault Saunier
9c575243e1 tests: examples: Add a simple crossfade example
https://bugzilla.gnome.org/show_bug.cgi?id=784827
2017-08-03 13:01:50 -04:00
George Kiagiadakis
e97877dc7e tests/examples: add manual tests/examples for the ipcpipeline elements
ipcpipeline1 is a very simple test that shows a short videotestsrc fragment.

ipc-play is a clone of gst-play that splits the pipeline in two
processes, running the source & demuxer on the master process
and the decoders & sinks on the slave.
2017-08-01 14:43:06 +03:00
Jan Schmidt
7ea366501b qmlsink example: Add CMakeLists.txt
Make it possible to build using cmake instead of qmake
2017-06-22 01:01:40 +10:00
Tim-Philipp Müller
624fe65f54 examples: gl: remove ancient bitrotten .vcproj files 2017-05-21 10:57:53 +01:00
Josep Torra
2c9b513695 examples: fix macOS 9.12 deprecation warnings
Add #defines to allow older versions of macOS to use the new constant names.
2017-05-20 12:41:51 +02:00
Nick Kallen
46bbc60d24 applemedia/gl: Update code to use ARC
All code interacting with Objective-C objects should now use Automated
Reference Counting rather than manual memory management or Garbage
Collection. Because ARC prohibits C-structs from containing
references to Objective-C objects, all such fields are now typed
'gpointer'. Setting and gettings Objective-C fields on such a
struct now uses explicit __bridge_* calls to tell ARC about
object lifetimes.

https://bugzilla.gnome.org/show_bug.cgi?id=777847
2017-03-07 13:37:07 +02:00
Edgard Lima
38ad22a7f1 Update Edgard Lima's email
https://bugzilla.gnome.org/show_bug.cgi?id=779230
2017-02-27 00:50:46 +00:00
Vivia Nikolaidou
fa47edf846 audiomixmatrix: New element that mixes audio channels
This element transforms a given number of input channels into a given number of
output channels according to a given transformation matrix. The matrix
coefficients must be between -1 and 1. In the auto mode, input/output channels
are automatically negotiated and the transformation matrix is a truncated or
zero-padded identity matrix.

https://bugzilla.gnome.org/show_bug.cgi?id=777376
2017-02-23 21:02:44 +02:00
Juan Pablo Ugarte
98997e9f79 gl/examples/gtk: fixed compilation on systems without GL_GEOMETRY_SHADER
https://bugzilla.gnome.org/show_bug.cgi?id=777143
2017-01-13 11:20:51 +11:00
Matthew Waters
de41d74e6f tests/examples/qmlsink: scope QApplication/Engine
So they are destroyed before gst_deinit() is run and the leaks tracer
doesn't show false-positives.

https://bugzilla.gnome.org/show_bug.cgi?id=775746
2016-12-07 23:02:02 +11:00
Garima Gaur
aa08be43c7 gst: Fix caps leak
https://bugzilla.gnome.org/show_bug.cgi?id=775072
2016-11-30 09:59:08 +02:00
Matthew Waters
5d22e0c8d0 examples/gl/qt: fix the examples for the use of newer API
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
2016-11-08 15:14:27 +11:00
Matthew Waters
41a6448918 gl: GST_GL_TYPE -> GST_TYPE_GL
Some deprecated symbols are kept for backwards compatibility
2016-11-03 16:16:12 +11:00
Alistair Buxton
16d48770d1 gl/examples: Really remove references to $(GST_PLUGINS_GL_*).
These seem to have been missed in the previous commit to this file.

https://bugzilla.gnome.org/show_bug.cgi?id=771023
2016-09-08 09:45:56 +10:00
Matthew Waters
e6b93e18d3 gl/examples/fxtest: fix up for wayland support
- Pass the wayland display to gst
- Redrawing on resize is no longer needed.
2016-08-19 16:05:33 +10:00
Haihua Hu
65a3c35670 qmlglsrc: Add qmlglsrc unit test example
https://bugzilla.gnome.org/show_bug.cgi?id=768160
2016-08-03 22:11:11 +10:00
Sebastian Dröge
d6c173d038 qml: Don't forget to unref the actual sink element after setting it on glsinkbin 2016-07-22 17:00:14 +03:00
Sebastian Dröge
b10ab99e02 qml: Use glsinkbin instead of glupload directly 2016-07-22 16:57:45 +03:00
Martin Kelly
01d8b446a6 examples: opencv: typo fix
https://bugzilla.gnome.org/show_bug.cgi?id=766639
2016-05-19 09:18:43 +01:00
Matthew Waters
f9d03dd9c4 gl/examples: fix switchvideooverlay for wayland
and call XInitThreads() for X11
2016-03-31 20:53:18 +11:00
Matthew Waters
8fe5b198be gl/examples: remove duplicated videooverlay example
filtervideooverlay proved the exact same example (only with a extra glfiltercube).
2016-03-31 20:53:18 +11:00
Matthew Waters
14cf686e61 gl/examples/3d: additions for wayland support 2016-03-31 20:53:18 +11:00
Sebastian Dröge
10bc9a7efc gl/gtk: Fix compiler warning in example
fxtest.c: In function ‘main’:
fxtest.c:190:3: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
   GtkWidget *window;
   ^~~~~~~~~
2016-03-24 14:08:46 +02:00
Matthew Waters
df7016553e gl/examples/qt: restrict the GL API to opengl where needed
Until the examples are ported to opengl3/gles2, they will not work with any
other GL api.
2016-03-17 16:48:19 +11:00
Matthew Waters
0703c04414 gl/examples/gtk: call XInitThreads
Fixes some sporadic X11 threading assertions.
2016-03-17 16:34:05 +11:00
Matthew Waters
59da66f969 gl/examples/cube*: choose opengl by default
The examples don't work with any other GL API.

Also fix the yuv example to not translate the cube out of the clipping area.
2016-03-10 22:52:52 +11:00
Matthew Waters
bf6838d913 gl/examples/fxtest: add needed glupload to the pipeline
Fixes a negotiation failure in the example
2016-03-10 22:52:26 +11:00
Sebastian Dröge
dbefd2f8a8 gtk: examples: #define GST_USE_UNSTABLE_API and link with X11_LIBS
X11_LIBS is needed for XInitThreads() and without the #define we get
warnings about the GL API being still unstable.
2016-03-05 11:38:46 +02:00
Holger Kaelberer
0ae665e35c tests: fix warning in qml example
https://bugzilla.gnome.org/show_bug.cgi?id=756082
2016-02-01 13:55:05 +11:00
Sebastian Dröge
0b5387b96c clutter: Fix compilation error in GL examples
Include gst/gl.h instead of specific headers to prevent such problems also in
the future.

In file included from ../../../../gst-libs/gst/gl/gl.h:47:0,
                 from ../../../../gst-libs/gst/gl/gstglbasememory.h:137,
                 from ../../../../gst-libs/gst/gl/gstglmemory.h:29,
                 from cluttershare.c:39:
../../../../gst-libs/gst/gl/gstglmemorypbo.h:51:20: error: field ‘mem’ has incomplete type
   GstGLMemory      mem;
                    ^
../../../../gst-libs/gst/gl/gstglmemorypbo.h:124:24: error: field ‘parent’ has incomplete type
   GstGLMemoryAllocator parent;
                        ^
../../../../gst-libs/gst/gl/gstglmemorypbo.h:134:29: error: field ‘parent_class’ has incomplete type
   GstGLMemoryAllocatorClass parent_class;
                             ^
2015-12-14 09:38:41 +01:00
George Kiagiadakis
1c8e2f3497 tests: put the waylandsink example window.ui file in EXTRA_DIST 2015-11-22 13:11:48 +01:00
George Kiagiadakis
0b97b89575 tests: fix linking waylandsink example with the gstwayland library
First, use top_builddir, otherwise it fails in out-of-source builds.
Second, link to the libtool archive directly to let make understand
the dependency.
2015-11-22 13:08:35 +01:00
Reynaldo H. Verdejo Pinochet
86ec812429 Remove unnecessary NULL checks before g_free()
g_free() is NULL-safe
2015-11-18 16:05:42 -08:00
George Kiagiadakis
3eeec2836a tests/examples: add a waylandsink example
https://bugzilla.gnome.org/show_bug.cgi?id=748322
2015-11-18 13:10:45 +01:00
Sebastian Dröge
5c8ebb4ada mxfdemux-structure: Sync fakesink state with the bin to make the application work at all 2015-10-21 19:54:15 +03:00
Matthew Waters
b9e1cd3732 glshaderelement: implement on-demand create-shader signalling
One may not have an GstGLContext available or current in the thread where one
would need to update the shader.  Support this by signalling create-shader
whenever the one-shot 'update-shader' is set to TRUE.
2015-10-17 16:10:41 +11:00
Matthew Waters
f0a0fcb0bf gl/examples: add a live shader demo using the new GstGLSLStage
Implemented with videotestsrc ! glshader ! glupload ! gtkglsink

Errors on an invalid shader compilation are ignored however any error
provided by the glsl compiler is printed to stdout.
2015-10-17 01:10:47 +11:00
Vineeth TM
8c9ca808af gstreamer: bad: Fix memory leaks when context parse fails
When g_option_context_parse fails, context and error variables are not getting free'd
which results in memory leaks. Free'ing the same.

And replacing g_error_free with g_clear_error, which checks if the error being passed
is not NULL and sets the variable to NULL on free'ing.

https://bugzilla.gnome.org/show_bug.cgi?id=753854
2015-10-02 17:24:35 +03:00
Arnaud Vrac
697f117ddd configure.ac: fix build when the uvch264 plugin is not selected
Instead of checking for the gstreamer-video-1.0 package is installed,
just assume it is since we already check for the -base dependency.

With this replace the GST_VIDEO_* variables in makefiles and directly
link with libgstvideo.

https://bugzilla.gnome.org/show_bug.cgi?id=753820
2015-08-19 16:52:03 +03:00
Luis de Bethencourt
64513a60e9 examples: facedetect: add silent option
By default the example floods the screen with the detected face values.
Add an option to avoid this for frail terminals.
2015-08-17 23:44:47 +01:00
Luis de Bethencourt
29786be80f examples: facedetect: only create variables when needed
The variables to store face values are only needed if they will be used to
control the volume. Which isn't the default to avoid potentially being very
loud accidentally. Only create variables when needed.
2015-08-10 19:09:52 +01:00
Luis de Bethencourt
53a9374eb5 examples: facedetect: make volume control optional 2015-08-10 18:58:55 +01:00
Luis de Bethencourt
c895f3f3b3 examples: facedetect: only set to playing when it's not already 2015-08-08 13:19:47 +01:00
Luis de Bethencourt
d7fbb72c72 examples: opencv: remove unnecessary setting of a property
"/dev/video0" is the default device of v4l2src, setting it to this is
redundant.
2015-08-08 12:52:38 +01:00
Vanessa Chipirrás
02b9daafdf facedetect: Add unit test
I created four utilities of the detected features:
1- If you hide your mouth, the volume of video is low.
2- If you hide the nose, the volume of the video is up.
3- If you hide the full face, the video stops.

You can see proof of this here:
https://www.youtube.com/watch?v=pxzejNKV_WQ

https://bugzilla.gnome.org/show_bug.cgi?id=748377
2015-07-31 17:43:56 +01:00
Matthew Waters
769fffa3d9 new qt5 qml GL video sink
Very much in the same spirit as the Gtk GL sink

Two things are provided
1. A QQuickItem subclass that renders out RGBA filled GstGLMemory
   buffers that is instantiated from qml.
2. A sink element that will push buffers into (1)

To use
1. Declare the GstGLVideoItem in qml with an appropriate
   objectName property set.
2. Get the aforementioned GstGLVideoItem from qml using something like

QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

QObject *rootObject = engine.rootObjects().first();
QQuickItem *videoItem = rootObject->findChild<QQuickItem *> ("videoItem");

3. Set the videoItem on the sink

https://bugzilla.gnome.org/show_bug.cgi?id=752185
2015-07-10 15:25:26 +10:00
Tim-Philipp Müller
e7512329ca examples: move vp8 parser test to codecparser example directory 2015-06-21 11:51:38 +01:00