| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
This reverts commit 96b9666d596be115fd4b446ef846508b7fd05c24.
This reverts commit d11385d167d8843604ea23a05e2dea40b8bbac35.
This breaks the texture sharing with the applemedia elements as
CVOpenGLESTextureCache seems to have an arbitrary restriction on GLES2 only.
|
|
|
|
|
|
|
|
| |
We may need them to transform into a different set of formats.
Fixes YUV->YUV with two glcolorconverts, e.g:
format=I420 ! glcolorconvert ! glcolorconvert ! format=NV12
|
|
|
|
|
| |
Fixes elements transitioning out of passthrough mode using GL resources that
hadn'e been allocated yet.
|
|
|
|
|
| |
Converting to GRAY is no fun. Another case of normalized vs unnormalized
texture coordinates.
|
|
|
|
|
|
|
| |
1.0 / width does not offset by one pixel in rectangular textures (which use
unnormalized coordinates).
Provide the actual pixel offset as a uniform to the shader.
|
|
|
|
|
|
| |
1. Correctly describe what we can caps we can transform to/from.
i.e. no YUV->YUV or GRAY->YUV or YUV->GRAY (except for passthrough).
2. Prefer similar formats and ignore incompatible formats on fixation.
|
|
|
|
|
|
| |
Useful when gst_gl_window.c::gst_gl_window_new is not used.
This is the case when using a custom GstGLWindow.
(ex: GstGLWindowGPUProcess from Chromium)
|
|
|
|
|
| |
gstglcontext_eagl.m:238:45: error: too few arguments to function call,
expected at least 4, have 3
|
|
|
|
| |
Fallback to a gles2 context if that fails
|
|
|
|
|
|
| |
The number of buffers should be GLsizei instead of GLuint.
https://bugzilla.gnome.org/show_bug.cgi?id=761272
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allows the subclass to completely override the chosen src caps.
This is needed as videoaggregator generally has no idea exactly
what operation is being performed.
- Adds a fixate_caps vfunc for fixation
- Merges gst_video_aggregator_update_converters() into
gst_videoaggregator_update_src_caps() as we need some of its info
for proper caps handling.
- Pass the downstream caps to the update_caps vfunc
https://bugzilla.gnome.org/show_bug.cgi?id=756207
|
|
|
|
| |
Other elements may need to use it's functionality
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The function gst_adaptive_demux_stream_update_source() function creates
a new GstPad called internal_pad. This pad is not freed when releasing
the stream.
The solution is to set GST_PAD_FLAG_NEED_PARENT so that the chain
functions do not get called when the pad has no parent and then
remove the parent in the gst_adaptive_demux_stream_free() function. This
causes the refcount of the pad to be set to zero.
https://bugzilla.gnome.org/show_bug.cgi?id=760982
|
|
|
|
|
|
|
| |
They are still considered unstable API but it would be good to give them some
wider testing already to make sure the API is useful.
https://bugzilla.gnome.org/show_bug.cgi?id=760733
|
|
|
|
|
|
|
| |
It's useful enough already to be used in other elements for audio aggregation,
let's give people the opportunity to use it and give it some API testing.
https://bugzilla.gnome.org/show_bug.cgi?id=760733
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=760972
|
|
|
|
|
|
|
| |
..GstPlayer-1.0.c: In function ‘main’:
..GstPlayer-1.0.c:587:3: warning: implicit declaration of function ‘gst_init’
https://bugzilla.gnome.org/show_bug.cgi?id=760090
|
|
|
|
| |
Truncating requires writable caps.
|
|
|
|
|
|
|
|
|
| |
guaranteed to be fixed
So don't try to fixate them, which takes ownership and steals them from
basetransform.
https://bugzilla.gnome.org/show_bug.cgi?id=760696
|
|
|
|
|
|
|
|
| |
This reverts commit 3bdcdedfa00b87f1db505218789178318a16c743.
gst_caps_replace() takes a new reference already, if there is a problem then
it is elsewhere. And there are a few problems, see
https://bugzilla.gnome.org/show_bug.cgi?id=760696
|
|
|
|
|
|
|
|
|
|
|
|
| |
Handling the ghostpad and its internal pad was causing more issues
than helping because of their coupled activation/deactivation
actions.
As we have to install custom chain,event and query functions it is
better to use a floating sink pad internally in the demuxer and just
use those pad functions to push through a standard pad in the demuxer
https://bugzilla.gnome.org/show_bug.cgi?id=757951
|
|
|
|
|
|
|
| |
gst_adaptive_demux_stream_clear_eos_and_flush_state() function will do
all the necessary cleaning.
https://bugzilla.gnome.org/show_bug.cgi?id=757951
|
|
|
|
|
|
|
| |
e.g. android doesn't have it
While we're here move a state specific assertion after the supported check.
Removes an assertion on GLES
|
|
|
|
| |
e.g. anrdoid doesn't have it
|
|
|
|
|
| |
The caps are from an allocation query which are transfer none but were being
treated as transfer full.
|
| |
|
|
|
|
| |
Currently only GL_TIME_ELAPSED and GL_TIMESTAMP are supported
|
|
|
|
|
|
|
|
| |
The messages are stored by gst_gl_async_debug_store_log_msg() and output later
by a corresponding store(), output() or an unset()/free().
Some wrapper macros are provided to avoid callers explicitly using __FILE__,
GST_FUNCTION and __LINE__
|
|
|
|
| |
Allows expansion of GST_PTR_FORMAT and GST_SEGMENT_FORMAT arguments.
|
|
|
|
| |
The width/height may change which requires recreating the depth buffer.
|
|
|
|
|
| |
This is simply a convenience to avoid duplicating the thread marshalling on
set_caps.
|
|
|
|
| |
Otherwise we won't get the button press events and GstNavigation fails.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes a pipeline like:
... ! video/x-raw(memory:GLMemory),format=UYVY ! glcolorconvert !
video/x-raw(memory:GLMemory),format={UYVY, NV12} ! ...
passthrough instead of converting UYVY => NV12. The conversion would happen
before this change since the element (and basetransform) transform the src caps
to format={NV12, UYVY} (since NV12 comes first in the glcolorconvert:src
template) and then the default caps fixate func would fixate to NV12. Blah.
Also there's no need to intersect against the template caps in ::transform_caps
since basetransform does that right after calling the vfunc.
|
| |
|
|
|
|
|
|
| |
Otherwise we are leaking ~400B on each GstMemory allocation.
Freeing in the base class matches the GObject semantics.
|
|
|
|
|
|
| |
The optimistic download_transfer was not setting the required flag to not
perform glReadPixels on subsequent map (READ). resulting in glReadPixels
happening twice.
|
|
|
|
| |
Removes extremely similar code from glmemorypbo.
|
|
|
|
|
| |
Saves having to trawl through the 'default' category when function retrieval
goes wrong.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed adaptivedemux seeking without flushing that just wants
to update stop position. This required protecting the segment
variables with a new mutex so that the seeking thread and the
download threads could safely manipulate the segment and
events related to it.
This contention is only locked/unlocked when starting a new
download, when the first fragment of a segment is received and
when seeking so, hopefully, it won't damage performance.
|
|
|
|
|
| |
Fixes typo on reverse rate check and also only update the
position when the start/stop was actually changed.
|