summaryrefslogtreecommitdiff
path: root/gst-libs
Commit message (Collapse)AuthorAgeFilesLines
* gl/proto: sync operations are available on GLES 3.0Matthew Waters2016-03-221-1/+1
| | | | | | Without the GST_GL_API_GLES2 bit set, we will not even attempt to look for the function pointers in the core library and will fallback to glFlush/glFinish.
* glmemory: unset GL_UNPACK_ROW_LENGTH in opengl3Matthew Waters2016-03-171-1/+2
| | | | | | If the user uploads their own texture without setting the unpack length, then then the result will have the appearance of stride mismanagement due to an incorrect row length.
* glutils: remove custom code for setting caps featuresMatthew Waters2016-03-171-11/+2
| | | | Just use gst_caps_set_features() instead.
* glfilter: only allow the same src/sink caps when we are in passthrough modeMatthew Waters2016-03-171-9/+25
| | | | | | | | | | | | | If we are given caps with extra features (like the overlay composition features), we can only deal with that when we are in passthrough mode. Previously we were bailing entirely and not allowing passthrough filter elements with things like textoverlay. Fixes the following pipeline (assuming glfilter supports passthrough): gl ! textoverlay ! glfilter ! ... ! glimagesinkelement https://bugzilla.gnome.org/show_bug.cgi?id=763756
* glupload: deal with the ANY caps feature correctlyMatthew Waters2016-03-171-19/+37
| | | | | | | | | | | When transforming, xplode it out into the necessary caps features both with and without the passthough features. Fixes negotiation in the following class of pipelines: gl ! textoverlay ! glupload ! glimagesinkelement https://bugzilla.gnome.org/show_bug.cgi?id=763756
* glshader: some compatibility changes for GL 1.4Matthew Waters2016-03-102-7/+11
| | | | | | GL 1.4 (with GL_ARB_shader_objects) doesn't have glIsProgram or glIsShader equivalents. As they are simply assertions, skip them when there isn't a valid function pointer.
* glfilter: retrieve the shader attributes from the GL threadMatthew Waters2016-03-102-18/+26
| | | | | | Otherwise we will receive bogus values https://bugzilla.gnome.org/show_bug.cgi?id=763365
* mpegvideoparser: Handle non-hierarchical profiles againEdward Hervey2016-03-092-1/+6
| | | | | | | | | | | | | This is a regression from since mpegvideoparser was switched to use the codecparsing library. The problem is that the high bit of the profile_and_level is used to specify non-hierarchical profiles and levels. Unfortunately we were discarding that information. Expose that escape bit, and use it in the element https://bugzilla.gnome.org/show_bug.cgi?id=763220
* gldisplay: make readding the same context a no-opMatthew Waters2016-03-081-1/+8
| | | | | | | | | With e38af2304427db908a16bbae0e60aa68be1ba5b5 returning the correct contexts, gst_gl_display_add_context() was susceptible to causing infinte loops when adding the same GstGLContext more than once. Fix and add a test for gst_gl_display_add_context(). Fixes glvideomixer gst-validate tests.
* Revert "libgstgl: cocoa, eagl: don't marshal GL calls to the context thread"Sebastian Dröge2016-03-076-116/+3
| | | | | | This reverts commit 797d6415dfd6e111efb2cab544958a67cbf22b17. We're frozen for 1.8.0 release and this change might have bigger impact.
* libgstgl: cocoa, eagl: don't marshal GL calls to the context threadAlessandro Decina2016-03-076-3/+116
| | | | | | | | | | | | Execute GL calls without marshalling them to the context thread. In the cocoa and eagl backends calling gst_gl_context_activate is cheap and therefore calling it on the current thread and serializing GL calls with a per-context lock is more efficient (faster and has less overhead) than marshalling everything to the context thread. This optimization cuts a large overhead in g_poll (continuously waking up the context thread) and in g_mutex_*/g_cond_* (waiting for results from the context thread).
* gldisplay: really retrieve glcontext for a specific threadMark Nauwelaerts2016-03-061-1/+4
| | | | | | | | When requesting a glcontext (regardless of thread), the result was correct. However, when requesting current glcontext on a specific thread, it could come up with a glcontext active on another thread. https://bugzilla.gnome.org/show_bug.cgi?id=763168
* gl: misc docs fixes/additionsMatthew Waters2016-03-0618-32/+231
|
* gl*memory: document new functionality and objectsMatthew Waters2016-03-0610-41/+503
|
* glfilter: handle some more unfixed fields when fixating capsMark Nauwelaerts2016-03-051-2/+14
|
* glbasememory: Don't change maxsize at run-timeNicolas Dufresne2016-03-031-3/+2
| | | | | | | | | | Maxsize is initialized once and should never change. Allocating data should have no impact on the selected max size for this memory. This causing memory map failure as the maxsize would become smaller then size. This happened when using direct rendering in avviddec on GL that does not support PBO transfer. https://bugzilla.gnome.org/show_bug.cgi?id=763045
* adaptivedemux: Fix REMOVE_SNAP_FLAGS() macroSebastian Dröge2016-03-021-1/+1
| | | | | | | !(flag1 | flag2 | flag3) is always evaluation to 0. ~ was meant here instead of !. CID 1352032.
* adaptivedemux: handle snap seeking without setting any positionThiago Santos2016-02-261-20/+30
| | | | | | | | | When the start_type is GST_SEEK_TYPE_NONE for a forward seek (or stop_type for a reverse) is not set on a snap seeking operation, the element should use the current position and then snap as requested. Also fixes uninitialized variable complaint by clang about 'ts' variable.
* eglimagememory: add compatibility definitions for EGL dmabufMatthew Waters2016-02-261-0/+20
| | | | e.g. the RPi doesn't have them defined
* glcontext: add a method to add a context to another share groupMatthew Waters2016-02-263-1/+30
| | | | | | | | | | | | | | | | | | Intended for use with wrapped contexts that are created shared with gst's gl contexts in order to manage the internal sharegroup state correctly. e.g. with caopengllayer (which is used in glimagesink and caopengllayersink on OS X), we create a CGL context from the gst context and the sharing state was not being correctly set on either GL context and gst_gl_context_is_shared() was always returning FALSE. With 11fb4fff80b63b9d67a731d4bb238b6c0a29d774 only flushing with multiple shared contexts, the required flush was not occuring causing screen corruption or stuttering. Note: this didn't affect GST_GL_API=opengl pipelines https://bugzilla.gnome.org/show_bug.cgi?id=762620
* videoaggregator: fix caps queries to allow proper renegotiationThiago Santos2016-02-251-9/+1
| | | | | | | | | | | | | When caps are already negotiated it should be possible to select formats other than the one that was negotiated. If downstream allows alpha video caps and it has already negotiated to a non-alpha format, caps queries should still return the alpha caps as a possible format as caps renegotiation can happen. Includes tests (for compositor) to check that caps queries done after a caps has been negotiated returns complete results https://bugzilla.gnome.org/show_bug.cgi?id=757610
* player: Expose more GstVideoOverlay API in the ↵Sebastian Dröge2016-02-222-1/+90
| | | | | | | GstPlayerVideoOverlayVideoRenderer Expose the expose() and set_render_rectangle() methods. These are useful for proper functioning of the video overlay in various situations and toolkits.
* gl: fix the buildMatthew Waters2016-02-221-1/+1
| | | | 2d287812 was incomplete
* gl: error out if the configured GL API is unsupported by our elementMatthew Waters2016-02-221-1/+24
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=759801
* codecparsers: h265: Fix initialization of slice_deblocking_filter_disabled_flagScott D Phillips2016-02-201-0/+1
| | | | | | | | | H.265 7.4.7.1 says: > When slice_deblocking_filter_disabled_flag is not present, it is > inferred to be equal to pps_deblocking_filter_disabled_flag. https://bugzilla.gnome.org/show_bug.cgi?id=762351
* mpeg4parser: prevent assertion when scanning for sync codeThiago Santos2016-02-191-2/+5
| | | | | Only search if there is indeed enough data to be searched otherwise an assertion is raised
* gldebug: make sure debug is initialized when calling gst_gl_insert_debug_markerJulien Isorce2016-02-181-0/+2
| | | | | | | | | | | Usually gl debug is initialized in gst_gl_context_create_thread. But this function is not used when using the GstGLContextGPUProcess from ChromiumGStreamerBackend. Received signal 11 SEGV_MAPERR 000000000000 gst_debug_category_get_threshold gst_gl_insert_debug_marker gst_gl_base_filter_gl_start
* gl: Fix compiler warning about unused const variable with gcc 6Sebastian Dröge2016-02-184-10/+41
| | | | | | | | CC libgstgl_x11_la-gstglcontext_glx.lo In file included from gstglcontext_glx.c:39:0: ../utils/opengl_versions.h:52:43: error: ‘gles2_versions’ defined but not used [-Werror=unused-const-variable] static const struct { int major, minor; } gles2_versions[] = { ^~~~~~~~~~~~~~
* gl: Move private headers from SOURCES to noinst_HEADERSSebastian Dröge2016-02-181-5/+6
|
* glfilter: insert the debug marker from the GL threadMatthew Waters2016-02-171-2/+9
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=761538
* adaptivedemux: restore bitrate averaging supportPhilippe Normand2016-02-162-6/+49
| | | | | This was accidentally removed in commit ccff3be3. https://bugzilla.gnome.org/show_bug.cgi?id=733959
* adaptivedemux: remove queue2 overrun notificationPhilippe Normand2016-02-161-10/+0
| | | | | | | Due to performance impact concerns this is removed. An alternative approach would be to rely on buffering messages monitoring. https://bugzilla.gnome.org/show_bug.cgi?id=733959
* gl: Remove leftover g_printsSebastian Dröge2016-02-162-2/+0
| | | | One was commented out, but we also don't use // comments :)
* gldebug: use the correct spelling for behaviorMatthew Waters2016-02-161-8/+8
| | | | | The headers use the american spelling of behavior not the UK/AUS version with the extra U.
* glcontext: don't enable GL debug for messages that won't be loggedMatthew Waters2016-02-162-19/+67
| | | | This is an optimization to avoid pointless string processing.
* dashdemux: gst_dash_demux_get_live_seek_range returns positive valuesFlorin Apostol2016-02-101-0/+5
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=752374
* gl: syncmeta: define GL_TIMEOUT_IGNORED in more portable wayTim-Philipp Müller2016-02-101-1/+1
|
* gstglshader: cache uniform locationsAlessandro Decina2016-02-101-25/+52
| | | | | Avoid redundant calls to glGetUniformLocation. The results can be cached once the shader has been linked.
* gstglcontext: micro optimization to gst_gl_context_thread_addAlessandro Decina2016-02-101-1/+3
| | | | | | Invoke the callback right away when called on the context thread. Removes overhead when nesting libgstgl calls (for example when working with the sync meta).
* glsyncmeta: add compatibility definition for GL_TIMEOUT_IGNOREDMatthew Waters2016-02-091-0/+3
|
* glsyncmeta: separate out gpu/cpu waits.Matthew Waters2016-02-092-0/+40
| | | | | | CPU waits are more expensive and are only required if the CPU is ever going to access the data. GPU waits perform inter-context synchronisation and are cheaper as they don't require CPU intervention.
* adaptivedemux: remove overwritten valueLuis de Bethencourt2016-02-081-2/+1
| | | | | | ret is overwitten before used with the return of the subclass seek. CID #1352044
* adaptivedemux: Update position in stream->segment for new stream segment ↵David Waring2016-02-051-4/+1
| | | | | | message. https://bugzilla.gnome.org/show_bug.cgi?id=761458
* gl: add .def file for msvc buildsMatthew Waters2016-02-054-7/+8
| | | | Also internalize some API from being exported.
* adaptivedemux: handle snap seeksThiago Santos2016-02-042-9/+64
| | | | | | | | | | | | | | | | | | | | | Adaptive demuxers need to start downloading from specific positions (fragments) for every stream, this means that all streams can snap-seek to a different position when requested. Snap seeking in this case will be done in 2 steps: 1) do the snap seeking on the pad that received the seek event and get the final position 2) use this position to do a regular seek on the other streams to make sure they all start from the same position More arguments were added to the stream_seek function, allowing better control of how seeking is done. Knowing the flags and the playback direction allows subclasses to handle snap-seeking. And also adds a new return parameter to inform of the final selected seeking position that is used to align the other streams. https://bugzilla.gnome.org/show_bug.cgi?id=759158
* adaptivedemux: add utility function to get stream from padThiago Santos2016-02-042-17/+31
| | | | | Simplifies the code a bit and avoid repeating this common operation
* glquery: remove unnecessary pointer checkLuis de Bethencourt2016-02-041-2/+1
| | | | | | All uses of query->context in gstglquery.c assume it exists. We can assume this as well before unrefing it. Furthermore, gst_object_unref() will just silently return if it ever were to not exist.
* glbasefilter: enable qos by defaultMatthew Waters2016-02-041-0/+2
| | | | | | | | | Improves the responsiveness of the pipeline when resources are close/above the limitations of the hardware. Any subclass that wishes not to enable qos can do so themselves. https://bugzilla.gnome.org/show_bug.cgi?id=761519
* docs: remove some leftover 'Since 0.10.x' markersTim-Philipp Müller2016-02-032-6/+0
|
* libs: player: use configured GST_PKG_CONFIG_PATH when invoking the ↵David Waring2016-02-021-4/+6
| | | | | | introspection scanner https://bugzilla.gnome.org/show_bug.cgi?id=761460