=== release 1.26.7 ===

2025-10-14 18:25:43 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2025-10-10 20:56:21 -0300  Thibault Saunier <tsaunier@igalia.com>

	* libs/gst/controller/gsttimedvaluecontrolsource.c:
	  controller: Fix get_all() return type annotation in GIR
	  The method returns a list of GstControlPoint, not GstTimedValue.
	  This fixes the type annotation to match the actual return type.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9831>

2025-09-25 09:46:23 +0900  Inbok Kim <inbok.kim@lge.com>

	* libs/gst/net/gstnetclientclock.c:
	  netclientclock: Fix memory leak in error paths
	  Add missing g_object_unref() calls for servaddr in error handling
	  blocks to prevent memory leaks when socket creation, binding, or
	  address resolution fails.
	  The servaddr object was not being properly unreferenced in the
	  no_socket, bind_error, and getsockname_error error paths, leading
	  to memory leaks in failure scenarios.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9741>

2025-09-24 12:55:28 -0400  Xavier Claessens <xclaessens@netflix.com>

	* tools/gst-launch.c:
	  gst-launch: Do not assume error messages have a src element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9739>

2025-09-25 08:19:07 +0900  Inbok Kim <inbok.kim@lge.com>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: Fix object reference handling in signal callbacks
	  Move gst_object_unref() calls after signal emissions in overrun and
	  underrun callbacks to ensure the multiqueue object remains valid
	  during signal handler execution.
	  This prevents potential race conditions where signal handlers might
	  access a freed object, improving thread safety in multiqueue operations.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9742>

2025-09-14 13:19:28 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.26.6

=== release 1.26.6 ===

2025-09-14 13:13:58 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2025-08-21 09:02:45 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/base/gstbaseparse.c:
	  baseparse: Try harder to fixate caps based on upstream in default negotiation
	  Upstream might provide a width/height while downstream has the field but accepts
	  a range. gst_caps_fixate() would select the minimum value of that range later
	  but it would be more accurate to take the upstream value, at least if it's a
	  subset of what downstream accepts.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4608
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9603>

2025-08-07 17:09:22 +0200  Vivienne Watermeier <vwatermeier@igalia.com>

	* libs/gst/base/gstbaseparse.c:
	* tests/check/libs/baseparse.c:
	  baseparse: don't clear most sticky events after a FLUSH_STOP event
	  Clearing sticky events - besides EOS, STREAM_GROUP_DONE, and SEGMENT -
	  risks losing them if a flush occurs before we get another buffer.
	  Also adds a unit test: parser_sticky_events_after_flush
	  Fixes #4193
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9594>

2025-08-09 19:00:00 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstcaps.c:
	* gst/gstchildproxy.c:
	* gst/gstelementfactory.c:
	* gst/gststructure.c:
	* gst/gsttaglist.c:
	* gst/gsttracerrecord.c:
	  gstreamer: Make sure to zero-initialize the GValue before G_VALUE_COLLECT_INIT
	  G_VALUE_INIT does not zero-initialize the data member as automatic
	  zero-initialization only happens for non-union types. For union types the
	  initialized value is undefined.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4595
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9529>

2025-08-11 10:42:06 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/helpers/ptp/net.rs:
	  ptp: Fix a new Rust 1.89 compiler warning on Windows
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9528>

2025-08-08 17:50:03 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/meson.build:
	  gstreamer: Disable miniobject inline functions for gobject-introspection for non-subprojects too
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9519>

2025-08-08 10:13:55 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/helpers/ptp/net.rs:
	  ptp: Fix new compiler warning with Rust 1.89
	  This still compiles with Rust 1.48 and newer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9516>

2025-08-07 19:15:29 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.26.5

=== release 1.26.5 ===

2025-08-07 19:06:46 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2025-07-01 20:53:47 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: add sub_latency_min to pad queue size
	  It should be possible for a subclass to let data accumulate on any of its input
	  pads for as long as it has introduced latency.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9490>

2025-07-13 17:30:20 +0100  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/gstevent.h:
	* gst/gstquery.h:
	* gst/gstsegment.h:
	  gstreamer: Disable C5287 warning on MSVC
	  ```
	  ../subprojects/gstreamer/gst/gstpad.c(3866): warning C5287:
	  operands are different enum types 'GstQueryType' and 'GstQueryTypeFlags';
	  use an explicit cast to silence this warning
	  ```
	  We abuse these enums, and MSVC emits a warning for this specific case:
	  https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warnings-c5200-through-c5399
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9450>

2025-07-16 15:33:19 +0200  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.26.4

=== release 1.26.4 ===

2025-07-16 15:26:21 +0200  Tim-Philipp Müller <tim@centricular.com>

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

2025-07-08 17:06:15 +0100  Tim-Philipp Müller <tim@centricular.com>

	* po/hr.po:
	* po/ka.po:
	  gstreamer: update translations

2025-05-30 15:05:30 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/gsttracerutils.c:
	  tracerutils: Fix a few memory leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9347>

2025-05-28 08:25:45 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/libs/gstnetclientclock.c:
	* tests/check/meson.build:
	  netclientclock: test: add delay under valgrind to free clock from cache
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9343>

2025-05-28 08:23:25 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/gstinfo.c:
	  info: free dwarf cache during shutdown
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9343>

2025-05-28 08:22:05 -0400  Doug Nazar <nazard@nazar.ca>

	* plugins/elements/gstidentity.c:
	  identity: unref clock after usage
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9343>

2025-06-22 03:07:58 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/selector.c:
	  selector: tests: Fix initialization of segment
	  If GST_DEBUG is enabled and it dumps the segment, valgrind will warn about
	  uninitialized memory.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9314>

2025-06-22 03:05:20 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/gst/gstinfo.c:
	  gstinfo: tests: Ensure that the target msg is one of the ones seen
	  If GST_DEBUG is enabled we will get multiple log messages. Signal
	  success if one of messages is correct.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9314>

2025-06-22 03:01:52 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/gst/gstmemory.c:
	  memory: tests: Fix test to ensure all logs are less severe than WARN
	  If GST_DEBUG is enabled the existing test will fail as it gets INFO
	  log messages.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9314>

2025-06-22 02:59:06 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/libs/transform1.c:
	* tests/check/libs/transform2.c:
	  transform: test: TestTransData is not an object
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9314>

2025-05-02 10:23:18 +0200  Alicia Boya García <aboya@igalia.com>

	* gst/gstpad.c:
	  tracers: Fix deadlock in latency tracer
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4317
	  This patch fixes a regression in
	  a35bf1e3847351703542869755b6b9e536b9d2fd.
	  The new calls to tracers in the affected change were being done while
	  holding the pad object lock, which wasn't the case in the old ones,
	  leading to the latency tracer deadlocking in gst_object_get_parent().
	  The dependency on the pad lock for those calls was accidental. This
	  patch removes it by temporarily unlocking during the affected calls,
	  not unlike how it's done when calling a probe callback or the
	  send_event() function of the downstream element.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9254>

2025-06-26 21:29:34 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.26.3

=== release 1.26.3 ===

2025-06-26 21:25:24 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2025-06-26 10:27:33 +0300  Sebastian Dröge <sebastian@centricular.com>

	* tests/check/gst/gstutils.c:
	  gstutils: Mark times array as static to avoid symbol conflict with the POSIX function
	  It works fine but there can be linker warnings, e.g. with mold.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9291>

2025-06-23 12:44:52 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstpad.c:
	  pad: Only remove TAG events on STREAM_START if the stream-id actually changes
	  Missing part from 88a36b53c5064d186acb317b0b72633ef5d886e3
	  See also https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4097
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9275>

2025-06-19 09:47:32 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/libs/baseparse.c:
	  baseparse: test: Fix race on test start
	  It's possible that the sink pad is still flushing when the first buffer
	  is processed causing the test to timeout when we activate the sink after
	  starting the pipeline.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9261>

2025-06-03 22:11:59 +0100  James Cowgill <james.cowgill@blaize.com>

	* gst/gstvecdeque.c:
	  vecdeque: Use correct index type in gst_vec_deque_drop_struct
	  Fixes some `-Wsign-compare` warnings. These two indices should be
	  `gsize` like the other variables in this function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9182>

2024-09-23 10:31:13 -0300  Thibault Saunier <tsaunier@igalia.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: Do not set event seqnum to INVALID
	  This might happen when we get EOS without any data flow
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9152>

2025-05-30 00:03:12 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.26.2

=== release 1.26.2 ===

2025-05-29 23:56:43 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2025-05-23 13:07:34 +0200  Thibault Saunier <tsaunier@igalia.com>

	* gst/gststructure.c:
	* gst/gststructure.h:
	  gst: Add a gst_structure_is_writable method
	  There are cases (in the gst-python bindings for example) where
	  it is interesting to know that the structure is not writable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9071>

2025-05-13 19:47:37 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/gst/gstcontroller.c:
	  controller: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9088>

2025-05-13 19:46:34 -0400  Doug Nazar <nazard@nazar.ca>

	* libs/gst/controller/gstdirectcontrolbinding.c:
	  directcontrolbinding: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9088>

2025-05-13 19:15:21 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/gstpadtemplate.c:
	  all: Annotate *_set_property() contructor only props without free
	  Properties that are marked constructor only aren't required to be freed
	  before g_value_dup_*() as they can only be called once during construction.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9088>

2025-05-18 16:02:52 +0300  Jordan Petridis <jordan@centricular.com>

	* gst/gsttracerutils.c:
	  gsttracerutils: Fix leak in gst_tracer_utils_create_tracer()
	  Co-authored-by: Alicia Boya García <aboya@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9065>

2025-05-13 09:54:07 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstpipeline.c:
	  pipeline: Store the actual latency even if no static latency was configured
	  Previously the latency was only stored if a static latency was configured on the
	  pipeline, which caused gst_pipeline_get_configured_latency() to always return
	  GST_CLOCK_TIME_NONE in that case.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4429
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9008>

2025-05-16 13:11:33 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstelement.c:
	  element: ref-sink the correct pad template when replacing an existing one
	  templ is the new one that is being stored and that needs to be ref-sinked,
	  padtempl is the old one that just needs to be unreffed.
	  Fixes leaking the old template, and also makes sure that the new template is not
	  floating which can cause use-after-frees with bindings as they might wrongly
	  take ownership of a still floating template.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8999>

2025-04-01 18:22:18 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* libs/gst/helpers/ptp/meson.build:
	  gst-ptp-helper: Fix meson warning about rust_crate_type
	  WARNING: Project targets '>= 1.4' but uses feature deprecated since
	  '1.3.0': rust_crate_type arg in static_library. Use rust_abi or
	  rust.proc_macro() instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8919>

2025-04-25 12:18:19 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: Don't produce buffers when live but not in PLAYING yet
	  Especially in force-live=true mode it was possible to produce buffers before the
	  element was set to PLAYING as long as a clock was available already.
	  This could easily lead to outputting buffers too early, and e.g. before the
	  correct base time is set and available.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8902>

2025-04-25 12:15:17 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: Check after waiting if we're still running and otherwise stop
	  Previously we might've produced a buffer needlessly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8902>

2025-04-09 12:10:33 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst/gsttracerutils.c:
	  tracerutils: Do not warn on empty string as tracername
	  It doesn't matter if there is an "empty tracer" specified.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8892>

2025-04-24 20:26:57 +0100  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.26.1 ===

2025-04-24 20:20:14 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2025-04-16 11:06:07 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst/gstmacos.h:
	* gst/gstmacos.m:
	  macos: Move macos function documentation to the .h so the introspection has the information
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8886>

2025-04-01 11:02:58 +0800  Shengqi Yu (喻盛琪) <shengqi.yu@mediatek.com>

	* gst/gstpluginloader.c:
	  pluginloader: fix pending_plugins Glist use-after-free issue
	  When plugin_loader_load_and_sync returns false in plugin_loader_replay_pending,
	  the cur Glist l->pending_plugins will be added to the blacklist.
	  However, the l->pending_plugins might have already been loaded and freed in handle_rx_packet,
	  so causing a use-after-free issue.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8849>

2025-04-03 09:13:31 -0300  L. E. Segovia <amy@centricular.com>

	* cmake/FindGStreamer.cmake:
	  cmake: Fix using pkgconf for Windows cross builds
	  pkgconf has its own default logic on Windows for setting up a prefix,
	  which does not match the default behaviour of pkg-config (blindly
	  respecting modules' ${prefix} variable).
	  See
	  https://github.com/pkgconf/pkgconf/commit/dcf529b83d621ed09e99e41fc35fdffd068bd87a
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8779>

2025-04-03 09:02:59 -0300  L. E. Segovia <amy@centricular.com>

	* cmake/FindGStreamer.cmake:
	  cmake: Fix PKG_CONFIG_PATH formatting for Windows cross-builds
	  The PKG_CONFIG_PATH use of semicolons must match the host system, not
	  the build system. This fixes calling pkg-config for Windows to Android
	  cross builds.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8779>

2025-04-01 02:04:48 +0900  Seungha Yang <seungha@centricular.com>

	* gst/gstpluginloader-win32.c:
	  pluginloader-win32: Fix helper executable path under devenv
	  lpApplicationName argument of CreateProcessW should be complete path
	  of executable.
	  Fixing regression introduced by
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8614
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8761>

2025-03-14 22:15:38 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/gsttracer.c:
	  tracer: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8714>

2025-03-14 19:14:43 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/gstcontrolbinding.c:
	* gst/gstdevice.c:
	* gst/gstpadtemplate.c:
	  all: Annotate *_set_property() contructor only props without free
	  Properties that are marked constructor only aren't required to be freed
	  before g_value_dup_string() as they can only be called once during construction.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8714>

2025-03-26 15:38:20 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* plugins/tracers/gstdots.c:
	  tracers: dots: fix debug log
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8712>

2025-03-06 17:16:20 +0100  David Smitmanis <davidsm@axis.com>

	* gst/gstpluginloader-win32.c:
	  pluginloader-win32: Correctly handle whitespace paths when executing gst-plugin-scanner
	  On Windows, if the path to gst-plugin-scanner.exe contained
	  whitespace, gstreamer would via CreateProcessW attempt to execute
	  several files "up" the path tree; e.g. if the scanner path was
	  "C:\Program Files\gstreamer app\gst-plugin-scanner.exe", it would try
	  to execute C:\Program, C:\Program.exe, C:\Program Files\gstreamer.exe"
	  and so on.
	  This is how CreateProcessW behaves with unquoted whitespace arguments
	  in lpCommandLine if lpApplicationName is NULL.
	  By passing the binary path as lpApplicationName instead, the problem
	  is avoided.
	  Also quote arguments to gst-plugin-scanner.exe as they are paths as well.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8686>

2025-01-22 15:02:03 +0100  Marc Leeman <marc.leeman@gmail.com>

	* meson.build:
	  meson.build: test for and link against libatomic if it exists
	  It's needed on some platforms for some subset (or all) atomic operations and
	  checking for the cases when it's actually needed is quite complex.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4300
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8647>

2025-03-11 20:23:16 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.26.0 ===

2025-03-11 20:14:44 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2025-02-12 17:10:30 +0000  L. E. Segovia <amy@centricular.com>

	* cmake/FindGStreamer.cmake:
	  cmake: Memoize include checks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8478>

2025-02-24 09:34:09 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/gst-plugins-doc-cache-generator.py:
	  docs: Add a way to specify extra_assets path for plugins doc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8545>

2025-02-24 12:17:55 -0300  Thibault Saunier <tsaunier@igalia.com>

	* plugins/tracers/gstdots.c:
	  tracer: dots: Check that `pipeline-snapshot::dots-viewer-ws-url` exists
	  It is a very new property and the tracer should still be usable if that
	  property doesn't exist
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8547>

2025-02-23 23:52:57 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.25.90

=== release 1.25.90 ===

2025-02-23 23:44:10 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2025-02-23 16:55:40 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/be.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/eo.po:
	* po/eu.po:
	* po/fr.po:
	* po/gl.po:
	* po/hr.po:
	* po/id.po:
	* po/lt.po:
	* po/lv.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sq.po:
	* po/uk.po:
	* po/zh_CN.po:
	  gstreamer: update translations

2025-02-19 11:26:36 -0300  Thibault Saunier <tsaunier@igalia.com>

	* plugins/tracers/gstdots.c:
	  tracers: dots: Simplify the way we check dot file to be removed
	  Fixing removing dot files that are in the root directory.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8521>

2024-11-06 17:53:51 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/gstmemory.c:
	* gst/gsttracerutils.c:
	* gst/gsttracerutils.h:
	  tracer: Add memory init/free hooks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8510>

2025-02-19 10:53:34 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/gstvalue.c:
	  gstvalue: fix leak in gst_value_deserialize_bytes()
	  The GValue needs to take ownership.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8515>

2025-02-19 10:52:09 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/gstvalue.c:
	  gstvalue: fix leak in gst_value_deserialize_g_date_time()
	  gst_date_time_to_g_date_time() does not take ownership.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8515>

2025-02-17 19:16:32 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstiterator.c:
	* gst/gstmeta.c:
	* gst/gsttracer.c:
	* gst/gstutils.h:
	  gstreamer: Fix various gobject-introspection warnings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8501>

2025-02-17 13:22:29 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstbuffer.c:
	  buffer: Mark gst_buffer_extract() size parameter as in-parameter
	  Otherwise it's considered an out-parameter because of its relationship with
	  the dest array pointer.
	  Suggested-by: Sergey Bugaev <bugaevc@gmail.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8494>

2025-02-13 09:54:43 -0500  Xavier Claessens <xclaessens@netflix.com>

	* gst/gststructure.c:
	* gst/gstvalue.c:
	* tests/check/gst/gststructure.c:
	  gststructure: Fix deserialization of GStrv
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8438>

2025-02-10 11:54:18 -0500  Xavier Claessens <xclaessens@netflix.com>

	* gst/gstvalue.c:
	* tests/check/gst/gstvalue.c:
	  gstvalue: Add (de)serialize of G_TYPE_STRV
	  This allows setting strv properties from gst-launch-1.0, such as uris in
	  uriplaylistbin.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8438>

2025-02-11 22:34:30 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/gst.c:
	  gst: Allow tracers to set the GST_DEBUG_DUMP_DOT_DIR
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7999>

2025-02-11 22:33:03 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* plugins/tracers/gstdots.c:
	* plugins/tracers/gsttracers.c:
	* plugins/tracers/meson.build:
	  tracers: Add a `dots` tracer which is meant to be used with `gst-dots-viewer`
	  See documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7999>

2025-01-09 20:23:08 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/gstdebugutils.c:
	  core: debugutils: Write dot files atomically
	  Replace fopen/fputs with g_file_set_contents() to ensure dot files are written
	  atomically. This prevents tools like gst-dots-viewer from reading partially
	  written files when watching the dot folder.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7999>

2025-02-05 20:25:48 +0100  Alicia Boya García <aboya@igalia.com>

	* gst/parse/grammar.y.in:
	* gst/parse/types.h:
	  gstreamer: parse: Log bus error messages during construction
	  Suppose you invoke gst-launch with this invalid pipeline:
	  ```
	  $ gst-launch-1.0  videotestsrc num-buffers=10 ! x264enc name=enc ! mux.sink_0 \
	  mpegtsmux name=mux ! fakesink
	  0:00:00.018631594 351169      0xb523090 ERROR           GST_PIPELINE
	  subprojects/gstreamer/gst/parse/grammar.y:1151:gst_parse_perform_link:
	  could not link enc to mux
	  WARNING: erroneous pipeline: could not link enc to mux
	  ```
	  The error message you get is not very helpful. This is a pity, because
	  this is where the error comes from:
	  ```c
	  static GstPad *
	  gst_base_ts_mux_request_new_pad (GstElement * element, GstPadTemplate * templ,
	  const gchar * name, const GstCaps * caps)
	  { // [...]
	  GST_ELEMENT_ERROR (element, STREAM, MUX,
	  ("Invalid Elementary stream PID (0x%02u < 0x40)", pid), (NULL));
	  return NULL;
	  ```
	  mpegtsmux posted an error with an explanation of why the linking failed.
	  However, since the error ocurred within gst_parse_launchv(), gst-launch
	  could not have set a bus handler, and the error message got discarded.
	  This patch attempts to make gst-launch more user-friendly by setting a
	  temporary bus handler during early bin construction to catch error
	  messages like this.
	  The errors are logged as ERROR level in the GST_PIPELINE category.
	  However, this is not enough, as GST_LEVEL_DEFAULT defaults to
	  GST_LEVEL_NONE in releases. In other words, outside of the dev
	  environment, GStreamer won't print ERROR logs by default.
	  To make sure the errors can reach users of packaged versions of
	  GStreamer, a new AtomicRcBox-based struct is added: reason_receiver_t.
	  graph_t owns a reference to reason_receiver_t and so does the temporary
	  bus handler.
	  When the temporary bus handler receives an error message, the `reason`
	  field of `reason_receiver_t` is filled with the error message.
	  Later, when SET_ERROR() is called as a consequence of the operation that
	  posted the error having returned failure, the reason message is
	  extracted and added to the GError message.
	  This is how the resulting error would look in the example from above:
	  WARNING: erroneous pipeline: could not link enc to mux --
	  GstMpegTsMux <mux> posted an error message: Invalid Elementary
	  stream PID (0x00 < 0x40)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8417>

2025-02-11 00:03:20 +0100  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst/gsttracerrecord.c:
	  tracerrecord: fix missing GObject vtable chainups
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8452>

2025-02-11 00:03:08 +0100  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst/gsttracer.c:
	  tracer: fix missing GObject vtable chainups
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8452>

2025-02-06 11:40:26 +0100  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* plugins/tracers/gstlatency.c:
	* plugins/tracers/gstlog.c:
	* plugins/tracers/gststats.c:
	  tracers: fix chaining up GObject's constructed virtual method
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>

2025-02-05 21:02:16 +0100  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: fix chaining up in GObject "constructed" virtual methods
	  This doesn't always bring visible issue, but is formally incorrect:
	  not chaining up means that the code doesn't trigger GstObject and
	  GstElement "constructed" implementations.
	  In particular both GstElement's and GstObject's classes in
	  "constructed" may sign up this object for tracing and
	  GstObject's class sets GST_OBJECT_FLAG_CONSTRUCTED flag.
	  If we don't chain up none of this is going to be executed.
	  For example, before the fix leaks tracer couldn't detect this leak:
	  ```c
	  int main (int argc, char **argv) {
	  g_setenv ("GST_TRACERS", "leaks(name=all-leaks)", TRUE);
	  g_setenv ("GST_DEBUG", "GST_TRACER:7", TRUE);
	  g_setenv ("G_DEBUG", "fatal-warnings", TRUE);
	  gst_init (&argc, &argv);
	  // leak audiomixer: doesn't detect because it's based on the aggregator
	  gst_element_factory_make ("audiomixer", "Jerry");
	  // leak videoconvert: this one is detected fine because it's not
	  // based on the aggregator
	  //gst_element_factory_make ("videoconvert", "Tom");
	  gst_deinit ();
	  return 0;
	  }
	  // $ cc tst.c $(pkg-config --cflags --libs gstreamer-1.0) -o tst && ./tst
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>

2025-02-09 17:47:32 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.25.50

=== release 1.25.50 ===

2025-02-09 17:35:17 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2025-02-07 05:10:39 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* docs/gst-plugins-doc-cache-generator.py:
	  docs: Fix opencv pkgconfig file name
	  Most distros ship OpenCV 4.x, and the pkgconfig file for that is
	  `opencv4`. OpenCV 3.x uses `opencv`, and Fedora ships both files with
	  OpenCV 4.x for backwards compat.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8403>

2025-02-05 17:42:31 +0100  Alicia Boya García <aboya@igalia.com>

	* plugins/tracers/gstlog.c:
	  log tracer: Use strings instead of integer codes
	  In many places in the log tracer %d was used for data types we have
	  string format functions. This is especially problematic when the data
	  type is not immediately obvious to the reader (e.g. gboolean vs
	  GstFlowRet, where TRUE==1 but GST_FLOW_OK==0) or the values are not easy
	  to memorize (GST_STATE_CHANGE_PLAYING_TO_PAUSED==35).
	  This patch replaces all the integer codes with string representations so
	  that the logs are easier to understand by humans.
	  The formatting of GstBufferList by the log tracer is also updated to use
	  GST_PTR_FORMAT instead of a raw pointer, so the user can see the
	  timestamps, size and number of buffers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8414>

2025-02-05 18:53:33 +0100  Alicia Boya García <aboya@igalia.com>

	* gst/parse/grammar.y.in:
	  gstreamer: parse: Fix log in gst_parse_perform_link
	  Suppose you're trying to debug why this pipeline doesn't work:
	  ```
	  $ GST_DEBUG=GST_PIPELINE:DEBUG gst-launch-1.0 \
	  videotestsrc num-buffers=10 ! x264enc name=enc ! mux.sink_0  \
	  mpegtsmux name=mux ! fakesink
	  ```
	  You will encounter this line in the logs:
	  > gst_parse_perform_link: linking some pad of GstX264Enc named enc to
	  > pad  mux of GstMpegTsMux named mux (0/1) with caps "(NULL)"
	  It would seem that the element name is being read as a pad name as well,
	  and that made me wonder if the parsing was not working. However, it was
	  just a bug in the code printing that log. This patch fixes that bug.
	  Note that it is possible to specify more than one pad name for each side
	  of the link. For instance, the following is a valid pipeline that will
	  remux the video and audio of an MP4 file into MKV:
	  ```
	  $ GST_DEBUG=GST_PIPELINE:DEBUG gst-launch \
	  filesrc location=input.mp4 ! qtdemux name=demux  \
	  multiqueue name=mq  \
	  matroskamux name=mux ! filesink location=output.mkv  \
	  demux.video_0,audio_0 ! mq.sink_0,sink_1  \
	  mq.src_0,src_1 ! mux.video_0,audio_0
	  ```
	  The new logging accomodates this by using a new utility function to join
	  strings of pad name lists instead of `PRETTY_PAD_NAME_FMT` (which only
	  supports one pad name). For example:
	  > linking pads {video_0, audio_0} of GstQTDemux named demux to pads
	  > {sink_0, sink_1} of GstMultiQueue named mq with caps "(NULL)"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8415>

2025-02-04 15:52:08 +0100  Patricia Muscalu <patricia@axis.com>

	* gst/gsttracerutils.h:
	  tracers: Fix build problem when tracer hooks are disabled
	  "undefined reference to `GST_TRACER_PAD_SEND_EVENT_PRE'
	  undefined reference to `GST_TRACER_PAD_SEND_EVENT_POST'"
	  errors are generated when trying to build GStreamer with
	  the following build configuration:
	  meson setup -Dgstreamer:tracer_hooks=false build
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8419>

2025-01-30 14:57:15 +0100  Corentin Damman <c.damman@intopix.com>

	* gst/gstpluginloader-win32.c:
	  pluginloader-win32: create no window
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8387>

2023-08-15 21:22:19 -0300  L. E. Segovia <amy@centricular.com>

	* libs/gst/check/libcheck/README.txt:
	  gst-indent: build our own indent tool and make it available in the devenv
	  No more formatting mismatches owing to different GNU indent
	  versions shipped by different distro versions.
	  See #340
	  Co-authored-by: L. E. Segovia <amy@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>

2025-01-28 23:08:01 +0800  Zhao, Gang <gang.zhao.42@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* plugins/elements/gstfdsrc.c:
	  fdsrc: Add property is-live
	  Fixed #4184
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8372>

2025-01-27 07:45:22 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst/gstiterator.c:
	* tests/check/gst/gstiterator.c:
	  gstiterator: Added error handling to filtered iterators
	  Otherwise, if the underlying iterator returns GST_ITERATOR_ERROR, the filtered
	  iterator will crash.
	  With this change, the filtered iterator propagates the error back to the caller.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8367>

2025-01-27 13:58:50 +0100  Alicia Boya García <aboya@igalia.com>

	* plugins/tracers/gstlog.c:
	  docs: Fix log category names in the log tracer
	  The documentation was incorrectly referring to `GST_QUERY` and `GST_BIN`
	  as GstDebug category names.  These two don't follow the pattern of the
	  rest, and instead are named `query` and `bin` respectively.
	  This can be verified from the source code of the _do_init macro in the
	  same gstlog.c file, and from gstbin.c and gstquery.c calls to
	  GST_DEBUG_CATEGORY_INIT().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8365>

2025-01-27 14:44:02 +0100  Alicia Boya García <aboya@igalia.com>

	* plugins/tracers/gstlog.c:
	  tracers: log: Fix wrong argument in do_chain_buffer_pre()
	  The third argument of the pad-chain-pre and pad-chain-post hooks are of type GstBuffer* and GstBufferList* respectively.
	  However, when I added do_chain_buffer_pre() and do_chain_buffer_post()
	  to gstlog.c I accidentally make them take GstFlowReturn -- almost
	  certainly as an artifact from duplicating the code of the _post()
	  variants, leading to erroneous log lines like this:
	  ```
	  do_chain_buffer_pre:<vp9parse0:sink> 0:00:01.615378540, pad=<vp9parse0:sink>, res=-1073639680
	  ```
	  This patch fixes that.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8366>

2025-01-20 19:42:02 +0100  Alicia Boya García <aboya@igalia.com>

	* gst/gstpad.c:
	* gst/gsttracerutils.c:
	* gst/gsttracerutils.h:
	* plugins/tracers/gstlog.c:
	  tracing: add hooks for gst_pad_send_event_unchecked()
	  Similar to de30de865cd, this allows to follow the flow of events as they
	  arrive to a pad rather than only when they are pushed to a peer.
	  The hook is installed in gst_pad_send_event_unchecked() instead of
	  gst_pad_send_event() because the latter is often omitted: that is the
	  case especifically in gst_pad_push_event_unchecked(), where most event
	  propagation occurs.
	  This patch also makes use of the new hooks in the log tracer to log the
	  begining and end of the send_event processing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8330>

2025-01-22 18:30:07 +0100  Alicia Boya García <aboya@igalia.com>

	* gst/gstpad.c:
	* gst/gsttracerutils.h:
	  tracers: signal pad-push-event when pushing sticky events
	  Previously, the tracer pad-push-event was only signalled on
	  gst_pad_push_event().  However, the sticky event handling code in
	  GStreamer uses gst_pad_push_event_unchecked() instead, which meant those
	  events were not logged.
	  This patch extends the definition of the pad-push-event tracer to cover
	  both calls to gst_pad_push_event() and any direct calls to
	  gst_pad_push_event_unchecked() that skip the former inside GstPad
	  private code.
	  gst_pad_push_event_unchecked() returns GstFlowReturn instead of
	  gboolean like gst_pad_push_event(). To maintain API compatibility, the
	  GstFlowReturn is converted to gboolean.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4182
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8342>

2025-01-22 12:34:31 +0200  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/net/gstnetclientclock.c:
	  netclientclock: Don't stop searching the clock cache when the first corrupted clock is found
	  The clock we're looking for might be working fine and be available afterwards.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8334>

2025-01-22 12:32:24 +0200  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/net/gstnetclientclock.c:
	  netclientclock: Don't ever store failed internal clocks in the cache
	  If starting the internal clock fails we would still store a broken clock in the
	  cache despite it being unusable and never recovering.
	  Not storing it allows the application to simply create a new one at a later time
	  and have starting it retried.
	  Also signal to the application that such a clock is not synced.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8334>

2025-01-23 19:48:28 +0000  Rares Branici <rares.branici@senstar.com>

	* gst/gstpluginloader-win32.c:
	  pluginloader-win32: create no window
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8354>

2025-01-23 16:52:30 +0100  Silvio Lazzeretti <silviola@amazon.it>

	* gst/gstpluginloader-win32.c:
	  gstpluginloader-win32: fix use after free in find_helper_bin_location
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8352>

2025-01-20 18:48:11 +0100  Alicia Boya García <aboya@igalia.com>

	* plugins/tracers/gstlog.c:
	  tracers: log: Log buffer-chain
	  Commit de30de865cd added a hook for pad-chain-{pre,post} and
	  pad-chain-list-{pre,post}. As explained in that commit, hooking the
	  chain is helpful because it allows you to hook to buffer propagation in
	  both srcpads (pad-push) and sinkpads (pad-chain).
	  This patch uses the new hooks to log pad-chain in the log tracer.
	  Before, only pad-push was logged, so you could only follow the flow of
	  buffers through the srcpads.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8329>

2025-01-20 13:26:18 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/gst-plugins-doc-cache-generator.py:
	  docs: doc-cache-generator: Pass the full os.environ so `pkg-config` can be found
	  We want to pass the `PATH` from the current environment.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8327>

2025-01-20 13:25:45 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/gst-plugins-doc-cache-generator.py:
	  docs: Make autopep8 happy for gst-plugins-doc-cache-generator.py
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8327>

2025-01-20 10:48:04 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* plugins/elements/gstsparsefile.c:
	  sparsefile: ensure error is set when read_buffer() returns 0
	  gst_sparse_file_read() is supposed to set @error when returning 0 but
	  in some cases was not.
	  Hopefully fix a crash in gst_download_buffer_read_buffer() which is
	  checking error->code when 0 is returned.
	  I'm not totally sure when this happens as I debugged this from a post
	  mortem crash but returning a generic error here seems the safe thing to
	  do.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8321>

2025-01-20 10:47:34 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* plugins/elements/gstsparsefile.c:
	  sparsefile: fix typo in doc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8321>

2025-01-20 13:23:50 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/meson.build:
	  docs: explicitly list gir files as depends for generating configs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8324>

2025-01-20 13:20:17 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/gst-plugins-doc-cache-generator.py:
	  docs: only add configuration files to sitemap once generated
	  The generation script can fail to generate a configuration for the four
	  libraries where the documentation is not generated from gir, as it needs
	  to run pkg-config.
	  Only add the path to the configuration file to the sitemap once it has
	  successfully been dumped.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8324>

2025-01-15 03:36:07 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/gstdevicemonitor.c:
	  gstdevice: Fetch device provider from message source
	  The GstDevice removed may not have a parent anymore when we check
	  whether the provider is hidden. Let's fetch the provider from the
	  message source, which is more reliable.
	  Fixes a racy nullptr deref on macOS when a device is unplugged:
	  ```
	  libgstreamer-1.0.0.dylib!is_provider_hidden (gstreamer/subprojects/gstreamer/gst/gstdevicemonitor.c:240)
	  libgstreamer-1.0.0.dylib!bus_sync_message (gstreamer/subprojects/gstreamer/gst/gstdevicemonitor.c:286)
	  libgstreamer-1.0.0.dylib!gst_bus_post (gstreamer/subprojects/gstreamer/gst/gstbus.c:358)
	  libgstreamer-1.0.0.dylib!gst_device_provider_device_remove (gstreamer/subprojects/gstreamer/gst/gstdeviceprovider.c:685)
	  libgstosxaudio.dylib!gst_osx_audio_device_provider_update_devices ([...]/sys/osxaudio/gstosxaudiodeviceprovider.c:539)
	  libgstosxaudio.dylib!_audio_devices_changed_cb ([...]/sys/osxaudio/gstosxaudiodeviceprovider.c:313)
	  CoreAudio!HALObject::PropertiesChanged(unsigned int, AudioObjectPropertyAddress const*) (Unknown Source:0)
	  CoreAudio!HALSystem::PropertiesChanged(unsigned int, AudioObjectPropertyAddress const*) (Unknown Source:0)
	  CoreAudio!HALSystem::ObjectsPublishedAndDied(...) (Unknown Source:0)
	  CoreAudio!HALSystem::AudioObjectsPublishedAndDied(...) (Unknown Source:0)
	  CoreAudio!HALC_ShellPlugIn::ReconcileDeviceList(bool, bool) (Unknown Source:0)
	  CoreAudio!HALC_ShellPlugIn::CreateAggregateDevice(__CFDictionary const*, unsigned int&) (Unknown Source:0)
	  CoreAudio!AudioHardwareCreateAggregateDevice_mac_imp (Unknown Source:0)
	  AudioDSP!___lldb_unnamed_symbol15046 (Unknown Source:0)
	  AudioDSP!___lldb_unnamed_symbol15038 (Unknown Source:0)
	  AudioDSP!___lldb_unnamed_symbol33307 (Unknown Source:0)
	  AudioToolboxCore!APComponent::newInstance(...) (Unknown Source:0)
	  AudioToolboxCore!instantiate(...) (Unknown Source:0)
	  AudioToolboxCore!__AudioComponentInstanceNew_block_invoke (Unknown Source:0)
	  AudioToolboxCore!Synchronously (Unknown Source:0)
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8320>

2025-01-15 17:36:00 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/gst-plugins-doc-cache-generator.py:
	* docs/meson.build:
	* gst/meson.build:
	* libs/gst/base/meson.build:
	* libs/gst/check/meson.build:
	* libs/gst/controller/meson.build:
	* libs/gst/net/meson.build:
	* libs/meson.build:
	  docs: generate hotdoc configs for libraries with our helper script
	  With this patch, configure time is identical no matter whether doc is
	  enabled or not.
	  The configuration files also now contain explicitly-listed sources with
	  no wildcards.
	  For the four libraries where hotdoc needs to use clang to generate the
	  documentation (as opposed to the rest of the libraries where hotdoc uses
	  the gir), the script will call pkg-config to determine the appropriate
	  C flags.
	  This means a side effect of this patch is that pkg-config files are now
	  generated for the gstadaptivedemux and gstopencv libraries.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8312>

2025-01-17 16:51:22 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* meson.build:
	  meson: bump minimum version to 1.4 in every subprojects
	  36c01d05797ad9c7778939c54870f979bdcbba1f bumped to 1.4 for gst-devtools
	  and the root project, but we usually keep those in sync everywhere.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8312>

2025-01-15 17:35:21 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/libs/index.md:
	  docs: remove useless index.md in libs/ subdirectory
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8312>

2025-01-15 17:16:27 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/index.md:
	  docs: remove unused index.md file
	  It is a bit hard to track its origin as `git log --follow` leads all the
	  way to a 2001 Wim commit of a TODO file, but it was not used in the
	  documentation and the contained information appears in other places.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8312>

2025-01-08 15:01:32 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/gstutils.c:
	* gst/gstutils.h:
	  gst: utils: Add a multiply_int64 variant
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8262>

2025-01-14 15:00:43 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.25.1

=== release 1.25.1 ===

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

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

2025-01-13 18:10:31 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/meson.build:
	* plugins/meson.build:
	* plugins/tracers/meson.build:
	  docs: port plugins to explicit sources
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8273>

2025-01-03 15:44:11 +0100  Edward Hervey <edward@centricular.com>

	* plugins/elements/gstfilesrc.c:
	  filesrc: Properly handle lseek return value
	  On windows we use _lseeki64 which returns a guint64.
	  The only error code lseek and _lseeki64 return is a casted -1, therefore just do
	  that to handle all platforms
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>

2025-01-03 15:22:04 +0100  Edward Hervey <edward@centricular.com>

	* tests/check/gst/gstbuffer.c:
	  test: Remove always-true assertion
	  The offset is not deterministic
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>

2025-01-03 14:30:55 +0100  Edward Hervey <edward@centricular.com>

	* tests/check/elements/filesink.c:
	  test: Avoid type-limit issue
	  ```
	  ../subprojects/gstreamer/tests/check/elements/filesink.c: In function ‘test_seeking’:
	  ../subprojects/gstreamer/tests/check/elements/filesink.c:92:23: warning: comparison of unsigned expression in ‘< 0’ is
	  always false [-Wtype-limits]
	  92 |         for (i = 0; i < num_bytes; ++i)                                 \
	  |                       ^
	  ../subprojects/gstreamer/tests/check/elements/filesink.c:266:3: note: in expansion of macro ‘PUSH_BYTES’
	  266 |   PUSH_BYTES (0);
	  |   ^~~~~~~~~~
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>

2025-01-02 12:14:37 +0100  Edward Hervey <edward@centricular.com>

	* meson.build:
	  gstreamer: Add more warning flags
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4123
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>

2025-01-02 12:14:13 +0100  Edward Hervey <edward@centricular.com>

	* libs/gst/net/gstptpclock.c:
	  gstptpclock: Fix GST_STIME_ARGS usage
	  It requires a signed value
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>

2025-01-02 12:13:42 +0100  Edward Hervey <edward@centricular.com>

	* gst/printf/vasnprintf.c:
	* plugins/elements/gstfakesrc.c:
	* plugins/elements/gstoutputselector.c:
	* plugins/elements/gstqueue2.c:
	* plugins/elements/gsttypefindelement.c:
	* tests/check/gst/gstpad.c:
	* tests/check/gst/gstutils.c:
	  gstreamer: Make switch passthrough as such
	  vasnprintf requires special handling since the following 'case' is #ifdef'ed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>

2024-08-20 00:40:06 +0900  Andrew Yooeun Chun <aychun00@gmail.com>

	* libs/gst/base/gstbasetransform.c:
	  basetransform: fix incorrect logging inside gst_base_transform_query_caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7381>

2025-01-06 18:28:18 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/gst-plugins-doc-cache-generator.py:
	* docs/meson.build:
	  doc: store path to dynamic library in plugin configuration
	  This can then be used by the pre-commit hook to avoid rebuilding
	  complete plugin caches to check a change, thus minimizing the potential
	  diff and making analysis of completely-unrelated cache diffs much less
	  likely.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8231>

2025-01-03 18:49:39 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/gst-plugins-doc-cache-generator.py:
	* docs/meson.build:
	  docs: start using custom_target instead of run_command for sitemap
	  Intead of passing around the output of the config generator program,
	  which consists of paths joined by a separator we can have the generator
	  simply produce an extra file containing those paths.
	  This commit only implements the new approach for the core plugins, as
	  this was needed to avoid spurious meson rebuilds when the pre-commit
	  hook regenerates the core plugins_cache.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8231>

2025-01-02 14:29:48 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/meson.build:
	  docs: list doc sources explicitly for GStreamer core
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8231>

2025-01-02 14:07:00 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/gst-plugins-doc-cache-generator.py:
	* docs/meson.build:
	* meson.build:
	* plugins/elements/meson.build:
	* plugins/meson.build:
	* plugins/tracers/meson.build:
	  docs: start listing sources explicitly in hotdoc configuration files
	  A JSON configuration file is generated for core plugins, which maps
	  plugin names with sources to parse for docstrings.
	  The file is then opened by the configuration generator script, which
	  will now favor explicitly listed files to (usually wildcarded) paths
	  passed on its command line.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8231>

2025-01-06 20:29:00 +0100  Ruben Gonzalez <rgonzalez@fluendo.com>

	* gst/gsttracerutils.c:
	  tracers: Fix issue in the BC layer added in refactor to simplify params handling
	  Issue added in refactor done in commit 5e18499372, which includes a
	  logic to not break the backward compatibility. Issue found with Rust
	  pcap-writer tracer, fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/644
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8248>

2025-01-03 14:16:25 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstmessage.c:
	  message: Remove nullable annotation from gst_message_writable_details()
	  This function can never return NULL as the details are created for the message
	  if there are none yet.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8235>

2024-12-31 10:50:58 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstpad.c:
	  pad: Reset not-linked last flow return on reconfigure events
	  The pad might actually be linked now and we'd only find out by actually pushing
	  a buffer downstream again.
	  The last flow return is used by GstFlowCombiner to detect if all pads are not
	  linked, and not resetting this when re-linking creates a race condition when
	  switching between pads where all pads are temporarily considered not linked.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3836
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8224>

2024-12-16 11:41:40 +0200  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/base/gstbaseparse.c:
	  baseparse: Add bitrate tags to empty taglists too
	  It's unclear why empty taglists should be handled in a special way. If the
	  subclass or upstream did not provide any tags at all then we can still provide
	  bitrate tags at least.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8157>

2024-12-18 17:11:33 -0300  Thibault Saunier <tsaunier@igalia.com>

	* data/bash-completion/helpers/meson.build:
	* docs/meson.build:
	* gst/meson.build:
	* libs/gst/base/meson.build:
	* libs/gst/check/meson.build:
	* libs/gst/controller/meson.build:
	* libs/gst/helpers/meson.build:
	* libs/gst/net/meson.build:
	* meson.build:
	* tests/validate/meson.build:
	* tools/meson.build:
	  meson: Give the same name for api_version in all modules
	  There were 2 version of it, apiversion and api_version, I chose the one
	  with most occurencies: `api_version`
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8178>

2024-12-12 10:50:30 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstpad.c:
	  pad: Only remove TAG events on STREAM_START if the stream-id actually changes
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4097
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8135>

2024-07-09 11:42:03 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstinfo.c:
	  info: Use an RW lock to protect the log functions and their list
	  Previously the code tried to be thread-safe by only locking when modifying the
	  list and leaking the old list, but this was not sufficient. When removing a log
	  function, its user_data would be freed but this log function and its user_data
	  might afterwards still be used during logging which then could lead to memory
	  corruption.
	  To avoid that, use an RW lock: get a write lock whenever modifying the list and
	  get a read lock whenever only using the list of log functions for logging.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3660
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7151>

2024-12-10 12:52:33 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: unset GST_TRACERS for g-ir-scanner to avoid warnings
	  People might have GST_TRACERS=leaks set in their environment
	  by default, which will now trigger criticals during the build
	  when calling g-ir-scanner, because we unset GST_PLUGIN_SYSTEM_PATH
	  so that the scanner doesn't load any plugins.
	  Fixes #4093
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8121>

2024-12-09 18:32:34 -0300  Thibault Saunier <tsaunier@igalia.com>

	* plugins/tracers/gstlatency.h:
	* plugins/tracers/gstleaks.h:
	* plugins/tracers/gststats.c:
	  doc: Add some missing doc strings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

2024-12-06 22:49:05 -0300  Thibault Saunier <tsaunier@igalia.com>

	* plugins/tracers/gstleaks.c:
	  tracers: leak: Fix some docstrings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

2024-12-06 11:38:26 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/gst-hotdoc-plugins-scanner.c:
	* docs/plugins/gst_plugins_cache.json:
	  doc: Add tracer objects information
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

2024-12-06 11:20:43 -0300  Thibault Saunier <tsaunier@igalia.com>

	* plugins/tracers/gstlatency.c:
	  tracers: latency: Port to using property based configuration
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

2024-12-06 11:13:52 -0300  Thibault Saunier <tsaunier@igalia.com>

	* tools/gst-inspect.c:
	  gst-inspect: Document tracer properties
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

2024-12-06 09:17:50 -0300  Thibault Saunier <tsaunier@igalia.com>

	* plugins/tracers/gstrusage.c:
	  tracers: rusage: Mark as set_use_structure_params
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

2024-12-06 09:16:57 -0300  Thibault Saunier <tsaunier@igalia.com>

	* libs/gst/helpers/gst-plugin-scanner.c:
	  gst-plugin-scanner: Do not create tracers when inspecting plugins
	  Ensuring that GST_TRACERS is not set in that process
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

2024-12-05 18:57:10 -0300  Thibault Saunier <tsaunier@igalia.com>

	* plugins/tracers/gstleaks.c:
	* plugins/tracers/gstleaks.h:
	  leaks: Port to using object property based parameters
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

2024-12-05 18:52:31 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/gsttracer.c:
	* gst/gsttracer.h:
	* gst/gsttracerfactory.c:
	* gst/gsttracerfactory.h:
	* gst/gsttracerutils.c:
	  tracers: Simplify params handling using GstStructure and object properties
	  Instead of having each tracer implement its own parameter parsing,
	  centralize the handling in the tracer subsystem using GstStructure.
	  This simplifies tracer implementations and provides a consistent way
	  to handle properties.
	  It also allows for much better documentation by forcing tracer object
	  to expose properties
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8086>

2024-12-09 22:12:21 +0900  Seungha Yang <seungha@centricular.com>

	* gst/gstvecdeque.c:
	  vecdeque: Fix documentation of push_tail_struct()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8111>

2024-11-22 21:23:10 +0800  Qian Hu (胡骞) <qian.hu@mediatek.com>

	* gst/gstvalue.c:
	  gstvalue: fix crash in transform allocation params to string
	  when gst_buffer_pool_config_set_allocator (config, alloc, NULL);
	  gst_structure_to_string or GST_DEBUG (pool, "config %" GST_PTR_FORMAT,
	  config) will crash. this patch fix that
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7943>

2024-09-26 22:07:22 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstallocator.c:
	  allocator: Avoid integer overflow when allocating sysmem
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-166
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3851
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8032>

2024-11-28 16:06:17 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstsystemclock.c:
	  systemclock: Don't keep the clock entry locked while getting the time from the clock
	  gst_clock_get_time() will take the clock mutex, which would then result in a lock
	  order violation and possible deadlocks. If both mutexes are to be locked, the
	  clock must always be locked first.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7994>

2024-11-28 15:49:24 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstsystemclock.c:
	  systemclock: Get rid of conditional unlocking of the clock entries
	  At every point it is known whether the entry needs to be unlocked or not.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7994>

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

	* gst/gstsystemclock.c:
	  systemclock: Remove confusing conditional unlock
	  At this point the entry is always locked and needs to be unlocked.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7994>

2024-11-28 15:25:47 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstsystemclock.c:
	  systemclock: Use a flag while waiting for the async thread to start
	  Otherwise there can be spurious wakeups.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7994>

2024-11-27 11:19:02 +0100  wbartel <wilhelm.bartel@streamonkey.de>

	* gst/gstdebugutils.c:
	  gstreamer: prefix debug dot node names to prevent splitting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7979>

2024-11-25 16:28:51 +0100  wbartel <wilhelm.bartel@streamonkey.de>

	* plugins/tracers/gstleaks.c:
	  tracers: unlock leaks tracer if already tracking
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7954>

2024-11-20 15:02:19 +0800  He Junyan <junyan.he@intel.com>

	* gst/gstutils.c:
	* gst/gstutils.h:
	  utils: Add gst_util_floor_log2 helper function
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5003>

2024-11-20 12:24:34 +0000  L. E. Segovia <amy@amyspark.me>

	* cmake/FindGStreamer.cmake:
	  cmake: Add Android libvulkan to the ignored system libraries
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7861>

2024-08-19 13:50:48 +0800  Qian Hu (胡骞) <qian.hu@mediatek.com>

	* gst/gstmeta.c:
	* gst/gstmeta.h:
	* plugins/elements/gsttee.c:
	  meta: add aggregation function for allocation meta api params
	  since tee do allocation query for each downstream element, and
	  get allocation query params from them. this function will aggregate
	  all params, and propose it for upstream element of tee
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7201>

2024-11-15 11:02:20 +0100  Albert Sjolund <alberts@axis.com>

	* gst/gstpad.c:
	* tests/check/gst/gstpad.c:
	  gstpad: specialize gst_pad_chain_list_default
	  In the case where the bufferlist is writable, send the
	  buffers immediately without adding to the refcount. This
	  allows writable buffers to maintain their writability, even
	  without implementing a chain_list function on the element.
	  Adds a test to verify this property, where a writable list
	  maintains refcount 1, but a readonly list increases it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7894>

2024-11-18 08:47:12 +0100  Robert Rosengren <robertr@axis.com>

	* gst/gstdeviceprovider.c:
	  gstdeviceprovider: fix leaking hidden providers
	  Free list of hidden providers upon stop and dispose.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7912>

2024-11-13 16:00:25 +1100  Matthew Waters <matthew@centricular.com>

	* gst/gstvalue.c:
	  value: silence a maybe-unitialized warning
	  gstvalue.c:376:8: error: ‘s_val’ may be used uninitialized [-Werror=maybe-uninitialized]
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875>

2024-11-15 11:46:14 -0300  Thibault Saunier <tsaunier@igalia.com>

	* meson.build:
	  meson: Bump minimum version to 1.3
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4025
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7899>

2024-08-30 13:21:30 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* gst/gstutils.c:
	* tests/check/gst/gstutils.c:
	  utils: improve gst_util_ceil_log2
	  According to the following comparison of algorithms, the value
	  for 0 and 1 was giving an incorrect result.
	  https://gist.github.com/ceyusa/6061b33ac109a68bcd222f6919968c9a
	  More information here:
	  https://github.com/rofrol/codeforces/blob/master/ceil_log2.c
	  Use a different algorithm which offers better result and keep the
	  performance.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7429>

2024-11-11 12:23:22 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstidstr.c:
	  idstr: Fix docs of set_static_str_with_len()
	  The passed string must be NUL-terminated because otherwise a copy would be
	  necessary to make it NUL-terminated, which defeats the whole purpose of the
	  set_static() functions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7863>

2024-11-10 11:44:57 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/meson.build:
	  meson: gst: Make `GST_FULL_STATIC_COMPILATION` a static only arg
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7874>

2018-01-29 19:46:26 +0100  Alicia Boya García <aboya@igalia.com>

	* libs/gst/base/gstadapter.c:
	  adapter: Improve documentation for gst_adapter_available()
	  When I first read the documentation of gst_adapter_available() and
	  gst_adapter_available_fast() I got quite confused as it seemed that
	  both performed the same purpose but one was slower than the other.
	  I shared it with other people and found they also arrived at the same
	  wrong conclusion.
	  Hopefully this patch will make the actual purpose clearer.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/-/issues/12
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7859>

2024-11-07 20:06:37 +0000  Tim-Philipp Müller <tim@centricular.com>

	* tools/gst-launch-1.0.1:
	  gst-launch-1.0: update man page a little
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7859>

2024-11-07 15:44:25 +0530  Taruntej Kanakamalla <taruntej@asymptotic.io>

	* libs/gst/helpers/ptp/ffi.rs:
	* libs/gst/helpers/ptp/net.rs:
	  ptp: use ip_mreq instead of ip_mreqn for macOS
	  To join a multicast the macOS still uses the interface address
	  from the ip_mreq instead of the ip_mreqn unlike other Linux systems.
	  So add a new conditional block for macOS to use ip_mreq for IP_ADD_MEMBERSHIP
	  and ip_mreqn for IP_MULTICAST_IF
	  This is similar to the fix in the glib for multicast join/leave
	  operation on macOS
	  https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4333
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7851>

2024-11-03 17:36:22 +0000  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/ka.po:
	* po/ko.po:
	* po/lt.po:
	* po/lv.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
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7819>

2024-05-20 11:46:13 -0300  L. E. Segovia <amy@centricular.com>

	* cmake/FindGStreamer.cmake:
	* cmake/meson.build:
	* meson.build:
	  cmake: Add Find Module to support Android and iOS consumers
	  This commit adds a Find Module implementing the necessary logic to link
	  against GStreamer, while implementing some extra bits to enhance the
	  compatibility.
	  The first addition is the `mobile` target, which implements the
	  monolithic `gstreamer_android` library, and which here gains
	  compatibility with Apple's operating systems.
	  The second addition is the handling of the basic GStreamer libraries as
	  `--whole-archive` when statically linked, which was ported from the
	  ndk-build project in Cerbero. This is not easy to do, as CMake suffers
	  from several issues that impede its proper usage of pkg-config:
	  - It cannot differentiate between system/compiler specific libraries
	  e.g. `-lm`, `-ldl`, but especially `-framework Cocoa`.
	  - It does not support `--whole-archive` natively until 3.27
	  - It attempts to reorder flags blindly by separating them with spaces,
	  thus requiring the use of `-Wl,` wrapping or (in the case of Apple
	  frameworks) manual framework lookup
	  The third addition is the port of the Fontconfig and ca-certificates
	  bundling logic.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6881>

2024-10-28 10:41:08 -0300  Thibault Saunier <tsaunier@igalia.com>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: Do not unref the query we get in pad->query
	  We do not own any ref to queries when running them.
	  If we end up processing the query from the streaming thread, it means that it was
	  a serialized query, and the query is being waited to be processed on the sinkpad
	  streaming thread, thread which owns the reference.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7767>

2024-10-25 19:12:17 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: fix start time selection first with force-live
	  When force-live is true, we don't want to wait for a first buffer
	  to select a start time.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1783
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7752>

2024-09-09 19:11:33 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* plugins/elements/gstqueue.c:
	* plugins/elements/gstqueue.h:
	  queue: Send the `notify` signals on queue level changes
	  This is documented as:
	  > you can query how many buffers are queued by reading the
	  > #gstqueue:current-level-buffers property. you can track changes
	  > by connecting to the notify::current-level-buffers signal (which
	  > like all signals will be emitted from the streaming thread). the same
	  > applies to the #gstqueue:current-level-time and
	  > #gstqueue:current-level-bytes properties.
	  ... but was not implemented.
	  This also respects the `notify::silent` property for the notify signals
	  to be less intrusive.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7486>

2024-09-09 19:00:57 -0300  Thibault Saunier <tsaunier@igalia.com>

	* plugins/elements/gstqueue.c:
	  queue: Cleanup properties are installed caching the pspecs in an array
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7486>

2024-10-25 17:41:46 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstbuffer.c:
	  buffer: Don't copy reference timestamp meta if the destination buffer already has the same
	  GstRtpBaseDepayload and other places already had such de-duplication code, so
	  it's probably better to solve this at the root.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7747>

2024-07-26 11:47:00 +0200  Edward Hervey <edward@centricular.com>

	* tests/check/gstreamer.supp:
	  gstreamer: Make dlopen leak suppression more generic
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>

2024-06-27 22:17:56 +0300  Jordan Petridis <jordan@centricular.com>

	* tests/check/gstreamer.supp:
	  gstreamer: add duktape suppression
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>

2024-10-24 09:17:54 +0200  Edward Hervey <edward@centricular.com>

	* gst/gstbuffer.c:
	* gst/gstbufferlist.c:
	* gst/gstcaps.c:
	* gst/gstelement.c:
	* gst/gstiterator.c:
	* gst/gstmeta.c:
	* gst/gstpad.c:
	* gst/gstpromise.c:
	* gst/gstregistry.c:
	* gst/gststructure.c:
	* gst/gsttaglist.c:
	* gst/gsttaskpool.c:
	* gst/gstutils.c:
	* libs/gst/base/gstcollectpads.c:
	  all: Fix closure annotations
	  This was misused almost everywhere.
	  See
	  https://gi.readthedocs.io/en/latest/annotations/giannotations.html#support-for-gobject-closures
	  and: https://www.bassi.io/articles/2023/02/20/bindable-api-2023/
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7725>

2024-10-23 16:14:45 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: fix live query when force-live is TRUE
	  When force-live is TRUE, aggregator will correctly change its state with
	  NO_PREROLL, but unless something upstream is live did not previously set
	  live to TRUE on the latency query.
	  Fix this by or'ing force_live into the result.
	  Also improve debug
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7718>

2024-10-14 14:46:53 +0200  Robert Rosengren <robertr@axis.com>

	* libs/gst/net/gstnetclientclock.c:
	  Revert "gstnetclockclient: signal lost sync if remote time resets"
	  This reverts commit 779e715b6cee4f7793c43a0e78c6106ab66f1032.
	  Since the introduced corrupt clock state for when discovering a time
	  server restart, this resulted in previous similar check as done in
	  this patch became ignored/jumped over (in case of the corrupt state
	  has been noticed).
	  Reference: df41d11a7d7f844e593a10f6a6a0858333fbf7ec
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7664>

2024-10-14 15:06:11 +0200  Robert Rosengren <robertr@axis.com>

	* libs/gst/net/gstnetclientclock.c:
	  netclientclock: send clock sync signal upon corrupted
	  Clients that already gotten a signal for synced clock, may rely on
	  getting the same when marked as corrupted to take appropriate action. So
	  send clock signal indicating no sync at identified corrupted state.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7664>

2024-10-17 20:21:53 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/helpers/ptp/main.rs:
	  ptp-helper: Silence deprecation warning
	  The new API is only available since Rust 1.81.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7678>

2024-10-10 11:19:26 -0400  François Laignel <francois@centricular.com>

	* gst/gstcaps.c:
	* gst/gstcaps.h:
	* gst/gststructure.c:
	* gst/gststructure.h:
	  gst: add more GstIdStr functions to Caps & Structure
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7644>

2024-10-09 15:45:34 -0400  François Laignel <francois@centricular.com>

	* gst/gstcaps.c:
	* gst/gstcaps.h:
	  gst: hamonise recent Caps function names with Structure counterparts
	  These functions were introduced as part of the GstIdStr MR:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7644>

2024-10-14 22:08:19 +0200  Jakub Adam <jakub.adam@collabora.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: Fix handling NEED_DATA return from update_src_caps()
	  Since GST_AGGREGATOR_FLOW_NEED_DATA == GST_FLOW_CUSTOM_ERROR == -100,
	  in order to print the right debug message, we have to check that
	  condition first before comparing ret with GST_FLOW_OK.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7663>

2024-10-09 13:35:33 -0400  Alicia Boya García <aboya@igalia.com>

	* gst/gstpad.c:
	  pad: Never push sticky events in response to a FLUSH_STOP
	  FLUSH_STOP is meant to clear the flushing state of pads and elements
	  downstream, not to process data. Hence, a FLUSH_STOP should not
	  propagate sticky events. This is also consistent with how flushes are a
	  special case for probes.
	  Currently this is almost always the case, since a FLUSH_STOP is
	  __usually__ preceded by a FLUSH_START, and events (sticky or not) are
	  discarded while a pad has the FLUSHING flag active (set by FLUSH_START).
	  However, it is currently assumed that a FLUSH_STOP not preceded by a
	  FLUSH_START is correct behavior, and this will occur while autoplugging
	  pipelines are constructed. This leaves us with an unhandled edge case!
	  This patch explicitly disables sending sticky events when pushing a
	  FLUSH_STOP, instead of relying on the flushing flag of the pad, which
	  will break in the edge case of a FLUSH_STOP not preceded by a
	  FLUSH_START.
	  If sticky events are propagated in response to a FLUSH_STOP, the
	  flushing thread can end up deadlocked in blocking code of a downstream
	  pad, such as a blocking probe. Instead, those events should be
	  propagated from the streaming thread of the pad when handling a
	  non-flushing synchronized event or buffer.
	  This fixes a deadlock found in WebKit with playbin3 when seeks occur
	  before preroll, where the seeking thread ended up stuck in the blocking
	  probe of playsink:
	  https://github.com/WebPlatformForEmbedded/WPEWebKit/issues/1367
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7632>

2024-10-10 08:53:19 -0400  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* tools/gst-inspect.c:
	  inspect: display element flags
	  I wanted to check if an element had the SINK flag and realized it was
	  not displayed in gst-inspect.
	  The clock flags were already reported as part of the "clocking
	  capabilities" info but best to have them explicitly listed here as well.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7641>

2024-10-12 19:10:46 -0300  L. E. Segovia <amy@centricular.com>

	* meson.build:
	  meson: Undefine any WINVER and _WIN32_WINNT entries before redefining them
	  Fixes Cerbero build with MinGW GCC 14, where specifying -DWINVER=0x0601 -DWINVER=0x0A00 is a hard -Werror.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7658>

2024-10-04 11:19:46 +0200  François Laignel <francois@centricular.com>

	* gst/gststructure.c:
	* gst/gststructure.h:
	  gst: structure: add more GstIdStr methods
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7613>

2024-10-03 19:56:06 +0200  François Laignel <francois@centricular.com>

	* gst/gststructure.c:
	  gst: structure: fix some GstIdStr documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7613>

2024-10-01 12:26:40 +0000  Corentin Damman <c.damman@intopix.com>

	* gst/gstmacos.m:
	  macos: Fix race conditions
	  This commit fixes two issues:
	  - The event must be posted *after* calling stop, otherwise a race condition can occur and the app never stops
	  - isFinishedLaunching and applicationDidFinishLaunching are not always synchronized, causing sometimes
	  a deadlock on the g_cond_wait never catching the g_cond_signal
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7593>

2024-09-20 21:44:40 -0400  Daniel Morin <daniel.morin@collabora.com>

	* tests/check/gst/gstcaps.c:
	  test: Add more nested caps-in-caps (and likes)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7572>

2024-09-22 19:09:32 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst/gstvalue.c:
	  value: Fix nested caps intersection
	  Without this change intersection operand containing caps-in-caps need
	  to be equal for the intersection to work.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7572>

2024-09-30 23:07:40 +0900  Seungha Yang <seungha@centricular.com>

	* gst/gstcapsfeatures.c:
	* gst/gststructure.c:
	  structure,capsfeatures: Fix MSVC build warnings
	  Fixing warning "warning C4068: unknown pragma 'GCC'"
	  Use portable GLib macro instead
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7589>

2024-09-03 12:47:07 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstcaps.c:
	* gst/gstcaps.h:
	  gst: caps: Add API for creating caps / setting caps fields from static strings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>

2024-09-02 14:22:52 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gst.c:
	* gst/gst_private.h:
	* gst/gstbufferpool.c:
	* gst/gstcontext.c:
	* gst/gstdeviceprovider.c:
	* gst/gstelement.c:
	* gst/gstinfo.c:
	* gst/gstmeta.c:
	* gst/gstplugin.c:
	* gst/gstquark.c:
	* gst/gstquark.h:
	* gst/gsttoc.c:
	* gst/gstutils.c:
	* gst/gstvalue.c:
	* gst/meson.build:
	  gst: Remove gstquark.c / gstquark.h
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>

2024-09-03 12:16:19 +0300  Sebastian Dröge <sebastian@centricular.com>

	* tests/check/gst/gstcaps.c:
	* tests/check/gst/gstcapsfeatures.c:
	* tests/check/gst/gstvalue.c:
	  common: Use more efficient versions of GstCapsFeatures API where possible
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>

2024-08-30 18:49:44 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstcapsfeatures.c:
	* gst/gstcapsfeatures.h:
	  gst: capsfeatures: Use GstIdStr for caps features
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>

2024-08-29 20:09:52 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst-hotdoc-plugins-scanner.c:
	* gst/gstbufferpool.c:
	* gst/gstcaps.c:
	* gst/gstdebugutils.c:
	* gst/gstdeviceprovider.c:
	* gst/gstelement.c:
	* gst/gstevent.c:
	* gst/gstmessage.c:
	* gst/gstquery.c:
	* gst/gsttaglist.c:
	* gst/gsttracerrecord.c:
	* gst/gstvalue.c:
	* libs/gst/base/gstbaseparse.c:
	* plugins/tracers/gstlatency.c:
	* tests/check/gst/gstcaps.c:
	* tests/check/gst/gststructure.c:
	* tools/gst-inspect.c:
	  common: Stop using GQuark-based GstStructure field name API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>

2024-08-29 20:07:13 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gst_private.h:
	* gst/gststructure.c:
	* gst/gststructure.h:
	* gst/gsttracerrecord.c:
	  gst: structure: Use GstIdStr for structure field names
	  And add corresponding API with GstIdStr parameters, static string parameters and
	  deprecate the old GQuark based API.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3567
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>

2024-08-09 10:41:57 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstbufferpool.c:
	* gst/gstcaps.c:
	* gst/gstcontext.c:
	* gst/gstevent.c:
	* gst/gstevent.h:
	* gst/gstinfo.c:
	* gst/gstmessage.c:
	* gst/gstpad.c:
	* gst/gstquark.c:
	* gst/gstquery.c:
	* gst/gstvalue.c:
	* plugins/tracers/gstlatency.c:
	  common: Stop using GQuark-based GstStructure name API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>

2024-08-09 10:41:45 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gststructure.c:
	* gst/gststructure.h:
	* gst/gsttaglist.c:
	  gst: structure: Use GstIdStr for structure names
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>

2024-05-23 18:32:51 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gst.h:
	* gst/gstidstr-private.h:
	* gst/gstidstr.c:
	* gst/gstidstr.h:
	* gst/meson.build:
	* tests/check/gst/gstidstr-noinline.c:
	* tests/check/gst/gstidstr.c:
	* tests/check/meson.build:
	  gst: Add GstIdStr for holding structure names and field names
	  This is an efficient string storage for short strings without heap allocations,
	  and falling back to the heap for bigger allocations. Almost all structure fields
	  and structure names in use nowadays are short enough to not require a heap
	  allocation.
	  As structure names and fields are sometimes dynamically created, storing them in
	  a GQuark can create a memory leak and potentially a DoS attack by continously
	  triggering creating of new quarks.
	  Thanks to Tim for coming up with the name!
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>

2024-07-05 19:40:35 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstevent.c:
	* gst/gstinfo.c:
	* gst/gsttracerrecord.c:
	  gst: structure: Stop using private structure name quark field
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>

2024-09-16 08:48:47 -0400  Arun Raghavan <arun@asymptotic.io>

	* gst/parse/grammar.y.in:
	  gstreamer: parse: Use child proxy for deferred property setting
	  We use that mechanism for the non-deferred path, and this makes sure we are
	  consistent for deferred set too.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7519>

2024-09-15 06:39:40 -0400  Arun Raghavan <arun@asymptotic.io>

	* gst/parse/grammar.y.in:
	  gstreamer: parse: Minor whitespace fixups
	  Mostly replacing some tabs with spaces.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7519>

2024-09-13 13:55:27 -0400  Arun Raghavan <arun@asymptotic.io>

	* gst/parse/grammar.y.in:
	  gstreamer: parse: Make sure children are bins before recursing in
	  A deferred set of the form parentbin::childelement::pad works in the
	  non-deferred property setting path, but the deferred path assumes that all
	  non-root non-leaf children specify bins. We already have a bin check on the
	  root, so let's add one for other non-leaves to avoid a critical.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3806
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7519>

2024-09-18 10:23:31 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstdynamictypefactory.h:
	  dynamictypefactory: Fix name of the class cast macro
	  And deprecate the old name.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3814
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7541>

2024-09-19 14:06:51 -0700  Alan Coopersmith <alan.coopersmith@oracle.com>

	* tests/misc/meson.build:
	  gstreamer: netclock-replay: use gst_c_args when building
	  Need HAVE_CONFIG_H to avoid build failure on Solaris 11.4 with gcc 14.1:
	  ../subprojects/gstreamer/tests/misc/../../libs/gst/net/gstnetutils.c:71:7:
	  error: implicit declaration of function ‘setsockopt’
	  [-Wimplicit-function-declaration]
	  71 |   if (setsockopt (fd, IPPROTO_IP, IP_TOS, &tos, sizeof (tos)) < 0) {
	  |       ^~~~~~~~~~
	  Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7553>

2024-09-18 16:09:13 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/base/gstaggregator.c:
	* libs/gst/base/gstaggregator.h:
	  aggregator: Add gst_aggregator_push_src_event()
	  This ensures that any pending events are pushed before pushing the new event.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7542>

2024-09-18 16:08:17 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: Remove unused tag handling code
	  If this becomes API it would now have to be implemented differently because
	  various elements are implementing tag handling themselves now and this would
	  conflict.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7542>

2024-09-14 04:01:42 +0200  Peter Kjellerstedt <pkj@axis.com>

	* gst/gstmeta.h:
	  meta: Add missing include of gststructure.h
	  This avoids the following error when only including gstmeta.h:
	  /usr/include/gstreamer-1.0/gst/gstmeta.h:146:3: error: unknown type
	  name 'GstStructure'
	  146 |   GstStructure *structure;
	  |   ^~~~~~~~~~~~
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7520>

2024-09-13 10:58:27 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: Immediately return NONE from simple_get_next_time() on non-TIME segments
	  Otherwise this gives critical warnings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7511>

2024-09-10 16:03:05 -0400  Arun Raghavan <arun@asymptotic.io>

	* gst/gstpad.c:
	  pad: Check data NULL-ness when probes are stopped
	  We were correctly handling this for buffers, but not events and queries.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7493>

2024-09-05 12:49:11 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstclock.c:
	* gst/gstclock.h:
	  clock: Use external / internal as term for the two clock bases everywhere
	  It was confusing that some functions were using master for the external time and
	  slave for the internal time. This is not consistently using external / internal
	  when talking about concrete clock times.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7456>

2024-09-05 12:40:32 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstclock.c:
	  clock: Use `nullable` / `optional` annotations instead of ambiguous `allow-none`
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7456>

2024-08-20 01:29:56 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/glib-compat-private.h:
	* gst/gstpreset.c:
	* gst/gstvecdeque.c:
	* libs/gst/net/gstnetclientclock.c:
	* libs/gst/net/gstptpclock.c:
	* tools/gst-inspect.c:
	  gstreamer: use g_sort_array() instead of deprecated g_qsort_with_data()
	  Fixes compiler warnings with the latest GLib versions.
	  See https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4127
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7384>

2024-04-18 17:45:37 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstbus.c:
	  bus: Switch from GstAtomicQueue to GstVecDeque
	  All accesses to it were protected either by a mutex already, or at least
	  used yet another mutex for gst_poll_read_control() / gst_poll_write_control().
	  The usage of GstPoll has to stay for backwards compatibility as it is
	  used to manage the (public) fd that can be used to wait for the bus to
	  be ready, but this switch at least simplifies the implementation a bit
	  and results in fewer atomic operations.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6684>

2024-04-18 17:08:36 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstbufferpool.c:
	  bufferpool: Switch from GstAtomicQueue to GstVecDeque and a mutex/cond
	  While the atomic queue itself is lock-free, all its usage had to be
	  synchronized externally via a GstPoll and gst_poll_read_control() /
	  gst_poll_write_control(). Both functions were always taking a mutex
	  internally since cd06aea1, so the implementation was just very
	  complicated but not lock-free at all.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2714
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6684>

2024-08-28 10:25:18 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gststructure.c:
	  structure: Remove quadratic behaviour from gst_structure_fixate()
	  It was iterating over each field and after fixating its value was again
	  iterating over every field to find where to store the value.
	  Instead directly overwrite the value after validating it.
	  Also actually check that the structure is writable before modifying its fields
	  by using gst_structure_map_in_place() instead of gst_structure_fixate().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7420>

2024-08-26 19:13:11 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstutils.c:
	  clock: Fix calculation for number of bits needed to store a 64 bit value
	  It was using log2(n) but what actually is needed is log2(n) + 1. Also add a
	  fast-path that uses __builtin_clzll() on gcc/clang.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7406>

2024-08-23 15:56:41 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstutils.c:
	* tests/check/gst/gstutils.c:
	  clock: Fix unchecked overflows in linear regression code
	  The initial calculation for the precision shift was wrong and would allow for
	  overflows during the calculations which were not detected and lead to wrong
	  results.
	  Also add a test for a case where overflows where previously not detected and
	  caused a completely wrong result.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7406>

2024-08-27 14:50:56 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst/gststructure.c:
	  doc: correct delimiters documentation
	  - "<>" are delimiters for GST_TYPE_ARRAY and "{}" are delimiters for
	  GST_TYPE_LIST.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7419>

2024-07-26 11:47:00 +0200  Edward Hervey <edward@centricular.com>

	* tests/check/gstreamer.supp:
	  gstreamer: Make dlopen leak suppression more generic
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7415>

2024-08-16 08:53:39 +1000  Jan Schmidt <jan@centricular.com>

	* libs/gst/check/gstcheck.h:
	  check: Add fail_unless_matches_string() and assert macros
	  Add string check macros for checking expected strings against
	  a regular expression instead of just a direct literal match
	  as provided by the existing fail_unless_equals_string()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7365>

2024-05-28 16:27:39 +0300  Jan Schmidt <jan@centricular.com>

	* gst/gstutils.c:
	  core: Log pad name, not just the pointer
	  Change a debug statement that was just logging a pad pointer where
	  it could log the pad name more usefully.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6943>

2024-08-05 17:34:15 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstbin.c:
	  bin: Don't keep the object lock while setting a GstContext when handling NEED_CONTEXT
	  This can potentially deadlock.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3707
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7305>

2024-05-29 16:33:48 +0300  Jan Schmidt <jan@centricular.com>

	* gst/gsturi.c:
	* tests/check/gst/gsturi.c:
	  gsturi: Ensure file:// URIs retain //
	  Add the // back after the scheme for file URIs so 'file:///path/to/file'
	  doesn't become 'file:/path/to/file' in gst_uri_to_string()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6969>

2024-04-02 09:14:59 -0300  L. E. Segovia <amy@centricular.com>

	* gst/gstsystemclock.c:
	  gst: clock: Move Android OS check to the __ANDROID__ macro
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6510>

2024-07-03 09:05:06 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* plugins/elements/gstdownloadbuffer.c:
	  downloadbuffer: send EOS in push mode
	  gst_download_buffer_read_buffer() returns FLOW_EOS but it was not
	  handled in the 'out_flushing' goto block which uses srcresult,
	  so EOS was not sent downstream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7128>

2024-07-03 09:16:47 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* plugins/elements/gstdownloadbuffer.c:
	  downloadbuffer: initialize upstream_size when activated in push mode
	  Push mode flow relies on upstream_size but it was not initialized when
	  activated as it is when activated in pull mode.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7128>

2024-07-03 09:13:27 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* plugins/elements/gstdownloadbuffer.c:
	  downloadbuffer: init upstream_size to -1
	  Code in check_upstream_size() is checking for -1 to check if
	  upstream_size has been set or not.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7128>

2024-07-03 09:03:59 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* plugins/elements/gstdownloadbuffer.c:
	  downloadbuffer: properly log when receiving events
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7128>

2024-07-02 15:56:12 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/gstinfo.c:
	  info: remove unused valgrind header include
	  Follow-up to commit a2cbf75523cdf8a4df1baa7007d86ef455972245.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7126>

2024-07-01 20:53:35 +0300  Vivia Nikolaidou <vivia@ahiru.eu>

	* libs/gst/net/gstptpclock.c:
	  ptpclock: Fix typo in comments
	  s/continous/continuous/
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7121>

2024-07-01 09:24:28 +0200  Edward Hervey <edward@centricular.com>

	* tests/validate/gst-tester.c:
	  gstreamer/gst-tester: Don't leak thread
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7115>

2024-06-29 17:12:12 +0200  Edward Hervey <edward@centricular.com>

	* tools/gst-inspect.c:
	  gst-inspect: Fix leak of plugin/feature
	  Reordering changes the initial list head
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7115>

2020-04-08 10:40:42 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/meson.build:
	* meson.build:
	* meson_options.txt:
	  build: Add missing common options that are yielding in subprojects
	  - Align `glib_debug`, `glib_assert` and `glib_checks` options with GLib,
	  otherwise glib subproject won't inherit their value. Previous names
	  and values are preserved using Meson's deprecation mechanism.
	  - Add `extra-checks` and `benchmarks` options in the main project so it
	  can be inherited in GStreamer subprojects.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1165>

2024-06-21 09:29:13 +0200  Edward Hervey <edward@centricular.com>

	* libs/gst/base/gstbasesink.c:
	  basesink: Remove field not used
	  It was never actually used since it was introduced as part of the commit
	  introducing support for instant rate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7077>

2024-06-20 15:13:27 +0300  Sebastian Dröge <sebastian@centricular.com>

	* plugins/elements/gstmultiqueue.c:
	* plugins/elements/gstqueue.c:
	* plugins/elements/gstqueue2.c:
	  queue, queue2, multiqueue: Timestamps of gap events must be valid
	  This is checked in gst_event_new_gap() so doesn't have to be checked again here,
	  but simply can be asserted with a g_return_if_fail().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7071>

2024-06-20 15:10:07 +0300  Sebastian Dröge <sebastian@centricular.com>

	* plugins/elements/gstmultiqueue.c:
	* plugins/elements/gstqueue.c:
	* plugins/elements/gstqueue2.c:
	  queue: queue2: multiqueue: Don't work with segment.position if buffers have no timestamps
	  If the first buffers have no timestamp then the sink position would be
	  initialized to 0. The source pad might output this buffer, which would then
	  initialize the source position to 0 too.
	  Afterwards two buffers with a valid but huge timestamp might arrive before any
	  of them are output on the source pad. The first one would set the sink position
	  to a huge value, the second one would notice that the difference between the
	  huge value and 0 is certainly larger than max-size-time and consider the queue
	  as full.
	  Instead, simply don't update the times from buffers without timestamps and
	  assume whatever was set before is still valid, i.e. the buffer has the same
	  timestamp as the previous one.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7071>

2024-03-12 01:22:03 +0900  Seungha Yang <seungha@centricular.com>

	* gst/gstbufferpool.h:
	  bufferpool: Clarify GstBufferPoolClass::start() usage
	  Make it clear that chaining up to the default implementation
	  is optional if subclasses do not want preallocation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6328>

2024-05-27 15:32:10 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* libs/gst/base/gsttypefindhelper.c:
	  typefindhelper: implement get_length on GstTypeFindBufHelper
	  Some typefind code may rely on gst_type_find_get_length() which was not
	  working when using the helper.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6937>

2024-06-05 10:38:57 +0200  Edward Hervey <edward@centricular.com>

	* gst/gstpromise.c:
	* tests/check/gst/gstpromise.c:
	  gstpromise: Don't use g_return_* for internal checks
	  If assertion/checks are disabled bad things will happen and the function won't
	  return as expected
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6993>

2024-05-30 12:08:57 +0200  Martin Nordholts <martn@axis.com>

	* gst/gstinfo.c:
	  gst_debug: Add missing gst_debug_log_id_literal() dummy with gst_debug=false
	  E.g. gst_debug_log_literal() already has a dummy variant.
	  gst_debug_log_id_literal() is simply missing, which can
	  cause link errors for project using gstreamer with
	  gst_debug=false.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6972>

2024-05-30 01:07:30 +0200  Samuel Thibault <samuel.thibault@ens-lyon.org>

	* libs/gst/helpers/ptp/clock.rs:
	* libs/gst/helpers/ptp/ffi.rs:
	* libs/gst/helpers/ptp/meson.build:
	* libs/gst/helpers/ptp/net.rs:
	  ptp-helper: Add GNU/Hurd support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6970>

2024-05-21 11:31:34 +0200  Edward Hervey <edward@centricular.com>

	* gst/gstmessage.c:
	* gst/gstmessage.h:
	* tests/check/gst/gstmessage.c:
	  gstmessage: Allow retrieving and setting details on messages
	  This was only available on warning/error/info messages creator/parsers. These
	  new functions make it more generic and also add a writable variant for users who
	  want to add/extend the details
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6929>

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

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

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

	* gst/gstinfo.c:
	* gst/gstinfo.h:
	  info: Make gst_debug_print_object() and gst_debug_print_segment() public
	  It can be useful in custom logging code to easily get string
	  representations of all kinds of objects or a segment.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6820>

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

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

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

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

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

2024-05-21 08:24:51 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstbufferlist.c:
	  bufferlist: get() is not actually nullable in its return value
	  Passing an out of bounds index is the only way to get a NULL buffer but
	  this causes an assertion so is not to be considered for the
	  annotations.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6884>

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

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

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

	* gst/gstbuffer.c:
	  buffer: Use C11 atomics if available for 64 bit atomic operations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6740>

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

2024-05-01 11:36:07 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstinfo.c:
	  info: Use GstVecDeque for the ringbuffer logger instead of GQueue
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6779>

2024-04-18 17:07:25 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gst.h:
	* gst/gstvecdeque.c:
	* gst/gstvecdeque.h:
	* gst/meson.build:
	* libs/gst/base/base-prelude.h:
	* libs/gst/base/gstadapter.c:
	* libs/gst/base/gstdataqueue.c:
	* libs/gst/base/gstqueuearray.c:
	* libs/gst/base/gstqueuearray.h:
	* plugins/elements/gstqueue.c:
	* plugins/elements/gstqueue.h:
	* plugins/elements/gstqueue2.c:
	* plugins/elements/gstqueue2.h:
	* tests/check/gst/gstvecdeque.c:
	* tests/check/libs/gstlibscpp.cc:
	* tests/check/libs/queuearray.c:
	* tests/check/meson.build:
	  gst: Move GstQueueArray as GstVecDeque to core
	  And change lengths and indices from guint to gsize for a more correct type.
	  Also deprecate GstQueueArray and implement it in terms of GstVecDeque.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6779>

2024-04-23 10:58:39 +0200  Edward Hervey <edward@centricular.com>

	* gst/gstquark.c:
	* gst/gstquark.h:
	* gst/gstvalue.c:
	  gstvalue: Add a GstAllocationParams to String conversion
	  Avoids ending up with plenty of warnings when serializing GstStructure
	  containing GstAllocationParams
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6714>

2024-04-19 09:34:12 +0200  Edward Hervey <edward@centricular.com>

	* gst/gststructure.c:
	  structure: Add a serialization for GArray in GstStructure
	  Instead of constantly spurting out warnings in the log files
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6691>

2024-03-27 13:41:38 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/gstpad.c:
	  pad: gst_pad_set_offset is only reliable on source pads
	  Setting an offset on sink pads won't repush segment event which means
	  buffer running time won't be adjusted. Better warn about this than being
	  silently not working.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6464>

2024-04-18 11:09:46 +0200  Johan Sternerup <johast@axis.com>

	* libs/gst/base/gstbasesrc.c:
	  basesrc: protect segment_seqnum/pending with object lock
	  In a few places the object lock was not taken when writing to
	  segment_pending and segment_seqnum.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6671>

2024-04-16 14:30:24 +0200  Johan Sternerup <johast@axis.com>

	* libs/gst/base/gstbasesrc.c:
	  gstbasesrc: Do not hold LIVE_LOCK while sending events
	  An application that triggers a state transition from PLAYING to PAUSED
	  needs to acquire the LIVE_LOCK. Consequently the LIVE_LOCK must not be
	  taken while pushing anything on the pads because this operation might
	  get blocked by something that cannot be unblocked without the
	  application being able to proceed with the state transitions for other
	  elements in the pipeline. This commit extends the previous behaviour
	  where the live lock was released before pushing buffers (indirectly
	  through the unlock before subclass->create) to now also include
	  unlocking before pushing events.
	  The issue was discovered in a case for WebRTC where the application
	  tried to shut down a pipeline but an event originating from a video
	  source element (based on basesrc) was in the process of being pushed
	  down the pipeline when it got stuck on the STREAM_LOCK for the pad after
	  the rtpgccbwe element. This lock in turn was held by the rtcpgccbwe
	  element as it was in the process of pushing data down the pipeline but
	  was stuck on the blocking probes installed on dtlssrtpenc to prevent
	  data from flowing before dtls keys had been negotiated. What should have
	  happened here is that the blocking probes should be removed, but that
	  can only happen if the application may continue driving the state
	  transitions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6671>

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

2024-04-03 20:56:57 +0200  Mark Nauwelaerts <mnauw@users.sourceforge.net>

	* libs/gst/base/gstadapter.c:
	  adapter: align documentation to actual behavior
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6535>

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

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

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

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

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

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

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

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

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

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

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

2024-03-06 12:22:26 +0100  François Laignel <francois@centricular.com>

	* libs/gst/net/gstptpclock.c:
	  ptp clock: fix annotations for gst_ptp_clock_new
	  * Set `name` as `nullable` same as for gst_ntp_clock_new.
	  * Set return value as nullable as the constructor can fail.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6251>

2024-02-29 15:44:43 +0200  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/helpers/ptp/main.rs:
	  ptp-helper: Fix clippy warning and simplify code a bit
	  warning: you seem to be trying to use `match` for an equality check. Consider using `if`
	  --> ../subprojects/gstreamer/libs/gst/helpers/ptp/main.rs:246:17
	  |
	  246 | /                 match ptp_message.message_type {
	  247 | |                     PtpMessageType::DELAY_REQ => {
	  248 | |                         if args.verbose {
	  249 | |                             trace!("Ignoring our own PTP message");
	  ...   |
	  253 | |                     _ => (),
	  254 | |                 }
	  | |_________________^
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6245>

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

2024-03-05 12:58:57 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.24.0 ===

