=== release 1.24.4 ===

2024-05-29 13:44:50 +0300  Tim-Philipp Müller <tim@centricular.com>

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

2024-05-28 13:17:39 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/parse/grammar.y.in:
	  gstreamer: parse: Don't assume that child proxy child objects are GstObjects
	  The name is already passed via the signal parameters so it doesn't have
	  to be retrieved again via GstObject API, which would crash on other
	  GObjects. Child proxy child objects can be any kind of GObject and the
	  code here otherwise handles this correctly already.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6951>

2024-05-28 09:06:57 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/helpers/ptp/ffi.rs:
	  gstreamer: ptp-helper: Use u64 instead of c_ulong for ifa_flags on Solaris/Illumos
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3553#note_2429400
	  Patch by Marcel Telka <marcel@telka.sk>.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6950>

2024-05-26 12:33:02 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/helpers/ptp/ffi.rs:
	  gstreamer: ptp-helper: Use `if_nametoindex` and `setsockopt` on Solaris / Illumos too
	  Patch by Marcel Telka <marcel@telka.sk>.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3552
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6947>

2024-05-26 12:31:33 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/helpers/ptp/net.rs:
	  gstreamer: ptp-helper: Don't import `Context` trait multiple times unnecessarily
	  This only affected the Solaris / Illumos code path.
	  Patch by Marcel Telka <marcel@telka.sk>.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3551
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6947>

2024-05-26 12:27:54 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/helpers/ptp/ffi.rs:
	* libs/gst/helpers/ptp/net.rs:
	  gstreamer: ptp-helper: Use `c_ulong` for `ifa_flags` on Solaris/Illumos
	  Based on a patch by Marcel Telka <marcel@telka.sk>.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3553
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6947>

2024-05-26 12:24:33 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/meson.build:
	* libs/gst/net/meson.build:
	* meson.build:
	* tests/check/meson.build:
	* tests/misc/meson.build:
	  gstreamer: Solaris/Illumos require linking to libnsl / libsocket for various socket APIs
	  Patch by Tim Mooney <Tim.Mooney@ndsu.edu> from OpenIndiana/oi-userland
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6947>

2024-05-17 11:03:51 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstclock.h:
	  clock: Fix 32 bit assertions in GST_TIME_TO_TIMEVAL and GST_TIME_TO_TIMESPEC
	  On various 32 bit systems, time_t is actually 64 bits while long is
	  still only 32 bits. The macro would wrongly trigger its assertion in
	  this case if a value with more than 68 years worth of seconds is
	  converted.
	  Examples are various newer 32 bit platforms and old ones that are
	  compiled with -D_TIME_BITS=64.
	  Also statically assert that time_t is either 32 or 64 bits. Other values
	  might need adjustments in the macro.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6919>

2024-05-21 21:50:47 +0300  Jordan Petridis <jordan@centricular.com>

	* tests/check/gst/gststructure.c:
	  tests/check: Avoid using "bool" for the variable name
	  Glib 2.82 will be aliasing [1] TRUE and FALSE to the C99
	  definitions, which means it will be including stdbool.h
	  As such, having variables named "bool" causes issues
	  since it conflicts with the symbol defined in stdbool.h
	  [1] https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4001
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6896>

2024-05-17 23:03:19 +0900  Seungha Yang <seungha@centricular.com>

	* meson.build:
	* plugins/elements/gstfilesrc.c:
	  filesrc: Don't abort on _get_osfhandle()
	  _get_osfhandle() expects valid fd and CRT will abort program
	  if given paramerter is invalid. The fd can be invalidated
	  in various way, file was deleted by other process after
	  we open a file. To avoid it, our own exception
	  handler must be installed so that _get_osfhandle() can return
	  INVALID_HANDLE_VALUE if fd is invalid.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6879>

2024-05-14 23:30:56 +0200  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst/gstsystemclock.c:
	  systemclock: fix usage of __STDC_NO_ATOMICS__
	  __STDC_NO_ATOMICS doesn't seem to exist. In fact the only compiler
	  I've found that sets any of those is msvc, but it sets
	  __STDC_NO_ATOMICS__, not __STDC_NO_ATOMICS.
	  __STDC_NO_ATOMICS__ is the one documented by C11 standard.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6856>

2024-04-30 00:36:59 +0100  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.24.3 ===

2024-04-30 00:15:23 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2024-04-10 16:29:15 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/helpers/ptp/parse.rs:
	  ptp: Silence warning about some unused trait methods
	  These are not used yet but will likely be useful in the future.
	  Rust 1.79 (nightly) is warning about them being unused.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6606>

2024-04-10 00:04:02 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.24.2

=== release 1.24.2 ===

2024-04-09 21:48:55 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2024-04-02 11:54:52 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* plugins/elements/gstclocksync.c:
	  clocksync: Proxy allocation queries
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6525>

2024-03-27 16:55:10 +0000  L. E. Segovia <amy@centricular.com>

	* gst/gstsystemclock.c:
	* meson.build:
	  gst: clock: Block futex_time64 usage on Android API level < 30
	  This syscall is seccomp blocked on all lower API levels:
	  https://github.com/aosp-mirror/platform_bionic/commit/ee7bc3002dc3127faac110167d28912eb0e86a20
	  While at it, also fix all direct tests on __NR_futex_time64 and
	  __NR_futex so that they refer to the results available in
	  config.h.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6518>

2024-03-26 19:40:04 +0530  Taruntej Kanakamalla <taruntej@asymptotic.io>

	* libs/gst/net/gstptpclock.c:
	  net/gstptpclock: fix double free of domain data during deinit
	  The attempt to free the domain data is happeing twice during the ptp deinit.
	  Once while iterating through the list domain_data and second while iterating
	  through the list domain_clocks, so this is crashing the application
	  trying to gst_ptp_deinit
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6457>

2024-03-27 17:05:09 +0200  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/base/gstbasesrc.c:
	  basesrc: Clear submitted buffer lists consistently with buffers
	  And handle the case of a NULL buffer being returned cleanly, which is
	  valid as long as a buffer list is returned instead. Previously this
	  would cause an assertion because of calling gst_buffer_unref() with
	  NULL.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6463>

2024-03-26 14:28:28 +0100  Arnaud Vrac <avrac@freebox.fr>

	* plugins/elements/gstinputselector.c:
	  inputselector: fix possible clock leak on shutdown
	  Avoid leaking a GstClock object on shutdown, bail out before taking the ref when
	  not playing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6455>

2024-03-22 01:38:06 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development

=== release 1.24.1 ===

2024-03-21 21:47:53 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2024-03-19 08:57:43 -0400  Thomas Goodwin <thomas.goodwin@laerdal.com>

	* tests/check/tools/gstinspect.c:
	* tools/gst-inspect.c:
	  gst-inspect: fix --atleast-version to be implicitly applied to --exists
	  The --atleast-version implies --exists, but the implementation in
	  earlier commits had the version check applied any time the --exists was
	  checked, and the default value of the major and minor versions were set
	  to the GStreamer major and minor versions.  The resulting behavior would
	  have gst-inspect return '1' if the plugin's version didn't match
	  gstreamer's even when --atleast-version was not specified in the command
	  line args.  The change in this patch removes that behavior and adds
	  tests to verify that if --exists is specified WITHOUT --atleast-version
	  the version check will NOT be applied.  If both arguments are specified
	  and the version does not match the arg-supplied version number, a new
	  return code of '2' is used to uniquely identify the failure.
	  Fixes #3246
	  Signed-off-by: Thomas Goodwin <thomas.goodwin@laerdal.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6414>

2024-03-13 19:12:48 +0200  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/net/gstptpclock.c:
	  ptp: Initialize expected DELAY_REQ seqnum to an invalid value
	  This allows distinguishing pending syncs that didn't have a DELAY_REQ
	  sent from ones that did but used a seqnum of 0, like the very first one.
	  Specifically, if the first one or more syncs are still pending and we
	  send the first DELAY_REQ for a later pending sync, then the DELAY_RESP
	  would've been wrongly associated to the very first pending sync because
	  of the seqnum.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3383
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6365>

2024-03-11 15:10:25 +0100  Antonio Larrosa <alarrosa@suse.com>

	* gst/gstregistry.c:
	* libs/gst/net/gstptpclock.c:
	  registry, ptp: Canonicalize the library path returned by dladdr
	  On systems using UsrMerge (like openSUSE or Fedora), /lib64 is
	  a symlink to /usr/lib64. So dladdr is returning the path to
	  the gstreamer library in /lib64 in priv_gst_get_relocated_libgstreamer.
	  Later gst_plugin_loader_spawn tries to build the path to the
	  gst-plugin-scanner helper from /lib64 and ends up trying to use
	  /lib64/../libexec/gstreamer-1.0/gst-plugin-scanner which doesn't exist.
	  By canonicalizing the path with a call to realpath, gst-plugin-scanner
	  is found correctly under
	  /usr/lib64/../libexec/gstreamer-1.0/gst-plugin-scanner
	  Similar change applied to gstreamer/libs/gst/net/gstptpclock.c
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6343>

2024-02-27 18:59:41 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/gsturi.c:
	  gsturi: Sort by feature name to break a feature rank tie
	  This matches autoplug in other places such as decodebin, otherwise we
	  will pick "randomly" based on the order in which plugins are
	  registered, which is mostly dependent on the order in which readdir()
	  returns items.
	  So let's make it predictable.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6342>

2024-03-08 17:05:34 +1100  Jan Schmidt <jan@centricular.com>

	* plugins/elements/gstidentity.c:
	  identity: Don't refuse seeks unless single-segment=true
	  identity only needs to configure the internal seek segment if it's
	  aggregating upstream segments into 1. If it's not, don't break
	  other seek behaviour by refusing (for example) instant-rate change
	  seeks.
	  Fixes: #3363
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6314>

2024-02-25 04:26:21 +1100  Jan Schmidt <jan@centricular.com>

	* gst/gstsegment.c:
	  gstsegment: Don't use g_return_val_if_fail()
	  Don't use g_return_val_if_fail() to catch the
	  open-ended segment or empty segment cases in
	  gst_segment_to_running_time_full()
	  g_return_val_if_fail() is for programmer errors,
	  and can be compiled out with a flag.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6275>

2024-03-05 15:10:45 +0200  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/helpers/ptp/meson.build:
	  ptp: Don't install test executable
	  And handle it like all our other test executables.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6268>

2024-03-05 13:45:27 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.24.0 ===

2024-03-04 23:51:42 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* README.md:
	* RELEASE:
	* gstreamer.doap:
	* meson.build:
	  Release 1.24.0

2024-02-26 09:27:40 +0100  Edward Hervey <edward@centricular.com>

	* README.md:
	* RELEASE:
	  docs: Use Discourse and Matrix as prefered communication channels
	  Part of: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6220

2024-02-26 09:26:44 +0100  Edward Hervey <edward@centricular.com>

	* .gitlab/issue_templates/Bug.md:
	  gitlab_template: Remove duplicate entry and remove mention of IRC
	  Part of: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6220

2024-02-21 12:20:19 +0100  Arnaud Vrac <avrac@freebox.fr>

	* plugins/elements/gstqueue2.c:
	  queue2: post 100% buffering message even when waiting for space to be freed
	  In the case where the queue shrinks due to a property change and the queue
	  becomes full, we would set the waiting_del flag, which would prevent posting the
	  100% buffering message on the bus. Since the pipeline is not aware of the new
	  buffering value, in the common case where the pipeline is paused during
	  buffering, it would never resume.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>

2024-02-21 12:17:45 +0100  Arnaud Vrac <avrac@freebox.fr>

	* plugins/elements/gstqueue2.c:
	  queue2: move gst_queue2_get_buffering_message code to the only call site
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>

2024-02-21 12:05:18 +0100  Arnaud Vrac <avrac@freebox.fr>

	* plugins/elements/gstqueue2.c:
	* plugins/elements/gstqueue2.h:
	  queue2: remove redundant check to avoid posting the same buffering value twice
	  Remove the percent_changed check to determine whether a buffering message should
	  be posted. The check on the last posted buffering value is sufficient, and the
	  removal doesn't introduce additional complexity.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>

2024-02-21 11:41:32 +0100  Arnaud Vrac <avrac@freebox.fr>

	* plugins/elements/gstqueue2.c:
	  queue2: consolidate buffering message posting code
	  No need to copy paste the code, simply call the common gst_queue2_post_buffering
	  function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>

2024-02-21 11:17:13 +0100  Arnaud Vrac <avrac@freebox.fr>

	* plugins/elements/gstqueue2.c:
	  queue2: make sure update_buffering is called with the lock taken
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>

=== release 1.23.90 ===

2024-02-23 18:20:11 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2024-02-21 16:56:48 +0100  Jochen Henneberg <jh@henneberg-systemdesign.com>

	* libs/gst/helpers/ptp/main.rs:
	  ptp-helper: Allow sync to master clock on same host
	  If we drop all messages with the same clock id as ours we will also
	  drop all messages coming from a PTP clock on our host since both clock
	  ids are build from the same MAC address.
	  At least for Linux we do not see our own messages anyway since the
	  network stack can well distinguish between multicast send from our
	  socket or from another socket on the same machine. To make sure that
	  this works for all supported platforms just drop delay requests since
	  this is the only message that is sent from the GStreamer PTP clock.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6172>

2023-01-28 01:11:45 +0000  Tim-Philipp Müller <tim@centricular.com>

	* tools/gst-inspect.c:
	  gst-inspect: print plugin error/warning/info status messages
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3832>

2023-01-27 19:08:37 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/gst_private.h:
	* gst/gstplugin.c:
	* gst/gstplugin.h:
	* gst/gstregistrybinary.h:
	* gst/gstregistrychunks.c:
	* tests/check/gst/gstplugin.c:
	  plugin: add API for plugins to provide status info messages
	  This can be used to store informational messages, errors or
	  warnings which can later be shown to the user in gst-inspect-1.0,
	  which can be useful for plugins that expose elements dynamically
	  based on external libraries or hardware capabilities.
	  Status messages can then provide an indication as to why a
	  plugin doesn't have any elements listed, for example.
	  Plus unit test to make sure code paths are exercised a little.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3832>

2024-01-29 19:47:11 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/gstobject.c:
	* gst/gstobject.h:
	* tests/check/gst/gstbin.c:
	  gstobject: add CONSTRUCTED flag
	  This can be used later by base class APIs to know whether they're
	  called from a subclass instance init function (where the object
	  isn't properly constructed yet and one should only really poke
	  at the instance structure but not much else) or after object
	  construction has been finished.
	  Fix up GstBin unit test for CONSTRUCTED flag addition.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2794
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6150>

2024-02-20 08:54:11 +0100  Edward Hervey <edward@centricular.com>

	* gst/gstmeta.c:
	  meta: Skip gst_meta_info_new in gir
	  ```
	  gstmeta.c:500: Warning: Gst: gst_meta_info_new: return value: Invalid
	  non-constant return of bare structure or union; register as boxed type or (skip)
	  ```
	  Skip this for now
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6147>

2024-02-19 12:25:01 +0000  Philippe Normand <philn@igalia.com>

	* gst/gstprotection.c:
	  protection: Document `original-media-type` caps field
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6142>

2024-02-16 17:06:52 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* docs/gst-hotdoc-plugins-scanner.c:
	  docs: initialize values when GST_PLUGIN_API_FLAG_IGNORE_ENUM_MEMBERS is set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5491>

2024-02-15 09:21:15 -0500  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/gstbus.c:
	  bus: do not leak message on invalid handler return value
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6124>

2024-02-15 09:15:50 -0500  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/gstbus.c:
	  bus: do not leak messages if there is no async handler
	  This does not typically happen because "enable-async" property is TRUE
	  by default. The only place where it is set to FALSE is in GstBin where a
	  sync handler is used and always returns GST_BUS_DROP.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6124>

2024-02-15 09:18:20 -0500  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/gstbus.c:
	  bus: warn when message queue grows too much
	  It usually means application is not handling messages causing memory
	  consumption to grow infinitely.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3313>

2024-02-15 16:38:53 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.23.2 ===

2024-02-15 15:37:17 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2024-02-14 00:35:55 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/LINGUAS:
	* po/fr.po:
	* po/lv.po:
	* po/nl.po:
	* po/sv.po:
	* po/tr.po:
	  gstreamer: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6113>

2024-02-03 11:51:27 +0000  Philippe Normand <philn@igalia.com>

	* gst/gsttaglist.c:
	* gst/gsttaglist.h:
	  taglist: Register new tag for container specific track ID
	  Unique identifier for the audio, video or text track this tag is associated
	  with. The mappings for several container formats are defined in the [Sourcing
	  In-band Media Resource Tracks from Media Containers into HTML
	  specification](https://dev.w3.org/html5/html-sourcing-inband-tracks).
	  Based on previous patch by Brendan Long.
	  Fixes #45
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6041>

2024-02-10 00:34:18 +0900  Seungha Yang <seungha@centricular.com>

	* gst/gstpluginloader-win32.c:
	  pluginloader-win32: Early terminate if plugin loader binary is not installed
	  External plugin loader support for Windows is introduced
	  in this dev cycle. Since helper binary was not required (useless)
	  before this version, people may not ship the binary
	  with new GStreamer version, then they will observe warning message.
	  Instead of displaying the warning at plugin loading time,
	  checks helper bin earlier and disable external plugin loader
	  if helper binary is not installed.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/448
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6083>

2023-12-18 15:39:07 -0500  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/gstmeta.c:
	* gst/gststructure.c:
	* gst/gststructure.h:
	* gst/gstvalue.c:
	* tests/check/gst/gststructure.c:
	  structure: Allow STRICT flag only in _serialize_full()
	  The STRICT flag makes _serialize() nullable which is an API break for
	  bindings. Forbid it and add _serialize_full() that accepts it and is
	  properly annotated.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5829>

2021-11-10 13:26:33 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* libs/gst/base/gstbasesrc.c:
	  basesrc: add FIXME 2.0 about automatic_eos
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1334>

2024-02-06 18:09:02 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.23.1 ===

2024-02-06 16:37:19 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2024-02-05 09:27:54 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson_options.txt:
	  meson_options.txt: fix meson warning about default bool values being a string

2024-02-05 18:37:59 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstpad.c:
	  pad: Copy over seqnum when creating a new segment event for applying pad offset
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6057>

2024-02-06 10:02:03 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstutils.c:
	  utils: Remove unnecessary const-removal casts from gst_util_filename_compare()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6063>

2024-02-06 09:48:17 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstutils.c:
	  utils: Annotate gst_util_filename_compare() parameters as filenames
	  They're not UTF-8 strings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6063>

2024-01-26 19:12:18 +0100  Piotr Brzeziński <piotr@centricular.com>

	* gst/gstmacos.m:
	  macos: Fix gst_macos_main() terminating whole process before returning a value
	  Removes the usage of [NSApp terminate] to avoid killing the process and thus never actually returning a value.
	  The new way is just to use [NSApp stop] and send an event, since stop only happens after an event is processed.
	  Unlike terminate, stop will only halt the event loop, not the whole process.
	  This uses an NSApplicationDelegate to listen for NSApp finishing the launch process, and then signals the 'main' thread
	  to proceed. That makes sure to never call [NSApp stop] before NSApp is actually running, which could happen if the
	  provided 'main' function finished quickly enough.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6005>

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

	* libs/gst/base/gstbasesrc.c:
	  basesrc: Lower verbosity  of often happening warning
	  decodebin(3) runs a scheduling query before pads are activated which
	  ultimately triggers basesrc->start which will automatically call
	  `gst_base_src_start_complete` for any source that is not marked as
	  'async'. This calls will harmlessly bail out in `not_activated_yet`
	  so we should not warn in that case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6011>

2024-01-23 15:28:50 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/gstpad.c:
	  core: pad: call tracer query-post hook after probes
	  Tracers are likely interested about the end result of the query, so
	  after probes have been caled.
	  Fix a bug where the buffer-lateness tracer was reporting a wrong latency
	  when pad probes increased the latency.
	  Also call the tracer hook if the pad has no query function.
	  Fix https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/486
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5963>

2023-11-21 19:54:32 -0300  Thibault Saunier <tsaunier@igalia.com>

	* libs/gst/base/gstbasesink.c:
	  basesink: Preroll on out of segment buffers when not dropping them
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5980>

2024-01-28 11:15:01 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: bump Meson requirement to >= 1.1 for all modules
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6002>

2023-08-31 18:55:58 -0400  Thibault Saunier <tsaunier@igalia.com>

	* libs/gst/helpers/gst_gdb.py:
	  gdb: Fix the way we wrap segments
	  Without that we end up with a reference to a GBoxed instead of the actual segment making the rest of the code fail
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5986>

2023-08-31 18:55:14 -0400  Thibault Saunier <tsaunier@igalia.com>

	* libs/gst/helpers/gst_gdb.py:
	  gdb: Fix issue with undeclared variable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5986>

2023-08-31 18:53:46 -0400  Thibault Saunier <tsaunier@igalia.com>

	* libs/gst/helpers/glib_gobject_helper.py:
	* libs/gst/helpers/gst_gdb.py:
	  gdb: Handle the case where the fundamental type table is optimized out
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5986>

2023-08-31 18:52:58 -0400  Thibault Saunier <tsaunier@igalia.com>

	* libs/gst/helpers/glib_gobject_helper.py:
	* libs/gst/helpers/gst_gdb.py:
	  gdb: Fix python style
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5986>

2023-08-31 18:43:46 -0400  Thibault Saunier <tsaunier@igalia.com>

	* libs/gst/helpers/glib_gobject_helper.py:
	  gdb: Workaround optimized out quark_seq_id
	  On fedora 38 (and it was the case in previous releases), the
	  quark_seq_id is optimized out so getting quarks from the
	  global variable always failed. This patch works around that by assuming
	  it is a valid quark whenever the quark_seq_id is not accessible.
	  This issue often manifested as Python Exception <class 'TypeError'>:
	  can only concatenate str (not "NoneType") to str when debugging as
	  other parts of the code assume that getting the quark for a GType name
	  will work.
	  Same as https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3559
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5986>

2024-01-17 15:57:43 +0100  Jonas K Danielsson <jonas.danielsson@spiideo.com>

	* gst/gstutils.c:
	* gst/gstutils.h:
	  gstutils: Add g_util_filename_compare
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4491>

2023-04-24 09:28:22 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/gstpipeline.c:
	* gst/gstpipeline.h:
	  core: pipeline: add gst_pipeline_get_configured_latency()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4472>

2023-04-21 17:49:50 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/gstpipeline.c:
	* gst/gstpipeline.h:
	  core: pipeline: add gst_pipeline_is_live()
	  Convenient API for applications wanting to check if a pipeline is live
	  or not. Save them from checking the change_state return value or sending
	  latency queries.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4472>

2023-04-21 17:44:43 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/gstpipeline.c:
	  core: pipeline: protect priv->is_live with object lock
	  It's supposed to be according to the comment where it's defined.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4472>

2023-08-30 10:56:19 -0600  Scott Moreau <oreaus@gmail.com>

	* tools/gst-launch.c:
	  gst-launch: accept option to set program name
	  The option --prog-name="PROGRAM-NAME" can be passed to set the program name.
	  The program name is used by gtk and gstreamer to set the class or app-id.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5263>

2023-04-05 08:48:36 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/gstobject.h:
	* gst/gstpad.h:
	* tests/check/gst/gstobject.c:
	  gstpad, gstobject: Add GMutexLocker helper
	  Add GST_OBJECT_AUTO_LOCK() and GST_PAD_STREAM_AUTO_LOCK() to simplify
	  g_autoptr(GMutexLocker) usage.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4300>

2024-01-05 14:32:00 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* gst/gstutils.c:
	* gst/gstutils.h:
	  gstutils: add gst_util_ceil_log2
	  Move ceil_log2 from nalutils.* to gstutils.*
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5888>

2023-12-29 10:15:49 +0200  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/helpers/ptp/io.rs:
	  ptp-helper: Allow unused `Stderr` export
	  It's not used when building tests and would otherwise cause a warning.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5872>

2023-12-18 16:33:07 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst/gstbuffer.c:
	* gst/gstmeta.c:
	* gst/gstmeta.h:
	  meta: Add API to register metas in two steps
	  And also remove the specific registration APIs for
	  serializable meta.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5830>

2023-12-18 13:40:53 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst/gstbufferpool.c:
	* gst/gstmeta.c:
	* gst/gstmeta.h:
	  meta: Move the clear operation to its own vfunc
	  Some transforms always assumed that the transformation was some kind
	  of copy. So adding a "clear" operation didn't work out in practice.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5830>

2023-12-01 12:10:36 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* libs/gst/base/gstbaseparse.c:
	  doc: baseparse: Clarify consumed vs output size
	  When we finish a frame, we pass a size which semantic can easily be confused.
	  Improve the documentation to clarify that the parameter size is the amount of
	  input data being consumed and, if set, the output_buffer size can differ.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5754>

2023-12-15 17:47:02 -0500  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/gstmeta.c:
	  meta: gst_meta_serialize() is not introspectable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5355>

2023-09-18 19:24:35 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/gst.h:
	* gst/gstbuffer.c:
	* gst/gstbuffer.h:
	* gst/gstbytearrayinterface.h:
	* gst/gstmeta.c:
	* gst/gstmeta.h:
	* gst/meson.build:
	* tests/check/gst/gstbuffer.c:
	* tests/check/gst/gstmeta.c:
	  meta: Add serialize/deserialize API
	  This allows metas to be serialized to be transmitted or stored. This is
	  intended to be used for example by gdppay or unixfdsink.
	  Implemented on GstCustomMeta, GstVideoMeta, GstReferenceTimestampMeta,
	  and GstAudioMeta.
	  Sponsored-by: Netflix Inc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5355>

2023-09-20 15:34:40 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/gststructure.c:
	* gst/gststructure.h:
	* tests/check/gst/gststructure.c:
	  structure: Add GST_SERIALIZE_FLAG_STRICT
	  It makes serialization succeed only if all values have a type that can
	  be deserialized.
	  Sponsored-by: Netflix Inc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5355>

2023-09-24 14:48:36 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/gstbuffer.c:
	  buffer: Remove trailing space
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5355>

2023-12-01 08:21:03 -0500  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/gstplugin.c:
	  devenv: Whitelist all plugins to be able to run tests
	  Meson devenv already overrides GST_PLUGIN_PATH and
	  GST_PLUGIN_SYSTEM_PATH so only built plugins can be found. That means
	  unit tests are allowed to use every plugins.
	  This makes easier to run some unit tests under devenv instead of through
	  "meson test".
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5748>

2023-12-05 14:01:50 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: Don't stop dropping when an internal queue is empty
	  It is racy and may cause us to accidentally keep forwarding data past
	  the EOS. The only reason to stop dropping would be when we encounter a
	  stream-start, segment, or segment-done event, either in push_one
	  (already queued) or in the sink pad's event function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5766>

2023-12-10 03:25:57 +1100  Jan Schmidt <jan@centricular.com>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: Ignore queue fullness for most events
	  Use gst_data_queue_push_force() for most events so they
	  are immediately enqueued. Only gap events and actual buffer
	  data will now block when the queue is full.
	  This fixes a problem with non-flushing seek handling
	  where events following a segment-done event would block
	  if they precede the SEGMENT event, since only SEGMENT
	  events would clear the 'eos' state of the multiqueue
	  queue.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5801>

2023-12-12 23:55:04 +0100  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* libs/gst/base/gstaggregator.c:
	* tests/check/libs/aggregator.c:
	  aggregator: fix use-after-free in queries processing
	  Test included.
	  The problem appears when aggregator drops the query while
	  it's being proccessed by the klass->sink_query handler.
	  This can happen on FLUSH_START event. If the query is still
	  in the queue, it can be safely dropped, but if it's already
	  in the klass->sink_query() handler, then sink pad has no
	  choice and has to wait for the proccessing to complete.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5765>

2023-11-28 15:47:38 -0300  Thibault Saunier <tsaunier@igalia.com>

	* libs/gst/base/gstbasesrc.c:
	  basesrc: Expose automatic-eos as a property
	  It is useful for appsrc for example and no good reason to not expose it as a property
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5725>

2023-11-29 10:53:15 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst/gstcontext.c:
	* gst/gstcontext.h:
	  gstcontext: Added gst_clear_context()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5756>

2023-11-29 08:46:49 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst/gstpromise.c:
	* gst/gstpromise.h:
	  gstpromise: Added gst_clear_promise()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5756>

2023-11-28 14:43:13 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst/gstpromise.h:
	  gstpromise: Added GST_IS_PROMISE() macro
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5728>

2023-07-25 14:16:09 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* gst/gst.c:
	* gst/meson.build:
	* meson_options.txt:
	  meson: fix gstreamer-full static mode on win32
	  Win32 was expecting the symbol gst_init_static_plugins in gstreamer-full
	  dynamic mode.
	  Add mode in gstreamer gstreamer-full options to tell if its a
	  gstreamer-full static or shared mode.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5098>

2023-11-27 13:16:47 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* libs/gst/base/gstbaseparse.c:
	  baseparse: Reset metadata for reverse playback fragment buffers
	  Don't let the adapter leak uncontrollable values.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5718>

2023-11-27 12:29:08 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* libs/gst/base/gstbaseparse.c:
	  baseparse: Add missing gst_buffer_make_writable
	  When the subclass attempts to finish without an explicit `out_buffer`,
	  we take a buffer from our adapter. We need to make this buffer writable
	  before copying the metadata.
	  This led to data races such as in the following pipeline, which randomly
	  messed up the buffer PTS:
	  gst-launch-1.0 -e audiotestsrc timestamp-offset=5555 num-buffers=100 \
	  ! opusenc ! tee name=t ! queue ! opusparse ! fakesink silent=0 \
	  t. ! queue ! opusparse ! fakesink silent=0 -v | grep '0000, dur'
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5718>

2023-09-01 17:29:50 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/gstbufferpool.c:
	* gst/gstmeta.c:
	* gst/gstmeta.h:
	  meta: Add a new "clear" transform to avoid re-allocations
	  In the buffer pool, try to clear metas before freeing them so we
	  avoid constant reallocations on every frame.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4962>

2023-08-03 17:05:17 -0600  Jordan Yelloz <jordan.yelloz@collabora.com>

	* libs/gst/check/gstcheck.c:
	  bad: Added W3C Media Source Extensions library
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2992>

2023-11-17 14:32:37 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* tests/check/gstreamer.supp:
	  valgrind: Supress racy cancellable source leak
	  Creating a socket source, creates a cancellable source internally. This
	  mechanism is racy and in order to workaround the race, the final unref
	  can be delayed. Unfortunatly, it seams that this is randomly leaked.
	  This affects users of glib 2.65 and up. Add a suppression on our side
	  in order to avoid this leak showing up randomly in our CI.
	  See https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1400 for more
	  about the glib implementation detail. And follow this link for an
	  example of failing CI pipeline:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/jobs/51694889
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5688>

2023-11-13 16:27:48 +0200  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/helpers/ptp/args.rs:
	* libs/gst/helpers/ptp/main.rs:
	* libs/gst/net/gstptpclock.c:
	  ptp: Add `ttl` configuration to gst_ptp_init_full()
	  This allows configuring the TTL that is used for multicast packets sent
	  out on the sockets, and is defaulting to 1 as before. The default might
	  change at some point.
	  In some networks multiple hops are needed to reach the PTP clock and
	  this allows to configure GStreamer in a way that works in such networks.
	  At a later time, per-domain or per-interface TTL configurations might be
	  added when needed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5649>

2023-11-13 16:14:07 +0200  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/net/gstptpclock.c:
	* libs/gst/net/gstptpclock.h:
	  ptp: Add new gst_ptp_init_full()
	  This takes a free-form GstStructure as parameter that allows to easily
	  extend it with new configuration at a later time without having to add
	  new API.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5649>

2023-11-15 10:03:52 +0000  Daniel Moberg <daniemob@axis.com>

	* gst/gstpad.c:
	  gstpad: Recheck pads when linking after temporary unlock
	  This commit makes sure that pads are valid for linking
	  after the pads has been temporarily unlocked in the linking process.
	  Not doing this opens up for a race condition where
	  pads potentially can be linked twice.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5670>

2023-10-31 16:22:20 +0000  Philippe Normand <philn@igalia.com>

	* gst/gststreamcollection.c:
	  streamcollection: Fixup doc blurbs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5605>
