Commit graph

5872 commits

Author SHA1 Message Date
Julien Isorce
dec44e571b [404/906] glupload: repair external_opengl_context property
qglwtextureshare now works again. In this example,
the pipeline is src ! glupload ! fakesink.
So in this case the glupload element is a sink in
terms of gl chain.
But the problem is still there if the pipeline is
src ! glupload ! glfilter ! fakesink
(it's the case in sdlshare and cluttershare examples)
because since recent changes about how the gstgldisplay
is transmitted to the gl element, the context is usually
created by the sink in terms of gl chain.
A solution would be to also install this property on glfilter.
2014-03-15 18:36:38 +01:00
Julien Isorce
416a4c6161 [402/906] gloverlay: fix some warnings 2014-03-15 18:36:38 +01:00
Anthony Violo
a7a5c7ee8a [401/906] gloverlay: Added rotate texture
fix #601277
2014-03-15 18:36:38 +01:00
Julien Isorce
0ba1945c57 [398/906] gldownload: do not forgot to create the gl context
fix #600630
2014-03-15 18:36:38 +01:00
Julien Isorce
621aabe378 [397/906] glmosaic: fix a comparison warning 2014-03-15 18:36:38 +01:00
Julien Isorce
12e0bff437 [396/906] gldifferencematte: fix some warnings from vc9 2014-03-15 18:36:38 +01:00
Filippo Argiolas
d02a585e7b [395/906] differencematte: fix regressions from gdkpixbuf to libpng migration
The background image needs to be scaled to fit current texture size.
Previously this was done by gdk_pixbuf_scale_simple but that's been
removed.
Create a texture from the background pixbuf with correct dimensions and
use interpolation shader to scale it to the right size. Interpolation
fragment shader doesn't have too much sense if all the textures don't
have the same size so this seemed the most natural place to do the
scaling. It could probably be done with some custom texture mapping
outside the shader but it involved more code.

Fixes bug #599883.
2014-03-15 18:36:37 +01:00
Julien Isorce
aeb793497d [393/906] glmosaic: for now it's a cube mosaic
Also use GPtrArray instead of GArray in glmixer.
And add a pipeline to tests/pieplines
2014-03-15 18:36:37 +01:00
Julien Isorce
ea2962e44f [392/906] glmosaic: desactivate shader when done 2014-03-15 18:36:37 +01:00
Julien Isorce
144427fe3e [390/906] remove warnings from vs9 2014-03-15 18:36:37 +01:00
Julien Isorce
42720ef3ff [388/906] just fix builds and indent 2014-03-15 18:36:37 +01:00
Julien Isorce
db7d436bd8 [387/906] glmixer: add a glmixer base element
glmixer can be seen as a glfilter except it handles N requested
sink pads.
Each sink pad and the src pad are video/x-raw-gl.
glmixer is responsible for managing different framerates from inputs.
It uses OpenGL context sharing. It means that each input is in its
own OpenGL context shared together and shared with the OpenGL context
of the ouput gl chain.
Also add a glmosaic which is an example of implementation of glmixer.
For now glmosaic is a cube but it will be fixed in the next commits.
For now the glmixer has some weird behaviours in some configurations
but it will be improved in the next commits.
The autotools builds is temporarly broken since those changes
have been made on win32.
2014-03-15 18:36:37 +01:00
Julien Isorce
65f4d40e6d [385/906] rewrite the way a gstgldisplay is transmited to the gl elements
Before, a gstgldisplay was instancied by the gl src in terms of gl chain.
And then the next element got it through the first gstglbuffer.
Now, this is done though queries.
All glelements get their ref on a gstgldisplay in READY state.
This rewrite is mainly a first step to be able to share OpenGL context hold
by the gstgldisplay using more complex glelements.
For example, with a glvideomixer. The associated gstgldisplay of each gl chain
of the sink pads will share their OpenGL context.
2014-03-15 18:36:37 +01:00
Julien Isorce
3700180345 [382/906] ES2.0: remove warnings
Partially fix #593786
2014-03-15 18:36:37 +01:00
Anthony Violo
5fef0569f0 [380/906] gloverlay: can put video over png images
Fix bug #595303
2014-03-15 18:36:37 +01:00
Anthony Violo
5943045bf6 [379/906] gloverlay: add support to use RGB png images
Previously restricted to RGBA, now gloverlay can also handle a RGB image.
2014-03-15 18:36:37 +01:00
Stefan Kost
1cb459d4d5 [376/906] build: support openGLES on linux via autofoo. Partialy fixes #593786
Add a pkg-config check for opengl and if not found assume opengl-es. If user has
none of both one still get build error later on (there is no pkg-config for
opengl-es).
Add more files to EXTRA dist and build the opengles variant if selected.
Simmilar changes could be done for the winCE backend.
2014-03-15 18:36:36 +01:00
Anthony Violo
a86d07acca [375/906] gloverlay: can control image size and position
Fix bug #591591
2014-03-15 18:36:36 +01:00
Christian Schaller
48bea6b3ea [370/906] Add missing header file to Makefile.am and update spec file to actually be for this package 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
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
Sebastian Dröge
6ce63cd366 [359/906] gl: Link with -lm and fix indention 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
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
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
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
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
9584a5ddfd [318/906] rename GNUmakefile(s) to GNUmakefile(s).gnustep 2014-03-15 18:36:33 +01:00
Julien Isorce
49c903d156 [317/906] implement gstglwindow for Cocoa (MacOS and GNUstep) 2014-03-15 18:36:33 +01:00
Julien Isorce
51ee1f5976 [316/906] remove some unused HAVE_LIBPNG: libpng is a required package 2014-03-15 18:36:33 +01:00
Julien Isorce
b2143adee3 [315/906] add GNUstep build 2014-03-15 18:36:33 +01:00
Stefan Kost
8af0cb09f8 [313/906] indent: don't use tabs inside property descriptions 2014-03-15 18:36:33 +01:00
Stefan Kost
aea83171e2 [312/906] build: include stdlib.h when using free(). 2014-03-15 18:36:33 +01:00
Sebastian Dröge
c6ad604c8c [311/906] Cast GstBuffer subclasses to GstBuffer * before passing to gst_buffer_unref() 2014-03-15 18:36:33 +01:00
David Schleef
d015d5862d [310/906] Global reindent
Indent parameters:
INDENT_PARAMETERS="--braces-on-if-line \
        --case-brace-indentation0 \
        --case-indentation2 \
        --braces-after-struct-decl-line \
        --line-length80 \
        --no-tabs \
        --cuddle-else \
        --dont-line-up-parentheses \
        --honour-newlines \
        --continuation-indentation4 \
        --tab-size8 \
        --indent-level2"
2014-03-15 18:36:33 +01:00
David Schleef
4778241500 [308/906] Rename glpixbufoverlay to gloverlay 2014-03-15 18:36:32 +01:00
David Schleef
72691ce147 [307/906] Remove conditionals on gdkpixbuf 2014-03-15 18:36:32 +01:00
Julien Isorce
4d4e3ad4f9 [306/906] fix CMake build and frozen CodeBlocks build 2014-03-15 18:36:32 +01:00
Julien Isorce
e17c93723f [305/906] CMake build now checks for libpng 2014-03-15 18:36:32 +01:00
Julien Isorce
92e733dce0 [304/906] only load RGBA files.png 2014-03-15 18:36:32 +01:00
David Schleef
b6735ace5d [303/906] Add libpng dependency 2014-03-15 18:36:32 +01:00