=== release 1.20.2 ===

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

	* 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:
	* po/ast.po:
	* po/az.po:
	* po/be.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/fur.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/ko.po:
	* po/lt.po:
	* po/nb.po:
	* po/nl.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/rw.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	* po/zh_TW.po:
	  gstreamer: update translations
	  Fixes #656
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1240>

2021-10-22 11:00:06 -0400  Pascal Hache <hacpa@touchtunes.com>

	* libs/gst/base/gstbaseparse.c:
	  baseparse: fix invalid avg_bitrate after reset
	  gst_base_parse_reset() does not reset data_bytecount to 0, so
	  gst_base_parse_update_bitrates() uses a wrong value to calculate
	  the average bitrate on subsequent pipeline starts. This leads to an
	  excessive amount of "tag" events being pushed. These events include
	  very high "bitrate" values that diminish over time, and are produced
	  until the average bitrate is back to sane values.
	  Fixes #840
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1228>

2021-10-20 11:20:13 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* plugins/elements/gstconcat.c:
	  concat: fix qos event handling
	  We were shadowing the sinkpad variable resulting in:
	  - the QoS event to be send to all sink pads instead of the active one
	  - the pad to be leaked
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1208>

2021-10-18 16:55:14 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/parse/meson.build:
	* libs/gst/helpers/meson.build:
	  meson: fix use of deprecated meson api external_program.path()
	  Just using .full_path() instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>

2021-10-18 15:47:00 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/meson.build:
	* tests/validate/meson.build:
	  meson: update for meson.build_root() and .build_source() deprecation
	  -> use meson.project_build_root() or .global_build_root() instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>

2021-10-18 00:40:14 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: update for dep.get_pkgconfig_variable() deprecation
	  ... in favour of dep.get_variable('foo', ..) which in some
	  cases allows for further cleanups in future since we can
	  extract variables from pkg-config dependencies as well as
	  internal dependencies using this mechanism.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>

2021-10-18 00:03:47 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: clean up conditional paths after version bump
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>

2021-05-28 07:54:32 +0200  Edward Hervey <edward@centricular.com>

	* gst/gststreams.c:
	  stream: Set the object name to the stream id
	  Makes it more meaningful in debug logs (instead of streamNNNNN)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1187>

2021-10-19 10:24:42 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/meson.build:
	  Revert "meson: Link to objects instea of static helper library"
	  This reverts commit b19de413b94d228b1460b0899f9b41b2b5233943.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1194>

2021-10-17 11:39:57 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tools/meson.build:
	  tools: Define G_LOG_DOMAIN for various tools as well
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1009>

2021-10-01 15:29:36 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/gst.c:
	* gst/gst_private.h:
	* gst/meson.build:
	* libs/gst/base/meson.build:
	* libs/gst/check/meson.build:
	* libs/gst/controller/meson.build:
	* libs/gst/net/meson.build:
	  gstreamer: define G_LOG_DOMAIN for all libraries
	  And get rid of weird way the define was done for core.
	  Fixes #634
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1009>

2021-10-06 01:30:03 +0100  Tim-Philipp Müller <tim@centricular.com>

	* libs/gst/check/gstcheck.c:
	  libs: check: handle criticals and warnings for new gstreamer log domains
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1009>

2021-10-18 15:56:31 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* libs/gst/base/gstaggregator.c:
	* libs/gst/base/gstaggregator.h:
	  aggregator: expose API for ignoring inactive pads
	  An inactive pad is a pad which, in live mode, hasn't yet received
	  a first buffer, but has been waited on at least once.
	  Exposing API to support this behaviour allows users of aggregator
	  subclasses to request pads, and not start pushing data on those
	  immediately, while avoiding systematic timeouts.
	  Subclasses must check in explicitly to this behavior, most likely
	  by exposing a user-facing property, and must check whether a pad
	  needs ignoring when aggregating. That is because by design,
	  aggregator subclasses don't get a list of "ready" pads, but instead
	  directly iterate element->sinkpads.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/867>

2021-10-14 18:38:26 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: bump meson requirement to >= 0.59
	  For monorepo build and ugly/bad, for advanced feature
	  option API like get_option('xyz').required(..) which
	  we use in combination with the 'gpl' option.
	  For rest of modules for consistency (people will likely
	  use newer features based on the top-level requirement).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>

2020-06-27 00:39:00 -0400  Thibault Saunier <tsaunier@igalia.com>

	* docs/meson.build:
	* gst/meson.build:
	* libs/gst/base/meson.build:
	* libs/gst/check/libcheck/meson.build:
	* libs/gst/check/meson.build:
	* libs/gst/controller/meson.build:
	* libs/gst/net/meson.build:
	* meson.build:
	  meson: List libraries and their corresponding gir definition
	  Introduces a `libraries` variable that contains all libraries in a
	  list with the following format:
	  ``` meson
	  libraries = [
	  [pkg_name, {
	  'lib': library_object
	  'gir': [ {full gir definition in a dict } ]
	  ],
	  ....
	  ]
	  ```
	  It therefore refactors the way we build the gir so that we can reuse the
	  same information to build them against 'gstreamer-full' in gst-build
	  when linking statically
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>

2020-06-27 00:37:39 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst/meson.build:
	* libs/gst/base/meson.build:
	* libs/gst/check/libcheck/meson.build:
	* libs/gst/check/meson.build:
	* libs/gst/controller/meson.build:
	* libs/gst/net/meson.build:
	  meson: Mark files as files()
	  Making it more robust and future proof
	  And fix issues that it creates
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>

2021-10-08 13:56:02 +0300  Veronika Kremneva <kremneva@synopsys.com>

	* gst/gstconfig.h.in:
	  gstreamer/gst/gstconfig.h.in: Add support for ARC64 architecture
	  Signed-off-by: Veronika Kremneva <kremneva@synopsys.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1161>

2021-09-25 23:51:52 -0300  Thibault Saunier <tsaunier@igalia.com>

	* tests/check/libs/aggregator.c:
	  tests: aggregator: Take `TIMEOUT_FACTOR` env var into account
	  This env var is set in the CI so we grow the timeout as required
	  (when running in valgrind for example).
	  Trying to avoid hitting wrong timeout in valgrind job like in:
	  https://gitlab.freedesktop.org/tpm/gstreamer/-/jobs/14009456
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1113>

2021-10-01 23:36:39 +0900  Seungha Yang <seungha@centricular.com>

	* tests/check/gst/gstmeta.c:
	  tests: gstmeta: Fix failure on Windows
	  Windows doesn't support fork so every test will be performed in
	  one process. So the test_meta_custom_transform() is being
	  failed because "test-custom" custom meta is being used/defined in
	  another test test_meta_custom() as well.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1086>

2021-09-23 17:07:09 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tools/meson.build:
	  meson: Fix gst-launch build on UWP
	  The APIs we need from WinMM for higher timer resolution are only
	  available for non-UWP apps. The winmm library itself is still
	  available, so we need to disable the check.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/890>

2021-10-05 08:51:08 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* tools/gst-indent:
	  ci: Fix gst-indent path
	  It used to be downloaded into PATH, but we can now instead run it from
	  git. Also move it to top source dir instead of gstreamer subproject.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/931>

2021-09-24 15:24:15 +0200  Robert Rosengren <robertr@axis.com>

	* docs/gst/running.md:
	  docs/running: Describe GST_REGISTRY_MODE
	  Change-Id: I45e9fe90137d4a8306c3a5e4f636fa43425b978f
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/825>

2021-05-10 12:50:18 +0200  Robert Rosengren <robertr@axis.com>

	* gst/gstregistrybinary.c:
	  registrybinary: registry file mode via GST_REGISTRY_MODE
	  In an embedded system where all services run as seperate users it is
	  useful to have the gstreamer registry readable by all so it can be
	  re-used, in similar manner as a host system where one user have seperate
	  applications running but all share same registry.
	  To make this possible introducing GST_REGISTRY_MODE for adjusting the
	  changing mode of the registry binary when finishing up with the
	  temporary file (which has restricted access).
	  Fixes: #692
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/825>

2021-10-04 13:49:44 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: Fix query unref race on flush
	  If the query has already been destroyed at this point, GST_IS_QUERY will
	  read garbage, can return false and we will try to unref it again.
	  Instead, make note of whether the item is a query when we dequeue it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1029>

2021-09-29 11:23:38 +0200  Stéphane Cerveau <scerveau@collabora.com>

	* plugins/tracers/gstfactories.c:
	  core: remove outdated mention to gst-build
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/956>

2021-09-28 10:11:15 +1000  Brad Hards <bradh@frogmouth.net>

	* README:
	* RELEASE:
	  doc: update IRC links to OFTC
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>

2021-09-25 18:48:22 +0100  Tim-Philipp Müller <tim@centricular.com>

	* docs/gst/running.md:
	  gstreamer: docs: document GST_DEBUG env var evaluation order
	  Fixes #716
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/923>

2021-09-26 01:07:02 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2021-09-25 01:53:35 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/gstbin.c:
	* gst/gstvalue.h:
	  docs: link to concrete types rather than type macros
	  Latest hotdoc version extended the ignored, boilerplate macros
	  to now include TYPE macros for records as well
	  Linking to the concrete type is more informative
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/913>

=== release 1.19.2 ===

2021-09-23 01:32:32 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2021-06-23 16:41:20 +0300  Sebastian Dröge <sebastian@centricular.com>

	* plugins/elements/gstclocksync.c:
	  clocksync: Add some debug output to the clock waiting code
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/841>

2021-09-20 13:12:12 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstevent.c:
	* gst/gstmessage.c:
	  gst: Initialize optional event/message fields when parsing
	  These might not exist inside the structure and then we would potentially
	  keep around uninitialized memory from the caller in the out parameter.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/887>

2021-09-19 21:01:21 +0800  He Junyan <junyan.he@intel.com>

	* tests/check/libs/bitwriter.c:
	  test: bitwriter: Add a test for reset_and_get_data when not byte unaligned.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/886>

2021-09-19 22:39:09 +0800  He Junyan <junyan.he@intel.com>

	* libs/gst/base/gstbitwriter.c:
	  bitwriter: Fix a memory leak in reset_and_get_buffer.
	  We should record the ownership of the data before we reset the bitwriter.
	  Or we will always dup the buffer data and leak the memory.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/886>

2021-09-19 00:19:43 +0800  He Junyan <junyan.he@intel.com>

	* libs/gst/base/gstbitwriter.c:
	  bitwriter: Fix the trailing bits lost when getting its data.
	  In reset_and_get_data and reset_and_get_buffer, it fails to include
	  the trailing bits less than 8. So, when the bit_size is not byte
	  aligned, the trailing bits are lost in the return buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/886>

2021-09-10 01:43:18 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: fix obsolete comment re initial flow status
	  The initial single queue srcresult is OK, it hasn't been
	  NOT_LINKED since 2007.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/885>

2021-09-09 20:25:25 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: never consider a queue that is not waiting
	  .. when computing the high id.
	  After a flush for instance, sq->srcresult is reset to OK,
	  yet it doesn't make sense to pick a non-existing position
	  id as the high id when a queue doesn't contain any items
	  in that situation either.
	  It is in any case completely OK to let the not-linked stream
	  get consumed without throttling at this stage, as any
	  first packet arriving on other single queues will get assigned
	  a higher position id.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/885>

2021-09-09 04:08:22 +0000  Andika Triwidada <andika@gmail.com>

	* tools/gst-inspect.c:
	  add missing space
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/884>

2021-09-06 01:43:57 +1000  Jan Schmidt <jan@centricular.com>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: Use running time of gap events for wakeups.
	  Use gap events to update the next_time of a queue the same
	  as buffers or segment events. Fixes problems where a group
	  consisting only of sparse streams primarily driven by
	  gap events would stall with a full multiqueue because
	  unlinked streams in the group were not being woken to
	  push data.
