diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 311 |
1 files changed, 311 insertions, 0 deletions
@@ -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> |