=== release 1.20.4 ===

2022-10-12 16:39:47 +0100  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gstreamer.doap:
	* meson.build:
	  Release 1.20.4

2022-10-12 16:39:40 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Update ChangeLogs for 1.20.4

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/3142>

2022-10-03 11:16:25 +0200  Edward Hervey <edward@centricular.com>

	* plugins/elements/gstqueue2.c:
	  queue2: Hold the lock when modifying sinkresult
	  As it's done elsewhere. Avoids a potential race of the field being modified in
	  the meantime.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3111>

2018-03-28 17:54:15 +0200  Philipp Zabel <p.zabel@pengutronix.de>

	* gst/gstbuffer.c:
	* gst/gstmeta.c:
	* gst/gstmeta.h:
	* libs/gst/base/gstadapter.c:
	* libs/gst/base/gstbasetransform.c:
	  buffer: drop parent meta in deep copy/foreach_metadata
	  The purpose of a deep buffer copy is to be able to release the source
	  buffer and all its dependencies. Attaching the parent buffer meta to
	  the newly created deep copy needlessly keeps holding a reference to the
	  parent buffer.
	  The issue this solves is the fact you need to allocate more
	  buffers, as you have free buffers being held for no reason. In the good
	  cases it will use more memory, in the bad case it will stall your
	  pipeline (since codecs often need a minimum number of buffers to
	  actually work).
	  Fixes #283
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3090>

2022-09-26 14:17:18 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gsturi.c:
	  gsturi: When setting the same string again do nothing
	  Otherwise code like gst_uri_set_host(uri, gst_uri_get_host(uri)) would
	  first free the string, then create a copy of the freed string and then
	  assigned that.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3081>

2022-08-31 18:08:08 +0200  Paweł Stawicki <stawel+gstreamer@gmail.com>

	* plugins/elements/gstqueue2.c:
	  queue2: Fix deadlock when deactivate is called in pull mode
	  check is flush was called before waiting on condition
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3058>

2022-08-31 14:23:59 +0200  Martin Dørum <martid0311@gmail.com>

	* gst/gstpluginloader.c:
	  gstpluginloader: Don't hang on short reads/writes
	  If read_one or write_one was called but the stream closed before it could
	  read/write a whole packet, read_one/write_one would hang indefinitely,
	  consuming 100% CPU. This commit fixes that by treating a short read/write
	  as an error.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2994>

2022-08-31 09:15:08 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/gst.c:
	  gst_init: Initialize static plugins just before dynamic plugins
	  All plugins needs to be initialized after `gst_initialized = TRUE;`
	  otherwise they could complain that gst_init() has not been called.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2991>

2022-08-24 12:42:12 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/gstvalue.c:
	  value: Use g_critical() when trying to serialize things that can't be
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2986>

2022-08-01 14:00:20 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/gstvalue.c:
	* tests/check/gst/gstvalue.c:
	  gstvalue: Don't loop forever when serializing invalid flag
	  The serialization code would loop forever if an invalid flag was sent into it.
	  With unit test for this corner case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2986>

2022-08-15 20:07:09 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/gstmeta.c:
	* gst/gstmeta.h:
	* tests/check/gst/gstmeta.c:
	  meta: Set the parent refcount of the GstStructure correctly
	  The parent refcount is of the *transformed* buffer, not the input
	  buffer.
	  Also update the docs to clarify that @transbuf is the transformed
	  buffer, and not the buffer on which a transformation is being
	  performed.
	  Due to this bug, modifying the structure of a meta that has been
	  copied to another buffer fails with:
	  gst_structure_set: assertion 'IS_MUTABLE (structure) || field == NULL' failed
	  Add a test for the same.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2894>

2022-07-09 17:04:07 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gst.c:
	  gst: Protect initialization state with a recursive mutex.
	  Otherwise a gst_init() call from a plugin would deadlock if the plugin
	  is loaded as part of registry updating.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/940
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2858>

2022-07-09 17:02:26 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstregistry.c:
	  registry: Remove dead code
	  Initialization/updating of the registry can't possible fail and all code
	  paths always returned TRUE.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2858>

2022-07-09 16:50:54 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gst.c:
	  gst: Don't fail gst_init() if updating the registry fails
	  Everything is already marked as initialized at that point and by failing
	  no tracers would be loaded or plugin feature rank overrides would be
	  applied.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2858>

2022-08-03 12:32:24 +0100  Tim-Philipp Müller <tim@centricular.com>

	* plugins/tracers/gstleaks.c:
	  tracers: leaks: delay type name lookup
	  Micro optimisation: Store the quark of the type name when tracking
	  objects and only do the quark to string conversion (hashtable lookup)
	  later when we actually need the string.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2846>

2022-08-03 12:10:02 +0100  Corentin Damman <c.damman@intopix.com>

	* plugins/tracers/gstleaks.c:
	  tracers: leaks: fix potentially invalid memory access when trying to detect object type
	  The is_gst_mini_object_check would sometimes detect a proper GObject
	  as a mini object, and then bad things happen.
	  We know whether a pointer is a proper GObject or a MiniObject here
	  though, so just pass that information to the right code paths and
	  avoid the heuristics altogether.
	  Eliminates all remaining uses of object_is_gst_mini_object().
	  Fixes #1334
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2846>

2022-08-03 12:10:02 +0100  Tim-Philipp Müller <tim@centricular.com>

	* plugins/tracers/gstleaks.c:
	  tracers: leaks: fix potentially invalid memory access when trying to detect object type
	  The is_gst_mini_object_check would sometimes detect a proper GObject
	  as a mini object, and then bad things happen.
	  We know whether a pointer is a proper GObject or a MiniObject here
	  though, so just pass that information to the right code paths and
	  avoid the heuristics altogether.
	  There are probably more cases where the check should be eliminated.
	  Fixes #1334, maybe
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2846>

2022-07-28 19:44:20 +0000  Rafael Sobral <rafaelsobral@pm.me>

	* libs/gst/base/gstaggregator.c:
	  aggregator: fix reversed active/flushing arguments in debug log output
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2826>

2022-07-08 16:37:51 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/gstinfo.c:
	  gstinfo: Parse "NONE" as a valid level name
	  This allows using `NONE` in `GST_DEBUG`,
	  `gst_debug_set_threshold_from_string`, etc. It was accessible before,
	  but only via the integer `0`.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2775>

2022-07-18 15:46:21 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: Reset EOS flag after receiving a stream-start event
	  And also don't assert that there are no buffers queued up when handling
	  an EOS event. The pad's streaming thread might've already received a new
	  stream-start event and queued up a buffer in the meantime.
	  This still leaves a race condition where the srcpad task sees all pads
	  in EOS state and finishes the stream, while shortly afterwards a pad
	  might receive a stream-start event again, but this doesn't seem to be
	  solveable with the current aggregator design.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2772>

2022-07-12 10:49:27 +0000  Corentin Damman <c.damman@intopix.com>

	* plugins/tracers/gstleaks.c:
	  tracers: leaks: fix object-refings.class flags
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2756>

2022-07-09 18:05:58 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstdevicemonitor.c:
	  devicemonitor: Use a sync bus handler for the provider to avoid accumulating all messages until the provider is stopped
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/981
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2755>

2022-06-29 10:55:13 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/gst.c:
	* meson.build:
	  coding style: allow declarations after statement
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/
	  and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2702>

2022-06-22 09:43:02 +0200  Jonas Danielsson <jonas.danielsson@spiideo.com>

	* gst/gst.c:
	  gst: add missing define guard
	  If compiled with -Dgstreamer:gst_debug=false and we have
	  GST_REMOVE_DISABLED defined we will get the following compiler error:
	  ```
	  [...]/libgstreamer-1.0.so.0.2100.0.p/gst.c.o: in function `gst_deinit':
	  [...]/gst/gst.c:1258: undefined reference to `_priv_gst_debug_cleanup'
	  [...] hidden symbol `_priv_gst_debug_cleanup' isn't defined
	  ```
	  Add the missing define guard to avoid this.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2649>

2022-06-20 16:45:19 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstelement.c:
	* tests/check/gst/gstelement.c:
	  element: Fix requesting of pads with string templates
	  Previously it was only possible to request them with the exact template
	  name, e.g. 'src_%s', but not with "instantiated" names that would match
	  this template, e.g.'src_foo_bar'.
	  This is now possible and a test was added for this, in addition to
	  fixing a previously invalid test.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2645>

2022-06-16 00:59:00 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2619>

=== release 1.20.3 ===

2022-06-15 23:36:18 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* gstreamer.doap:
	* meson.build:
	  Release 1.20.3

2022-06-15 23:36:10 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Update ChangeLogs for 1.20.3

2022-05-19 04:59:58 +0000  Adam Doupe <adamdoupe@gmail.com>

	* libs/gst/base/gstqueuearray.c:
	  queuearray: Fix potential heap overflow when expanding GstQueueArray
	  Check that elt_size*newsize doesn't overflow when expanding a
	  GstQueueArray, which has the potential for a heap overwrite.
	  Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1232
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2607>

2022-06-14 17:29:31 +0100  Tim-Philipp Müller <tim@centricular.com>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: fix potential crash on shutdown
	  The mq we get out of the weak ref might be NULL if we're
	  shutting down, which could cause assertion failures or
	  crashes.
	  It might also cause miscompilations where the compiler just
	  optimises away the NULL check because it jumps to a code path
	  that then dereferences the pointer which clearly isn't going
	  to work. Seems like something like this happens with gcc 11.
	  Fixes #1262
	  Co-authored-by: Doug Nazar <nazard@nazar.ca>
	  Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2600>

2022-06-14 03:29:41 -0600  James Hilliard <james.hilliard1@gmail.com>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: fix warning: ‘is_query’ may be used uninitialized in this function
	  Fixes:
	  ../plugins/elements/gstmultiqueue.c: In function ‘gst_multi_queue_loop’:
	  ../plugins/elements/gstmultiqueue.c:2394:19: warning: ‘is_query’ may be used uninitialized in this function [-Wmaybe-uninitialized]
	  2394 |     if (object && !is_query)
	  |                   ^~~~~~~~~
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2596>

2022-06-01 09:25:29 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* libs/gst/base/gstbasetransform.c:
	  basetransform: handle gst_base_transform_query_caps() returning NULL
	  If gst_base_transform_transform_caps() returns NULL, gst_base_transform_query_caps()
	  will return NULL as well.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2538>

2022-05-31 14:27:51 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* libs/gst/base/gstbasetransform.c:
	  basetransform: fix critical if transform_caps() returned NULL
	  klass->transform_caps() may return NULL, which was raising this
	  critical:
	  GStreamer-CRITICAL **: 12:23:56.243: gst_caps_is_subset: assertion 'subset != NULL' failed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2537>

2022-05-18 17:03:27 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/gst_private.h:
	* gst/gstclock.c:
	  clock: Avoid creating a weakref with every entry
	  Creating and destroying weakrefs takes a write lock on a global
	  `GRWLock`. This makes for a very contended lock when the pipeline has
	  many synchronizing elements.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2533>

2022-05-29 20:38:38 +1000  tom schuring <tomschuring@gmail.com>

	* gst/gstplugin.c:
	  plugin: add Apache 2 license to known licenses
	  the licence in gstreamer/subprojects/gstreamer/gst/gstplugin.c
	  currently is defined to be one of:
	  LGPL GPL QPL GPL/QPL MPL BSD MIT/X11 0BSD Proprietary
	  The open source project for the kinesis plugin is using an
	  Apache 2.0 license. Because "Apache 2.0" is not one of the
	  supported licenses it automatically falls back to Proprietary.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2524>

2022-05-18 10:04:08 +0800  WANG Xuerui <xen0n@gentoo.org>

	* gst/gstconfig.h.in:
	  gstreamer/gst/gstconfig.h.in: Add support for LoongArch
	  While current and future LoongArch machines that are supposed to run
	  GStreamer all support unaligned accesses, there might be future
	  lower-end cores (e.g. the embedded product line) without such support,
	  and we may not want to penalize these use cases.
	  So, mark LoongArch as not supporting unaligned accesses for now, and
	  hope the compilers do a good job optimizing them. We can always flip
	  switch later.
	  Suggested-by: CHEN Tao <redeast_cn@outlook.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2450>

2022-05-05 20:39:52 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: Don't send multiple caps events with the same caps
	  Every time aggregator is reconfiguring it will try to negotiate new
	  caps. If these resulting caps are the same as the previously negotiated
	  caps then don't send a new caps event with the same caps again.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2381>

2022-05-05 15:05:43 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: Only send events up to CAPS event from gst_aggregator_set_src_caps()
	  Otherwise setting the srcpad caps based on the sinkpad caps event will
	  already push a segment event downstream before the upstream segment is
	  known.
	  If the upstream segments are just forwarded when the upstream segment
	  event arrives this would result in two segment events being sent
	  downstream, of which the first one will usually be simply wrong.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2381>

2021-11-12 20:13:10 +0100  Ruben Gonzalez <rgonzalez@fluendo.com>

	* gst/gstplugin.c:
	  gst_plugin_load_file: force plugin reload if diff filename
	  If a file includes a new version of a plugin that exits in the
	  registry, the output of gst-inspect is incorrect. The output has the
	  correct version but incorrect filename, and element description.
	  This seems to have also fixed some documentation issues.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2357>

2022-05-03 00:39:09 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2347>

=== release 1.20.2 ===

2022-05-02 23:29:25 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* gstreamer.doap:
	* meson.build:
	  Release 1.20.2

2022-05-02 23:29:19 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Update ChangeLogs for 1.20.2

2022-05-02 11:41:52 +0100  Tim-Philipp Müller <tim@centricular.com>

	* plugins/elements/gstfilesink.c:
	  filesink: fix handling of non-existing paths with musl
	  Fixes #1194
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2345>

2022-04-09 21:07:43 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/gstregistry.c:
	  registry: skip Rust dep builddirs when searching for plugins recursively
	  These artefacts confuse the plugin scanner and may cause noisy warnings
	  (and slow down things).
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/68
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2338>

2022-04-18 15:44:47 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/meson.build:
	* meson.build:
	  meson: Add -Wl,-rpath,${libdir} on macOS
	  We made the gstreamer installation prefix relocatable by picking up
	  plugins relative to the location of libgstreamer-1.0.dylib, similar to
	  how it's done for Windows:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1627
	  This had a lot of side-effects:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1051
	  https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/363
	  https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/371
	  https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/362
	  A partial fix for the cerbero side of these was:
	  https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/807
	  However, this relied on the consumers knowing that they need to add
	  `LC_RPATH` entries to the libdir of the prefix. This is done
	  automatically by build systems like Meson, but not by others, such as
	  Autotools, CMake, Cargo, XCode, etc. For those, we need to add the
	  RPATH entries to the gstreamer-1.0.pc file.
	  This also has the side-effect of fixing the loading of gstreamer rust
	  plugins on macOS:
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1159
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1149
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2237>

2020-05-29 11:29:56 -0300  Tulio Beloqui <tulio.beloqui@pexip.com>

	* gst/gstdevicemonitor.c:
	  gstdevicemonitor: added cleanup of signal handlers and hidden providers list
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2221>

2022-04-15 17:00:24 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* plugins/tracers/gstleaks.c:
	  gstleaks: fix pthread_atfork return value check
	  pthread_atfork() returns 0 on success.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2210>

2022-04-12 01:01:23 +0900  Seungha Yang <seungha@centricular.com>

	* tools/gst-launch.c:
	* tools/meson.build:
	  win32: Enable high-resolution timer for MinGW build
	  timeapi.h is missing in our MinGW toolchain. Include mmsystem.h
	  header instead, which defines struct and APIs in case of our MinGW
	  toolchain. Note that in case of native Windows10 SDK (MSVC build),
	  mmsystem.h will include timeapi.h
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2167>

2022-04-13 16:59:50 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/net/gstptpclock.c:
	  ptpclock: Fix wrong condition order from last commit
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2173>

2022-04-12 19:22:51 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/net/gstptpclock.c:
	  ptpclock: Allow at least 100ms delay between Sync/Follow_Up and Delay_Req/Delay_Resp messages
	  It doesn't matter for measurement purposes whether receiving them takes
	  a while and various PTP servers are not prioritizing to send them,
	  causing them to be dropped unnecessarily and preventing proper
	  synchronization with such servers.
	  This is especially a problem if the RTTs in the network are very low
	  compared to the additional delay imposed by the server.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2168>

2022-03-10 18:22:49 +0000  Philippe Normand <philn@igalia.com>

	* gst/gsturi.c:
	  uri: Build doubly-linked list by prepending items
	  As outlined in the API documentation, g_list_append() iterates over the whole
	  list, which can quickly introduce performance issues when the list becomes very
	  big, such as for data URIs for instance.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1983>

2022-03-08 12:04:41 +0000  Philippe Normand <philn@igalia.com>

	* plugins/elements/gsttypefindelement.c:
	  typefind: Skip parsing of data URIs
	  Commit a46ab2ced20d757e0e770d4de1edc3a152cc4f2f introduced a regression,
	  breaking typefinding for media content muxed in mp4 container and serialized to
	  data URIs. For this case it doesn't make sense to look for a file extension, so
	  skip URI parsing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1983>

2022-03-14 14:48:01 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development

=== release 1.20.1 ===

2022-03-14 11:33:33 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* gstreamer.doap:
	* meson.build:
	  Release 1.20.1

2022-03-14 11:33:25 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Update ChangeLogs for 1.20.1

2021-11-02 15:58:49 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	  doc: Fix doc comment for GstChildProxy
	  This removes warning like:
	  ../subprojects/gstreamer/gst/gstchildproxy.h:57: Error: Gst: identifier not found on the first line:
	  * #GstChildProxyInterface::get_child_by_name:
	  ^
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1951>

2022-02-21 10:49:15 +0100  Sebastian Fricke <sebastian.fricke@collabora.com>

	* docs/gst/running.md:
	* docs/index.md:
	* gst/gstregistry.c:
	  Remove the uninstalled term
	  Remove the symbolic link `gst-uninstalled` which points to `gst-env`.
	  The `uninstalled` is the old name and the project should stick to a
	  single name for the procedure.
	  Remove the term from all the files, exceptions are variables from
	  dependencies like `uninstalled_variables` from pkgconfig and
	  `meson-uninstalled`.
	  Adjust mentions of the script in the documentation and README.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1829>

2022-02-23 11:10:11 +0100  Sebastian Fricke <sebastian.fricke@collabora.com>

	* README.md:
	  Maintain build instructions at a single location
	  Do not maintain similar build instructions within each gst-plugins-*
	  subproject and the subproject/gstreamer subproject. Use the build
	  instructions from the mono-repository and link to them via hyperlink.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1829>

2021-12-08 22:13:15 +0000  Jose Quaresma <quaresma.jose@gmail.com>

	* gst/gstpluginloader.c:
	  gstpluginloader: show the reason when spawning of gst-plugin-scanner fail
	  This fix helps in cross compiling when the meson tests runs using a qemu wraper
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1701>

2022-02-08 16:24:13 +1100  Sebastian Mueller <sebastian.mueller@nirovision.com>

	* gst/gstcontext.c:
	  context: fix transfer annotation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1698>

2020-02-17 21:50:54 -0600  Zebediah Figura <zfigura@codeweavers.com>

	* libs/gst/base/gstbaseparse.c:
	* tests/check/libs/baseparse.c:
	  baseparse: Don't truncate the duration to milliseconds in gst_base_parse_convert_default().
	  There's no need to do this, and it can make seeking far less accurate.
	  For a specific use case: I am working with a long (45-minute) MPEG-1 layer 3 file, which has a constant bit rate but no seeking tables. Trying to seek the pipeline immediately after pausing it, without the ACCURATE flag, to a location 41 minutes in, yields a location that is potentially over ten seconds ahead of where it should be. This patch improves that drastically.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1695>

2022-02-07 19:33:31 -0600  Zebediah Figura <zfigura@codeweavers.com>

	* libs/gst/base/gstbaseparse.c:
	  baseparse: Trace time with GST_TIME_FORMAT in gst_base_parse_convert_default().
	  Be consistent with how we trace time in general.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1695>

2022-02-07 09:46:46 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstbufferpool.c:
	  bufferpool: Deactivate pool and get rid of references to other objects from dispose instead of finalize
	  During dispose the pool will still have a reference count of 1 and all
	  API on it can still be safely called.
	  Subclasses will have already freed their own data before finalize is
	  called but would nonetheless be called into again via the pool
	  deactivation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1661>

2022-02-07 16:51:25 +1100  Matthew Waters <matthew@centricular.com>

	* gst/gstpluginloader.c:
	* meson.build:
	  pluginloader: support multiple subdirectories for GST_PLUGIN_SUBDIR (libdir)
	  i.e. if GST_PLUGIN_SUBDIR is 'some/lib/path', then the default plugin
	  loading assumed that there was only 'lib' as it only went up a single
	  directory to then find the plugin scanner.
	  Fix to support multiple subdirectories for GST_PLUGIN_SUBDIR (libdir).
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/995
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1659>

2022-02-07 16:36:13 +1100  Matthew Waters <matthew@centricular.com>

	* gst/gstregistry.c:
	  registry: check the value of dladdr()
	  info.dli_fname could be NULL.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/994
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1659>

2022-02-07 16:33:03 +1100  Matthew Waters <matthew@centricular.com>

	* gst/gstregistry.c:
	  registry: check the return value of g_win32_get_package_installation_directory_of_module()
	  g_win32_get_package_installation_directory_of_module() may return NULL
	  in some circumstances and we need to deal with that.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/996
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1659>

2022-02-07 16:17:28 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development

=== release 1.20.0 ===

2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* README:
	* RELEASE:
	* gstreamer.doap:
	* meson.build:
	  Release 1.20.0

2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Update ChangeLogs for 1.20.0

2022-02-02 18:06:49 +1100  Matthew Waters <matthew@centricular.com>

	* gst/gst.c:
	* gst/gst_private.h:
	* gst/gstpluginloader.c:
	* gst/gstregistry.c:
	  registry/macos: retrieve plugins relative to location of libgstreamer.dylib
	  Provides a relocatable directory structure for running GStreamer
	  applications as used in GStreamer.framework.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1627>

=== release 1.19.90 ===

2022-01-28 14:28:35 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* gstreamer.doap:
	* meson.build:
	  Release 1.19.90

2022-01-28 14:28:28 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Update ChangeLogs for 1.19.90

2021-12-23 00:24:03 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: don't forward reconfigure events
	  Those will cause us to renegotiate at the next aggregate cycle,
	  and while at that point we may decide to reconfigure upstream
	  branches (in practice we don't as this is inherently racy,
	  and that's the reason why mixer subclasses perform conversion
	  internally), we certainly don't want to just forward the event
	  willy-nilly to all our sinkpads.
	  An actual issue this is fixing is when caps downstream of a
	  compositor are changed at every samples-selected signal emission,
	  for the purpose of interpolating the output geometry, and the
	  compositor has a non-zero latency, the reconfigure events were
	  forwarded to basesrc, which triggered an allocation query, which
	  in turn caused aggregator to have to drain (thus not being able
	  to queue <latency> frames), leading to disastrous effects
	  (choppy output as compositor couldn't consume frames fast enough,
	  the higher the latency the choppier the output)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1464>

2022-01-27 01:37:18 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/LINGUAS:
	* po/de.po:
	* po/fr.po:
	* po/ro.po:
	  gstreamer: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1579>

2022-01-26 02:46:49 +0900  Seungha Yang <seungha@centricular.com>

	* gst/gstplugin.c:
	  gstplugin: Fix for UWP build
	  SetThreadErrorMode() API is available on UWP but flag values
	  are desktop API only. Since error dialogs don't exist on UWP,
	  we don't need to suppress it
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1569>

2022-01-20 10:59:56 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstcapsfeatures.c:
	  gstreamer: capsfeatures: Fix docs of `gst_caps_features_new_single()`
	  They were just a copy of the `new_any()` docs before.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1542>

2022-01-19 20:58:36 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/gstplugin.c:
	  gstplugin: Better warnings on plugin load failure on Windows
	  It is an extremely common mistake on Windows to have incorrect PATH
	  values when loading a plugin, and the error from g_module_error()
	  (which just calls FormatMessageW()) is very confusing in this case:
	  The specified module could not be found.
	  https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499-#ERROR_MOD_NOT_FOUND
	  It implies the plugin itself could not be found. The actual issue is
	  that a DLL dependency could not be found. We need to detect this case
	  and print a more useful error message.
	  We should still print the error fetched from FormatMessage() so that
	  people are able to google for it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1540>

2022-01-14 04:45:08 +0900  Seungha Yang <seungha@centricular.com>

	* gst/gstpluginfeature.c:
	  pluginfeature: Fix object leak
	  Need to release GstPluginFeature object after use
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1521>

2022-01-05 02:07:59 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* docs/meson.build:
	* gst/parse/meson.build:
	* meson.build:
	  meson: Add explicit check: kwarg to all run_command() calls
	  This is required since Meson 0.61.0, and causes a warning to be
	  emitted otherwise:
	  https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c
	  https://github.com/mesonbuild/meson/issues/9300
	  This exposed a bunch of places where we had broken run_command()
	  calls, unnecessary run_command() calls, and places where check: true
	  should be used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>

2021-12-20 21:43:25 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* libs/gst/base/gstaggregator.c:
	  audio: Add logging that was useful in figuring out the last commit
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1461>

2021-12-08 12:27:04 +0100  Corentin Noël <corentin.noel@collabora.com>

	* gst/gstelementfactory.c:
	  elementfactory: Annotate create_full and make_full to take arrays
	  We need the array annotation for it to be usable from the introspection side.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1427>

2018-04-25 14:30:51 +0200  Danny Smith <dannys@axis.com>

	* libs/gst/net/gstnetclientclock.c:
	  gstnetclockclient: signal lost sync if remote time resets
	  When detecting the remote time has been reset which may occur if remote
	  device providing the clock server has been power reset, then clock is
	  no longer synced. Setting clock state will trigger a signal to client
	  informing on sync lost making it possibility to take appropriate action.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/975>

2021-11-26 10:13:08 +0100  Corentin Noël <corentin.noel@collabora.com>

	* libs/gst/base/gstbasesink.h:
	  basesink: Add missing annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1392>

2021-11-26 10:12:50 +0100  Corentin Noël <corentin.noel@collabora.com>

	* libs/gst/base/gstpushsrc.h:
	  pushsrc: Add missing annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1392>

2021-11-26 10:12:32 +0100  Corentin Noël <corentin.noel@collabora.com>

	* libs/gst/base/gstbitwriter.c:
	  bitwriter: Add missing annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1392>

2021-11-26 10:11:53 +0100  Corentin Noël <corentin.noel@collabora.com>

	* libs/gst/base/gstbaseparse.c:
	* libs/gst/base/gstbaseparse.h:
	  baseparse: Add missing annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1392>

2021-11-23 08:08:36 +0100  Corentin Noël <corentin.noel@collabora.com>

	* libs/gst/base/gstbasesrc.h:
	  basesrc: Add annotation to virtual methods with (out) parameters
	  This allows to actually use these virtual methods from the GObject introspection.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1376>

2021-10-21 19:04:43 +0900  Seungha Yang <seungha@centricular.com>

	* docs/gst-hotdoc-plugins-scanner.c:
	* gst/gstelement.c:
	* gst/gstelementfactory.c:
	* gst/gstelementfactory.h:
	  gst: Add APIs to allow documentation for element to be skipped
	  Dynamically registered elements (hardware element in most cases)
	  may or may not be available on a system and properties may be different
	  per system.
	  This new API will make documentation skipping possible in programmable way.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1360>

2021-11-16 18:05:09 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstinfo.c:
	* gst/gstinfo.h:
	  gstinfo: Add gst_debug_log_literal() function
	  This takes a plain message string and not a format string, and as a
	  result doesn't have to be passed through vasprintf() and lead to further
	  unnecessary allocations. It can also contain literal `%` because of
	  that.
	  The new function is mostly useful for bindings that would have to pass a
	  full string to GStreamer anyway and would do formatting themselves with
	  language-specific functionality.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1356>

2021-11-15 11:04:25 +0100  Daniel Knobe <daniel-knobe@web.de>

	* gst/gstcaps.c:
	  caps: fix type of return value if string is null in gst_caps_from_string
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1348>

2021-11-11 19:11:25 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/gst.c:
	* gst/gstelementfactory.c:
	* gst/gstinfo.c:
	* gst/gstiterator.c:
	* gst/gstmessage.c:
	* gst/gstpadtemplate.c:
	* gst/gstquery.c:
	* gst/gsttypefindfactory.c:
	* libs/gst/base/gstbasesink.c:
	* libs/gst/base/gstbasesrc.c:
	  docs: fix unnecessary ampersand, < and > escaping in code blocks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1340>

2021-11-08 15:28:06 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstbin.c:
	  bin: Don't check twice for adding a bin to itself or removing it from itself
	  This is already covered by a `g_return_val_if_fail()` in the calling
	  function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1320>

2021-11-08 15:30:18 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstbin.c:
	  bin: Switch `g_warning()`s to `GST_WARNING_OBJECT()`s when adding/removing an element to a bin fails
	  The failure conditions can be overidden by subclasses, and a boolean
	  return value is provided to the caller whether adding/removing the child
	  element has actually worked. The caller can then handle this
	  accordingly but flooding stderr with this is not very useful.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1320>

2021-09-24 08:19:51 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/gstinfo.c:
	  gstinfo: Fix leak in generate_backtrace_trace
	  Spotted by Laurent Pinchart.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/901>

2021-11-04 13:24:57 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* libs/gst/helpers/gst-ptp-helper.c:
	  gst-ptp-helper: Do not disable multicast loopback
	  Otherwise we cannot run gst-ptp-helper if the PTP master is on the
	  same device.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1306>

2021-11-04 09:30:31 +0000  Marcin Kolny <marcin.kolny@gmail.com>

	* plugins/elements/gsttypefindelement.c:
	  typefind: fix reading file extension from URI
	  Currently reading extension relies on the fact that everything after the
	  last"." character is a file extension. Whereas that works fine for most
	  of the cases, it breaks when the URI contains a query part.
	  E.g.: `http://url.com/file.mp4?param=value` returns `mp4?param=value`
	  instead of `mp4`.
	  In this commit we use URI parser to read the path of the URI (in the example
	  above, that is `/file.mp4`) and read extension from that path.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1305>

2021-11-03 18:44:03 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development

=== release 1.19.3 ===

2021-11-03 15:43:36 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* gstreamer.doap:
	* meson.build:
	  Release 1.19.3

2021-11-03 15:43:32 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Update ChangeLogs for 1.19.3

2021-10-30 00:34:35 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/gstinfo.c:
	  Use g_pattern_spec_match() instead of g_pattern_match() which is deprecated since glib 2.70
	  Fixes compiler warnings with glib 2.70
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1279>

2021-10-29 13:27:37 +0300  Vivia Nikolaidou <vivia@ahiru.eu>

	* plugins/elements/gstidentity.c:
	  identity: Fix crash when receiving a gap event outside the current segment
	  We were checking if the start time of the gap event was
	  GST_CLOCK_TIME_NONE, which is superfluous because that cannot happen,
	  and then not checking if it was NONE after gst_segment_to_running_time,
	  which caused a crash if an identity received a gap event fully or
	  partially outside the current segment.
	  This patch was done in cooperation with:
	  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1269>

2021-10-25 21:55:25 +0200  Ruben Gonzalez <rgonzalez@fluendo.com>

	* gst/gstdevicemonitor.c:
	  devicemonitor: g_queue_clear_full introduced in glib 2.60
	  The GStreamer dependency is glib >=2.56.0. Therefore, define
	  g_queue_clear_full if glib < 2.60.
	  Issue added in commit 1912bcbc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1251>

2021-10-19 13:39:55 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstdevicemonitor.c:
	  devicemonitor: Only fail start() if no provider at all could be started
	  Also refactor various internals of the monitor code:
	  - Don't allow starting twice but just return directly when starting a
	  second time.
	  - Don't end up in an inconsistent state if call start() a second time
	  while the monitor is starting up.
	  - Remove complicated cookie code: it was not possible to add/remove
	  filters while the monitor was started anyway so this was only useful
	  in the very small time-window while starting the monitor or while
	  getting the devices. Instead disallow adding/removing filters while
	  the monitor is starting, and when getting devices work on a snapshot
	  of providers/filters.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/667
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1189>

2021-10-25 01:01:28 +0100  Tim-Philipp Müller <tim@centricular.com>

	* po/af.po:
