Commit graph

15698 commits

Author SHA1 Message Date
Julien Isorce
3107266d81 [368/906] Cocoa backend: fix crash when resizing
Default implementation of NSOpenglView::update is not safe because it
just calls update on the opengl context whereas we are not in the gl thread.
Also fix the white flickering when resizing, because now we need to call
the draw callback manually when resizing.
2014-03-15 18:36:36 +01:00
Stefan Kost
26bb5badb8 [367/906] docs: fix GstXvImageSInk -> GstGLImageSink and reindent 2014-03-15 18:36:36 +01:00
Tim-Philipp Müller
6516ecb3cc [366/906] docs: make remaining elements show up in docs
Split out declarations into header files and hook everything up so
that five more elements show up in the plugin docs. Fixes #559135.
2014-03-15 18:36:36 +01:00
Julien Isorce
ca891db2a6 [365/906] Cocoa backend: make sure that nsapp is initialized
gst-launch-0.10 videotestsrc ! tee name=t ! queue ! glimagesink t. ! queue ! glimagesink
now works properly on MacOSX
2014-03-15 18:36:36 +01:00
Julien Isorce
579b74d845 [364/906] make the cmake build work on MacOSX
We can now generate a Xcode project (or Unix Makfiles),
see INSTALL file
2014-03-15 18:36:36 +01:00
Julien Isorce
89fe233c52 [363/906] Cocoa backend: fix crash when closing
- All gstglwindow members are now modified only in the gl thread
to avoid thread concurrency
- OpenGL context is now properly clean
- fix a couple of things in implementation of xoverlay interface
2014-03-15 18:36:36 +01:00
Julien Isorce
a9ab2abea4 [362/906] make cocoa backend work on MacOSX
It works with both gst-launch and a cocoa app (non-embedded and embedded)
But there is still some problems:
  - sometimes crash when closing
  - flickering when resizing
  - embedded mode not perfect

I will first make the CMake build work with cocoa backend
in order to generate a XCode project.
Then it should be easier to fix those issues.
2014-03-15 18:36:36 +01:00
Filippo Argiolas
263eb59fcf [361/906] gstgtk: add missing license and copyright information 2014-03-15 18:36:35 +01:00
Filippo Argiolas
ad5edd7e32 [360/906] examples: add missing copyright/license to my examples 2014-03-15 18:36:35 +01:00
Sebastian Dröge
6ce63cd366 [359/906] gl: Link with -lm and fix indention 2014-03-15 18:36:35 +01:00
Jan Schmidt
1a070f378b [358/906] gstgldisplay: Close a small race starting the display thread
Take the display lock before signalling the create-context cond
to ensure the caller has dropped the lock and is therefore listening
for the signal.
2014-03-15 18:36:35 +01:00
Jan Schmidt
b1dccdb13c [357/906] x11: Don't crash when the X11 display is not available.
Error out cleanly instead of crashing when the X11 display can't
be contacted.
2014-03-15 18:36:35 +01:00
Jan Schmidt
09a2e19512 [356/906] build: Fix typo: gstglbumber.h -> gstglbumper.h 2014-03-15 18:36:35 +01:00
Julien Isorce
56d656adf6 [355/906] same motion compensation 2014-03-15 18:36:35 +01:00
Julien Isorce
df4e712ca2 [354/906] fix and add gldeinterlace filter to the builds 2014-03-15 18:36:35 +01:00
julien
3eddae28a9 [353/906] add a gldeinterlace filter
Greedyh operation implemented using OpenGL Shading Language.
We could add other operations later.
Does some good results but still not as expected.
That's why I do not add it yet to the build.
2014-03-15 18:36:35 +01:00
Jan Schmidt
f5ac0a784d [352/906] fix typo
Change GST_GL_DISPLAY_PROJECTION_PERSPECIVE to
GST_GL_DISPLAY_PROJECTION_PERSPECTIVE.

Re-indent a couple of files that needed it.
2014-03-15 18:36:35 +01:00
Julien Isorce
2680375248 [351/906] allow to switch xoverlay while being in paused state 2014-03-15 18:36:35 +01:00
Julien Isorce
ae4f96ec93 [350/906] fix window position when using xoverlay
x, y are the coordinates of the position inside
the new parent window.

Fixes #584877
2014-03-15 18:36:35 +01:00
Julien Isorce
6292d5af16 [349/906] can switch xoverlays while playing
Fixes bug #584877

Before this commit calling "gst_x_overlay_set_xwindow_id" more
than one time, had no effect.
It mainly affects the glimagesink implementation.
But on win32 (and CE), some stuff has to be done to
release the old parent.

And add a switchxoverlay example where the user
can click on left/right part of the main window to
switch the xoverlay.
2014-03-15 18:36:35 +01:00
LRN
47beeb1083 [348/906] Add gstvideo to glimagesink LIBADD. Fixes bug #584680 2014-03-15 18:36:35 +01:00
LRN
d1893e0e7e [347/906] fix miscast of a pointer in SetWindowLongPtr
GCC 4.4.0 complains error: cast from pointer to integer of different size
Fixes #584678.
2014-03-15 18:36:35 +01:00
Sebastian Dröge
64e59060e2 [346/906] Fix linking by providing libtool the correct --tag parameter 2014-03-15 18:36:35 +01:00
julien
6d9ee6fe43 [345/906] change rotation center in cluttershare example 2014-03-15 18:36:35 +01:00
Julien Isorce
eeece94c58 [344/906] Use a more complex gst gl pipeline in the cluttershare example 2014-03-15 18:36:35 +01:00
Julien Isorce
01cbcb4d3c [343/906] Add a signal watch bus callback to check gst messages 2014-03-15 18:36:34 +01:00
Julien Isorce
76afadd6c7 [342/906] Fix texture actor update due to a too strong thread locking.
On linux, the GSource func attached to the clutter_threads_add_idle
was not getting the cpu ressource periodically.
Because the use of clutter_threads_enter/leave inside the fakesink
callback seems to be too strong.
So remove the use if clutter_threads_enter/leave in the fakesink callback.
Then replace GQueue by GAsyncQueue to keep thread safe access to the
communication queues between clutter and gst-gl.
Call clutter_threads_add_idle with high priority.
2014-03-15 18:36:34 +01:00
Julien Isorce
af8e566bc8 [341/906] Properly clean up pending gst gl buffers in cluttershare example 2014-03-15 18:36:34 +01:00
Julien Isorce
36dd1c7505 [340/906] Fix cluttershare example.
It requires at least clutter 0.8.6 since lower clutter versions are
not compatible with GL_TEXTURE_RECTANGLE_ARB.
Remove use of ClutterEffectTemplace since it does not exist in
clutter 0.9.
2014-03-15 18:36:34 +01:00
Sebastian Dröge
1aae908977 [339/906] Cast to a GstBuffer* before passing to gst_buffer_unref to fix compiler warning 2014-03-15 18:36:34 +01:00
Julien Isorce
af48769e8d [338/906] Use GQueue in the cluttershare example 2014-03-15 18:36:34 +01:00
Julien Isorce
58e392f129 [337/906] Improve cluttershare example
Use clutter_threads_API.
When just using glupload from rgb, we have to be sure that
the upload texture is not in use in our gst gl context.
2014-03-15 18:36:34 +01:00
Julien Isorce
d0d5eb1f22 [336/906] [x11/x11ES] fix some pointer cast warnings 2014-03-15 18:36:34 +01:00
Julien Isorce
fe24b86d8a [335/906] [cocoa] update since interface changed 2014-03-15 18:36:34 +01:00
Julien Isorce
911cf141c4 [334/906] [win32/winCE] fix some pointer cast warnings with mingw
And turn off deprecated Wp64 msvc compiler option.
2014-03-15 18:36:34 +01:00
Julien Isorce
bcc33ab716 [333/906] add force-aspect-ratio support 2014-03-15 18:36:34 +01:00
Julien Isorce
80e114860e [332/906] just gst-indent and C90 on cluttershare example 2014-03-15 18:36:34 +01:00
Julien Isorce
f735c06c4a [331/906] indent and fix some compiler warnings 2014-03-15 18:36:34 +01:00
Julien Isorce
87a1652216 [330/906] Can now share textures with an external gl context
The external opengl context must be specify when creating
our OpenGL context (glx) or just after (wgl).
When calling glXCreateContext or wglShareLists, the
external opengl context must not be current.
Then our gl context can be current in the gl thread while
the external gl context is current in an other thread.
See tests/examples/clutter/cluttershare.c
2014-03-15 18:36:34 +01:00
David Schleef
b47fc234ef [329/906] Build for Cocoa on darwin, with various fixes 2014-03-15 18:36:34 +01:00
David Schleef
d164f882be [328/906] Convert gtk examples to use helper library
Helper lib implements gst-gtk glue on all platforms
2014-03-15 18:36:34 +01:00
Julien
bf0b1fa1ab [327/906] fix init FBO's texture attachment on ES 2.0 2014-03-15 18:36:34 +01:00
Julien
bb0781a389 [326/906] add X backend for OpenGL ES 2.0 2014-03-15 18:36:34 +01:00
Filippo Argiolas
9aea500080 [325/906] Restore glimagesink instead of ximagesink
Partially revert previous commit. It's not an issue with glimagesink
Xoverlay interface. It's always the same intel bug with direct
rendering redirection (the one that affects each opengl application
with compositing managers). It works fine with DRI2 and UXA
acceleration. Still leaving effects disabled because I'm testing intel
hardware that doesn't support FBOs.
2014-03-15 18:36:33 +01:00
Filippo Argiolas
049f106b47 [324/906] Temporary disable glimagesink in clutteractortee
GLimagesink XOverlay interface doesn't seem to work with composite
redirection on intel (and I believe ati too). Windows aren't
redirected offscreen at all.  This commit just shows that the example
correcty works with ximagesink. The most evident difference I see is
that glimagesink reparents the xoverlay window into its own while both
x and xvimagesink destroy their window and render directly to the
xoverlay one.
2014-03-15 18:36:33 +01:00
Filippo Argiolas
7e0602cddd [323/906] Remove redundant XMoveWindow call
Revert the "move windows" thing from commit
175f7a707bc922f3facc63e7d9b6d01f9bb6b1b0
Windows are offscreen who cares about their position? If you see the
windows something is going wrong with composite redirection.
2014-03-15 18:36:33 +01:00
Julien Isorce
1385371e6c [322/906] [download YUY2/UYVY] fix a regression
The call to glLoadIdentity was removed by mistake during
OpenGL ES 2.0 integration.
2014-03-15 18:36:33 +01:00
Julien Isorce
ec0bb66fe9 [321/906] add OpenGL ES 2.x support.
In OpenGL 2.x for Embedded System, a lot of basic scene/draw functions
have been removed. It means that everything is made using vertex and
fragment shaders.
I have also added a gstglwindow backend for winCE that uses EGL
(Native Platform Graphics Intercace) (which is a full part of
OpenGL ES specification). It remove the use of wgl/glx functions.
2014-03-15 18:36:33 +01:00
Julien Isorce
37b29ac10c [320/906] fix position and content rect 2014-03-15 18:36:33 +01:00
Julien Isorce
b5778a90d7 [319/906] [win32 backend] fix transmition message to the parent.
The Qt mouvexoverlay example shows how to rotate the cube
by moving (+click) the mouve over a qwidget using xoverlay
interface.
2014-03-15 18:36:33 +01:00