Commit graph

1341 commits

Author SHA1 Message Date
Julien Isorce 74b8117e53 examples: initialize NSApp at the beginning 2017-12-09 19:31:58 +00:00
Julien Isorce d3b3887c52 gl/cocoa: do not terminate loop in gst_gl_window_cocoa_close
It is now done in _finalize.

Fix regression introduced by
"gl/window: create the main loop/context on init/finalize"
bc7a7259f3
2017-12-09 19:31:58 +00:00
Julien Isorce a51680b1b3 gl: avoid overwriting display and context to NULL
It happens when the application provides display
and/or context.
2017-12-09 19:31:57 +00:00
Matthew Waters 15fd4e164a glshader: attribute locations are -1 on error 2017-12-09 19:31:57 +00:00
Neos3452 7d83351172 glshader: prevent from getting attributes without vertex shader
It doesn't make sense to query for vertex attributes without a vertex
shader. Moreover this is causing a crash on OSX.

https://bugzilla.gnome.org/show_bug.cgi?id=746168
2017-12-09 19:31:57 +00:00
Jan Schmidt bf0440f97b GL: Remove annoying printf in the filterbin class_init 2017-12-09 19:31:57 +00:00
Matthew Waters 23e2d74112 glimagesink: add pixel-aspect-ratio property on the bin 2017-12-09 19:31:57 +00:00
Matthew Waters 7b9d70944b glupload: unref the bufferpool 2017-12-09 19:31:57 +00:00
Matthew Waters 3aad6d73f1 glimagesink: forward ALL the properties on the bin 2017-12-09 19:31:57 +00:00
Matthew Waters 3d8eb44b7c gluploadelement: properly unref buffers that are the same as the input
basetransform doesn't unref equal input and output buffers
2017-12-09 19:31:57 +00:00
Matthew Waters 92f0aa9bd8 gl: get the context from basemixer/basefilter 2017-12-09 19:31:57 +00:00
Matthew Waters 51620950e4 gl: retreive the gldisplay/app gl context as soon as possible
fixes the usage of gst_gl_display_filter_gl_api
2017-12-09 19:31:57 +00:00
Matthew Waters ae08ada8f0 gl/tests: fix deadlock on glcontext wrapped context test 2017-12-09 19:31:57 +00:00
Julien Isorce d6e460095f glcolorconvert: cache indices in a buffer object 2017-12-09 19:31:57 +00:00
Matthew Waters 95756a5413 caopengllayersink: implement as a bin like glimagesink 2017-12-09 19:31:57 +00:00
Matthew Waters 35476a4cb4 gl/cocoa: avoid deadlock when creating context on the main thread.
Make window/view creation async so that it is possible to
gst_gl_context_create from the main thread.
2017-12-09 19:31:57 +00:00
Matthew Waters 813fb633b4 gl: store the list of contexts within gldisplay
Removes the reliance on the allocation query to propogate GL contexts.

Allows thread safely getting a context for the a specific thread.
2017-12-09 19:31:57 +00:00
Matthew Waters 2e16961ab3 glimagesink: unset the current shader after rendering
fixes gltestsrc ! glimagesink when gltestsrc doesn't use a shader
2017-12-09 19:31:57 +00:00
Matthew Waters 909b69fad4 gltestsrc: remove usage of gldownload library object 2017-12-09 19:31:57 +00:00
Matthew Waters d44594c622 glcontext: store the thread current context 2017-12-09 19:31:57 +00:00
Matthew Waters abe21912f5 gl: new glsrcbin element 2017-12-09 19:31:57 +00:00
Matthew Waters b42e4ba079 glvideomixer: implement with glmixerbin
The relevant properties are forwarded to/from the containing bin
and sink pads.
2017-12-09 19:31:57 +00:00
Matthew Waters c562a7e2d9 glmixer: remove usage of upload/download objects 2017-12-09 19:31:57 +00:00
Matthew Waters e85c7f84db gl: new glmixerbin element 2017-12-09 19:31:57 +00:00
Matthew Waters 1b0d2b1338 glimagesink: implement as a bin
glupload ! glcolorconvert ! sink

Some properties are manually forwarded.  The rest are available using
GstChildProxy.

The two signals are forwarded as well.
2017-12-09 19:31:57 +00:00
Matthew Waters 1412e9c764 gl: new glsinkbin element
similar to glfilterbin but for sinks
2017-12-09 19:31:57 +00:00
Matthew Waters 3e608bcce7 glfilter: don't use the library upload/convert objects 2017-12-09 19:31:57 +00:00
Matthew Waters fe36f0b065 gl: new element glfilterbin
It encapsulates a confiurable GL processing element in the
upload/colorconvert/download dance required to transparently process
the majority of GstBuffer's.
2017-12-09 19:31:57 +00:00
Matthew Waters df50ba0491 gl: add new gldownloadelement
Simply transforms caps to/from raw/glmemory capsfeatures
2017-12-09 19:31:57 +00:00
Matthew Waters 782b343f7d gl: add a new glcolorconvert element based on the glcolorconvert library object 2017-12-09 19:31:57 +00:00
Matthew Waters 1ba38bc10a glupload: implement propose_allocation pool handling for glmemory upload 2017-12-09 19:31:56 +00:00
Matthew Waters 6b6d26fd8f gl: add a new glupload element based on the glupload library object 2017-12-09 19:31:56 +00:00
Matthew Waters 66b349f100 gl: add a new glbasemixer class below glmixer
It deals with propagating the gl display/contexts throughout the
application/pipeline
2017-12-09 19:31:56 +00:00
Matthew Waters 2ead0d97ed gl: add a new glbasefilter class below glfilter
It deals with propagating the gl display/contexts throughout the
application/pipeline
2017-12-09 19:31:56 +00:00
Matthew Waters 6d4cca89ef glutils: expose running a query on a set of src/sink pads 2017-12-09 19:31:56 +00:00
Matthew Waters f9ac4984eb glfilter: advertise resize in the caps negotiation properly 2017-12-09 19:31:56 +00:00
Matthew Waters 1d4b82d5f8 glcolorconvert: we don't do resizing of the video frames
As we cannot do accurate texel sampling then due to the texture
coordinates being interpolated based on the output frame size.
2017-12-09 19:31:56 +00:00
Matthew Waters 39eb34eb43 gl/x11: don't XGetWindowAttributes every XEvent
fixes a deadlock in xcb where the X window may not exist.

https://bugzilla.gnome.org/show_bug.cgi?id=745633
2017-12-09 19:31:56 +00:00
Matthew Waters 9968b512c5 gl/window: hopefully fixup compile warnings on android/ios 2017-12-09 19:31:56 +00:00
Jan Schmidt ebbdf29a24 glfilter: Remove redundant check for clearing context on reset.
The context is already cleared a few lines above.
2017-12-09 19:31:56 +00:00
Jan Schmidt 6350c35352 Remove a bunch of silly ';;' typos at the end of lines 2017-12-09 19:31:56 +00:00
Matthew Waters 5b8f3e7870 gl/window: create the main loop/context on init/finalize
Avoids races setting the window handle from the main thread.

https://bugzilla.gnome.org/show_bug.cgi?id=745633
2017-12-09 19:31:56 +00:00
hoonhee.lee a4af602d0c tests: glcontext: remove unnecessary semicolon
https://bugzilla.gnome.org/show_bug.cgi?id=745875
2017-12-09 19:31:56 +00:00
Nicolas Dufresne ccdd4d48a0 glmixer: Don't share our downstream pool with upstream
Pool cannot have multiple owner. This can lead to spurious
pool was flushing error.

https://bugzilla.gnome.org/show_bug.cgi?id=74570
2017-12-09 19:31:56 +00:00
Nicolas Dufresne da41207841 glfilter: Don't chain downstream pool
Chaining a downstream pool would lead to two owner of the same
pool. In dynamic pipeline, if one owner is removed from the pipeline
the pool will be stopped, and the rest of the pipeline will fail
since the pool will now be flushing. Also fix proposed pool caching,
filter->pool was never set, never unrefed.

https://bugzilla.gnome.org/show_bug.cgi?id=745705
2017-12-09 19:31:56 +00:00
Nicolas Dufresne bc92b41c7b glimagesink: Only cache pool, don't manage it
GLImage does not use any kind of internal pool. There was some
remaining code and comment stating that it was managing the
pool, and it was in fact setting the active state when doing
to ready state.

* Only create the pool if requested and in propose_allocation
* Cache the pool to avoid reallocation on spurious reconfigure
* Don't try to deactivate the pool (we don't own it)

https://bugzilla.gnome.org/show_bug.cgi?id=745705
2017-12-09 19:31:56 +00:00
Sebastian Dröge eeab6e881f gldownload: Simplify caps feature setting code 2017-12-09 19:31:56 +00:00
Sebastian Dröge cb59ace574 gl: Remove format info in glcolorconvert's transform_caps function instead of on every caller
... and let glmixer actually transform the caps it is supposed to transform
instead of inventing new caps.
2017-12-09 19:31:56 +00:00
Sebastian Dröge 86d1280f2c glupload: Simplify caps feature setting code 2017-12-09 19:31:56 +00:00
Edward Hervey 285afe0861 gldisplay: Only use debugging if we have valid values
The debug category won't have been created/activated if it's not a
valid display
2017-12-09 19:31:56 +00:00