| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Just use gst_caps_set_features() instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Otherwise we will receive bogus values
https://bugzilla.gnome.org/show_bug.cgi?id=763365
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
This reverts commit 797d6415dfd6e111efb2cab544958a67cbf22b17.
We're frozen for 1.8.0 release and this change might have bigger impact.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
!(flag1 | flag2 | flag3) is always evaluation to 0. ~ was meant here
instead of !.
CID 1352032.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
e.g. the RPi doesn't have them defined
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
GstPlayerVideoOverlayVideoRenderer
Expose the expose() and set_render_rectangle() methods. These are useful for
proper functioning of the video overlay in various situations and toolkits.
|
|
|
|
| |
2d287812 was incomplete
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=759801
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Only search if there is indeed enough data to be searched otherwise
an assertion is raised
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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[] = {
^~~~~~~~~~~~~~
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=761538
|
|
|
|
|
| |
This was accidentally removed in commit ccff3be3.
https://bugzilla.gnome.org/show_bug.cgi?id=733959
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
One was commented out, but we also don't use // comments :)
|
|
|
|
|
| |
The headers use the american spelling of behavior not the UK/AUS version with
the extra U.
|
|
|
|
| |
This is an optimization to avoid pointless string processing.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=752374
|
| |
|
|
|
|
|
| |
Avoid redundant calls to glGetUniformLocation. The results can be cached once
the shader has been linked.
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
ret is overwitten before used with the return of the subclass seek.
CID #1352044
|
|
|
|
|
|
| |
message.
https://bugzilla.gnome.org/show_bug.cgi?id=761458
|
|
|
|
| |
Also internalize some API from being exported.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Simplifies the code a bit and avoid repeating this
common operation
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
introspection scanner
https://bugzilla.gnome.org/show_bug.cgi?id=761460
|