+=== release 1.21.2 ===
+
+2022-11-07 23:53:59 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * NEWS:
+ * RELEASE:
+ * gstreamer.doap:
+ * meson.build:
+ Release 1.21.2
+
+2022-11-07 23:53:57 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ Update ChangeLogs for 1.21.2
+
+2022-11-07 09:27:09 -0500 Xavier Claessens <xavier.claessens@collabora.com>
+
+ * docs/meson.build:
+ hotdoc: gst-hotdoc-plugins-scanner is not needed for libraries
+ Meson >= 0.64.0 does not allow any more to add executables into
+ hotdoc.generate_doc(..., dependencies: ...) and it should not be needed
+ any way.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3352>
+
+2020-09-01 16:01:08 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * tests/check/gst/gstinfo.c:
+ tests: gstinfo: Test set_threshold_from_string's new reset behavior
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/605>
+
+2020-08-22 23:42:40 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * tests/check/gst/gstinfo.c:
+ tests: gstinfo: Make logging tests pass when GST_DEBUG is set
+ Use gst_debug_set_threshold_from_string's new reset behavior to undo
+ GST_DEBUG and ensure the logging tests have a known configuration.
+ `gst_debug_set_threshold_from_string ("LOG", TRUE)` has the same effect
+ as `gst_debug_set_threshold_from_string ("", TRUE)` followed by
+ `gst_debug_set_default_threshold (GST_LEVEL_LOG)`.
+ Don't bother remembering the default log level set when the test
+ started. It will get reset by the next test, anyway.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/605>
+
+2020-08-22 22:41:15 +0200 Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+ * gst/gstinfo.c:
+ info: Reset patterns with set_threshold_from_string
+ TLDR: Make `gst_set_threshold_from_string ("", TRUE)` reset *all*
+ threshold settings, including those set by previous invocations of
+ `gst_debug_set_threshold_from_string`.
+ The docs say:
+ @reset: %TRUE to clear all previously-set debug levels before setting
+ new thresholds
+ What actually happens is it sets the default threshold to `ERROR`,
+ leaves the patterns in place and calls
+ `gst_debug_category_reset_threshold` on each category.
+ In effect, any category that is matched by a pattern gets reset to that
+ threshold if the app changed it by directly invoking
+ `gst_debug_category_set_threshold`. All other categories are reset to
+ `ERROR`.
+ In my opinion this parameter currently has little value, as the same
+ effect can be achieved by including `ERROR` (without a pattern) in the
+ string, as in `"foo*:WARNING,*bar:INFO,ERROR"`.
+ What I actually expect it to do is reset *all* threshold settings,
+ including those set by previous invocations of
+ `gst_debug_set_threshold_from_string`, starting off with a clean slate
+ for the patterns provided with the call.
+ Otherwise there is no API to do this, besides:
+ - Painfully removing patterns one-by-one via
+ `gst_debug_unset_threshold_for_name` *if* you know what the patterns
+ are.
+ - Adding a `*:FOO` pattern to affect all categories, which makes the
+ default threshold useless and practically leaks all the old
+ patterns.
+ In my opinion this also makes it fit better into the layers of threshold
+ config, which is:
+ 1. Temporary:
+ - `gst_debug_category_set_threshold`
+ - `gst_debug_category_reset_threshold`
+ 2. Patterns:
+ - `gst_debug_set_threshold_for_name`
+ - `gst_debug_unset_threshold_for_name`
+ - `gst_debug_set_threshold_from_string`
+ - `GST_DEBUG`
+ 3. Default:
+ - `gst_debug_set_default_threshold`
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/605>
+
+2022-09-21 10:05:05 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/gstpad.c:
+ gstpad: Avoid race in (un)setting EOS flag on sinkpads
+ The scenario is the following:
+ * Thread 1 is pushing an EOS event on a sinkpad
+ * Thread 2 is pushing a STREAM_START event on the same sinkpad before Thread 1
+ returns. Note : It starts pushing the event after Thread 1 took the object lock.
+ There is a potential race between:
+ * The moment Thread 1 sets the EOS flag once it has finished sending the
+ event (via store_sticky_event). When it does that it has both the STREAM and
+ OBJECT lock
+ * The moment Thread 2 sends the STREAM_START event (Which should release that
+ EOS status), but removing the EOS flag is only done while holding the OBJECT
+ lock and not the STREAM_LOCK, which means it could be re-set by Thread 1 before
+ it then checks again the EOS flag (without the STREAM lock taken).
+ The EOS flag unsetting by STREAM_START should be done with the STREAM lock
+ taken, otherwise it will be racy.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1452
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3320>
+
+2022-11-06 18:10:44 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * tools/gst-inspect.c:
+ gst-inspect: print doc urls for Rust plugins
+ We have documentation for them now after all.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3346>
+
+2022-11-05 00:06:25 +0000 Tim-Philipp Müller <tim@centricular.com>
+
+ * plugins/elements/gstidentity.c:
+ identity: fix "handoff" signal docs
+ The docs list an extra pad argument, which doesn't
+ match the actual signal function signature. Probably
+ a copy'n'paste mistake when copying things from fakesink.
+ Fixes #1546
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3337>
+
+2022-10-24 12:13:14 +0200 Edward Hervey <edward@centricular.com>
+
+ * gst/gstpad.c:
+ gstpad: Fix non-serialized sticky event push
+ With non-serialized sticky events, such as GST_EVENT_INSTANT_RATE, we both want
+ to store the event (for later re-linking) *AND* push the event in a non-blocking
+ way.
+ We therefore must *not* propagate pending sticky events if the event is "sticky
+ or serialized" but only if it's "serialized"
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3254>
+
+2022-08-17 22:34:35 -0600 Michael Gruner <michael.gruner@ridgerun.com>
+
+ * gst/parse/grammar.y.in:
+ parse: do delayed set only if the target child was not found and fail otherwise
+ When using the child proxy notation (child::property=value) it may
+ happen that the target child does not exist at the time of parsing
+ (i.e: decodebin creates the encoder according to the contents of the
+ stream). On this cases, we want to delay the setting of the property
+ to later, when new elements are added. Previous logic performed a
+ delayed set even if the target child was found but the property
+ was not found in it. This should be treated as a failure because,
+ unlike missing elements, properties should not appear dynamically.
+ By not failing, typos in property names may go unnoticed to the end
+ user.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2908>
+
+2022-10-18 18:15:12 +0200 Michael Gruner <michael.gruner@ridgerun.com>
+
+ * gst/gstchildproxy.c:
+ * gst/gstchildproxy.h:
+ childproxy: Implement a new ::get_child_by_name_recurse() API
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2908>
+
+2022-10-27 15:13:36 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * libs/gst/base/gstaggregator.c:
+ * libs/gst/base/gstbaseparse.c:
+ core/base: Only post latency messages if the latency values have actually changed
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1525
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3282>
+
+2022-10-27 11:18:24 +0200 Edward Hervey <edward@centricular.com>
+
+ * plugins/elements/gstconcat.c:
+ concat: Properly propagate EOS seqnum
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3284>
+
+2022-10-25 09:39:07 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/gsturi.c:
+ * libs/gst/net/gstnettimepacket.c:
+ * libs/gst/net/gstntppacket.c:
+ Fix various warnings from gobject-introspection
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3261>
+
+2022-10-22 01:43:22 +0900 Seungha Yang <seungha@centricular.com>
+
+ * tools/gst-inspect.c:
+ gst-inspect: Hide GST_PARAM_DOC_SHOW_DEFAULT flag
+ It's known flag but only for documentation purpose. Don't show
+ its (and user cannot understand) value 0x2000
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3241>
+
+2022-10-22 18:34:14 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * libs/gst/net/gstnetclientclock.c:
+ net: Add missing nullable annotation on the name parameter in the net/NTP clock constructors
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3249>
+
+2022-10-22 22:04:57 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/gstpadtemplate.c:
+ padtemplate: Fix annotations
+ gst_caps_replace() does not take ownership of the new caps
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3248>
+
+2022-10-22 05:29:59 +0900 Seungha Yang <seungha@centricular.com>
+
+ * tools/gst-inspect.c:
+ gst-inspect: Don't print link to doc if it's known to be unavailable
+ "gst_element_factory_get_skip_documentation() == true" means
+ documentation was intentionally skipped for the element feature
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3243>
+
+2022-10-21 11:47:11 +0200 François Laignel <fengalin@free.fr>
+
+ * gst/gstquery.c:
+ gst: uri query: fix inconsistent `uri` nullability assertion
+ Functions `gst_query_set_uri` and `gst_query_set_uri_redirection`
+ can both set a `NULL` `uri`, as annotated in the documentation.
+ However the functions bodies reject `NULL` `uri`s.
+ See [1] for a discussion on that matter.
+ [1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1134#note_1600988
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3237>
+
+2022-10-21 11:11:13 +0200 Thibault Saunier <tsaunier@igalia.com>
+
+ * docs/gst-hotdoc-plugins-scanner.c:
+ docs: plugins-scanner: Handle interface used for plugin API properties
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3236>
+
+2022-10-18 03:08:44 +0900 Seungha Yang <seungha@centricular.com>
+
+ * docs/gst-hotdoc-plugins-scanner.c:
+ docs: plugin-scanner: Stop updating "long-name" metadata
+ The "long-name" value can be environment dependent, and it's not
+ actually used by our documentation.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3208>
+
+2022-10-19 22:30:38 +0900 Seungha Yang <seungha@centricular.com>
+
+ * gst/parse/grammar.y.in:
+ parse: Adjust debug log level
+ That's not an error case at all
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3228>
+
+2022-10-19 13:34:28 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/gstdeviceproviderfactory.c:
+ * gst/gstelementfactory.c:
+ {element,deviceprovider}factory: g_object_new() can't ever return NULL
+ So treat it as the assertion it is.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3226>
+
+2022-10-19 13:33:39 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/gstelementfactory.c:
+ elementfactory: Handle element factory loading failure in gst_element_factory_create_valist() not as assertion
+ In gst_element_factory_create_with_properties() it is a normal error
+ path so let's keep this consistent.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3226>
+
+2022-10-19 13:28:06 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/gstdeviceproviderfactory.c:
+ * gst/gstelementfactory.c:
+ * gst/gstmeta.c:
+ * gst/gstregistry.c:
+ * gst/gsttaglist.c:
+ * gst/gstvalue.c:
+ gst: Use G_TYPE_INVALID instead of 0 for GTypes
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3226>
+
+2022-09-15 00:06:49 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * tests/check/pipelines/parse-launch.c:
+ tests: parse-launch: remove assignment order tests
+ These tests relied on setting the name of an element twice to verify
+ that the last one set took precedence, however name is a CONSTRUCT property
+ and the parser now errors out when such properties are set twice, in
+ g_object_new_with_properties .
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3026>
+
+2022-09-13 23:16:08 +0200 Mathieu Duponchelle <mathieu@centricular.com>
+
+ * gst/parse/grammar.y.in:
+ * gst/parse/types.h:
+ * tests/check/pipelines/parse-launch.c:
+ parse: refactor to make use of gst_element_factory_make_with_properties
+ Instead of creating the element first, then setting properties and
+ presets, we gather those and construct the element with the properties.
+ This means users of gst_parse_launch can now set construct-only
+ properties.
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1380
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3026>
+
+2022-10-18 16:41:36 +0200 Bunio_FH <buniofh@gmail.com>
+
+ * gst/gstminiobject.c:
+ gstminiobject: shares capacity increase
+ during the MSE (WebKit) tests from Apple suite:
+ https://hls-streaming.cdn-apple.com/hls_conformance/dist/v1.1/index.html?pretty=true&whitelist=MSE%20Suite
+ webkit attempts to add a single audio buffer containing ~35.5k frames.
+ when corresponding GstSamples are pulled buffer is being referenced
+ more than object capacity allows: 2^15-1. since the case could be considered
+ malformed a surgical patch is applied to increase the capacity.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3221>
+
+2022-10-15 12:31:17 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * gst/gstatomicqueue.c:
+ * gst/gstbuffer.c:
+ * gst/gstbufferpool.c:
+ * gst/gstbufferpool.h:
+ * gst/gstelement.c:
+ * gst/gstevent.c:
+ * gst/gstinfo.c:
+ * gst/gstmessage.c:
+ * gst/gstobject.c:
+ * gst/gstparse.c:
+ * gst/gstpipeline.c:
+ * gst/gstquery.c:
+ * gst/gststructure.c:
+ * gst/gsttaglist.c:
+ * gst/gsttoc.c:
+ * gst/gsturi.c:
+ * gst/gstutils.c:
+ core: Add/fix various annotations
+ And fix memory leaks/null pointer dereferences in GstUri in error cases.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
+
+2022-10-15 12:24:46 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * libs/gst/check/gstharness.c:
+ check: Add/fix various annotations
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
+
+2022-10-15 12:20:08 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * libs/gst/net/gstnetaddressmeta.c:
+ * libs/gst/net/gstnettimepacket.c:
+ * libs/gst/net/gstnettimeprovider.c:
+ * libs/gst/net/gstntppacket.c:
+ net: Add/fix various annotations
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
+
+2022-10-15 12:18:28 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * libs/gst/base/gstqueuearray.c:
+ base: Add/fix annotations in GstQueueArray
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
+
+2022-10-14 23:48:09 +0300 Sebastian Dröge <sebastian@centricular.com>
+
+ * libs/gst/controller/gsttimedvaluecontrolsource.c:
+ controller: Add/fix various annotations
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>
+
+2022-10-07 14:39:47 +0200 Guillaume Desmottes <guillaume.desmottes@onestream.live>
+
+ * libs/gst/base/gstaggregator.c:
+ aggregator: fix input buffering
+ We need to be able to buffer at least the aggregator latency +
+ upstream latency, which is the value used to compute the aggregator
+ deadline.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3138>
+
+2022-10-01 04:58:04 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/gstbin.c:
+ gstbin: Use g_queue_clear_full()
+ Use g_queue_clear_full() to release the child list
+ instead of iterating over the list twice.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3101>
+
+2022-10-01 04:55:49 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/gstbin.c:
+ gstbin: Fix a potential leak in gst_bin_do_deep_add_remove()
+ If a child element of a bin is unparented while
+ gst_bin_do_deep_add_remove() is iterating the children,
+ don't leak a ref to it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3101>
+
+2022-10-01 04:54:20 +1000 Jan Schmidt <jan@centricular.com>
+
+ * gst/gstiterator.c:
+ gstiterator: Don't use gst_object_unref() for a GObject
+ The owner of a GstIterator is a plain GObject. Don't unref it
+ with gst_object_unref(), or it will be logged in tracer
+ info incorrectly.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3101>
+
+2022-10-04 03:57:31 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * meson.build:
+ Back to development
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3115>
+
+=== release 1.21.1 ===
+
+2022-10-04 01:14:01 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * gstreamer.doap:
+ * meson.build:
+ Release 1.21.1
+
+2022-10-04 01:13:59 +0100 Tim-Philipp Müller <tim@centricular.com>
+
+ * ChangeLog:
+ Update ChangeLogs for 1.21.1
+
2022-10-03 11:16:25 +0200 Edward Hervey <edward@centricular.com>
* plugins/elements/gstqueue2.c: