Skip to content

Commit

Permalink
Release 1.18.2
Browse files Browse the repository at this point in the history
  • Loading branch information
tp-m committed Dec 6, 2020
1 parent 86058c8 commit 5203547
Show file tree
Hide file tree
Showing 5 changed files with 514 additions and 4 deletions.
311 changes: 311 additions & 0 deletions ChangeLog
@@ -1,3 +1,314 @@
=== release 1.18.2 ===

2020-12-06 13:22:08 +0000 Tim-Philipp Müller <tim@centricular.com>

* ChangeLog:
* NEWS:
* RELEASE:
* gst-plugins-base.doap:
* meson.build:
Release 1.18.2

2020-11-06 14:05:39 +0800 He Junyan <junyan.he@intel.com>

* ext/gl/gstglimagesink.c:
glimagesink: Avoid assert in query.
The sink_query just uses context, other_context and display to query info.
But all these objects can be changed or distroyed in state_change() func
and other places.
This patch is not very perfect. The condition race still exists in other
places in this element. All the functions directly access these objects
without protection. Most of them are executed when the data is pushing and
draw context/window have already been established, so they should not have
problems. But the sink_query and propose_allocation functions are the query
-like functions and executed in query context, which can be called in any
state of the element. So it can cause some crash issues because of destroyed
context object.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/962>

2020-11-06 16:18:14 +0800 He Junyan <junyan.he@intel.com>

* ext/gl/gstglcolorconvertelement.c:
glcolorconver: Return empty caps in transform_caps if fails.
We should not return a NULL in transform_caps() function. The NULL
will generate a assert of:
"transform_caps returned caps which are not a real subset of the
filter caps"
in transform base class.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/962>

2020-11-06 15:36:01 +0800 He Junyan <junyan.he@intel.com>

* gst-libs/gst/gl/gstglbasefilter.c:
glbasefilter: Need to check the display before lock it.
In find_gl_context_unlocked(), the display of filter may be NULL
and can cause crash if we directly access and lock it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/962>

2020-11-06 15:36:21 +0800 He Junyan <junyan.he@intel.com>

* gst-libs/gst/gl/gstglbasefilter.c:
glbasefilter: Delete the un-paired unlock in change_state().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/962>

2020-12-03 06:50:07 -0500 Arun Raghavan <arun@asymptotic.io>

* gst-libs/gst/audio/gstaudioencoder.c:
audioencoder: Fix incorrect GST_LOG_OBJECT usage
GstBuffer is not a GstObject, so this causes a warning to be emitted.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/961>

2020-11-26 14:52:26 +0200 Mart Raudsepp <mart@leio.tech>

* gst-libs/gst/gl/eagl/gstglwindow_eagl.m:
gl/eagl: Fix automatic resize behaviour
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/681
added a layoutSubViews, which never gets called, because it should have been
called layoutSubviews (non-capital "v"). However after fixing that, it still
doesn't work correctly, because window_width/height values are immediately
updated and then draw_cb will never trigger the resize path, because the
values are already up to date.
Update the values inside the resize path again instead, so the check for
entering the resize path is logically always correct.
This makes the layoutSubviews unnecessary, as it only updated the internal
size values prematurely, so it is deleted instead of method naming fixed.
These changes were originally done to avoid accessing UIKit objects on the
main thread, but no additional accesses are added here, only internal
private variable assignments under the same draw_lock, so there should be
no threading issues reintroduced.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/960>

2020-11-26 14:45:05 +0200 Mart Raudsepp <mart@leio.tech>

* gst-libs/gst/gl/eagl/gstglwindow_eagl.m:
gl/eagl: Fix resize condition check in draw_cb to not get called unnecessarily
A CGSize contains CGFloat values (a typedef to double or float), which means
that the values aren't equal, despite it being equal after they are cast to
int by assigning them to window_height/width private members. This leads to
excessive gst_gl_window_resize calls on each frame, at least if the CGFloat
value has a .5 decimal value, e.g. 103.5.
Fix it by storing them as CGFloat instead of gint.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/960>

2020-11-20 16:51:09 +1100 Matthew Waters <matthew@centricular.com>

* gst-libs/gst/video/video-converter.c:
video/converter: increase the number of cache lines for resampling
The exising hardcoded max default does not account for the possible
-1 offset when retrieving lines for resampling. As a result, when
another chain has the same number of cache lines (4), the resample
operation would be attempting to generate 5 lines with a cache size
of 4 and would overwrite the first cache line.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/821
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/959>

2020-11-04 17:02:13 +0800 He Junyan <junyan.he@intel.com>

* ext/gl/gstgluploadelement.c:
gluploadelement: Avoid race condition of base class' context.
The base class' context may change, we should use the common API
with lock to access it, rather than the just directly access the
struct field.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/921>

2020-11-04 23:05:27 +0800 He Junyan <junyan.he@intel.com>

* ext/gl/gstgluploadelement.c:
gluploadelement: Avoid race condition in propose_allocation().
The inside upload and context may have race condition in the function
of propose_allocation(). They may be destroyed while this function is
stilling using it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/921>

2020-12-01 13:13:40 +0200 Sebastian Dröge <sebastian@centricular.com>

* gst/compositor/compositor.c:
compositor: Don't crash in prepare_frame() if the pad was just removed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/955>

2020-12-01 09:31:48 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>

* gst-libs/gst/video/gstvideometa.c:
videometa: gir annotate the size of plane array in new API
Fix #838
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/954>

2020-11-27 11:41:36 +0530 Sanchayan Maity <sanchayan@asymptotic.io>

* gst-libs/gst/audio/gstaudiodecoder.c:
audiodecoder: Move max_errors out of GstAudioDecoderContext
Currently max-errors gets set during init to default or via property.
However, if a decoder element calls gst_audio_decoder_reset with 'full'
argument set to TRUE, it would result in all the fields of context being
zeroed with memset. This effectively results in max-errors getting a
value of 0 overriding the default or user requested value set during
init.
This would result in calls to GST_AUDIO_DECODER_ERROR which track error
counts and allow max-errors, to be ineffective.
To fix this move max-errors out of GstAudioDecoderContext, as changes to
context should not affect this. The error_count is anyways also in
GstAudioDecoderPrivate and not in context.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/953>

2020-11-19 14:35:32 +0100 Edward Hervey <edward@centricular.com>

* gst/playback/gstdecodebin3-parse.c:
decodebin3: Don't leak filter caps
Introduced by previous commit
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/933
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/935>

2020-11-14 09:43:59 +0100 Edward Hervey <edward@centricular.com>

* gst/playback/gstdecodebin3-parse.c:
decodebin3: Properly handle caps query with no filter
There's no guarantee that upstream elements will do queries with specified
filter caps. If that's the case, just return GST_CAPS_ANY
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/935>

2020-11-10 23:26:39 +0100 David Keijser <keijser@gmail.com>

* gst-libs/gst/pbutils/encoding-profile.c:
Fix segfault when using invalid encoding profile
Trying to use gst_encoding_profile_get_file_extension on a
GstEncodingProfile with a cap containing a typo would result in strcmp
being called with NULL. Instead use g_strcmp0 that handles this case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/930>

2020-10-30 13:56:16 -0300 Thibault Saunier <tsaunier@igalia.com>

* docs/plugins/gst_plugins_cache.json:
* gst-libs/gst/video/gstvideoaggregator.c:
* gst/compositor/compositor.c:
* tests/check/elements/compositor.c:
* tests/validate/compositor/renogotiate_failing_unsupported_src_format.validatetest:
* tests/validate/meson.build:
videoaggregator: Guarantee that the output format is supported
In the case `videoaggregator` is set as allowing format conversions,
and as we convert only on the sinkpads, we should ensure that the
chosen format is usable by the subclass. This in turns implies
that the format is usable on the srcpad.
When doing conversion *any* format can be used on the sinkpads, and this
is the only way that we can avoid race conditions during renegotiations
so we can not change that fact, we just need to ensure that the chosen
intermediary format is usable, which was not actually ensured before
that patch.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/834
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/928>

2020-10-29 16:38:44 -0300 Thibault Saunier <tsaunier@igalia.com>

* gst-libs/gst/video/gstvideoaggregator.c:
video-aggregator: Fix renegotiation when using convert pads
Since 23189c60f4cff998c7880e1768cee2f6d1b719d0 we started using the
useless result of `modified_caps` which, was never used since it was
introduced 7 years ago (in videomixer2). The intersection is useless and
we should just avoid doing it at all (which was always the case before)
as it can end up failing renegotiation for bad reasons.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/907>

2020-11-09 18:00:48 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

* gst-libs/gst/video/gstvideoaggregator.c:
videoaggregator: Use local var instead of reloading vagg->info
`gst_video_aggregator_default_negotiated_src_caps` races with
`gst_video_aggregator_reset` called by
`gst_video_aggregator_release_pad` of the last sinkpad. It can happen
that `latency = gst_util_uint64_scale (...` gets called with a zero
framerate.
There doesn't seem to be any reason not to use the local `info` instead
of `vagg->info`, so do that.
Cherry-picked changes from b3fe2d3623722ebf9dfe5c3dc198764ce17cba38.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/926>

2020-11-09 17:58:09 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

* gst-libs/gst/video/gstvideoaggregator.c:
videoaggregator: Take object lock for writing vagg->info
Take `GST_OBJECT_LOCK` when writing `vagg->info`, so that reading in
subclasses is protected against races, as documented in the struct.
/*< public >*/
/* read-only, with OBJECT_LOCK */
GstVideoInfo info;
Cherry-picked changes from b3fe2d3623722ebf9dfe5c3dc198764ce17cba38.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/926>

2020-10-26 08:59:34 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>

* gst-libs/gst/video/gstvideodecoder.h:
video: fix doc warning
@mode has been renamed to
gst_video_decoder_set_interlaced_output_state() but not in the header
file, raising a doc warning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/925>

2020-11-03 20:19:16 +0800 He Junyan <junyan.he@intel.com>

* ext/gl/gstgluploadelement.c:
gluploadelement: Avoid race condition of inside upload creation.
The operations for the inside GstGLUploadElement->upload have race
condition. The _transform_caps() will creates this object if it does
not exist, while the _stop() and change_state() can destroy this object.
The _transform_caps() is called by the gst_base_transform_query(),
so it does not hold the stream lock. It may use the upload while the
_stop() and change_state() has already destroy that object, and then
crash.
Fix: #645
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/920>

2020-11-03 16:40:38 +0200 Sebastian Dröge <sebastian@centricular.com>

* gst-libs/gst/gl/glprototypes/sync.h:
gl: Fix prototype of glGetSynciv()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/917>

2020-10-30 13:52:29 +0100 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

* gst/tcp/gsttcpserversink.c:
tcpserversink: Don't assume g_socket_get_remote_address succeeds
When the client disconnects immediately after connecting, the remote
address is no longer available.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/912>

2020-10-20 12:44:21 +0300 Sebastian Dröge <sebastian@centricular.com>

* gst-libs/gst/audio/gstaudiodecoder.c:
* gst-libs/gst/video/gstvideodecoder.c:
audio/videodecoder: Initialize max_errors in instance_init()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/903>

2020-10-09 17:15:37 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

* tests/examples/gl/gtk/meson.build:
examples/gl/gtk: Add missing dependency on gstgl
Occasionally, a clean build would fail like this:
In file included from ../subprojects/gst-plugins-base/tests/examples/gl/gtk/gstgtk.c:24:
../subprojects/gst-plugins-base/gst-libs/gst/gl/gl.h:25:10: fatal error: gst/gl/gl-enumtypes.h: No such file or directory
25 | #include <gst/gl/gl-enumtypes.h>
| ^~~~~~~~~~~~~~~~~~~~~~~
Add the missing dependency so that the headers are generated beforehand.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/906>

2020-10-28 01:19:37 +0100 Mathieu Duponchelle <mathieu@centricular.com>

* gst-libs/gst/video/gstvideoaggregator.c:
videoaggregator: document and fix locking in convert pad
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/904>

2020-10-20 11:51:08 +0300 Sebastian Dröge <sebastian@centricular.com>

* gst-libs/gst/audio/gstaudiodecoder.c:
* gst-libs/gst/video/gstvideodecoder.c:
audio/videodecoder: Don't reset max-errors in reset()
Otherwise setting the property on the elements has no effect at all
because it's immediately reset during startup.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/902>

2020-10-27 12:34:07 +0000 Tim-Philipp Müller <tim@centricular.com>

* meson.build:
Back to development

=== release 1.18.1 ===

2020-10-26 11:10:30 +0000 Tim-Philipp Müller <tim@centricular.com>
Expand Down

0 comments on commit 5203547

Please sign in to comment.