Edward Hervey
3ab0b67318
gl/cocoa: Fix debug statements and platform
2017-12-09 19:31:34 +00:00
Edward Hervey
46034834e0
gl: Fix static build with objective-C
...
--tag=CC is needed for static build
2017-12-09 19:31:34 +00:00
Matthew Waters
894035f0d7
gl: Add EGLDisplay display subclass
2017-12-09 19:31:34 +00:00
Matthew Waters
1af7847fdc
gl/window: add a dummy window class
...
Effective for the case where we have a platform that does not
require a native window. We require a mainloop to run the GL
commands which is currently operated by GstGLWindow.
2017-12-09 19:31:34 +00:00
Matthew Waters
d55eb1e859
gl: fix undeclared symbol when building without GST_DEBUG
2017-12-09 19:31:34 +00:00
Matthew Waters
e51e0a8869
gl: fix a double unref of the query when building without X
2017-12-09 19:31:34 +00:00
Matthew Waters
312741634d
gl: silence a compiler warning about missing prototypes
2017-12-09 19:31:34 +00:00
Matthew Waters
f64292325d
gl/utils: add x11 GstContext handling
...
https://bugzilla.gnome.org/show_bug.cgi?id=726360
2017-12-09 19:31:34 +00:00
Matthew Waters
1732e378f1
gl: define GL_NUM_EXTENSIONS if not defined
2017-12-09 19:31:34 +00:00
Matthew Waters
e225af3e0d
gl: silence all the compiler warnings
2017-12-09 19:31:34 +00:00
Matthew Waters
4a18aa4b70
[906/906] filter: warn about trying to share with multiple contexts at once
2017-12-09 19:31:34 +00:00
Matthew Waters
3f5b68b072
[905/906] Add GL context sharing support for non-gstgl elements
2017-12-09 19:31:34 +00:00
Matthew Waters
344ad5fe6f
[904/906] mixer: ask for display handles on pad activation
2017-12-09 19:31:34 +00:00
Matthew Waters
f772bc1afc
[903/906] api: add GstGLPlatform to/from string
2017-12-09 19:31:34 +00:00
Matthew Waters
d6e6ac471d
[902/906] context: implement glGetStringi handling for GL core contexts/GLES3
2017-12-09 19:31:34 +00:00
Matthew Waters
6300c2ef1b
[901/906] glx: use the display handle from the global display
...
Intel drivers require the display handles be the same for context
sharing to occur. Also solves some cases of use after free of the
display when integrating with gstreamer-vaapi.
See https://bugs.freedesktop.org/show_bug.cgi?id=41736 for the intel bug.
2017-12-09 19:31:34 +00:00
Matthew Waters
07ed5dd637
[899/906] egl: warn if we resort to display handles from the window
2017-12-09 19:31:34 +00:00
Matthew Waters
e64051fd1f
[897/906] api: plugin a small memory leak
...
Found by adrien.schwartzentruber@gmail.com
2017-12-09 19:31:34 +00:00
Matthew Waters
0fb0776432
[896/906] utils: use the vtable for deleting the texture
2017-12-09 19:31:34 +00:00
Matthew Waters
4b42da6141
[895/906] context: call window_class->close last
...
We should destroy resources before closing the display connection
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725048
2017-12-09 19:31:33 +00:00
Wang Xin-yu (王昕宇)
af033ae60a
[894/906] gl: add missing G_BEGIN_DECLS/G_END_DECLS
...
https://bugzilla.gnome.org/show_bug.cgi?id=725111
2017-12-09 19:31:33 +00:00
Matthew Waters
8f29fffc2f
[893/906] x11: close both of the display's we use
...
(the comment doesn't seem to apply anymore)
https://bugzilla.gnome.org/show_bug.cgi?id=725048
2017-12-09 19:31:33 +00:00
Matthew Waters
d169aa05dc
[892/906] silence a compiler warning on older gcc versions (4.6)
2017-12-09 19:31:33 +00:00
Matthew Waters
97f6bc0bfc
[891/906] context: add support for wrapping external contexts
2017-12-09 19:31:33 +00:00
Matthew Waters
303b77eeff
[890/906] x11: add display subclass
...
GstGLDisplayX11 holds the display connection and name. Each thread requires
it's own X11 Display connection (initialised from name) due to the fact that
we do not want to call XInitThreads(). Doing so would result in segfaults
when integrating with GUI toolkits Gtk, Qt, etc.
The Display connection is for OpenGL platforms where a constant display is
required in order to share contexts (egl). In the case of a wrapped context
(added later), we do not have GstGLWindow to retreive the display from so a
'master' connection is used instead.
2017-12-09 19:31:33 +00:00
Matthew Waters
adfbafe36c
[889/906] display: add display type enum
2017-12-09 19:31:33 +00:00
Adrien SCH
d382eab15e
[888/906] correct error handling in gstgldownload.c
2017-12-09 19:31:33 +00:00
Matthew Waters
1e5851fa00
[887/906] mixer: fixup a memory leak of the context in the GLTextureUploadMeta path
...
gst_structure_get returns a reference to the object and we asked
for another with gst_object_replace.
https://bugzilla.gnome.org/show_bug.cgi?id=724816
2017-12-09 19:31:33 +00:00
Matthew Waters
3c9f5e6e5e
[886/906] fixup a memory leak of the context in the GLTextureUploadMeta path
...
gst_structure_get returns a reference to the object and we asked
for another with gst_object_replace.
https://bugzilla.gnome.org/show_bug.cgi?id=724816
2017-12-09 19:31:33 +00:00
Matthew Waters
c2e1e6a2d1
[885/906] filter: free our data
...
plugs some memory leaks
https://bugzilla.gnome.org/show_bug.cgi?id=724816
2017-12-09 19:31:33 +00:00
Matthew Waters
f292e785ce
[884/906] filter: return the pad template caps in transform_caps
...
We can transform from any input in our caps to any output.
With the following pipeline snippet:
... ! vaapidecode ! glcolorscale ! xvimagesink
GstVideoGLTextureUploadMeta was being used on both src and sink
pads causing linking to fail. This allows the usage of the meta
on either pad without affecting whether the meta is chosen on the
other pad.
2017-12-09 19:31:33 +00:00
Matthew Waters
cd53fbba24
[883/906] api: provide from_string()
...
Also s/gst_gl_api_string/gst_gl_api_to_string/g
2017-12-09 19:31:33 +00:00
Matthew Waters
6c594a0b15
[881/906] upload: restore default values for unpack_length
...
fixes elements that upload a supplementary texture (glbumber,
gldifferencematte, etc)
2017-12-09 19:31:33 +00:00
Matthew Waters
10f18a151e
[879/906] build: don't add X_CFLAGS to CFLAGS
...
It should already be included if needed inside GL_CFLAGS
2017-12-09 19:31:33 +00:00
Chris Paulson-Ellis
b6f6d585c3
[877/906] x11: Use correct format string for guintptr
...
https://bugzilla.gnome.org/show_bug.cgi?id=723537
2017-12-09 19:31:33 +00:00
Matthew Waters
d233bb66a9
[876/906] glmem: use GstVideoInfo for format configuration
...
Allows use of strides
2017-12-09 19:31:33 +00:00
Matthew Waters
d84bb0b3b2
[875/906] upload: support for arbitrary strides
...
Using GL_UNPACK_ALIGNMENT for GLES2 and GL_UNPACK_ROW_LENGTH for everything else
2017-12-09 19:31:33 +00:00
Matthew Waters
8daa7693cf
[874/906] filter: implement draw_texture for GLES2
...
(taken from gleffects)
2017-12-09 19:31:33 +00:00
Matthew Waters
2eb7938db9
[873/906] upload: use GstVideoInfo for choosing the format
2017-12-09 19:31:33 +00:00
Matthew Waters
a9f6679e90
[872/906] upload: consolidate data _fill
2017-12-09 19:31:33 +00:00
Matthew Waters
bc8b4085b5
[871/906] upload: fix texture scaling for YUY2/UYVY with GLES2
...
Another artifact from the transition to GL_TEXTURE_2D
2017-12-09 19:31:33 +00:00
Matthew Waters
1f4d041d5b
[870/906] upload: remove superflous g_mutex_init
2017-12-09 19:31:33 +00:00
Matthew Waters
970fbacf96
[869/906] tests: add some upload tests
2017-12-09 19:31:33 +00:00
Matthew Waters
8d67249633
[868/906] upload: fix compilation for GLES2
2017-12-09 19:31:33 +00:00
Wang Xin-yu (王昕宇)
5168d86d9e
[867/906] glupload: Add GRAY8/GRAY16LE/BE upload support to glimagesink
...
the 16bit data is uploaded as LUMINANCE_ALPHA, then expanded, composed
in shader. value weight is a little complicate, high byte weight is
255*256/65535 (denormalize to [0~255] ,shift to high byte,then normalize
to [0~1]), low byte weight is 255/65535(similar)
https://bugzilla.gnome.org/show_bug.cgi?id=722670
2017-12-09 19:31:33 +00:00
Matthew Waters
95833db905
[866/906] upload: update some docs
2017-12-09 19:31:33 +00:00
Matthew Waters
89a203abe3
[865/906] glmem: report successful copy to the caller
2017-12-09 19:31:33 +00:00
Matthew Waters
253fe220df
[863/906] window: hold a ref to our GstGLDisplay
2017-12-09 19:31:33 +00:00
Matthew Waters
2026f60879
[862/906] window: remove set_need_lock
...
No-one is using it. The only code that did was the x11 one which
doesn't need it anymore.
2017-12-09 19:31:33 +00:00
Wang Xin-yu (王昕宇)
0f4c10aed9
[861/906] glprototypes: Add missing glScalef declare
...
https://bugzilla.gnome.org/show_bug.cgi?id=721903
2017-12-09 19:31:33 +00:00
Matthew Waters
8cc37b903c
[860/906] docs: misc updates
2017-12-09 19:31:32 +00:00
Matthew Waters
dadce598ba
[859/906] window: provide some documetation
2017-12-09 19:31:32 +00:00
Matthew Waters
148607f6da
[858/906] glmem: update the docs
2017-12-09 19:31:32 +00:00
Matthew Waters
54923d1909
[857/906] display: document the new GstContext api
2017-12-09 19:31:32 +00:00
Matthew Waters
d6bdcbe751
[856/906] context: document it
2017-12-09 19:31:32 +00:00
Matthew Waters
1e02438715
[855/906] upload: add support for GstVideoGLTextureUploadMeta
2017-12-09 19:31:32 +00:00
Matthew Waters
2623734d19
[854/906] use the allocation query to propogate GstGLContext
...
uses the GstVideoGLTextureUploadMeta api type for the query
2017-12-09 19:31:32 +00:00
Matthew Waters
84425ad43d
[853/906] display: remove _{set,get}_context
...
A GstGLDisplay doesn't need a GstGLContext and its use
was cause a reference cycle
2017-12-09 19:31:32 +00:00
Matthew Waters
64fad7a6d2
[852/906] use GstContext for GstGLDisplay propogation
...
implements the hooks required in GstElement::set_context and the context query
2017-12-09 19:31:32 +00:00
Matthew Waters
f15206082a
[850/906] glupload: Remove texture scaling artifacts from the TEXTURE_RECTANGLE -> TEXTURE_2D transition
...
fixes the funky colours in some of the yuv formats
https://bugzilla.gnome.org/show_bug.cgi?id=721155
2017-12-09 19:31:32 +00:00
Matthew Waters
689e722dfa
[848/906] filter: a little code cleanup
2017-12-09 19:31:32 +00:00
Matthew Waters
ad315254e9
[847/906] mixer: unmap the video frames we map
...
plugs a memory leak
2017-12-09 19:31:32 +00:00
Matthew Waters
5ee09b36fa
[846/906] mixer: handle 0/1 framerate better in caps
2017-12-09 19:31:32 +00:00
Matthew Waters
4b8019b12c
[845/906] filter: handle capsfeatures properly
2017-12-09 19:31:32 +00:00
Matthew Waters
2cb2a3951b
[844/906] mixer: give access to the pads at render time
...
allows us to move the video frame mapping somewhere else
2017-12-09 19:31:32 +00:00
Matthew Waters
36c62b32e5
[843/906] memory: provide copy_into_texture
2017-12-09 19:31:32 +00:00
Tim-Philipp Müller
b0999fbc03
[842/906] Fix gstglconfig.h-related 'make distcheck' issues
...
Fix srcdir vs. builddir issue in docs and 'files left after
disclean' issue for gstglconfig.h
2017-12-09 19:31:32 +00:00
Julien Isorce
e42b5bc985
[841/906] osx: allow x11/glx backend and set default runtime to cocoa/nsgl
...
https://bugzilla.gnome.org/show_bug.cgi?id=719757
2017-12-09 19:31:32 +00:00
Julien Isorce
be87f6096b
[839/906] cocoa: allow to call set_window_handle before to create glcontext
...
So that it actually make cocoa videooverlay example work again.
Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=719758
2017-12-09 19:31:32 +00:00
Matthew Waters
efa22442a9
[838/906] gl: Use GL_TEXTURE_2D instead of GL_TEXTURE_RECTANGLE
...
We create our textures (in Desktop GL) with GL_TEXTURE_RECTANGLE,
vaapi attempts to bind our texture to GL_TEXTURE_2D which throws a
GL_INVALID_OPERATION error and as thus, no video.
Also, by moving exclusively to GL_TEXTURE_2D and the npot extension
we also remove a difference between the Desktop GL and GLES2 code.
https://bugzilla.gnome.org/show_bug.cgi?id=712287
2017-12-09 19:31:32 +00:00
Matthieu Bouron
32265d7e4e
[837/906] cocoa: resize OpenGL view size each time the window is resized
...
Fixes glitches that can appear when the OpenGL view has not been resized
after a window resize.
https://bugzilla.gnome.org/show_bug.cgi?id=711672
2017-12-09 19:31:32 +00:00
Matthieu Bouron
cc0b1f3e05
[836/906] cocoa: only use GSRegisterCurrentThread with GNUStep environment
2017-12-09 19:31:32 +00:00
Julien Isorce
6a5bd364a4
[835/906] gstglwindow: remove unused fields
2017-12-09 19:31:32 +00:00
Julien Isorce
4d6de2ce1b
[834/906] gstglwindow: clear mutex
2017-12-09 19:31:32 +00:00
Julien Isorce
42f1d66bc6
[833/906] gstglcontext: initialize window to NULL
2017-12-09 19:31:32 +00:00
Julien Isorce
0a2787863b
[832/906] x11: ignore Expose events not initiated by gst_gl_window_draw
2017-12-09 19:31:32 +00:00
Julien Isorce
66d7d4712e
[831/906] glimagesink: avoid to overload the drawer if already drawing
...
Especially if the application calls gst_video_overlay_expose a lot
2017-12-09 19:31:32 +00:00
Matthew Waters
7b7e7bb8d0
[829/906] mixer: error out properly on flushing
2017-12-09 19:31:32 +00:00
Matthew Waters
ac0db99c94
[828/906] context: refcount the display
2017-12-09 19:31:32 +00:00
Matthew Waters
b91eb6b557
[827/906] mixer: don't unref the query in the default case
...
The element/application performing the query is responsible for the
de/allocation
2017-12-09 19:31:32 +00:00
Matthew Waters
bf610e210a
[826/906] upload: free our mutex
2017-12-09 19:31:32 +00:00
Julien Isorce
0da88c6516
[825/906] glwindow_x11: check if the loop exists
...
It happens when calling set_window_handle before to reach GST_STATE_READY.
In this case the parent is set when creating the internal window.
2017-12-09 19:31:32 +00:00
Matthew Waters
266ffc48be
[824/906] android: Build fixes
...
https://bugzilla.gnome.org/show_bug.cgi?id=709786
2017-12-09 19:31:31 +00:00
Julien Isorce
ab5a3e310d
[823/906] wayland_egl: make the wayland backend actually work on Raspberry Pi
...
Fix resizing and can now move the window
2017-12-09 19:31:31 +00:00
Julien Isorce
64a05da4fe
[822/906] gstglcontext_egl: avoid non working EGL confs on rpi/wayland
2017-12-09 19:31:31 +00:00
Julien Isorce
6e732b0408
[821/906] tests: fix test_share on GLESv2
2017-12-09 19:31:31 +00:00
Julien Isorce
e1eb30005c
[820/906] gstglwindow: if available use wayland instead dispmanx on rpi
2017-12-09 19:31:31 +00:00
Matthew Waters
56384a0db3
[819/906] make gen_texture/del_texture threadsafe
...
Use stack allocated instead of static variables
Conflicts:
gst-libs/gst/gl/gstglutils.c
2017-12-09 19:31:31 +00:00
Matthew Waters
3b1ec77cf8
[818/906] window: add send_message_async vmethod
...
- provide a default synchronous send_message
- make context creation threadsafe again
2017-12-09 19:31:31 +00:00
Matthew Waters
2a937dd96a
[817/906] make the state change test pass
2017-12-09 19:31:31 +00:00
Matthew Waters
f7c8658464
[816/906] x11: fix make check segfault
2017-12-09 19:31:31 +00:00
Matthew Waters
4bec88ea28
[815/906] fix some refcount errors
2017-12-09 19:31:31 +00:00
Matthew Waters
a44517a1e8
[814/906] mixer: timestamp buffers
2017-12-09 19:31:31 +00:00
Matthew Waters
fa02b04292
[813/906] unref the pool on shutdown
2017-12-09 19:31:31 +00:00
Matthew Waters
711ad485b2
[812/906] move the GL vtable from GstGLDisplay to GstGLContext
...
Conflicts:
tests/check/libs/gstglcontext.c
2017-12-09 19:31:31 +00:00
Julien Isorce
b54293266d
[810/906] gstglutils: use gl_vtable for glDeleteTextures
2017-12-09 19:31:31 +00:00
Matthew Waters
704f231343
[808/906] x11: remove dead code
2017-12-09 19:31:31 +00:00
Matthew Waters
d9cc31aca0
[807/906] context: Move some window error enums to context
2017-12-09 19:31:31 +00:00
Matthew Waters
57c32baab7
[806/906] egl: doesn't require the EGLConfig from the other context
...
libEGL should give us the same or similar EGLConfig from the
EGLDisplay we have.
2017-12-09 19:31:31 +00:00
Matthew Waters
0f8fc0881a
[805/906] glfilter: rename external-opengl-context prop to other-context
...
It now requires a GstGLContext instead of a handle
2017-12-09 19:31:31 +00:00