Sebastian Dröge
8f5faa3872
gl/cocoa: Only use convertRectToBacking on OSX >= 10.7
...
It does not exist before and older versions also don't have
support for HiDPI displays anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=740201
2017-12-09 19:31:50 +00:00
Sebastian Dröge
d70f6a9b5e
gl: Use numeric OSX version instead of the macro
...
The macro is not defined on older OSX versions and evaluates to 0.
https://bugzilla.gnome.org/show_bug.cgi?id=740201
2017-12-09 19:31:50 +00:00
Sebastian Dröge
3fe5be7c9a
gl/cocoa: Don't override the application delegate
...
Otherwise interesting things will happen in Cocoa applications, like
infinite event loops that block the NSApplication loop forever.
This was only needed for GNUStep and thus can safely be removed now.
2017-12-09 19:31:50 +00:00
Sebastian Dröge
673b0190af
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
2017-12-09 19:31:50 +00:00
Hyunjun Ko
db6ea1b3bd
gl: Correct invalid comment text
2017-12-09 19:31:49 +00:00
Julien Isorce
af59b771fd
gl: do not raise a critical msg if the backend does not handle window events
...
Fix "assertion 'window_class->handle_events != NULL' failed"
if not using a X11 window.
2017-12-09 19:31:49 +00:00
Matthew Waters
af9b73043e
gl: remove the width/height fields from the caps to support frame resizing
...
It was previously only occuring with sysmem caps features
https://bugzilla.gnome.org/show_bug.cgi?id=739334
2017-12-09 19:31:49 +00:00
Sebastian Dröge
90022c451c
gstglconfig: Put gstglconfig.h into $(libdir)/gstreamer-1.0/include
...
It's architecture dependent and should not be placed into the include
directory as the assumption is that all those headers are architecture
independent.
https://bugzilla.gnome.org/show_bug.cgi?id=739767
2017-12-09 19:31:49 +00:00
Matthew Waters
d738b78229
glutils: only attempt getting the app context when we don't already have a display
...
avoids querying/messaging the world on each frame
2017-12-09 19:31:49 +00:00
Matthew Waters
e2f61d20a2
glcontext: fail context creation if glGetString returns NULL
2017-12-09 19:31:49 +00:00
Lubosz Sarnecki
64dd17bde6
glimagesink: implement gst_video_overlay_handle_events
...
https://bugzilla.gnome.org/show_bug.cgi?id=736035
2017-12-09 19:31:49 +00:00
Julien Isorce
f1365f1051
gl/cocoa: use NSAutoreleasePool to free resize data
...
Otherwise when resizing the window you will also get messages like:
class NSConcreteMapTable autoreleased with no pool in place - just leaking
class NSConcreteValue autoreleased with no pool in place - just leaking
class NSConcreteValue autoreleased with no pool in place - just leaking
class __NSCFDictionary autoreleased with no pool in place - just leaking
2017-12-09 19:31:49 +00:00
Julien Isorce
ef707ee9d5
gl/cocoa: include gl3.h to have GL_CONTEXT_PROFILE_MASK
2017-12-09 19:31:49 +00:00
Julien Isorce
f44b430bc7
gl/cocoa: make sure to turn on frame rectangle changes notifications
...
Default value of property postsFrameChangedNotifications is YES
but it is worth to explicitly enable it.
2017-12-09 19:31:49 +00:00
Julien Isorce
4a736caded
gl/cocoa: fix uncaught exception 'unrecognized selector sent to instance'
...
Need to set the ':' as the reshape method now takes one parameter.
For the story, the GstGLNSView was previously inheriting from
NSOpenGLView which has a reshape function without any parameter.
Now the GstGLNSView inherits from NSView and we re-use the reshape
function manually.
2017-12-09 19:31:49 +00:00
Julien Isorce
a581d479ff
gl/cocoa: fix compiler warning
...
Use the reshape function after being defined. The other way
would have been to declare the reshape function in the header.
gstglwindow_cocoa.m: In function '-[GstGLNSView drawRect:]':
gstglwindow_cocoa.m:555: warning: 'GstGLNSView' may not respond to '-reshape'
gstglwindow_cocoa.m:555: warning: (Messages without a matching method signature
gstglwindow_cocoa.m:555: warning: will be assumed to return 'id' and accept
gstglwindow_cocoa.m:555: warning: '...' as arguments.)
2017-12-09 19:31:49 +00:00
Tim-Philipp Müller
653c04b121
gl: fix Since marker for gst_gl_window_run_navigation()
2017-12-09 19:31:49 +00:00
Luis de Bethencourt
f16b75aa49
glshader: Fix memory leak
...
Memory is only freed in the TRUE clause of the if conditional. Free in the else
clause as well.
Also, consolidate g_malloc + sprintf into a g_strdup_printf().
CID #1212171
https://bugzilla.gnome.org/show_bug.cgi?id=739368
2017-12-09 19:31:49 +00:00
Luis de Bethencourt
eabcf66f2f
glcolorconvert: fix comments that confuse gtk-doc
...
GTK-Doc uses a special syntax for code documentation. A multiline comment that
starts with an additional '*' marks a documentation block that will be processed
by the GTK-Doc tools. So GTK-Doc is confused if a comment block starts with that
additional '*' but isn't meant to be processed. Removing this additional '*'.
https://bugzilla.gnome.org/show_bug.cgi?id=739444
2017-12-09 19:31:49 +00:00
Matthew Waters
35e9b5ab8b
gl: sprinkle some Since markers
2017-12-09 19:31:49 +00:00
Matthew Waters
6811c39ff9
gl/examples: update for other-context property removal
2017-12-09 19:31:49 +00:00
Matthew Waters
7d97a35139
glcontext: add more functionality to wrapped contexts
...
Implements get_current_context() and get_proc_address() for wrapped
contexts.
2017-12-09 19:31:49 +00:00
Matthew Waters
366eaea6d2
glshader: advertise the default vertex and fragment shaders on desktop GL
2017-12-09 19:31:49 +00:00
Matthew Waters
59e4a039c9
glfilter: get the config from the correct pool
2017-12-09 19:31:48 +00:00
Matthew Waters
cc2e0a7288
glfilter: avoid uninitialized variable size when chaining multiple glfilters
...
https://bugzilla.gnome.org/show_bug.cgi?id=739277
2017-12-09 19:31:48 +00:00
Matthew Waters
f1dddf4f6b
glfilter: gst-indent file
2017-12-09 19:31:48 +00:00
Matthew Waters
be5d0d81e4
glcontext: add api for retreiving the current context and api
...
that is current in the calling thread.
2017-12-09 19:31:48 +00:00
Matthew Waters
91a7bd0d9a
glprototypes: add vertex attribute array definitions
2017-12-09 19:31:48 +00:00
Matthew Waters
62e3c40d97
gl: propogate other-context using GstContext
2017-12-09 19:31:48 +00:00
Sebastian Dröge
3d7a6c8db6
gl/cocoa: Fix compiler warning
...
gstglwindow_cocoa.m: In function '-[GstGLNSView drawRect:]':
gstglwindow_cocoa.m:555: warning: 'GstGLNSView' may not respond to '-reshape'
gstglwindow_cocoa.m:555: warning: (Messages without a matching method signature
gstglwindow_cocoa.m:555: warning: will be assumed to return 'id' and accept
gstglwindow_cocoa.m:555: warning: '...' as arguments.)
2017-12-09 19:31:48 +00:00
Matthew Waters
0806de5c75
glbufferpool: add the GstVideoGLTextureUploadMeta buffer pool option
2017-12-09 19:31:48 +00:00
Wang Xin-yu (王昕宇)
77682a51e6
glcolorconvert: support RGB16/BGR16 video format upload
...
https://bugzilla.gnome.org/show_bug.cgi?id=738842
2017-12-09 19:31:48 +00:00
Brion Vibber
02a0b92d9d
gl/cocoa: Fix for building 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.
https://bugzilla.gnome.org/show_bug.cgi?id=738740
2017-12-09 19:31:48 +00:00
Matthew Waters
6663967994
glfilter: add uploaded_buffer field
2017-12-09 19:31:48 +00:00
Sebastian Dröge
6d273084eb
gl/cocoa: Add support for HiDPI displays
...
Without this our GL surface would be upscaled after rendering
by Cocoa, which would reduce image quality.
2017-12-09 19:31:48 +00:00
Matthew Waters
3439402164
glcolorconvert: output why we cannot convert a buffer
2017-12-09 19:31:48 +00:00
Matthew Waters
df6967c274
glcolorconvert: fix planar YUV download
...
- sample the u and v planes properly
- output the correctly scaled u and v planes for different chroma block sizes
2017-12-09 19:31:48 +00:00
Matthew Waters
a771b40474
glcolorconvert: fix UYVY download green screen
2017-12-09 19:31:47 +00:00
Matthew Waters
ea711807d8
glcolrconvert: fix YUY2 download
...
- The shader was outputing the wrong values compared with raw
videotestsrc.
- deal with the texture edge properly.
- properly sample the 2x1 rectangle for the u and v values
- don't double sample the y value
2017-12-09 19:31:47 +00:00
Sebastian Dröge
435810b238
gl/cocoa: Always update our viewport if Cocoa tells us something has changed
...
The visible rect and bounds might be the same as before, but Cocoa
might've changed our viewport without us nothing. This happens if
you hide the view and show it again.
2017-12-09 19:31:47 +00:00
Sebastian Dröge
b44798d549
gl/cocoa: Handle NSView::renewGState() properly
...
Don't update the screen until we redraw, this prevents flickering during
scrolling, clipping, resizing, etc
2017-12-09 19:31:47 +00:00
Matthew Waters
e6bd70d580
glcolorconvert: convert xRGB into ARGB properly
...
The alpha channel might not be the last component so check which one
it is in and clobber that one instead.
2017-12-09 19:31:47 +00:00
Matthew Waters
5c7b5e0210
glmemory: unset the opposite corresponding transfer flags when mapped with write
...
fixes consistency with consecutive gst_memory_map()'s with
flags & GST_MAP_WRITE
2017-12-09 19:31:47 +00:00
Sebastian Dröge
b1a5ae7c0d
gl/cocoa: Update viewport according to the current clipping
...
We have to update the GL viewport if the NSView is only partially
visible. Otherwise the content of the frame will be visibly offset.
2017-12-09 19:31:47 +00:00
Sebastian Dröge
9ff86a3c54
gl/cocoa: Improve the NSApplication initialization
...
This is only for non-Cocoa apps but previously caused a 2 second
waiting during startup for Cocoa apps. This is unacceptable.
Instead we now check a bit more extensive if something actually
runs on the GLib default main context, and if not don't even
bother waiting for something to happen from there.
2017-12-09 19:31:47 +00:00
Sebastian Dröge
7cf214796a
gl/cocoa: NSView::drawRect() should call into reshape too
...
We a) need to render again because part of the window was
obscured and b) might need to reshape because of clipping
changes.
2017-12-09 19:31:47 +00:00
Sebastian Dröge
32b23a340e
gl/cocoa: Call UI related API from the application main thread
2017-12-09 19:31:47 +00:00
Sebastian Dröge
02b3e26854
gl/cocoa: Switch to a plain NSView subclass instead of NSOpenGLView
...
We don't and can't use NSOpenGLView as it's supposed to be used and
it gets into our way by being to clever in various situations.
2017-12-09 19:31:47 +00:00
Edward Hervey
ef00d85f16
glcontext: Initialize variable
...
Avoids the following warning:
gstglcontext.c:647:58: error: 'prev' may be used uninitialized in
this function [-Werror=maybe-uninitialized]
2017-12-09 19:31:47 +00:00
Matthew Waters
ca476f03a8
glcontext: fixup error in sharegroup comment
2017-12-09 19:31:47 +00:00
Matthew Waters
817417c005
glcontext: detect the sharegroup case where the context are in different chains
...
In the end they will lead to the same root context in the tree so check that
for equality.
2017-12-09 19:31:47 +00:00
Matthew Waters
80be2d046b
glfilter: silence a warning with empty input caps
...
discovered with the doublecube example
gst_caps_get_features: assertion 'index < GST_CAPS_LEN (caps)' failed
2017-12-09 19:31:47 +00:00
Sebastian Dröge
ec0d04acec
gl/cocoa: Switch from our custom main loop to a GMainLoop
...
Simplifies code a lot and makes it more similar to the other backends.
2017-12-09 19:31:46 +00:00
Sebastian Dröge
6c8f7f9dd5
gl/cocoa: Clear the current GL context when it should happen
2017-12-09 19:31:46 +00:00
Matthew Waters
ae919f4475
gl: download whenever we have sysmem capsfeatures
...
Otherwise we could pass on a RGBA formatted buffer and downstream would
misinterpret that as some other video format.
Fixes pipelines of the form
gleffects ! tee ! xvimagesink
2017-12-09 19:31:46 +00:00
Matthew Waters
ccf8f014f0
glupload: fallback to upload if contexts cannot share GL resources
...
Fixes pipelines of the form
gleffects ! tee ! glimagesink
as tee does not pass on the allocation query.
2017-12-09 19:31:46 +00:00
Matthew Waters
14630fac38
glcontext: add gst_gl_context_can_share
...
Which determines whether two GstGLContext's can share sharable
OpenGL resources.
2017-12-09 19:31:46 +00:00
Sebastian Dröge
9dd4f40ad6
gl: Let gst_gl_context_get_thread() return a new reference to the GThread
...
Otherwise it might go away in the meantime and the caller has some random pointer.
2017-12-09 19:31:46 +00:00
Anuj Jaiswal
e9e84da30a
gl: consecutive return, break statement
...
Signed-off-by: Anuj Jaiswal <anuj.jaiswal@samsung.com>
https://bugzilla.gnome.org/show_bug.cgi?id=736939
2017-12-09 19:31:46 +00:00
Matthew Waters
678e7b49b2
gl/debug: desktop GL does not have the KHR suffixes
2017-12-09 19:31:46 +00:00
Tim-Philipp Müller
9cccbb315c
gl: add since markers for new API
2017-12-09 19:31:46 +00:00
Matthew Waters
a793bda9b4
glmemory: add debug line for freeing textures
2017-12-09 19:31:46 +00:00
Matthew Waters
6491af9ffc
glupload: provide the output buffer that is rendered into
...
Allows callers to properly reference count the buffers used for
rendering.
Fixes a redraw race in glimagesink where the previous buffer
(the one used for redraw operations) is freed as soon as the next
buffer is uploaded.
1. glimagesink uploads in _prepare() to texture n
1.1 glupload holds buffer n
2. glimagesink _render()s texture n
3. glimagesink uploads texture n+1
3.1 glupload free previous buffer which deletes texture n
3.2 glupload holds buffer n+1
4. glwindow resize/expose
5. glimagesink redraws with texture n
The race is that the buffer n (the one used for redrawing) is freed as soon as
the buffer n+1 arrives. There could be any amount of time and number of
redraws between this event and when buffer n+1 is actually rendered and thus
replaces buffer n as the redraw source.
https://bugzilla.gnome.org/show_bug.cgi?id=736740
2017-12-09 19:31:46 +00:00
Matthew Waters
4e75ceba46
glcontext: add API to retreive the thread that context is active in
2017-12-09 19:31:46 +00:00
Ognyan Tonchev
7e21e35eac
glfilter: do not leak pool in error cases
...
https://bugzilla.gnome.org/show_bug.cgi?id=736732
2017-12-09 19:31:46 +00:00
Vasilis Liaskovitis
f803a9e746
GstGLWindow: Introduce navigation thread
...
This thread dispatches navigation events. It is needed to avoid deadlocks
between window backend threads that emit navigation events (e.g. X11/GMainLoop
thread) and consumers of navigation events such as glimagesink, see
https://bugzilla.gnome.org/show_bug.cgi?id=733661
GstGlWindow_x11 thread is changed to invoke the navigation thread for navigation
dispatching, instead of emiting the event itself. Othe backends beside X11 do
not dispatch navigation events yet, but should use this thread when dispatching
these events in the future.
The navigation thread is currently part of GstGLWindow and not implemented in
separate subclasses / backends. This will be needed in the future.
gst_gl_window_x11_get_surface_dimensions is also changed to use a cached value
of the window's width, height. These values are now retrieved in the X11
thread, function gst_gl_window_x11_handle_event. This change is needed because
otherwise the XGetWindowAttributes gets called from the navigation thread,
leading to xlib aborting due to multithreaded access (if XInitThreads is not
called before, as is the case for gst-launch)
2017-12-09 19:31:46 +00:00
Wang Xin-yu (王昕宇)
62bebdb4e6
gl: Add GSTGLAPI macro to the debug callback function
...
Fixes the Windows build.
https://bugzilla.gnome.org/show_bug.cgi?id=735565
2017-12-09 19:31:46 +00:00
Jan Schmidt
2d928bad1c
egl: Wrap KHR_create_context flags in an ifdef
...
EGL_CONTEXT_FLAGS_KHR and EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR
don't exist in the Android NDK. Wrap their usage in an #ifdef
EGL_KHR_create_context to fix the build there.
2017-12-09 19:31:45 +00:00
Matthew Waters
f6930bc0b4
egl: fallback to a non-debug context if a debug one fails
...
The text for EGL_KHR_create_context added the possiblity for ES
contexts to ask for a debug context however that has not been
fully realized by all implementations. Fallback to a non-debug
context when the implementation errors.
2017-12-09 19:31:45 +00:00
Lubosz Sarnecki
30591d664c
gstopengl: add introspection support
...
https://bugzilla.gnome.org/show_bug.cgi?id=734482
2017-12-09 19:31:45 +00:00
Lubosz Sarnecki
67b9f71619
glshader: expose opengl handle in getter
...
https://bugzilla.gnome.org/show_bug.cgi?id=734482
2017-12-09 19:31:45 +00:00
Wang Xin-yu (王昕宇)
c8d1e4ad5f
gl: check null before unref GstGLDisplay
2017-12-09 19:31:45 +00:00
Matthew Waters
ac2fdb0aed
gl: add prototype definition for KHR_debug
2017-12-09 19:31:45 +00:00
Matthew Waters
61b95b0300
glcontext: implement the debug callback
...
For both GL_KHR_debug and ARB_debug_output. This allows us to
receive errors and other hints from the GL instead of querying after
every GL operation.
2017-12-09 19:31:45 +00:00
Matthew Waters
d7a465f9da
gl: add prototypes for KHR_debug/ARB_debug_output
2017-12-09 19:31:45 +00:00
Matthew Waters
a76fe07919
gl: don't take an extra ref on the display on set_context
...
gst_context_get_gl_display() returns a ref. Don't take another in
gst_object_replace().
2017-12-09 19:31:45 +00:00
Tim-Philipp Müller
15cd3d3d5c
glbufferpool: fix allocator leak in some cases
...
Spotted by Sebastian Rasmussen.
https://bugzilla.gnome.org/show_bug.cgi?id=734523
2017-12-09 19:31:45 +00:00
Vasilis Liaskovitis
7b1a853888
GstGLWindow, GstGLImagesink, x11: Scale navigation events on resized windows
...
If window is resized, GstStructure pointer values have to be rescaled to
original geometry. A get_surface_dimensions GLWindow class method is added for
this purpose and used in the navigation send_event function.
https://bugzilla.gnome.org/show_bug.cgi?id=703486
2017-12-09 19:31:45 +00:00
Wang Xin-yu (王昕宇)
f322a331c8
glupload: don't determine if frame needs upload by pointer compare
...
https://bugzilla.gnome.org/show_bug.cgi?id=734269
2017-12-09 19:31:45 +00:00
Matthew Waters
fab6790c7f
gl/docs: remove superflous 'the'
2017-12-09 19:31:45 +00:00
Matthew Waters
d3804ee7aa
gl: document GST_GL_* environment variables
...
https://bugzilla.gnome.org/show_bug.cgi?id=733245
2017-12-09 19:31:45 +00:00
Matthew Waters
4277d2742a
glcontext: add a destroy function
...
that just calls the subclass
2017-12-09 19:31:45 +00:00
Matthew Waters
d3077a890c
gl/x11: silence runtime warning
...
g_main_loop_quit: assertion 'loop != NULL' failed
2017-12-09 19:31:45 +00:00
Matthew Waters
9426c0793e
glmemory: use the plane offsets to compute the size of the data pointer
...
Certain elements expect that there be a certain number of lines
that they can write into. e.g. for odd heights, I420, YV12, NV12,
NV21 (and others) Y lines are expected to have exactly twice the
number of U/UV lines.
https://bugzilla.gnome.org/show_bug.cgi?id=733717
2017-12-09 19:31:45 +00:00
Matthew Waters
c216799b20
glmemory: use GstVideoInfo everywhere
...
Simplifies a lot of the calling code
https://bugzilla.gnome.org/show_bug.cgi?id=733717
2017-12-09 19:31:45 +00:00
Matthew Waters
2b82b78ef5
glmemory: reenable the texture_rg support for !eagl
...
The GST_GL_HAVE_PLATFORM_EAGL is always defined we need to compare
against the value instead.
2017-12-09 19:31:44 +00:00
Vasilis Liaskovitis
b1e821f731
glwindow/11: Emit signals for mouse and key navigation events
...
https://bugzilla.gnome.org/show_bug.cgi?id=703486
2017-12-09 19:31:44 +00:00
Sebastian Dröge
307db954fd
glwindow: Constify string parameters to the send_*_event() functions
2017-12-09 19:31:44 +00:00
Vasilis Liaskovitis
6b38d58427
GstGLWindow : Add mouse-event and key-event signals for navigation
...
https://bugzilla.gnome.org/show_bug.cgi?id=703486
2017-12-09 19:31:44 +00:00
Wang Xin-yu (王昕宇)
2ce11e4bac
gl: fix multi gl object leaks
...
1. fix FBO leaks in decide_allocation
2. fix texture leaks in decide_allocation and reset
3. fix texture leaks in FBO incomplete error path
2017-12-09 19:31:44 +00:00
Sebastian Dröge
b02a6a98b2
gl: Link to all required libraries but not more
2017-12-09 19:31:44 +00:00
Sebastian Dröge
ab7a152cd4
gl: Move GstGLMixer to the plugin for now
...
It depends on GstAggregator and we don't want to install headers
for that yet.
https://bugzilla.gnome.org/show_bug.cgi?id=732207
2017-12-09 19:31:44 +00:00
Julien Isorce
62ac6db6a0
glcocoa: initalize NSApp asap when using gst-launch
...
See https://bugzilla.gnome.org/show_bug.cgi?id=732661
2017-12-09 19:31:44 +00:00
Sebastian Dröge
f6ae4ab243
eagl: Disable usage of R and RG textures on iOS
...
They don't work currently and just render zeroes, while the
fallback code path with LUM and LUM_ALPHA textures still works.
https://bugzilla.gnome.org/show_bug.cgi?id=732390
2017-12-09 19:31:44 +00:00
Matthew Waters
216b5ec9a8
glcolorconvert: free pixel swizzling information
2017-12-09 19:31:44 +00:00
Matthew Waters
251c8a98ed
glmixer: remove redundant/unused lock
...
Use the GstObject lock instead
2017-12-09 19:31:44 +00:00
Matthew Waters
21ea062cc8
glmixer: remove redundant creation and free of GPtrArrays
...
Also plugs a memory leak
2017-12-09 19:31:44 +00:00
Matthew Waters
4131456751
glmixer: plug a memory leak for the caps
...
gst_query_set_caps_result() takes a ref on the caps
2017-12-09 19:31:44 +00:00
Matthew Waters
6cea67b92a
glmixer: intersect with the filtercaps if available
2017-12-09 19:31:44 +00:00
Matthew Waters
1e49da469d
gl: update gles2 compatability header
2017-12-09 19:31:44 +00:00
Matthew Waters
730b88a677
glfilter: pass through the allocation query when in passthrough mode
...
Otherwise two GL elements on either side will fail to use the same
GL context.
2017-12-09 19:31:44 +00:00
Matthew Waters
3a20e70cbd
glfilter: prefer passthrough for non-sysmem caps
2017-12-09 19:31:43 +00:00
Julien Isorce
7cdce1bdfc
glfilter: handle NULL decide_query which means passthrough
...
See https://bugzilla.gnome.org/show_bug.cgi?id=732178
2017-12-09 19:31:43 +00:00
Julien Isorce
e016324d31
glfilter: prepend intersection to src caps
...
Prefer to stay in the same memory space if possible.
Also it let a chance to do passthrough.
See https://bugzilla.gnome.org/show_bug.cgi?id=732178
2017-12-09 19:31:43 +00:00
Matthew Waters
bcce615263
gl: add a scary note about initializing thread support for the winsys
...
We cannot do it as the winsys may crash if we initialize too late.
Example, GLX contexts with Intel drivers:
Intel requires the X Display to be the same in order to share GL
resources across GL contexts. These GL contexts are generally
accessed from different threads. Without winsys support it is
nearly impossible to guarentee that concurrent access will not
occur. This concurrent access could result in crashes or abortion
by the winsys (xcb).
https://bugzilla.gnome.org/show_bug.cgi?id=731525
2017-12-09 19:31:43 +00:00
Matthew Waters
5fd0dc505e
gluploadmeta: reenable GLMemory upload path
2017-12-09 19:31:43 +00:00
Matthew Waters
1f8c784131
gl: move gles2 compat header to glprototypes
2017-12-09 19:31:43 +00:00
Matthew Waters
ec8f3e58de
glbufferpool: provide a consistent API regardless of platform
2017-12-09 19:31:43 +00:00
Matthew Waters
c399908c4b
gl: mark library as API unstable
2017-12-09 19:31:43 +00:00
Thibault Saunier
30a9ef3768
gl: Port glmixer to the GstVideoAggregator baseclass
...
https://bugzilla.gnome.org/show_bug.cgi?id=731921
2017-12-09 19:31:43 +00:00
Matthew Waters
b2eb1b305c
glframebuffer: don't segfault needlessly with GLES2
...
gst_gl_framebuffer_use_v2 was using a function that is not available
with GLES2
2017-12-09 19:31:43 +00:00
Matthew Waters
58fbcfdf1f
gldownload: plug a memory leak
2017-12-09 19:31:43 +00:00
Matthew Waters
a656e76ac9
glmixer: allow the subclass to choose the sink pad type
...
Allows custom properties to be placed on the sink pads by subclasses
2017-12-09 19:31:43 +00:00
Matthew Waters
90eefa6e5a
glmixer: send the stream-start event
...
and the caps event after.
https://bugzilla.gnome.org/show_bug.cgi?id=730944
2017-12-09 19:31:43 +00:00
Matthew Waters
e523cdd21a
glfilterapp: remove the reshape/draw properties
...
The reshape property was never used.
Replace the draw property with a signal.
Based on patch by Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
https://bugzilla.gnome.org/show_bug.cgi?id=704507
2017-12-09 19:31:42 +00:00
Matthew Waters
6a7ccd6f3e
glmixer: lock the size of mix->frames to the number of pads
...
Fixes a segfault with decodebin ! glmixer where the request pads on
both sides were being requested after the state change to PAUSED.
Also fixes dynamically adding and removing pads while glmixer is
in a state >= PAUSED.
2017-12-09 19:31:42 +00:00
Matthew Waters
5433010ab5
gl/wayland: create a dummy display instead of an EGLDisplay
...
Currently, GstGLWindowWaylandEGL holds the wayland display connection
If we create the EGLDisplay at the GstDisplay creation time, then
libEGL will internally open another connection to the wayland server.
These two display connections are unable to communicate resulting in
no window output/display and hangs inside libEGL.
Eventually we will move the wl_display from GstGLWindow to GstGLDisplay.
2017-12-09 19:31:42 +00:00
Matthew Waters
57a54e9de4
glupload: always release the previous buffer
...
Fixes the case where _perform_with_buffer() is called without
intervening calls to _release_buffer() as is the case on start up
with glimagesink.
Also release the buffer when reseting the upload.
https://bugzilla.gnome.org/show_bug.cgi?id=731107
2017-12-09 19:31:42 +00:00
Sebastian Dröge
188ae1c3b0
glcontext: Handle (unlikely) NULL return of gl->GetString (GL_VERSION) more gracefully
...
CID 1219858
2017-12-09 19:31:42 +00:00
Matthew Waters
ea8c49f106
glmemory: remove uneeded gl api ifdefs
2017-12-09 19:31:42 +00:00
Matthew Waters
384434b060
glwindow_x11: allow expose events to redraw our window
...
otherwise we will not update the window contents on low framerate
streams until the next buffer
https://bugzilla.gnome.org/show_bug.cgi?id=723529
2017-12-09 19:31:42 +00:00
Matthew Waters
b534e7e7af
glcontext: fix up assertion
...
error: 'return' with no value, in function returning non-void
2017-12-09 19:31:42 +00:00
Matthew Waters
4a8b31afd6
glfeature: remove GST_GL_API_GLES3
...
instead check the gl version using gst_gl_context_check_gl_version()
2017-12-09 19:31:42 +00:00
Matthew Waters
bfd8550bff
glcontext: check for GLES versions
2017-12-09 19:31:42 +00:00
Matthew Waters
babef3069b
gl/context: add check_gl_version
2017-12-09 19:31:42 +00:00
Edward Hervey
2ee94d606c
glcontext: Try GLX support before EGL support
...
If available, glx has got a better chance of being the Gl platform
we want to use compared to EGL
2017-12-09 19:31:42 +00:00
Edward Hervey
14f844e1e9
glcontext: Try to open lib{EGL|GL|GLESv2}.so.1 before lib{EGL|GL|GLESv2}
...
Fixes issues with .so (without numbering) being installed for development
(such as from mesa-dev) but actual driver (with numbering) coming from
some other place (like nvidia drivers)
2017-12-09 19:31:42 +00:00
Sebastian Dröge
631278270f
glupload: Fix assertion after API changes
2017-12-09 19:31:42 +00:00
Matthew Waters
5009338a50
gl/colorconvert: keep our private pointer
...
again, avoid to much trigger
2017-12-09 19:31:42 +00:00
Matthew Waters
04b2144ff1
gl/colorconvert: use GstObject's lock instead of our own
2017-12-09 19:31:42 +00:00
Matthew Waters
1544f66f26
gl/colorconvert: remove unnecassary pointer inderection
2017-12-09 19:31:42 +00:00
Matthew Waters
a22cb227a9
gl/upload: re add the upload meta to the private struct
...
try and avoid being to trigger happy
2017-12-09 19:31:42 +00:00
Matthew Waters
8b50888179
gl/upload: small code cleanup and gst-indent
2017-12-09 19:31:42 +00:00
Matthew Waters
82910401c8
gl/download: use GstObject's lock instead of out own
2017-12-09 19:31:42 +00:00
Matthew Waters
a147b2258b
gl/upload: use GstObject's lock instead of our own
2017-12-09 19:31:42 +00:00
Matthew Waters
30a9843c02
gl/filter: also remove the width/height in transform_caps
...
allows scaling in the filters
2017-12-09 19:31:42 +00:00
Matthew Waters
8cf3a3a4f4
gl/colorconvert: optimise the same format case
...
simply return the input buffer unchanged
2017-12-09 19:31:41 +00:00
Matthew Waters
4fe67d48be
gl/colorconvert: fix YUY2/UYVY download for RG/LA textures
2017-12-09 19:31:41 +00:00
Matthew Waters
8ac92cd90d
gl/colorconvert: allocate output buffers
...
Allows the nop optimisation by simply reffing the input buffer.
2017-12-09 19:31:41 +00:00
Matthew Waters
738ebcaaba
gl/upload: fix incorrect type in macros
2017-12-09 19:31:41 +00:00
Matthew Waters
32343333aa
gl/upload: add GstGLUploadMeta object
...
That simply deals with the provider aspect of GstVideoGLTextureUploadMeta.
2017-12-09 19:31:41 +00:00
Matthew Waters
1f6fceafa4
gl/win32: make send_message reentrant
...
I could not find a comparable win32API function so keep the running
thread pointer to compare against.
https://bugzilla.gnome.org/show_bug.cgi?id=730782
2017-12-09 19:31:41 +00:00
Tim-Philipp Müller
06351d4d9b
glcolorconvert: fix compiler warning
...
gstglcolorconvert.c:1133:11: error: 'j' may be used uninitialized in this function
Was used uninitialized when jumping to out label
in error case.
2017-12-09 19:31:41 +00:00
Matthew Waters
625efc1757
gl/colorconvert: operate on buffers instead of memories
2017-12-09 19:31:41 +00:00
Julien Isorce
67c18fee19
gl: add missing cgl and eagl context type
...
https://bugzilla.gnome.org/show_bug.cgi?id=729245
2017-12-09 19:31:41 +00:00
Julien Isorce
b84a2eaf9f
gl: rename platform cocoa to cgl
...
Before:
GST_GL_PLATFORM=cocoa GST_GL_WINDOW=cocoa
gst-launch-1.0 videotestsrc ! glimagesink
After:
GST_GL_PLATFORM=cgl GST_GL_WINDOW=cocoa
gst-launch-1.0 videotestsrc ! glimagesink
but still pass --enable-cocoa to configure script
because currently it can only be used with cocoa API.
We could later have cgl/gstglcontext_cgl.h that manages
a CGLContextObj directly and cocoa/gstglcontext_cocoa.h
would just wrap it.
So that it could be used with other Apple's window APIs.
https://bugzilla.gnome.org/show_bug.cgi?id=729245
2017-12-09 19:31:41 +00:00
Matthew Waters
9349d39023
gl/mixer: don't segfault when we don't have a buffer
...
https://bugzilla.gnome.org/show_bug.cgi?id=729257
2017-12-09 19:31:41 +00:00
Matthew Waters
e502311ce4
gl/window_x11: avoid BadDrawable error on shutdown
2017-12-09 19:31:41 +00:00
Matthew Waters
f2bf233ce4
gl/context_egl: pass the vars in the right order to DestroySurface
...
https://bugzilla.gnome.org/show_bug.cgi?id=728514
2017-12-09 19:31:41 +00:00
Nicolas Dufresne
d85c344204
glfilter: Remove format information to allow color convert again
...
We also need to remove the format information, as glfilter can do
color convertion. This code was imported from videoconvert.
https://bugzilla.gnome.org/show_bug.cgi?id=729861
2017-12-09 19:31:41 +00:00
Matthew Waters
ee04a6e6eb
gl/memory: allocate the correct memory size
...
and avoid wasting resources we will never need
https://bugzilla.gnome.org/show_bug.cgi?id=730703
2017-12-09 19:31:41 +00:00
Nicolas Dufresne
73c73470a0
glcolorconvert: Fix YUY2 and UYVY support with luminance_alpha
...
https://bugzilla.gnome.org/show_bug.cgi?id=730666
2017-12-09 19:31:41 +00:00
Matthew Waters
146c666ba2
gl/memory: provide compatability defines
...
fixes build on android/OS X
2017-12-09 19:31:41 +00:00
Matthew Waters
2279713aa0
gl/colorconvert: remove scratch texture for YUY2/UYVY
...
We can get all our data from the one RG/LA texture with some shader magic.
https://bugzilla.gnome.org/show_bug.cgi?id=728890
2017-12-09 19:31:41 +00:00
Matthew Waters
b3d9563d6b
gl/memory: RGBA/UNSIGNED_BYTE only format supported by ReadPixels GLES2
...
Error out in case we attempt to read with any other invalid format.
2017-12-09 19:31:41 +00:00
Matthew Waters
b3df031908
gl/memory: generate textures with a sized internal format
...
Required in order to generate RG and RED textured with GLES3.
2017-12-09 19:31:41 +00:00
Matthew Waters
132a233f7b
gl/memory: implement GL_EXT_texture_rg support
...
Which is used by default over the Luminance formats due to it
being color renderable with fbos (and deprecation/removal with
GL 3.x).
https://bugzilla.gnome.org/show_bug.cgi?id=729750
https://bugzilla.gnome.org/show_bug.cgi?id=704222
https://bugzilla.gnome.org/show_bug.cgi?id=728890
2017-12-09 19:31:41 +00:00
Matthew Waters
4435c1c289
gl/context: add gl extension checking to check_feature()
...
Useful for extensions that do not define any new GL API entrypoints
but can still modify behaviour when used.
2017-12-09 19:31:41 +00:00
Matthew Waters
63831b7dd2
gl/download: fixup YUY2/UYVY download
...
Regression from 2da979831e
as it did
not update the download code to reflect the change in texture format.
2017-12-09 19:31:41 +00:00
Matthew Waters
9cfd5e5d04
gl/filter: fixup passthrough bufferpool
...
In a pipeline like so:
videotestsrc ! gleffects ! videoconvert ! sink
gleffects was simply passing the videoconvert bufferpool to videotestsrc
and not creating a glbufferpool. videobufferpool would then fail
to allocate from the glallocator.
2017-12-09 19:31:41 +00:00
Matthew Waters
313dfbb500
gl/upload: switch the 'master' texture for YUY2, UYVY
...
From d4bcef3204
on, using a RGBA
texture to hold the data causes the glmemory to have half width
and a scaling of [2, 1]. Using a LA texture solves this problem
however cannot be attached to the framebuffer for copying into
a RGBA texture. Which will be solved by moving to EXT_texture_rg.
https://bugzilla.gnome.org/show_bug.cgi?id=728890
2017-12-09 19:31:41 +00:00
Matthew Waters
51fdeef98b
gl/eglimage: add eglimage context feature
...
Allows us to selectively use EGLImages only when available
https://bugzilla.gnome.org/show_bug.cgi?id=728234
2017-12-09 19:31:41 +00:00
Matthew Waters
166d7b505c
gl/context: add generic feature checking
...
At the moment it simply delegates to the subclass.
2017-12-09 19:31:40 +00:00
Sebastian Dröge
9fd7e34fee
glcontext: Add more assertions to make sure that everything sets the GError during context creation if something fails
2017-12-09 19:31:40 +00:00
Matthew Waters
9172cb8839
gl/download: update to be similar to the glupload semantics
2017-12-09 19:31:40 +00:00
Matthew Waters
5efb69304a
gl/colorconvert: fix up alpha clobbering
...
Previously it would only work if the alpha value was in the last
component (RGBx, BGRx). Now it works wherever the alpha value may
be (xRGB, xBGR, etc).
2017-12-09 19:31:40 +00:00
Nicolas Dufresne
b4a0a26ddd
glfilter: Fix building without EGL support
...
This fixes the OSX build and any builds with --disable-egl. That issue
was introduced in "glfilter: rewrite transform_caps to preserve caps fields".
https://bugzilla.gnome.org/show_bug.cgi?id=729861
2017-12-09 19:31:40 +00:00
Julien Isorce
a7156df9f4
glfilter: rewrite transform_caps to preserve caps fields
...
https://bugzilla.gnome.org/show_bug.cgi?id=729861
2017-12-09 19:31:40 +00:00
Matthew Waters
07b6bfeaa7
gl/colorconvert: use the texture scaling from the gl memory
...
The colorconvert values were not being used at all.
https://bugzilla.gnome.org/show_bug.cgi?id=729896
2017-12-09 19:31:40 +00:00
Nicolas Dufresne
157607989a
glmemory: Fix handling of stride with alignement larger then 8
...
Setting a scaled factor for X coordinate is not enough as the indexer
will still think stride is shorter and will not fully skip it. Instead,
update width, so the lines are as expected. Combined with the scale, it
will hide the cropped portion.
https://bugzilla.gnome.org/show_bug.cgi?id=729896
2017-12-09 19:31:40 +00:00
Nicolas Dufresne
030fc8b7d0
glupload: Ensure we still have a texture after upload_set_format()
...
gst_gl_upload_set_format() resets the upload, hence the texture.
So we need to ensure we have a texture after this call when
uploading.
2017-12-09 19:31:40 +00:00
Nicolas Dufresne
b70edbff15
glupload: Correctly update the video info from video meta
...
Using gst_video_info_set_format() isn't complete when updating
a video info from video meta.
2017-12-09 19:31:40 +00:00
Nicolas Dufresne
2f705ac9ca
glupload: Correctly update video info in upload fallback
...
When the upload accelerated method fails, we fallback to an upload,
but the video info was not correctly updated.
2017-12-09 19:31:40 +00:00
Julien Isorce
c16ab9e66b
gl/upload: set out_tex after reset, not before
...
Fix a regression introduced recently with the lazy init.
It was happening when calling gst_video_gl_texture_upload_meta_upload
from an aplication. So not using gst_gl_upload_perform_with_buffer.
2017-12-09 19:31:40 +00:00
Matthew Waters
5cdfd51172
gl/upload: update the video info on mapping a video frame
...
The buffer should contain the most specific data on how the data is
formatted. We should use this information.
https://bugzilla.gnome.org/show_bug.cgi?id=729896
2017-12-09 19:31:40 +00:00
Matthew Waters
480784e368
gl/convert: clobber alpha channel when needed
...
Needed in the conversion from padded RGB formats to formats with an
alpha channel. e.g. BGRx -> ABGR, etc
https://bugzilla.gnome.org/show_bug.cgi?id=729742
2017-12-09 19:31:40 +00:00
Matthew Waters
59c388abca
gl/upload: avoid performing color conversion when there is no need
...
One such example is when the buffer contains GstGLMemory in the
RGBA format
https://bugzilla.gnome.org/show_bug.cgi?id=729278
2017-12-09 19:31:40 +00:00
Matthew Waters
ae283ec9da
gl/colorconvert: choose the right alpha component for AYUV -> RGBA
2017-12-09 19:31:40 +00:00
Matthew Waters
9fffa2cbc6
gl/upload: update the respective state when we cache textures/data
2017-12-09 19:31:40 +00:00
Matthew Waters
484ae5a8c5
gl/upload: cache the textures that we are using
2017-12-09 19:31:40 +00:00
Matthew Waters
a64efacd0e
gl/upload: avoid recreating the GLMemory struct for output textures
2017-12-09 19:31:40 +00:00
Nicolas Dufresne
5c8acc21fe
gl: Fix some of the error handling
2017-12-09 19:31:40 +00:00
Nicolas Dufresne
94aa3ea228
glupload: Update GstVideoInfo after the buffer is mapped
...
gst_video_frame_map() will store an updated video info base
on the video meta. In order to have the right stride and offset
we should update that video info accordingly.
2017-12-09 19:31:40 +00:00
Sebastian Dröge
43866270ef
gl: Fix memory leak
...
CID #1212171
2017-12-09 19:31:40 +00:00
Matthew Waters
f213321083
gl/colorconvert: preserve alpha in AYUV <-> RGBA conversions
...
https://bugzilla.gnome.org/show_bug.cgi?id=729743
2017-12-09 19:31:40 +00:00
Matthew Waters
977c326c59
gl/colorconvert: implement lazy init
2017-12-09 19:31:40 +00:00
Julien Isorce
17ba668c7a
gl/upload: set initted to TRUE when _init_upload succeeded
2017-12-09 19:31:40 +00:00
Sebastian Dröge
228eccdbdf
gldisplay: Use GST_STR_NULL() for printing possibly NULL strings and print all variables we use
...
Fixes compiler warning about set but not used platform_choice variable
among other things.
2017-12-09 19:31:40 +00:00
Matthew Waters
83c2b906d1
gl/upload: fix compilation on OS X
2017-12-09 19:31:40 +00:00
Matthew Waters
862df41b2d
gl/upload: fail propoerly if init fails
2017-12-09 19:31:39 +00:00
Matthew Waters
857200ff40
gl: make all GObjects inherit from GstObject
...
Aids memory leak debugging with GST_TRACE=mem-live
2017-12-09 19:31:39 +00:00
Matthew Waters
6c1a4e30c4
gl/upload: implement lazy init
...
Rename init_format to set_format
2017-12-09 19:31:39 +00:00
Matthew Waters
cda89d7ce0
gl/upload: add get_format method
...
Simply retreives the format set by init_format
2017-12-09 19:31:39 +00:00
Matthew Waters
6e5494d729
gl/filter: attempt to passthrough the pool if the caps are the same
...
Reduces the number of glbufferpool instances required for >=2
consecutive GL elements in a pipeline.
2017-12-09 19:31:39 +00:00
Matthew Waters
6872ad5ff5
gl/filter: always initialize the upload object
2017-12-09 19:31:39 +00:00
Matthew Waters
8fd450b941
gl: advertise GstGLMemory usage in the caps as capsfeatures
...
https://bugzilla.gnome.org/show_bug.cgi?id=729658
2017-12-09 19:31:39 +00:00
Matthew Waters
90bf46484d
gl/display: avoid endless recursion for cocoa
2017-12-09 19:31:39 +00:00
Julien Isorce
d7c5444447
gl: do not allocate the target texture of an EGLImage
...
The target texture of an EGLImage is the texture bind just
before calling glEGLImageTargetTexture2D.
As we currently only support a gl texture as the source of an EGLImage
the gl texture is actually already allocated when creating the eglimage.
I also see some cases where it fails to upload an eglimage when
glTexImage2D is called on the target.
2017-12-09 19:31:39 +00:00
Julien Isorce
4bc96ae4cd
gl: allow to avoid calling glTexImage2D(w, h, NULL) when generating a texture
...
Just pass 0 as width or height to gst_gl_context_gen_texture.
2017-12-09 19:31:39 +00:00
Julien Isorce
88864ea2cc
gl: no need to initialize a frame buffer object to upload an eglimage
...
Fix https://bugzilla.gnome.org/show_bug.cgi?id=729588
2017-12-09 19:31:39 +00:00
Julien Isorce
bcc633ed2c
gl: use GST_CAT_ERROR instead of GST_ERROR_OBJECT
...
It fixes segault when GST_DEBUG is at least level 1 and eglCreateImage fails
2017-12-09 19:31:39 +00:00
Julien Isorce
dd1c2b4c4c
gl: delete texture used with GstVideoGLTextureUploadMeta
2017-12-09 19:31:39 +00:00
Julien Isorce
4b0e037fa4
gl: use gst_gl_context_gen_shader helper instead of duplicating code
2017-12-09 19:31:39 +00:00
Matthew Waters
59592f9bfc
gl/display: clean up pre gstglcontext api and struct fields
...
https://bugzilla.gnome.org/show_bug.cgi?id=729551
2017-12-09 19:31:39 +00:00
Matthew Waters
f6ed9a685b
gl/display: add get_handle_type
...
https://bugzilla.gnome.org/show_bug.cgi?id=729551
2017-12-09 19:31:39 +00:00
Matthew Waters
c5a11aa448
gl/display: avoid opening the X11 display on systems with Cocoa (OS X)
...
https://bugzilla.gnome.org/show_bug.cgi?id=729551
2017-12-09 19:31:39 +00:00
Matthew Waters
6a2f2088e9
gl/window: fix string length check for eagl
2017-12-09 19:31:39 +00:00
Matthew Waters
320ceef471
gl/display: check the correct env variable for choosing an egl display
...
GST_GL_WINDOW is used for window system specific choices.
An EGLDisplay can be created from window systems with egl support by using
eglGetDisplay().
https://bugzilla.gnome.org/show_bug.cgi?id=729551
2017-12-09 19:31:39 +00:00
Edward Hervey
47a4be4721
gl/cocoa: Use OBJCFLAGS where needed
...
Should fix usage of c-compiler-only flags with an objective-c compiler
2017-12-09 19:31:39 +00:00
Matthew Waters
bf9c8544e3
gl: use the bufferpool's upload when available
...
Avoids duplicating GL resources
https://bugzilla.gnome.org/show_bug.cgi?id=728872
2017-12-09 19:31:39 +00:00
Julien Isorce
2fed41dc30
gl: show internal cocoa window on top of others
...
Useful when your OSX terminal is fullscreen
https://bugzilla.gnome.org/show_bug.cgi?id=728127
2017-12-09 19:31:39 +00:00
Matthew Waters
db544c3c1f
gl/pool: init the upload object on start
...
Theoretically, set_config could be called multiple times
2017-12-09 19:31:38 +00:00
Sebastian Dröge
8c56e1bba7
gl: Try harder to load symbols from the correct place
...
This commit makes the loading of the GModules threadsafe, and
always first tries to load the symbol for the GL library that
is selected for the current context. Only then it falls back
to looking into the current module (NULL), and only as a last
resort the context specific function (e.g. eglGetProcAddress())
is called.
Also add configure parameters to select the names of the library
modules instead of using the defaults, and let the defaults be
independent of the G_MODULE_SUFFIX.
https://bugzilla.gnome.org/show_bug.cgi?id=728753
2017-12-09 19:31:38 +00:00
Matthew Waters
33091ff6a5
gl/mem: implement texture copying between formats with strides properly
...
Previously, we used the width to determine the amount of data to be
copied using pbos. This, makes it allocate enough data for the
the strides as well.
2017-12-09 19:31:38 +00:00
Matthew Waters
8638a5638c
gl/mem: pad the public struct
2017-12-09 19:31:38 +00:00
Nicolas Dufresne
1e8fc49203
gl: no need to provide full lib path to load symbols
...
- Make gstgl work on Mali
- Keep it work on RPI
- fallback to NULL name module if fails with usual lib name
https://bugzilla.gnome.org/show_bug.cgi?id=728753
2017-12-09 19:31:38 +00:00
Julien Isorce
cebcc837de
gl: add convenient functions to setup default vertex and fragment shaders
...
Most of our 2D filters use the same simple vertex shader.
Also define the default fragment shader as the identity.
Avoid duplicating the same vertex and fragment shader text.
2017-12-09 19:31:38 +00:00
Philippe Normand
95290346c6
gl: add missing G_BEGIN/END_DECLS in utils header
2017-12-09 19:31:38 +00:00
Jan Schmidt
cf018389e1
gl: Reduce noisy Info level output to LOG
2017-12-09 19:31:38 +00:00
Julien Isorce
391661b626
gl: use gst_gl_platform_from_string because we support gl shareList on all platforms
2017-12-09 19:31:38 +00:00
Julien Isorce
c441afdc6b
glfilter: only warn when other_context attribute is set
...
Fix false positive
2017-12-09 19:31:38 +00:00
Julien Isorce
959aae65c0
gl: fix string literal warning
...
warning: format not a string literal, argument types not checked [-Wformat-nonliteral]
2017-12-09 19:31:38 +00:00
Nicolas Dufresne
801f11e36b
gl/x11: Removed unused variable
2017-12-09 19:31:37 +00:00
Sebastian Dröge
8f156591e5
gl/x11: Get rid of unneeded second display connection and do everything from the main loop
2017-12-09 19:31:37 +00:00
Sebastian Dröge
a0a133288e
gl/x11: Block rendering until swapbuffers is called and don't go via X11 events as unneeded indirection
...
This should fix QoS problems, where basesink believed it was rendering with
20FPS but actually we were just queueing up X11 Expose events and only once
in a while something was rendered.
2017-12-09 19:31:37 +00:00
Julien Isorce
c9d2f8ee94
gl/rpi: do not scale to full screen
...
Having a 640x360 movie being scaled to 1900x1200 does not look nice
2017-12-09 19:31:37 +00:00
Julien Isorce
7a77d435c1
gl/rpi: change dispmanx attributes of existing element instead of creating a new one
...
I was lucky that:
e1 = vc_dispmanx_element_add ()
eglCreateWindowSurface (e1)
vc_dispmanx_element_remove (e1)
e2 = vc_dispmanx_element_add ()
resulted in having e2 equal to e1. And also having the egl surface
that does not allocate its buffers before the first draw.
2017-12-09 19:31:37 +00:00
Julien Isorce
33a60e238c
gl/rpi: ensure the dispmanx element to be opaque
...
So that we ensure it does not get alpha composited with other
dispmanx elements like the desktop.
2017-12-09 19:31:37 +00:00
Julien Isorce
2cd72a49ec
gl/cocoa: pass a NSView to set_window_handle instead of a NSWindow
...
Fix backwards compatibility
https://bugzilla.gnome.org/show_bug.cgi?id=728451
2017-12-09 19:31:37 +00:00
Julien Isorce
9db9834128
gl/cocoa: only draw once the window has been resized
...
It avoids to draw the first frame with an incorrect view port.
2017-12-09 19:31:37 +00:00
Julien Isorce
545bed3c7a
gl/cocoa: set the view to use for drawing by the context
...
It avoids to draw to an invalid buffer.
Withtout this the default frame buffer is undefined:
glBindFramebuffer (GL_FRAMEBUFFER, 0)
Visually you could see some white frames at the beginning
when lunching videotestsrc ! glimagesink
With OpenGL Profiler from XCode you could see some
GL_INVALID_FRAMEBUFFER_OPERATION for the first frames
2017-12-09 19:31:37 +00:00
Julien Isorce
e4b832db90
gl: fix declaration-definition mismatch for _init_upload
2017-12-09 19:31:37 +00:00
Julien Isorce
213590c79c
gl/bufferpool: do not reset upload when set_config does not change the caps
...
With videotestsrc ! glimagesink it was reset 3 times
2017-12-09 19:31:37 +00:00
Julien Isorce
bc52c7bb00
gl: use #ifdef instead of #if for __APPLE__
...
warning: "__APPLE__" is not defined [-Wundef]
with gcc version 4.7.2 20120731 (prerelease)
(crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08)
2017-12-09 19:31:37 +00:00
Nicolas Dufresne
4372ba8999
glmemory: User g_slice_new0 to ensure fully initilized structure
...
The pbo pointer not being initialized would trigger a use of unitilialized variable
in valgrind.
2017-12-09 19:31:37 +00:00
Vincent Penquerc'h
c728fd3b8d
gl: prevent division by 0 on unsupported texture type
...
Coverity 1199697
2017-12-09 19:31:37 +00:00
Jan Schmidt
c891eedb79
glcolorconvert: Fix bt709 conversion matrices.
...
Fix the sign on one entry in the bt.709 YUV->RGB conversion
matrix, and the corresponding inverse matrix. Fixes really
wrong colouring of some videos.
2017-12-09 19:31:37 +00:00
Julien Isorce
d539fd4a54
gl: allow to include GLES/gl.h
...
https://bugzilla.gnome.org/show_bug.cgi?id=703343
2017-12-09 19:31:37 +00:00
Sebastian Dröge
2843ca2066
gl/eagl: Fix compilation
2017-12-09 19:31:37 +00:00
Sebastian Dröge
a6f5b079d8
gl/eagl: Notify the window's resize callback about surface dimension changes
...
https://bugzilla.gnome.org/show_bug.cgi?id=728107
2017-12-09 19:31:37 +00:00
Sebastian Dröge
d462e7f6df
gl/eagl: Remove spurious private struct pointer
2017-12-09 19:31:37 +00:00
Sebastian Dröge
6fb0f1d1c7
gl/android: Notify the window's resize callback about surface dimension changes
...
https://bugzilla.gnome.org/show_bug.cgi?id=728107
2017-12-09 19:31:37 +00:00
Matthew Waters
175ca3f7b0
gl/context: output available extensions
2017-12-09 19:31:36 +00:00
Matthew Waters
1460d22e92
gl/context: provide get_gl_version
2017-12-09 19:31:36 +00:00
Julien Isorce
9062658bc7
gl/color: restore viewport dimensions when fbo done
...
Regression introduced by 95abfda139
.
It caused to display the wrong frame size when resizing the window.
2017-12-09 19:31:36 +00:00
Sebastian Dröge
b83d2df47d
gl: Import QuartzCore/QuartzCore.h for CAEAGLLayer on older iOS versions
2017-12-09 19:31:36 +00:00
Sebastian Dröge
3770d2a406
gl: Add support for iOS EAGL platform
...
https://bugzilla.gnome.org/show_bug.cgi?id=703341
2017-12-09 19:31:36 +00:00
Julien Isorce
9d396a2495
gl/cocoa: make gst_gl_window_cocoa_send_message_async re-entrant
...
Backends that use g_main_context_invoke are re-entrant.
Il allows to call two nested gst_gl_context_thread_add.
ex: init_upload / init_colorconvert
2017-12-09 19:31:36 +00:00
Julien Isorce
3819fbef46
gl/cocoa: fix NSAutoreleasePool initialization
2017-12-09 19:31:36 +00:00
Julien Isorce
08cce2cd5b
gl/cocoa: ensure to call NSApplication:sharedApplication in the main thread
...
"(NSApplication *)sharedApplication This method also makes a connection
to the window server and completes other initialization"
The implicit thing which is not mentioned is that it required
to be called in the main thread.
Fix a regression introduces by 82b7c915bb
When using with gst-launch, it was not possible to click on the close
cross of the window anymore which is a bit anoying and also because
it's was possible before.
Prior to this commit the GstGLContextCocoaClass was initialized
in the main thread because gst_gl_context_new was called in the
state change function from going from ready to paused.
From this commit this call is done from the streaming thread.
So that the call to [NSApplication sharedApplication];
was not done in the main thread anymore.
We now ensure that by assuming there is a GMainLoop running.
It's for debugging purpose so that's ok to do that. Also
note we already do this assumtion to run app itereations.
The regression had no consequence on the cocoa/videooverlay example
(that should be moved from gst-plugins-gl to -bad) because the
application is responsible for that necessary call.
2017-12-09 19:31:36 +00:00
Julien Isorce
e7dc1d787e
gl/color: fix warning type qualifiers ignored
...
i686-apple-darwin11-llvm-gcc-4.2
"warning: type qualifiers ignored on function return type"
2017-12-09 19:31:36 +00:00
Matthew Waters
a321fa998a
gl/color: remove if statement with no effect
...
Coverity 1199698
2017-12-09 19:31:36 +00:00
Matthew Waters
92c243be62
gl/color: pass large value by reference
...
Coverity 1199700
2017-12-09 19:31:36 +00:00
Matthew Waters
6c73fa0b5f
gl/mem: cache the stride/unpack length for upload
2017-12-09 19:31:36 +00:00
Matthew Waters
1ce0c5356f
gl/color: explicitly map the buffers we are copying into
...
Otherwise it may not be downloaded at all.
2017-12-09 19:31:36 +00:00
Matthew Waters
50ff50c10e
gl/color: cache the temporary textures
2017-12-09 19:31:36 +00:00
Matthew Waters
94371dc204
gl/mem: provide defines for tokens not defined in GLES2/ancient platforms
2017-12-09 19:31:36 +00:00
Matthew Waters
7c77c31afd
gl: fixup incorrect number of arguments
2017-12-09 19:31:36 +00:00
Matthew Waters
12ecf507b8
gl: fix incorrect usage of g_return_if_fail
2017-12-09 19:31:36 +00:00
Matthew Waters
30c6efc432
gl/mem: allocate the memory per plane
...
This patch provides the basic infrastructure required for this.
Upload and Download has been ported to this.
Has the nice effect of allowing GstGLMemory to be our
refcounted texture object for any texture type (not just RGBA).
Should not lose any features/video formats.
2017-12-09 19:31:36 +00:00
Matthew Waters
ea2d4cb446
gl/eglimage: #if 0 unused code
2017-12-09 19:31:36 +00:00
Matthew Waters
fba49c3463
gl: add colorconvert object that converts between color spaces/formats
...
Currently used by both upload and download objects separately.
2017-12-09 19:31:36 +00:00
Vincent Penquerc'h
7de81a33ca
gl: fix leaks
...
As the relevant variables are initialized to 0/NULL, we can loop
over the full range and make sure we free partial allocations
when an error happens partway through initialization.
2017-12-09 19:31:36 +00:00
Matthew Waters
a20a5d36e2
gl: pass video info's by reference
2017-12-09 19:31:35 +00:00
Matthew Waters
ff52514714
gl/glx: use the context's display rather than asking for the window's
2017-12-09 19:31:35 +00:00
Matthew Waters
71548893bf
gl: avoid adding a NULL pool to propose allocation
2017-12-09 19:31:35 +00:00
Matthew Waters
790f34c7a6
gl: fix detection of extensions with GL versions < 3
...
Mesa, for example returns valid pointers for glGetIntegerv and
glGetStringi even if the gl version is less than that required for
both those functions to supposedly exist.
https://bugzilla.gnome.org/show_bug.cgi?id=727324
2017-12-09 19:31:35 +00:00
Tim-Philipp Müller
82555e80ba
gl: egl: fix distcheck and out of source build
2017-12-09 19:31:35 +00:00
Rico Tzschichholz
34a4eef1ec
build: Fix make dist
2017-12-09 19:31:35 +00:00
Matthew Waters
6491e4d275
gl: fix out-of-source builds pt2
...
21b897de2f
did this for x11 and wayland.
Do it for the other backends as well.
2017-12-09 19:31:35 +00:00
Julien Isorce
0233939eaa
gl: only set CAPS_FEATURE_MEMORY_EGL_IMAGE on egl platform
2017-12-09 19:31:35 +00:00
Julien Isorce
6614df6478
gl: let the user includes itself our egl headers if needed
...
Forgot to address this change.
https://bugzilla.gnome.org/show_bug.cgi?id=703343
2017-12-09 19:31:35 +00:00
Julien Isorce
c2471aec81
gl: add EGLImage support
...
* picked from old libgstegl:
- GstEGLImageMemory
- GstEGLImageAllocator
- last_buffer management from removed GstEGLImageBufferPool
* add-ons:
- GstEGLImageMemory now old a reference on GstGLContext
so that it can delete the EGLImage and its gltexture source
while having the associated gl context being current.
- add EGLImage support for GstVideoGLTextureUploadMeta which
mainly call EGLImageTargetTexture2D
- GstGLBufferPool now supports GstEGLImageAllocator
- glimagesink / glfilters / etc.. now propose GstEGLImageAllocator
to upstream
https://bugzilla.gnome.org/show_bug.cgi?id=703343
2017-12-09 19:31:35 +00:00
Julien Isorce
cb9521ab05
gl: deploy egl headers in gst/gl/egl instead of gst/gl
...
https://bugzilla.gnome.org/show_bug.cgi?id=703343
2017-12-09 19:31:35 +00:00
Julien Isorce
f55e8b3ea8
gl: remove commented and unsued code in x11 Makefile.am
...
https://bugzilla.gnome.org/show_bug.cgi?id=703343
2017-12-09 19:31:35 +00:00
Julien Isorce
3e3b573503
gl: fix crash if _build_extension_string is not called
...
On GLES2 then (gl->GetIntegerv && gl->GetStringi) is false
regression introduced by cc6df204e2
https://bugzilla.gnome.org/show_bug.cgi?id=703343
2017-12-09 19:31:35 +00:00
Gwenole Beauchesne
14521a89cb
gl: fix out-of-source builds.
...
Always use the locally generated <gst/gl/gstglconfig.h> file.
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2017-12-09 19:31:35 +00:00
Matthew Waters
adebb3b7f8
gl/download: add support for the bt709 color matrix
2017-12-09 19:31:35 +00:00
Matthew Waters
ee0c102ac5
gl/upload: add support for the bt709 color matrix
2017-12-09 19:31:35 +00:00
Matthew Waters
0fa966bb3d
gl: remove explicit reference to X_CFLAGS
...
They are in GL_CFLAGS if required
2017-12-09 19:31:35 +00:00
Matthew Waters
16a30a12aa
gl/upload: remove the legacy GL 1.x upload path
...
uploading requires shaders and fbos available in GL2.
2017-12-09 19:31:35 +00:00
Julien Isorce
da24ea1956
gl: fallback to glGetString if GL_NUM_EXTENSIONS fails
...
Need it on MacOSX 10.7.5
2017-12-09 19:31:35 +00:00
Matthew Waters
3c27e588c3
gl: and update the Makefile
2017-12-09 19:31:35 +00:00
Matthew Waters
45c71eb3e1
gl: reorganize the extension headers by function rather than api
2017-12-09 19:31:35 +00:00
Matthew Waters
350981b14c
gl/win32: use the correct include and gst-indent
2017-12-09 19:31:35 +00:00
Wang Xin-yu (王昕宇)
369bee2031
gl: use wglCreateContextAttribsARB to create share context
...
https://bugzilla.gnome.org/show_bug.cgi?id=726494
2017-12-09 19:31:35 +00:00
Matthew Waters
d3a823c459
gl/mixer: fix download check for failure
2017-12-09 19:31:35 +00:00
Matthew Waters
a9070713a2
gl: silence a critical if upstream does not provide us with meta params
2017-12-09 19:31:35 +00:00
Julien Isorce
19d138601b
gl: silence warnings building for RPI related to 'vcos_*'
...
Similar than 1190a79b19
2017-12-09 19:31:34 +00:00
Julien Isorce
b30d15d4b8
gl: keep only one occurence of '#include <EGL/egl.h>'
...
To simply maintainance if we need to put specific includes around it.
2017-12-09 19:31:34 +00:00
Руслан Ижбулатов
8c2c3d8dbf
gl: fix the use of always-defined macros
...
After 2a0f0399ae
GST_GL_* macros are always
defined to 0 or 1. Don't use #ifdef ... or #if defined() on them.
https://bugzilla.gnome.org/show_bug.cgi?id=726591
2017-12-09 19:31:34 +00:00
Matthew Waters
4a28b62d5a
gl: add GModule libs for win32
2017-12-09 19:31:34 +00:00
Matthew Waters
9b5a5a3c37
gl: only link against gstegl if we are using egl
...
Assuming if we are building egl that the egl library is built
2017-12-09 19:31:34 +00:00
Matthew Waters
f98fee49c2
gl: add path of the gstegl library
...
Temporary until we merge the two libraries
2017-12-09 19:31:34 +00:00
Matthew Waters
891f7e2ce8
Revert "gl: add dep on gstegl"
...
It was already in _LIBADD
This reverts commit b10a353080
.
2017-12-09 19:31:34 +00:00
Matthew Waters
95e7f50355
gl: add dep on gstegl
...
Temporary until we merge the two libraries
2017-12-09 19:31:34 +00:00
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
Julien Isorce
cc38e16ef2
[804/906] rpi: call bcm_host_init in plugin_init
2017-12-09 19:31:31 +00:00
Julien Isorce
dd679dee25
[803/906] raspberrypi: add support for dispmanx
...
See https://bugzilla.gnome.org/show_bug.cgi?id=703342
2017-12-09 19:31:31 +00:00
Matthew Waters
48cd6ac353
[801/906] context: Reimplement GL context sharing
...
https://bugzilla.gnome.org/show_bug.cgi?id=704806
2017-12-09 19:31:31 +00:00
Matthew Waters
40a2c12495
[798/906] build: install needed header
2017-12-09 19:31:31 +00:00
Matthew Waters
72cc3c4815
[797/906] x11: fix build for clang
2017-12-09 19:31:31 +00:00
Matthew Waters
b8b9fced19
[796/906] move egl into its own directory
2017-12-09 19:31:31 +00:00
Matthew Waters
83ac943fc4
[795/906] android: port to GstGLContext
...
not tested
2017-12-09 19:31:31 +00:00
Matthew Waters
9cbb652b66
[794/906] context: add subclasses for the different platforms (egl, glx, wgl, etc)
...
- most code taken from the Window subclasses
- tested combinations: xEGL, GLX, Wayland+EGL, Cocoa (under GNUStep), WGL (Wine)
2017-12-09 19:31:30 +00:00
Matthew Waters
e80533dcee
[793/906] add a GstGLContext object that will be the basis of OpenGL contexts
...
At the moment it just sits in between GstGLDisplay and GstGLWindow
performing some of the stuff that GstGLWindow used to do.
2017-12-09 19:31:30 +00:00
Matthew Waters
175f28848c
[792/906] build: use our own in tree headers before system ones
...
allows us to develop against the tree rather than what may be installed
2017-12-09 19:31:30 +00:00
Julien Isorce
b56bf26dce
[791/906] glwindow/x11: remove X11EventSource as soon as the window is deleted
...
gst_gl_window_x11_send_message do not use XSendEvent anymore
2017-12-09 19:31:30 +00:00
Sebastian Dröge
4e8c78a4da
[789/906] egl: Create a window surface if necessary
2017-12-09 19:31:30 +00:00
Tonu Jaansoo
431ce49db3
[788/906] osx: Fix compilation
2017-12-09 19:31:30 +00:00
Tonu Jaansoo
c304635ecf
[787/906] gl: The GLSL rectangle resampler does not always work with int tex coords
...
Use floats instead.
2017-12-09 19:31:30 +00:00
Sebastian Dröge
396717587e
[786/906] glprototypes: Add support for NV extensions for DrawBuffers and ReadBuffer
2017-12-09 19:31:30 +00:00
Sebastian Dröge
b6207a10a2
[785/906] egl: Use EGL_KHR_surfaceless_context instead of creating a useless surface if available
2017-12-09 19:31:30 +00:00
Sebastian Dröge
82eb297aba
[782/906] gldownload: Use strlen() instead of sizeof(char*)
...
gstgldownload.c:846:22: error: argument to 'sizeof' in 'memcpy' call is the same expression as the source; did you mean to provide an explicit length? [-Werror=sizeof-pointer-memaccess]
2017-12-09 19:31:30 +00:00
Matthew Waters
e32e8f45e0
[781/906] download: propogate errors from the GL thread
2017-12-09 19:31:30 +00:00
Matthew Waters
7c4d51edf4
[780/906] up/download: check return values
...
So we fail properly
2017-12-09 19:31:30 +00:00
Matthew Waters
13d487741a
[779/906] download: remove _thread variants of the API
2017-12-09 19:31:30 +00:00
Matthew Waters
1f19143837
[778/906] upload: remove _thread variants of the API
2017-12-09 19:31:30 +00:00
Matthew Waters
d009a216e6
[777/906] upload: overhaul and addition of new video formats
...
use the shaders from eglglessink (adapted for Desktop GL)
error out properly
2017-12-09 19:31:30 +00:00
Matthew Waters
0df6a5e963
[776/906] download: fix compiler warning about missing string format
2017-12-09 19:31:30 +00:00
Sebastian Dröge
e4f45140d6
[775/906] configure: Check for GLeglImageOES and others again
...
https://bugzilla.gnome.org/show_bug.cgi?id=704498
2017-12-09 19:31:30 +00:00
Sebastian Dröge
fe0ad33572
[774/906] win32: Fix some compiler errors/warnings
2017-12-09 19:31:30 +00:00
Mathieu Duponchelle
47b9fb1d49
[773/906] glfilters: Mark writable-only properties as readable as well
...
https://bugzilla.gnome.org/show_bug.cgi?id=704429
2017-12-09 19:31:30 +00:00
Sebastian Dröge
8efcecb98c
[771/906] gl: Some less long/ulong/gulong usage
2017-12-09 19:31:30 +00:00
Matthew Waters
49951beac8
[766/906] utils: generate a RGBA texture in all cases
2017-12-09 19:31:30 +00:00
Matthew Waters
d492036322
[765/906] wayland: remove fullscreen
2017-12-09 19:31:30 +00:00
Matthew Waters
2c6f8de516
[764/906] filter: fix pad template caps
...
upload is for the sink template
download is form the src template
2017-12-09 19:31:30 +00:00
Matthew Waters
8577de136e
[763/906] memory: copy properly depending on where the most recent data is
2017-12-09 19:31:30 +00:00
Sebastian Dröge
5b1dd556de
[762/906] glimagesink: Fix some memory leaks and properly set up the buffer pool
2017-12-09 19:31:30 +00:00
Sebastian Dröge
4f23429abb
[761/906] x11: Protect event display connection with a mutex
...
We use it from different threads and need to serialize the
accesses to it.
2017-12-09 19:31:30 +00:00
Sebastian Dröge
9810469db0
[760/906] x11: Always use the same display connection from the GL thread
...
The other display connection might be used by async calls from elsewhere
at the same time.
https://bugzilla.gnome.org/show_bug.cgi?id=704247
2017-12-09 19:31:30 +00:00
Sebastian Dröge
bb4414ac7f
[759/906] gldownload: #ifdef some GLES2 specific code to fix compilation
2017-12-09 19:31:30 +00:00
Sebastian Dröge
a41b21f4a5
[758/906] android: Don't require a window to be set
...
This allows the filters to be usable without a GL sink downstream.
2017-12-09 19:31:30 +00:00
Sebastian Dröge
0a6359fc59
[757/906] egl: Create an offscreen surface if no window was provided
2017-12-09 19:31:30 +00:00
Sebastian Dröge
1de089fe81
[756/906] gldownload: Reset the viewport after download RGB via GLES2
2017-12-09 19:31:29 +00:00
Sebastian Dröge
85a4f1042b
[755/906] gldownload: Unbind framebuffer after downloading RGB with GLES2
2017-12-09 19:31:29 +00:00
Sebastian Dröge
f804d53a9c
[754/906] gldownload: Add support for RGB reordering when using GLES2
2017-12-09 19:31:29 +00:00
Sebastian Dröge
b3eef9dd15
[753/906] gldisplay: Sending a message is synchronous, we can allocate the memory on the stack
2017-12-09 19:31:29 +00:00
Sebastian Dröge
b2934152ce
[752/906] glwindow: Add destroy notifies for the data of the callbacks
...
And actually call the close callback when the window is closed.
2017-12-09 19:31:29 +00:00
Sebastian Dröge
ef68e5ade2
[751/906] gldisplay: Don't hold lock while sending a message to the GL thread
...
https://bugzilla.gnome.org/show_bug.cgi?id=704247
2017-12-09 19:31:29 +00:00
Sebastian Dröge
15438d5b7f
[750/906] glupload: Add support for RGB reordering when using GLES2
2017-12-09 19:31:29 +00:00
Sebastian Dröge
9d4f99b8bb
[749/906] glshader: Add some more debug output
2017-12-09 19:31:29 +00:00
Sebastian Dröge
b28a1e943d
[748/906] glupload: GL_STENCIL_ATTACHMENT is needed for desktop GL, not GLES
2017-12-09 19:31:29 +00:00
Sebastian Dröge
6c5ce0ee99
[747/906] gl: Constify YUV conversion shaders
2017-12-09 19:31:29 +00:00
Sebastian Dröge
90450a39b7
[746/906] android: Add comment to clarify the type of a variable
2017-12-09 19:31:29 +00:00
Sebastian Dröge
d0293d9f0c
[745/906] gl: Simplify and optimize YUV conversion shaders a bit
2017-12-09 19:31:29 +00:00
Sebastian Dröge
bbd9dd465c
[744/906] gl: Use __GST_GL_H__ instead of __GL_H__ as a multi-include guard
...
GL/gl.h might use the latter already.
2017-12-09 19:31:29 +00:00
Sebastian Dröge
29874d3be6
[743/906] win32: Allow setting window handle before creating the context
2017-12-09 19:31:29 +00:00
Sebastian Dröge
bd60dd7f22
[742/906] cocoa: Allow setting window handle before creating the context
2017-12-09 19:31:29 +00:00
Sebastian Dröge
d937a7e899
[741/906] wayland: Don't leak main context and loop
2017-12-09 19:31:29 +00:00
Sebastian Dröge
09795ef023
[740/906] x11: Allow setting window handle before creating the context
2017-12-09 19:31:29 +00:00
Sebastian Dröge
764e682cd0
[739/906] x11: Don't leak main context and main loop
2017-12-09 19:31:29 +00:00
Sebastian Dröge
52b44e4c07
[738/906] gl: Include glu.h after gl.h
2017-12-09 19:31:29 +00:00
Sebastian Dröge
192b37980f
[735/906] gl: Add support for Android
...
https://bugzilla.gnome.org/show_bug.cgi?id=703340
2017-12-09 19:31:29 +00:00
Sebastian Dröge
6a5bebebb9
[734/906] win32: Make automake happy by using noinst_HEADERS
2017-12-09 19:31:29 +00:00
Sebastian Dröge
f7998a2e98
[733/906] gl: Major header and include cleanup
2017-12-09 19:31:29 +00:00
Julien Isorce
d17a4381b1
[732/906] build: fix repeated typedefs
...
Write forward declarations in another way to avoid
repeated typedefs "error: redefinition of typedef".
Raised when using i686-apple-darwin11-llvm-gcc-4.2
It seems that C apple compiler does not support
C11 feature.
https://bugzilla.gnome.org/show_bug.cgi?id=703885
2017-12-09 19:31:29 +00:00
Julien Isorce
d4a8451c11
[731/906] cocoa: fix build when GNUSTEP is not defined
2017-12-09 19:31:29 +00:00
Sebastian Dröge
61dfdc19b9
[730/906] glcompat: Properly check for GLchar and other types
...
On Android for example these are no #defines but typedefs
2017-12-09 19:31:29 +00:00
Sebastian Dröge
341210eaa6
[729/906] gl: Include config.h everywhere
2017-12-09 19:31:29 +00:00
Sebastian Dröge
92c66f55bc
[727/906] egl: Refactor EGL logic into a helper object
2017-12-09 19:31:29 +00:00
Matthew Waters
ac1a2297f5
[726/906] window: don't call a NULL destroy function
2017-12-09 19:31:29 +00:00
Matthew Waters
3c2810c3d6
[725/906] x11: use GMainContext/GMainLoop
...
allows us to be reentrant
https://bugzilla.gnome.org/show_bug.cgi?id=703445
2017-12-09 19:31:29 +00:00
Matthew Waters
17e4fe41d3
[724/906] wayland: make reentrant
...
https://bugzilla.gnome.org/show_bug.cgi?id=703445
2017-12-09 19:31:29 +00:00
Julien Isorce
bbc71ed90f
[723/906] gstglwindow: close has to be called in the glthread.
...
Indeed 'glXMakeCurrent (window_x11->device, None, NULL);'
has to be called in the thread where the glcontext is actually
current.
Otherwise glXDestroyContext may crash.
2017-12-09 19:31:28 +00:00
Руслан Ижбулатов
9af1cee2f7
[722/906] gl: Fix build on Win32
...
1) Need to include GL/glext.h on W32 to provide necessary macros
2) W32 macros that pre-processor has by default are different for different
toolchains. Borland uses __WIN32__, everyone else has _WIN32, so check both.
Side-note: glext.h is not supplied by mingw-w64 at the moment, but can be
downloaded from http://www.opengl.org/registry/
https://bugzilla.gnome.org/show_bug.cgi?id=703364
2017-12-09 19:31:28 +00:00
Sebastian Dröge
6c89d7e839
[721/906] glfilter: Use uint64 for the OpenGL context property
...
ulong/long properties are deprecated and should not be used anymore
for portability reasons.
2017-12-09 19:31:28 +00:00
Sebastian Dröge
685d855ded
[719/906] gl: Fix compilation with GLES2
2017-12-09 19:31:28 +00:00
Matthew Waters
5b13d0ebf4
[718/906] shader: make it possible to unref in the non-GL thread
2017-12-09 19:31:28 +00:00
Matthew Waters
71c8edf9c0
[717/906] remove outdated cmake build files
2017-12-09 19:31:28 +00:00
Matthew Waters
bc5d65928f
[716/906] wayland: properly choose EGL_RENDERABLE_TYPE
...
based on the gl api we chose
2017-12-09 19:31:28 +00:00
Matthew Waters
5ec9f248a1
[715/906] display: inherit from the right object class
2017-12-09 19:31:28 +00:00
Matthew Waters
1c84c0fb96
[714/906] Add GstGLFramebuffer to replace _display_gen_fbo and friends
...
This version is simply API compatible with _display_gen_fbo.
The next version will likely revamp the API
2017-12-09 19:31:28 +00:00
Matthew Waters
d7f5cac7ce
[713/906] shader: make it possible to create the object in a non-GL thread
2017-12-09 19:31:28 +00:00
Matthew Waters
ef6b1ca760
[712/906] wayland: shutdown properly
...
We cannot use _finalize as this will be called before GstGLWindow's
_finalize. This causes us to try and perform operations with the
wayland server when the connection has been severed.
2017-12-09 19:31:28 +00:00
Matthew Waters
380f918802
[711/906] wayland: support choosing Desktop GL as the api
2017-12-09 19:31:28 +00:00
Matthew Waters
951daee416
[710/906] window: fail if the user specifies an GL api that we cannot work with
...
It would've been caught later in an g_assert anyway.
2017-12-09 19:31:28 +00:00
Matthew Waters
2ae5b50fa4
[709/906] display: some more cleanups
2017-12-09 19:31:28 +00:00
Matthew Waters
6e86d0e920
[708/906] display: a cleanup and removal of old code
2017-12-09 19:31:28 +00:00
Matthew Waters
bdf5b5be0f
[707/906] display: move error_message to utils
2017-12-09 19:31:28 +00:00
Matthew Waters
5bc069a5d5
[706/906] display: move activate_context into utils
2017-12-09 19:31:28 +00:00
Matthew Waters
4f117323b8
[705/906] x11: don't shutdown in _finalize
...
The window's loop could be still running when _finalize is called
and if we destroy the display connection it will never be closed.
Add _open and _close vfuncs to GstGLWindow so that subclasses can
start up and shutdown at the right time.
2017-12-09 19:31:28 +00:00
Matthew Waters
761bc0156a
[704/906] Use gst_object_[un]ref so we can get refcounts in the log
2017-12-09 19:31:28 +00:00
Matthew Waters
9e7af77dc8
[703/906] x11: don't segfault if destroy_cb is NULL
2017-12-09 19:31:28 +00:00
Matthew Waters
5818b015d6
[702/906] x11: fix segfault if the x11 backend is instantiated but not used
2017-12-09 19:31:28 +00:00
Matthew Waters
c6988cb064
[701/906] display: move context creation into window
2017-12-09 19:31:28 +00:00
Matthew Waters
9c633e658a
[700/906] display: move most of the code into utils for sorting later
...
This contains a hack that essentially requires one GstGLDisplay
per process.
2017-12-09 19:31:28 +00:00
Matthew Waters
38e0434d95
[699/906] display: remove list of upload and download objects
...
and only create an up/download object when needed.
2017-12-09 19:31:28 +00:00
Matthew Waters
81334a1af0
[698/906] move sink-specific stuff from GstGLDisplay into glimagesink
2017-12-09 19:31:28 +00:00
Matthew Waters
ad31c9f8e2
[697/906] display: allow the user to try and choose the GL api we use via env variable
...
GST_GL_API=opengl,opengl3,gles2,gles3
2017-12-09 19:31:28 +00:00
Matthew Waters
f5472457bf
[696/906] glapi: fix memory leak from not freeing a string
2017-12-09 19:31:28 +00:00
Matthew Waters
06eb6f4965
[695/906] build: remove libtool warning about -version-info not used in convenience libraries
2017-12-09 19:31:28 +00:00
Matthew Waters
696477bbf6
[693/906] x11_glx: ask for a 3.0 GL Context
...
(falling back if needed)
2017-12-09 19:31:27 +00:00
Matthew Waters
957b4cf08b
[692/906] window_x11: add XError trapping
...
some functions in GLX can fail if the implementation does not support
certain features we ask for (i.e. GL 3) bringing down the entire
application
2017-12-09 19:31:27 +00:00
Matthew Waters
d88a9c0044
[691/906] feature: make gst_gl_check_extension public
...
prevents duplication of code of extension string parsing in GstGLWindow's
2017-12-09 19:31:27 +00:00
Matthew Waters
df675e7335
[690/906] windowx11glx: use fbconfigs if supported
2017-12-09 19:31:27 +00:00
Matthew Waters
d71ab51c9f
[688/906] display: properly shutdown if we error after context creation
...
The _finalize() code checks to see if the context was created before
attempting to destroy it. We never did say that we had created the context.
2017-12-09 19:31:27 +00:00
Matthew Waters
01518880fa
[685/906] filter: improve error handling
2017-12-09 19:31:27 +00:00
Matthew Waters
a9b5bfe9d7
[684/906] display: lack of format-string causing a compiler warning
2017-12-09 19:31:27 +00:00
Matthew Waters
94d1326a7f
[683/906] feature: remove double free
2017-12-09 19:31:27 +00:00
Matthew Waters
1a04002052
[681/906] win32: fix gl api calls on 32-bit
...
win has the bright idea of having 5 different calling conventions.
we should probably use the right one so we don't crash from stack
corruption.
2017-12-09 19:31:27 +00:00
Matthew Waters
31a5beb3f3
[680/906] overlay: tentative port to new GstGLFuncs API
2017-12-09 19:31:27 +00:00
Matthew Waters
b9a10f8e15
[678/906] window_win32_wgl: implement wglGetProcAddress for extension functions
2017-12-09 19:31:27 +00:00
Matthew Waters
ed98971953
[677/906] memory: fix GSIZE printf format on win32
2017-12-09 19:31:27 +00:00
Matthew Waters
8d07dcbd5e
[676/906] windwo_win32: port to new API
2017-12-09 19:31:27 +00:00
Matthew Waters
72ac429e57
[675/906] upload: provide nicer debugging
2017-12-09 19:31:27 +00:00
Matthew Waters
6e8099fa20
[674/906] feature: try and catch more GL extension functions
...
if we don't find the extension in core GL, try the extension version anyway
2017-12-09 19:31:27 +00:00
Matthew Waters
1198b27830
[673/906] feature: add gstreamer license
2017-12-09 19:31:27 +00:00
Matthew Waters
792f055db4
[672/906] display: constify GstGLFuncs *gl
2017-12-09 19:31:27 +00:00
Matthew Waters
267bf848de
[671/906] win32: #include GL/glext.h on windows
...
also add some GL default variables if some GL types are not defined
2017-12-09 19:31:27 +00:00
Matthew Waters
dba83ebbd3
[670/906] display: replace glib deprecated api
2017-12-09 19:31:27 +00:00
Matthew Waters
7d4d1f50d4
[669/906] window: seperate object creation and context creation
2017-12-09 19:31:27 +00:00
Matthew Waters
63a5d9e981
[668/906] shader: fix gles2 segfault
2017-12-09 19:31:27 +00:00
Matthew Waters
0cc3150e37
[658/906] mixer: fix eos timestamp check
2017-12-09 19:31:27 +00:00
Matthew Waters
535074cc87
[655/906] download: remove erronous ReadBuffer call
...
- it was causing segfaults in mesa
- we didn't set the readbuffer so we shouldn't reset it
2017-12-09 19:31:27 +00:00
Matthew Waters
ccfa7d674a
[652/906] bumper: port to non-GLEW + arrays
2017-12-09 19:31:27 +00:00
Matthew Waters
847e6540fb
[651/906] up/download: fix some typos when removing GLEW
2017-12-09 19:31:27 +00:00
Matthew Waters
173467e48a
[650/906] filter: fix _draw_texture()'s wrong vertices
2017-12-09 19:31:27 +00:00
Matthew Waters
6bee9b9c93
[647/906] remove dependecy on glew
2017-12-09 19:31:27 +00:00
Matthew Waters
17fdb480d0
[646/906] some gl header fixes/additions
2017-12-09 19:31:27 +00:00
Matthew Waters
2f2916dd50
[645/906] fix gles2 compilation
2017-12-09 19:31:27 +00:00
Matthew Waters
57e209a423
[644/906] update .gitignore for some new files
2017-12-09 19:31:27 +00:00
Matthew Waters
c692a610de
[643/906] display: privatise most of the struct
2017-12-09 19:31:26 +00:00
Matthew Waters
e983f02e87
[642/906] add gstglconfig.h for apps to find out what our capabilites are
...
ie libgstgl can be compiled with any combination of opengl/gles2
2017-12-09 19:31:26 +00:00
Matthew Waters
8375116c4b
[641/906] display: feature check for GL extension functions
2017-12-09 19:31:26 +00:00
Matthew Waters
a87b070abb
[640/906] build: add missing file to built sources
2017-12-09 19:31:26 +00:00
Matthew Waters
4a886e91e4
[639/906] add get_proc_address implementations for egl and glx
2017-12-09 19:31:26 +00:00
Matthew Waters
4a024734da
[638/906] window: add get_proc_address + stub for retrieving gl functions
2017-12-09 19:31:26 +00:00
Matthew Waters
87e5cd6777
[637/906] x11_egl: add prelim support for choosing opengl or gles
2017-12-09 19:31:26 +00:00
Matthew Waters
59cb56fa4d
[636/906] window_x11: compact debug info
2017-12-09 19:31:26 +00:00
Matthew Waters
17e6d70dba
[635/906] fixup compile errors
2017-12-09 19:31:26 +00:00
Matthew Waters
68b4ddff12
[634/906] wayland egl: deactivate context before we destroy it
...
avoids a segfault with dri drivers
2017-12-09 19:31:26 +00:00
Matthew Waters
db236c510f
[633/906] display: fail properly in context creation in order to minimize a race condition
...
previously, on context creation, when we failed to get a valid context
we would still atempt to run the window mainloop as well as setting an error
on the display. This would cause the calling element to finalize the display
and therefore attempt to quit the window mainloop. However the mainloop
may not have started running. Thus when the window mainloop ran it would
never a get a quit message and never end.
2017-12-09 19:31:26 +00:00
Matthew Waters
12b045af81
[631/906] remove redefinition warnings in compiling tests
2017-12-09 19:31:26 +00:00
Matthew Waters
1ec4ffc824
[630/906] display: add gl api checking
...
i.e. check for cases where the window wants a different API than
what the library was compiled with
2017-12-09 19:31:26 +00:00
Matthew Waters
c3526080aa
[629/906] window: add GError for error handling of context creation
2017-12-09 19:31:26 +00:00
Matthew Waters
6c0e32864a
[627/906] shader: check for invalid objects
2017-12-09 19:31:26 +00:00
Matthew Waters
fd06db00b0
[625/906] add vtable for opengl functions
...
The vtable provides the ability for one to compile (but not link)
against both OpenGL and GL|ES and starts the move away from GLEW
2017-12-09 19:31:26 +00:00
Matthew Waters
344253e860
[624/906] OPENGL_ES2 => HAVE_GLES2 and add HAVE_OPENGL
...
use GstGLAPI to determine which code paths to execute.
perform some cleanups
2017-12-09 19:31:26 +00:00
Matthew Waters
ee992ec531
[623/906] move GL includes into a single file
2017-12-09 19:31:26 +00:00
Matthew Waters
4e46ef4a3f
[622/906] add missing GL_STENCIL_ATTACHMENT for gles2 compatability
2017-12-09 19:31:26 +00:00
Matthew Waters
0be301af24
[621/906] GstGLRendererAPI => GstGLAPI and get GstGLAPI from a window
2017-12-09 19:31:26 +00:00
Matthew Waters
e1ec48b6cf
[620/906] wayland_egl: attempt at resizing the video
2017-12-09 19:31:26 +00:00
Matthew Waters
62e6b36cd0
[619/906] fix typo for win32 debug variables
2017-12-09 19:31:26 +00:00
Matthew Waters
ccabf4545a
[618/906] add wayland-egl window backend
2017-12-09 19:31:26 +00:00
Matthew Waters
d169907472
[617/906] fix 'set but not used' compiler warnings
2017-12-09 19:31:26 +00:00
Matthew Waters
80fdf4c30c
[616/906] move window-specific code into seperate subfolders
2017-12-09 19:31:26 +00:00
Matthew Waters
cc1f734857
[615/906] preliminary support for Win32 EGL
2017-12-09 19:31:26 +00:00
Matthew Waters
d378a9d1d9
[614/906] try GLX first when using ANY | OPENGL | OPENGL3
2017-12-09 19:31:26 +00:00
Matthew Waters
fc4619f8a9
[613/906] window_cocoa: fix segfault with gst-launch-1.0 -e ... and sending SIGINT (Ctrl-C)
...
GNUstep has a signal handler for SIGINT which runs in the main thread.
However that thread has never been 'registered' with GNUstep so
the autorelease magic of objective-c causes a segfault from accessing
a null NSThread object somewhere deep in GNUstep.
2017-12-09 19:31:26 +00:00
Matthew Waters
517db226fe
[612/906] remove GNUstep makefiles
2017-12-09 19:31:26 +00:00