Matthew Waters
9b6be35222
glbasefilter: always call gl_start when not called already
...
Fixes elements transitioning out of passthrough mode using GL resources that
hadn'e been allocated yet.
2016-02-02 16:19:54 +11:00
Matthew Waters
10e85bfdc0
glcolorconvert: fix RGB,rectangle->planar YUV conversion
...
Converting to GRAY is no fun. Another case of normalized vs unnormalized
texture coordinates.
2016-02-02 15:29:03 +11:00
Matthew Waters
cb08d13e45
glcolorconvert: fix YUY2/UYVY,rectangle->RGB conversion
...
1.0 / width does not offset by one pixel in rectangular textures (which use
unnormalized coordinates).
Provide the actual pixel offset as a uniform to the shader.
2016-02-02 14:55:10 +11:00
Matthew Waters
914da9f746
glcolorconvert: perform better negotiation
...
1. Correctly describe what we can caps we can transform to/from.
i.e. no YUV->YUV or GRAY->YUV or YUV->GRAY (except for passthrough).
2. Prefer similar formats and ignore incompatible formats on fixation.
2016-02-02 13:27:06 +11:00
Julien Isorce
f1c053f644
gstglwindow: initialize navigation_loop to NULL
...
Useful when gst_gl_window.c::gst_gl_window_new is not used.
This is the case when using a custom GstGLWindow.
(ex: GstGLWindowGPUProcess from Chromium)
2016-02-01 13:59:22 +00:00
Tim-Philipp Müller
d11385d167
gl: eagl: fix build
...
gstglcontext_eagl.m:238:45: error: too few arguments to function call,
expected at least 4, have 3
2016-02-01 09:26:37 +00:00
Matthew Waters
96b9666d59
gl/eagl: try getting a gles3 context
...
Fallback to a gles2 context if that fails
2016-02-01 14:26:37 +11:00
Wang Xin-yu (王昕宇)
0891b90111
glprototypes: fix parameter type of glGenBuffers
...
The number of buffers should be GLsizei instead of GLuint.
https://bugzilla.gnome.org/show_bug.cgi?id=761272
2016-01-29 14:31:21 +11:00
Matthew Waters
406fe90331
glcontext: back out unintended lost_context changes
2016-01-29 12:45:57 +11:00
Matthew Waters
49199b03ac
egl: implement selecting opengl3 contexts
2016-01-29 11:51:58 +11:00
Matthew Waters
f524419315
gl/egl: pass the error value to get_error_string()
2016-01-29 11:51:58 +11:00
Matthew Waters
8c549633ee
gl: move control binding proxy implementation from glvideomixer
...
Other elements may need to use it's functionality
2016-01-27 20:01:25 +11:00
Holger Kaelberer
a2376d00cf
glwindow: Fix android build
...
https://bugzilla.gnome.org/show_bug.cgi?id=760972
2016-01-22 09:59:28 +02:00
Tim-Philipp Müller
e317a350bc
libs: g-i: fix init section to avoid compiler warnings
...
..GstPlayer-1.0.c: In function ‘main’:
..GstPlayer-1.0.c:587:3: warning: implicit declaration of function ‘gst_init’
https://bugzilla.gnome.org/show_bug.cgi?id=760090
2016-01-19 08:40:35 +00:00
Sebastian Dröge
3184175dae
glfilter: First make caps writable in fixate_caps(), then truncate them
...
Truncating requires writable caps.
2016-01-16 17:14:54 +02:00
Sebastian Dröge
c08c795bb4
glcolorconvert: Caps passed to fixate_caps() are not owned by us and guaranteed to be fixed
...
So don't try to fixate them, which takes ownership and steals them from
basetransform.
https://bugzilla.gnome.org/show_bug.cgi?id=760696
2016-01-16 17:12:29 +02:00
Sebastian Dröge
2018167ee2
Revert "glpool: fix caps refcount issue"
...
This reverts commit 3bdcdedfa0
.
gst_caps_replace() takes a new reference already, if there is a problem then
it is elsewhere. And there are a few problems, see
https://bugzilla.gnome.org/show_bug.cgi?id=760696
2016-01-16 16:55:42 +02:00
Matthew Waters
a8b4c6c4ff
glquery: provide compat definition for GL_QUERY_RESULT
...
e.g. android doesn't have it
While we're here move a state specific assertion after the supported check.
Removes an assertion on GLES
2016-01-15 17:00:55 +11:00
Matthew Waters
6b6b591370
gl: add compatibility definition of GLint64
...
e.g. anrdoid doesn't have it
2016-01-15 16:07:27 +11:00
Matthew Waters
3bdcdedfa0
glpool: fix caps refcount issue
...
The caps are from an allocation query which are transfer none but were being
treated as transfer full.
2016-01-15 14:00:56 +11:00
Matthew Waters
eb7ac03a91
glmemory: log the time for glTexSubImage/glReadPixels
2016-01-15 13:21:56 +11:00
Matthew Waters
5437874596
gl: add a gstglquery object for arbitrary GL queries
...
Currently only GL_TIME_ELAPSED and GL_TIMESTAMP are supported
2016-01-15 13:21:56 +11:00
Matthew Waters
2ef124dac6
gldebug: implement a delayed debug system
...
The messages are stored by gst_gl_async_debug_store_log_msg() and output later
by a corresponding store(), output() or an unset()/free().
Some wrapper macros are provided to avoid callers explicitly using __FILE__,
GST_FUNCTION and __LINE__
2016-01-15 12:19:02 +11:00
Matthew Waters
ad2f0cf619
gldebug: use gst_info_vasprintf in insert_debug_marker()
...
Allows expansion of GST_PTR_FORMAT and GST_SEGMENT_FORMAT arguments.
2016-01-15 12:19:02 +11:00
Matthew Waters
8e77cf1030
glfilter: recreate the fbo on caps changes
...
The width/height may change which requires recreating the depth buffer.
2016-01-15 12:05:03 +11:00
Matthew Waters
3e16a6a2e7
glbasefilter: add a class function on set_caps (from GL)
...
This is simply a convenience to avoid duplicating the thread marshalling on
set_caps.
2016-01-15 12:05:03 +11:00
Matthew Waters
82bb5d4e22
gl/x11/navigation: add button press to the selected event mask
...
Otherwise we won't get the button press events and GstNavigation fails.
2016-01-14 17:52:23 +11:00
Alessandro Decina
bef0a46c5d
glcolorconvert: try harder to passthrough
...
This makes a pipeline like:
... ! video/x-raw(memory:GLMemory),format=UYVY ! glcolorconvert !
video/x-raw(memory:GLMemory),format={UYVY, NV12} ! ...
passthrough instead of converting UYVY => NV12. The conversion would happen
before this change since the element (and basetransform) transform the src caps
to format={NV12, UYVY} (since NV12 comes first in the glcolorconvert:src
template) and then the default caps fixate func would fixate to NV12. Blah.
Also there's no need to intersect against the template caps in ::transform_caps
since basetransform does that right after calling the vfunc.
2016-01-14 16:38:07 +11:00
Matthew Waters
0be9c9f960
gldebug: add a specific category for the debug spam from the driver
2016-01-13 12:00:03 +11:00
Matthew Waters
04ec728722
glbasememory: Free the actual memory object when requested
...
Otherwise we are leaking ~400B on each GstMemory allocation.
Freeing in the base class matches the GObject semantics.
2016-01-11 20:40:39 +11:00
Matthew Waters
3423e108d4
glmemorypbo: don't double read pixels
...
The optimistic download_transfer was not setting the required flag to not
perform glReadPixels on subsequent map (READ). resulting in glReadPixels
happening twice.
2016-01-11 20:40:39 +11:00
Matthew Waters
e8a251db4b
glmemory: expose gst_gl_memory_texsubimage
...
Removes extremely similar code from glmemorypbo.
2016-01-11 20:40:39 +11:00
Matthew Waters
0ebd719644
glfeature add a specific debug category
...
Saves having to trawl through the 'default' category when function retrieval
goes wrong.
2016-01-11 20:40:39 +11:00
Matthew Waters
11fb4fff80
glsyncmeta: only flush with a shared context
...
The wait code will flush for us for single context pipelines.
2016-01-07 14:11:13 +11:00
Matthew Waters
2aadd7eaf9
glcontext: implement checking whether a context has been shared
...
Some operations are unnecessary when running with only a single GL
context.
e.g. glFlush when setting a fence object as the flush happens on wait.
API: gst_gl_context_is_shared
2016-01-07 14:11:13 +11:00
Matthew Waters
519280204c
glcolorconvert: implement usage of a buffer pool
...
Saves unnecessary glGenTextures and glDeleteTextures which may have a
non-trivial cost.
2016-01-06 16:48:33 +11:00
Matthew Waters
37264a86e1
glbasememory: fix copying GstGLAllocationParams
...
Fixes a GST_IS_GL_CONTEXT critical
2016-01-06 16:48:33 +11:00
Matthew Waters
8d34c91855
glmemorypbo: remove unused code
...
https://bugzilla.gnome.org/show_bug.cgi?id=759679
2016-01-06 16:48:33 +11:00
Matthew Waters
479dcdc3b4
glupload: always add texture-target field to GL caps
...
1. Various elements/base classes only perform a subset check on accept-caps
2. Some GL elements have texture-target in their pad template
3. When checking subsets, only the caps to check are allowed to contain extra
fields. If the 'template' caps have extra fields, the subset fails.
Thus without texture-target on the caps, various accept-caps implementations
were failing.
Also, add some convenience functions for setting and retrieving
texture targets to/from GValue.
https://bugzilla.gnome.org/show_bug.cgi?id=759860
2016-01-05 13:28:19 +11:00
Matthew Waters
65f03061ad
glupload: passthrough composition caps features
...
Don't unconditionally add it to any and all caps transformations.
https://bugzilla.gnome.org/show_bug.cgi?id=759860
2016-01-05 13:28:19 +11:00
Jan Schmidt
40b0736dfd
glviewconvert: Fix stereoscopic handling w/ texture-target
...
The addition of texture-target negotiation broke stereoscopic
handling when not in passthrough mode, so fix that.
2016-01-04 01:04:23 +11:00
Matthew Waters
4717b48a03
glmemorypbo: fix wrapping data on GL 2.1
...
GL 2.1 only supports pbo upload.
The wrapped data pointer was only being set on the pbo memory and on the
glmemory so when a download was requested (in GL 2.1), glmemory was
allocating a new data pointer and thus not returning the wrapped data.
2015-12-30 12:16:29 +11:00
Matthew Waters
49291bc927
glmemorypbo: only create a pbo memory if the context actually supports it
...
e.g. GL <= 2.0 does not support pbo usage and GL 2.1 only supports pbo upload.
2015-12-30 12:16:29 +11:00
Matthew Waters
6917b3b35a
glmemory: small code reformat
...
makes the alloc_params selections fit on a single line.
2015-12-30 12:16:29 +11:00
Sebastian Dröge
aaa660ac9d
glbasememory: Remove bogus NULL check
...
CID 1346534
2015-12-29 18:01:30 +02:00
Sebastian Dröge
22a0914cce
gl: Add \0 terminators for the Apple sync extension
...
Otherwise GL initialization might check for extensions forever and never finishes.
2015-12-28 15:53:59 +02:00
Sebastian Dröge
3d0257e1b6
glcontext: Add some debug output when the GL thread is actually running
2015-12-28 14:41:59 +02:00
Vineeth TM
572b9788f5
glbufferpool: Fix build error
...
When GST_GL_HAVE_PLATFORM_EGL is not defined, then info variable
will not be used and this results in build error
https://bugzilla.gnome.org/show_bug.cgi?id=759913
2015-12-27 21:54:50 -05:00
Sebastian Dröge
c4e5423f3b
glmemorypbo: Comment out unused functions to fix compilation with clang
...
It's not clear if these are intentionally unused or the code should be
changed, but this fixes compilation for the time being at least.
See https://bugzilla.gnome.org/show_bug.cgi?id=759679
2015-12-23 09:51:05 +01:00
Sebastian Dröge
626bcccff9
glcontext: Signal context creation from inside the context loop and use g_thread_join() instead of a custom condition variable
...
Also protect against spurious condition variable wakeups during context
creation.
2015-12-21 12:16:35 +01:00