Commit graph

76 commits

Author SHA1 Message Date
Nicolas Dufresne
ee0212b83d sdlshare: Destroy GL backend buffer before the GL Context
This was otherwise leading to a deadlock in the GL library.
2017-11-24 17:06:22 -05:00
Nicolas Dufresne
4f36f75eb1 sdlshare2: Fix race conditions
The client-draw callback is running on the GL Thread, which will
be required to map the buffer. Map early, and pass the mapped
frame instead. On top of that, make sure to signal any pending
draw before trying to push EOS, as some pad locks might be taken.
This is the cost of using the same thread to control GStreamer and
to render GL.
2017-11-24 16:58:21 -05:00
Nicolas Dufresne
c9e755d79e meson: Build gl/sdl examples 2017-11-24 16:58:01 -05:00
Jan Schmidt
9a10dbe350 3dvideo example: Correct video overlay for HiDPI
Use the GTK scaling factor to scale the video allocation
so video displays correctly on hi-dpi screens
2017-11-24 01:37:48 +11:00
Jérôme Laheurte
b569ae4832 Use value instead of version macro when testing for mac OS version
https://bugzilla.gnome.org/show_bug.cgi?id=788404
2017-10-20 01:49:22 +11:00
Philippe Normand
26760588e8 examples/gl/gtk: build fix for the 3dvideo example on macOS 2017-08-30 15:18:58 +01:00
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
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
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
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
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
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
Jan Schmidt
3ea9f51dd7 3dvideo: Add simple gtk example stereoscopic video player
https://bugzilla.gnome.org/show_bug.cgi?id=611157
2015-06-19 01:49:33 +10:00
Matthew Waters
f600a8ac9a gl/examples: update qt examples for api changes 2015-06-15 16:47:15 +10:00
Julien Isorce
6d04b62e85 gl/example: fix build error when compiling cocoa-videooverlay
libtool: error: ignoring unknown tag OBJC
and
clang: error: argument unused during compilation: '-pthread'
2015-06-04 08:04:13 +01:00
Edward Hervey
5fe88f7ed7 examples: Fix gl usage without wayland support
Not all platforms have wayland support. Handle that gracefully at
compile time
2015-06-01 14:05:06 +02:00
Matthew Waters
5f0c006a82 gl/examples: update gtk examples for glupload 2015-05-31 16:09:34 +10:00
Matthew Waters
21cbf763b0 gl/examples: update gtk examples for wayland 2015-05-31 16:09:34 +10:00
Matthew Waters
349685ad27 tests/gl/gtk: implement setting a wayland display/surface 2015-05-31 16:04:13 +10:00
Jan Schmidt
cdff13e07b Fix flags order in GL examples for uninstalled build 2015-05-21 13:42:35 +10:00
Matthew Waters
199f9bd194 gl/examples: fixup generic cube example for NDC
translating outside the clip region doesn't work
2015-03-14 18:12:38 +00:00
Julien Isorce
7dd3a2ec9e gl/examples: add sdlshare2 that uses glimagesink to output textures
https://bugzilla.gnome.org/show_bug.cgi?id=739681
2015-03-14 17:56:39 +00:00
Julien Isorce
0150255a46 glimagesink: provide GstSample in client-draw signal
Instead of prividing texture and size directly.
And apply changes to examples.

https://bugzilla.gnome.org/show_bug.cgi?id=739681
2015-03-14 17:56:21 +00:00
Julien Isorce
94d4ae1840 sdlshare: use glupload and unmap frame 2015-03-14 17:42:40 +00:00
Julien Isorce
5667d34182 examples: initialize NSApp at the beginning 2015-03-14 08:37:52 +00:00
Matthew Waters
bf87ac8cbe gl/qt/examples: update for NSOpenGL -> CGL change 2015-01-23 16:12:24 +11:00
Matthew Waters
996f193547 gl/examples: fixup sdl example for gluPerspective removal 2014-12-11 19:41:23 +11:00
Thijs Vermeir
6215b5dd14 gl/cocoa: Fix example on Mac OS X 10.10
Using NSApp directly seems to confuse something, as the compiler
was expecting an id<NSFileManagerDelegate>. Switched to using
[NSApplication sharedApplication], and specified the delegate
protocol on the window class as well.

Similar to https://bugzilla.gnome.org/show_bug.cgi?id=738740
2014-12-01 10:59:32 +01:00
Matthew Waters
6bd1150ca8 gl: remove the use of glu 2014-11-28 09:14:26 +11:00
Sebastian Dröge
13c8517570 gl/cocoa: Remove GNUStep support
Until gcc and GNUStep properly support Objective-C blocks and other
"new" features of Objective-C we can't properly support them without
making the code much more ugly.

https://bugzilla.gnome.org/show_bug.cgi?id=739152
2014-11-13 12:01:19 +01:00
Matthew Waters
c1f3cc9f1c gl/examples: update for other-context property removal 2014-10-30 18:58:50 +11:00
Jan Schmidt
37c70c8efa examples: Fix Qt/GL qglwtextureshare example for X11
We need to pass the X11 display to GstGL or else it will
use its own X11 Display pointer, and the GL Context won't get shared
correctly on newer X servers
2014-09-29 00:39:07 +10:00
Jan Schmidt
0fd0683996 examples: port GL/Qt examples to Qt5
Update the GL Qt integration examples for Qt5 changes and for GstGL
signal signature changes.
2014-09-29 00:39:07 +10:00
Matthew Waters
62507bb089 examples/gl: update for signal signature change 2014-09-28 20:37:04 +10:00
Matthew Waters
505243aa8d examples/gl/gtk: use the sync bus callback to set the window handle
And output error messages.
2014-09-22 12:03:12 +10:00
Wang Xin-yu (王昕宇)
8d6f745b78 gl: qglwtextureshare demo fixes and cleanup
1. glcontextid function is replaced by gstreamer gst_gl_context_new_wrapped .
2. call gst_init before gst_gl_display_new , seems gst_gl_display_new depends
   on gst_allocator_register , which only worked after gst_init called
3. flush gstreamer OpenGL context before using shared texture, fix
   flicker problem.

https://bugzilla.gnome.org/show_bug.cgi?id=735566
2014-08-28 10:06:00 +03:00
Lubosz Sarnecki
57a96ce3e1 examples: fix gtk+ 3.14 deprecation error
https://developer.gnome.org/gtk3/3.13/GtkWidget.html#gtk-widget-set-double-buffered

https://bugzilla.gnome.org/show_bug.cgi?id=734482
2014-08-21 17:39:01 +10:00