=== release 1.24.12 ===

2025-01-29 20:12:29 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.24.12

2025-01-08 11:47:34 -0300  L. E. Segovia <amy@centricular.com>

	* meson.build:
	  ges: Fix Xcode-provided Python library name fetching
	  Both INSTSONAME and LDLIBRARY point to the Python interpreter, not to
	  libpythonX.Y.dylib, unlike the pythonX.Y-embed module Xcode provides.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8278>

2024-12-22 11:14:45 -0300  L. E. Segovia <amy@centricular.com>

	* meson.build:
	  ges: Fix Python library name fetching on Windows
	  The fix in 753aeccde70006ebbc50db2982e323cd1328c1ab is also needed here.
	  See #3368
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8278>

2025-01-06 20:11:58 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.24.11

=== release 1.24.11 ===

2025-01-06 19:48:08 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.24.11

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

	* tools/ges-launcher.c:
	  ges-launcher: return early on 'project-loaded' signal on error
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4102
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8161>

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

	* ges/ges-project.c:
	  ges: project: Add missing API guards
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8161>

2024-12-13 09:09:15 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-formatter.c:
	  ges: formatter: Keep a reference on the timelines
	  We will be using it in an async way so we need to keep our own
	  reference to it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8161>

2024-12-13 10:14:32 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-meta-container.h:
	  ges-meta-container: Fix the GET_INTERFACE macro
	  It had a synthax issue
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/141
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8150>

2024-12-03 23:39:54 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.24.10

=== release 1.24.10 ===

2024-12-03 23:29:07 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.24.10

2024-10-30 20:40:12 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.24.9

=== release 1.24.9 ===

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

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.24.9

2024-09-20 01:44:53 +0200  Jan Alexander Steffens (heftig) <heftig@archlinux.org>

	* ges/ges-frame-composition-meta.c:
	  ges: Fix name of GESFrameCompositionMeta API type
	  g-ir-scanner 1.82.0 failed with a fatal error due to the wrong
	  namespace.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3800
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7556>

2024-09-19 12:12:53 +0200  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.24.8 ===

2024-09-19 12:01:21 +0200  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.24.8

2024-02-16 12:48:59 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-discoverer-manager.c:
	  ges: discoverer-manager: Fix race leading to assertion when stopping
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3757
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7467>

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

	* ges/ges-structured-interface.c:
	  ges-structured-interface: Fix memory leak of invalid fields GList
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7440>

2024-08-21 12:33:28 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.24.7

=== release 1.24.7 ===

2024-08-21 12:25:15 +0100  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.24.7

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

	* plugins/nle/nlecomposition.c:
	  nlecomposition: Don't leak QoS events
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7280>

2024-07-29 16:48:02 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.24.6

=== release 1.24.6 ===

2024-07-29 16:41:37 +0100  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.24.6

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

	  nlecomposition: Don't leak atomic rc box
	  * gst_structure_get => increases ref
	  * query_ancestors_position: There are two refs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7120>

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

	* plugins/nle/nlecomposition.c:
	  nlecomposition: Don't leak message
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7120>

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

	* ges/ges-track.c:
	  ges-layer: Don't use invalid layers
	  There's a possibility that there are no layers at that priority
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7120>

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

	* ges/ges-discoverer-manager.c:
	  ges-discoverer-manager: Properly initialize/free GRecMutex
	  Fixes small leak of mutex internals
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7120>

2024-06-20 13:02:19 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.24.5

=== release 1.24.5 ===

2024-06-20 12:54:15 +0100  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.24.5

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

	* meson.build:
	  Back to development after 1.24.4

=== release 1.24.4 ===

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

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.24.4

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

	* ges/ges-pipeline.c:
	  ges-pipeline: Configure encodebin before linking
	  Modifying the `avoid-reencoding` property of `encodebin` could potentially cause
	  it to reconfigure itself, in which case the source pad will be removed and then
	  re-added.
	  Therefore set that property *before* attempting to link to that pad.
	  Fixes smart-render
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6785>

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

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

=== release 1.24.3 ===

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

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.24.3

2024-04-17 13:53:21 +0200  Edward Hervey <edward@centricular.com>

	* tools/ges-launcher.c:
	  ges-launcher: Fix for forcing container profiles
	  If the input profile doesn't have a container, it's fine since we are overriding
	  it. Just add the elementary stream to the target container profile
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6675>

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

	* meson.build:
	  Back to development after 1.24.2

=== release 1.24.2 ===

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

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.24.2

2024-03-26 12:28:50 +0000  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/gescpp.cc:
	* tests/check/meson.build:
	  ges: add check to make sure headers are C++ compiler clean
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3421
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6448>

2024-03-26 08:42:26 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-frame-composition-meta.h:
	  ges: frame-composition-meta: Stop using keyword 'operator' for field in C++
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3421
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6448>

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

	* meson.build:
	  Back to development

=== release 1.24.1 ===

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

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.24.1

2024-03-08 20:56:46 +0900  Seungha Yang <seungha@centricular.com>

	* ges/ges-asset.c:
	  ges: Fix critical warning
	  GStreamer-CRITICAL **: 20:44:38.256: gst_debug_log_full_valist:
	  assertion 'category != NULL' failed
	  Make sure debug category initialized.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6315>

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

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

=== release 1.24.0 ===

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

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.24.0

2024-02-27 14:00:04 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-frame-composition-meta.h:
	* ges/ges-smart-video-mixer.c:
	* ges/ges-track-element.c:
	* ges/ges-utils.c:
	* ges/ges-video-source.c:
	* ges/gesvideoscale.c:
	* ges/gstframepositioner.c:
	* ges/gstframepositioner.h:
	  ges: framepositioner: Expose positioning properties as doubles
	  Making it possible to properly handle compositors that have those
	  properties as doubles and handle antialiasing.
	  Internally we were handling those values as doubles in framepositioner,
	  so expose new properties so user can set values as doubles also.
	  This changes the GESFramePositionMeta API but we are still on time for 1.24
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6241>

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

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

=== release 1.23.90 ===

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

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.23.90

2024-02-21 11:58:08 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	  meson: Use cdata.set_quoted() for configuration data
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6159>

2024-02-21 11:26:30 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ges/ges-formatter.c:
	* meson.build:
	  ges, gst-python: Fix libpython dlopen on macOS
	  First encountered at https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1171#note_2290789
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6159>

2024-02-21 09:54:22 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ges/ges-formatter.c:
	* meson.build:
	  ges, gst-python: Rework libpython loading to be relocatable
	  If we don't specify a path for loading, the runtime linker will search
	  for the library instead, which will use the usual mechanisms: RPATHs,
	  LD_LIBRARY_PATH, PATH (on Windows), etc.
	  Also try harder to load a non-devel libpython using INSTSONAME, if
	  available.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6159>

2024-02-21 08:29:45 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* docs/meson.build:
	* meson.build:
	* tests/meson.build:
	  meson: Use host_system for the host_machine system
	  This is a convention everywhere else in gstreamer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6159>

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

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

=== release 1.23.2 ===

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

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.23.2

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

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

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

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

=== release 1.23.1 ===

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

	* NEWS:
	* RELEASE:
	* gst-editing-services.doap:
	* meson.build:
	  Release 1.23.1

2024-01-18 18:18:27 -0300  Thibault Saunier <tsaunier@igalia.com>

	* plugins/nle/nlecomposition.c:
	  nlecomposition: Do not forward QoS event while setting up the new stack
	  Otherwise we might end up dropping buffers even before prerolling the sources
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6032>

2024-01-30 17:59:34 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-timeline.c:
	  timeline: forward element messages we do not know
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983>

2023-08-13 11:50:53 -0400  Thibault Saunier <tsaunier@igalia.com>

	* plugins/nle/nlecomposition.c:
	  nlecomposition: Use a bus message to retrieve pipeline position
	  Instead of recursing up, as this will allow to have nested composition
	  run inside auxiliary pipelines. It is a bit cleaner also.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983>

2023-08-12 22:07:29 -0400  Thibault Saunier <tsaunier@igalia.com>

	* plugins/nle/nlecomposition.c:
	  nlecomposition: Use a message to check if we need an initialization seek
	  Subtimeline might be in an auxiliary pipeline which make the current
	  recurse up approach not working.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983>

2023-08-04 17:57:35 -0400  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-timeline.c:
	* ges/ges-track.c:
	* ges/ges-uri-asset.c:
	* plugins/nle/nleobject.c:
	  ges: Keep internal stream selection messages internally
	  Timeline StreamCollection are very specific to inner working of nested
	  timelines and should not interfere with the usual stream selection
	  process and are now handled as element messages.
	  Stream selection inside `nleobject` need to be handled internally by the
	  application or GES itself so we should just drop all those as they would
	  interfere and fail if they are exposed to other elements.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983>

2023-08-04 16:03:08 -0400  Thibault Saunier <tsaunier@igalia.com>

	* plugins/ges/gesdemux.c:
	* plugins/nle/nleobject.c:
	* plugins/shared/nlegesplugin.h:
	  nle: Use a message based mechanism to detect parent nleobject duration
	  Recursing up is pretty ugly and will fail when we start using ancillary
	  pipelines for sources in nle, using a message/event based mechanism is
	  a common pattern that is much cleaner.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5983>

2024-01-29 13:52:46 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-clip.c:
	  ges: clip: doc: Add a reference for more information about effect index
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6009>

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

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

2023-10-03 14:45:35 +0100  Philippe Normand <philn@igalia.com>

	* plugins/ges/gesbasebin.c:
	  gesbasebin: Fix a couple leaks
	  Also clean-up unused queue when we failed to link a track to it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>

2023-08-21 10:04:57 -0400  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-effect-asset.c:
	* ges/ges-track-element.c:
	  ges: track-element: Fix FIXME about handling NULL factories to add properties
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>

2023-06-22 22:59:50 -0400  Thibault Saunier <tsaunier@igalia.com>

	* tools/utils.c:
	  ges: launch: Enhance the way we detect explicitly added track
	  When using subtimeline serialized with the command line formatter
	  syntax, we had a false positive when detecting if the user had explicitly
	  specified tracks with the `+track` syntax. Verifying the presence of
	  `+track` explicitly in the `args` array ensure the `+track` is not for
	  a subtimeline.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>

2023-06-22 22:22:45 -0400  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-pipeline.c:
	* ges/ges-timeline.c:
	* ges/gstframepositioner.c:
	  ges: Minor debug enhancements
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>

2023-05-25 18:14:59 -0400  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-clip.c:
	  ges: Minor typo fix
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>

2023-08-04 16:05:34 -0400  Thibault Saunier <tsaunier@igalia.com>

	* plugins/nle/nlecomposition.c:
	  nlecomposition: Pass object to debug messages in more places
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>

2023-11-22 10:17:43 +0000  Philippe Normand <philn@igalia.com>

	* ges/ges-effect.c:
	  ges: effect: Report asset request errors
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>

2023-11-29 12:15:36 +0000  Philippe Normand <philn@igalia.com>

	* ges/ges-asset.c:
	  ges-asset: Fix typo in warning message
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>

2023-11-29 12:14:23 +0000  Philippe Normand <philn@igalia.com>

	* ges/ges-asset.c:
	  ges-asset: Log asset ids in ges_asset_request
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>

2023-11-29 10:42:27 +0000  Philippe Normand <philn@igalia.com>

	* ges/ges-asset.c:
	  ges-asset: Propagate errors from GInitable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>

2023-11-28 17:33:48 +0000  Philippe Normand <philn@igalia.com>

	* ges/ges-effect-asset.c:
	  ges-effect: Chain-up to parent constructed vfunc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>

2023-11-22 10:42:07 +0000  Philippe Normand <philn@igalia.com>

	* ges/ges-uri-clip.c:
	  ges: uri-clip: Set error on invalid URI's in check_id
	  The _check_id function signature was incomplete and the last GError
	  argument was ignored instead of being properly used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5981>

2024-01-08 11:26:10 -0300  Thibault Saunier <tsaunier@igalia.com>

	* tools/ges-launcher.c:
	  ges: launch: Print the timeline after we set its state to READY
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5974>

2024-01-08 11:21:18 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-discoverer-manager.c:
	  ges: discoverer-manager: Use a recursive mutex to protect the discoverers
	  So we can have subtimelines specified in `ges-launch` without
	  deadlocking
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5973>

2023-10-23 11:23:14 -0300  Thibault Saunier <tsaunier@igalia.com>

	* tools/ges-launcher.c:
	  ges: launcher: Commit timeline before setting state
	  Ensuring that all operations related to commit are properly performed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5859>

2023-06-20 16:36:38 -0400  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-structured-interface.c:
	  ges: launcher: Make +effect stack effects from source to last effect added
	  Until now when doing `+test-clip blue +effect effect1 + effect effect2`
	  leaded to the following pseudo pipeline
	  videotestsrc ! effect2 ! effect1
	  given the `ges-launch` syntax this is quite unexpected and this needed
	  fixing
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5735>

2023-12-05 09:08:10 -0300  Thibault Saunier <tsaunier@igalia.com>

	* plugins/ges/gesdemux.c:
	  ges: Add scaler in the 'gap filling' clip on too short nested timelines
	  So we can respect user request on source that can scale
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5735>

2023-07-14 09:08:21 -0400  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-track-element.c:
	  ges: track-element: Set the nleobject as soon as possible
	  Some subclasses might need to have access to it when configuring their
	  element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5735>

2023-11-28 10:18:37 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-frame-composition-meta.h:
	  ges: composition-meta: Enhance documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5735>

2023-06-20 16:01:37 -0400  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-clip.c:
	* ges/ges-effect.c:
	* ges/ges-internal.h:
	* ges/ges-smart-video-mixer.c:
	* ges/ges.c:
	* ges/gesvideoscale.c:
	* ges/gstframepositioner.c:
	* ges/meson.build:
	  ges: Implement a `gesvideoscale` bin
	  This allows user to be in control of when scaling happens in the pipeline.
	  It can be plugged as an effect and scaling will be forced to happen in
	  the effect instead of in the compositor.
	  Without this, it would not be possible for users to, for example,
	  crop a video source before scaling to the target source size.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5735>

2024-01-08 11:24:17 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-pipeline.c:
	  ges: pipeline: Port to encodebin2
	  This way we can use muxing sinks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5915>

2023-12-21 18:25:07 -0300  Thibault Saunier <tsaunier@igalia.com>

	* plugins/nle/nlecomposition.c:
	  nlecomposition: Simplify the way we ensure stream-start is sent
	  stream-start should always be sent once at the beginning of the stream,
	  so we should make sure it is pushed at the very beginning and after
	  resets (going back to READY).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5858>

2023-11-08 09:47:30 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-audio-source.c:
	  ges: Expose audioconvert mix-matrix property in audio sources
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5853>

2023-12-05 09:28:25 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* meson.build:
	  meson: update PACKAGE_BUGREPORT
	  Some were still using pre-monorepo links.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5762>

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

	* ges/ges-asset.c:
	  ges: asset: Avoid trying to load twice the same asset
	  When requesting an asset from different threads we had no
	  guarantee that during the time we lookup an asset (which didn't exist)
	  and the time we create the asset with the same type/ID another thread
	  could not end up doing the same thing. In turns we could end up with
	  2 different threads loading the exact same asset and the cache
	  basically forgetting about one of the entries meaning that the user
	  would never get notified about one of those being ready to be used.
	  There was also the case when requesting "sync" where the user was
	  requesting an asset while another thread is creating it so it was
	  still in "ASSET_INITIALIZING" state, meaning that the returned asset
	  would be NULL which would be considered as an error in apps.
	  Since the cache lock is recursive we can just take it during the whole
	  ges_asset_request_async call and have other method still hold it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5732>

2023-11-13 16:14:01 +0000  Philippe Normand <philn@igalia.com>

	* docs/sitemap.txt:
	* ges/ges-frame-composition-meta.c:
	* ges/ges-frame-composition-meta.h:
	* ges/ges-smart-video-mixer.c:
	* ges/ges.h:
	* ges/gstframepositioner.c:
	* ges/gstframepositioner.h:
	* ges/meson.build:
	  ges: Expose FrameCompositionMeta in public API
	  Knowing the positioning and size of each frame in the composition can help
	  applications optimize their rendering pipeline.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5652>

2023-10-12 12:46:27 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges.h:
	  ges: Include ges-discoverer-manager.h in ges.h
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5665>

2023-10-24 06:10:53 +0300  Jordan Petridis <jordan@centricular.com>

	* meson.build:
	  meson: Workaround python 3.12 warning
	  When we are building againt python 3.12, ignore redundant-decls warning
	  that will come from the python headers.
	  ```
	  /usr/include/python3.12/longobject.h:10:26: warning: redundant redeclaration of ‘PyLong_Type’ [-Wredundant-decls]
	  10 | PyAPI_DATA(PyTypeObject) PyLong_Type;
	  |                          ^~~~~~~~~~~
	  ```
	  https://github.com/python/cpython/issues/106560
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5541>

2023-11-07 19:33:27 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-discoverer-manager.c:
	  ges: discoverer-manager: Fix race when freeing unused discoverer
	  When a new discoverer was created for a thread so discovery could
	  recurse we could end up removing the wrong discoverer info from the
	  cache leading to freeing it while it was still discovering URIS, which
	  lead to the following assertion:
	  ``` bt
	  Thread 1 (Thread 0x7fcc2e1a5840 (LWP 1855496)):
	  #0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
	  #1  0x00007fcc2e9d98a3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
	  #2  0x00007fcc2e9878ee in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
	  #3  0x00007fcc2e96f8ff in __GI_abort () at abort.c:79
	  #4  0x00007fcc2ed80056 in g_assertion_message (domain=domain@entry=0x7fcc2f2c19f9 "GES", file=file@entry=0x7fcc2f2dfd68 "../subprojects/gst-editing-services/ges/ges-discoverer-manager.c", line=line@entry=20, func=func@entry=0x7fcc2f2e0030 <__func__.7> "ges_discoverer_data_free", message=message@entry=0x12dab70 "assertion failed: (data->n_uri == 0)") at ../glib/gtestutils.c:3497
	  #5  0x00007fcc2ede1d87 in g_assertion_message_expr (domain=domain@entry=0x7fcc2f2c19f9 "GES", file=file@entry=0x7fcc2f2dfd68 "../subprojects/gst-editing-services/ges/ges-discoverer-manager.c", line=line@entry=20, func=func@entry=0x7fcc2f2e0030 <__func__.7> "ges_discoverer_data_free", expr=expr@entry=0x7fcc2f2dfcf1 "data->n_uri == 0") at ../glib/gtestutils.c:3523
	  #6  0x00007fcc2f2bd5c5 in ges_discoverer_data_free (data=0x160e430) at ../subprojects/gst-editing-services/ges/ges-discoverer-manager.c:20
	  #7  0x00007fcc2ed8509d in g_atomic_rc_box_release_full (clear_func=0x7fcc2f2bd4f0 <ges_discoverer_data_free>, mem_block=0x160e430) at ../glib/garcbox.c:355
	  #8  g_atomic_rc_box_release_full (mem_block=0x160e430, clear_func=0x7fcc2f2bd4f0 <ges_discoverer_data_free>) at ../glib/garcbox.c:338
	  #9  0x00007fcc2eda6809 in g_hash_table_remove_internal (notify=1, key=0x10448a0, hash_table=0x12e0be0) at ../glib/ghash.c:1776
	  #10 g_hash_table_remove (hash_table=0x12e0be0, key=0x10448a0) at ../glib/ghash.c:1804
	  #11 0x00007fcc2f2bd95f in cleanup_discoverer_cb (discoverer_data=discoverer_data@entry=0x13e7000) at ../subprojects/gst-editing-services/ges/ges-discoverer-manager.c:379
	  #12 0x00007fcc2edbc759 in g_timeout_dispatch (source=0x15a6060, callback=0x7fcc2f2bd910 <cleanup_discoverer_cb>, user_data=0x13e7000) at ../glib/gmain.c:5121
	  #13 0x00007fcc2edbbe1c in g_main_dispatch (context=0x1044700) at ../glib/gmain.c:3476
	  #14 g_main_context_dispatch_unlocked (context=0x1044700) at ../glib/gmain.c:4284
	  #15 0x00007fcc2ee16d78 in g_main_context_iterate_unlocked.isra.0 (context=0x1044700, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4349
	  #16 0x00007fcc2edbd407 in g_main_loop_run (loop=0x12ccbd0) at ../glib/gmain.c:4551
	  #17 0x00007fcc2f285791 in ges_uri_clip_asset_request_sync (uri=uri@entry=0x12d7980 "file:///var/home/phil/gstreamer/build/subprojects/gst-integration-testsuites/logs/ges/scenarios/check_seek_on_very_deeply_nested_timeline/nested_timeline_depth6.xges", error=error@entry=0x7fff499015a8) at ../subprojects/gst-editing-services/ges/ges-uri-asset.c:688
	  #18 0x00007fcc2f28949b in ges_project_create_asset_sync (project=0x12c1c70, id=id@entry=0x12d7980 "file:///var/home/phil/gstreamer/build/subprojects/gst-integration-testsuites/logs/ges/scenarios/check_seek_on_very_deeply_nested_timeline/nested_timeline_depth6.xges", extractable_type=extractable_type@entry=Python Exception <class 'gdb.error'>: value has been optimized out , error=error@entry=0x7fff499015a8) at ../subprojects/gst-editing-services/ges/ges-project.c:959
	  #19 0x00007fcc2f2ba484 in _ges_get_asset_from_timeline (timeline=timeline@entry=0x12bdc80, type=type@entry=Python Exception <class 'gdb.error'>: value has been optimized out , id=id@entry=0x12d7980 "file:///var/home/phil/gstreamer/build/subprojects/gst-integration-testsuites/logs/ges/scenarios/check_seek_on_very_deeply_nested_timeline/nested_timeline_depth6.xges", error=error@entry=0x7fff49901728) at ../subprojects/gst-editing-services/ges/ges-structured-interface.c:540
	  #20 0x00007fcc2f2ba9b2 in _ges_add_clip_from_struct (timeline=0x12bdc80, structure=0x157f690, error=0x7fff49901728) at ../subprojects/gst-editing-services/ges/ges-structured-interface.c:697
	  #21 0x00007fcc2f2b6a9d in _validate_action_execute (scenario=0x15f7620, action=0x157f500) at ../subprojects/gst-editing-services/ges/ges-validate.c:922
	  #22 0x00007fcc2eef5c9c in gst_validate_execute_action (action=0x157f500, action_type=0x13e0500) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2541
	  #23 gst_validate_execute_action (action_type=0x13e0500, action=0x157f500) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2507
	  #24 0x00007fcc2eef8ce3 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2782
	  #25 0x00007fcc2eef9dee in _action_set_done (action=0x157efb0) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #26 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x157efb0, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #27 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x157efb0) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #28 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #29 0x00007fcc2eef9dee in _action_set_done (action=0x157ea60) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #30 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x157ea60, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #31 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x157ea60) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #32 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #33 0x00007fcc2eef9dee in _action_set_done (action=0x157e510) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #34 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x157e510, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #35 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x157e510) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #36 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #37 0x00007fcc2eef9dee in _action_set_done (action=0x157df10) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #38 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x157df10, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #39 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x157df10) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #40 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #41 0x00007fcc2eef9dee in _action_set_done (action=0x157d9e0) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #42 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x157d9e0, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #43 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x157d9e0) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #44 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #45 0x00007fcc2eef9dee in _action_set_done (action=0x157d3e0) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #46 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x157d3e0, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #47 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x157d3e0) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #48 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #49 0x00007fcc2eef9dee in _action_set_done (action=0x157cf70) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #50 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x157cf70, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #51 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x157cf70) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #52 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #53 0x00007fcc2eef9dee in _action_set_done (action=0x157cb00) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #54 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x157cb00, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #55 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x157cb00) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #56 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #57 0x00007fcc2eef9dee in _action_set_done (action=0x157c690) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #58 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x157c690, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #59 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x157c690) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #60 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #61 0x00007fcc2eef9dee in _action_set_done (action=0x157c220) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #62 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x157c220, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #63 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x157c220) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #64 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #65 0x00007fcc2eef9dee in _action_set_done (action=0x15233c0) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #66 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x15233c0, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #67 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x15233c0) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #68 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #69 0x00007fcc2eef9dee in _action_set_done (action=0x1522f80) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #70 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x1522f80, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #71 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x1522f80) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #72 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #73 0x00007fcc2eef9dee in _action_set_done (action=0x1522ae0) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #74 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x1522ae0, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #75 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x1522ae0) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #76 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #77 0x00007fcc2eef9dee in _action_set_done (action=0x1522190) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #78 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x1522190, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #79 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x1522190) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #80 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #81 0x00007fcc2eef9dee in _action_set_done (action=0x1520ea0) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6368
	  #82 0x00007fcc2edbd26d in g_main_context_invoke_full (context=0x1044700, priority=200, function=0x7fcc2eef9ab0 <_action_set_done>, data=0x1520ea0, notify=0x7fcc2eeea5d0 <gst_validate_action_unref>) at ../glib/gmain.c:6533
	  #83 0x00007fcc2eef6cf2 in gst_validate_action_set_done (action=0x1520ea0) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:6411
	  #84 0x00007fcc2eef9018 in execute_next_action_full (scenario=<optimized out>, message=<optimized out>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2803
	  #85 0x00007fcc2edbc759 in g_timeout_dispatch (source=0x14b6340, callback=0x7fcc2eef99c0 <execute_next_action>, user_data=0x15f7620) at ../glib/gmain.c:5121
	  #86 0x00007fcc2edbbe1c in g_main_dispatch (context=0x1044700) at ../glib/gmain.c:3476
	  #87 g_main_context_dispatch_unlocked (context=0x1044700) at ../glib/gmain.c:4284
	  #88 0x00007fcc2ee16d78 in g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x1044700, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4349
	  #89 0x00007fcc2edb9a93 in g_main_context_iteration (context=context@entry=0x1044700, may_block=may_block@entry=1) at ../glib/gmain.c:4414
	  #90 0x00007fcc2ec14c3d in g_application_run (application=application@entry=0x1042ab0, argc=argc@entry=4, argv=argv@entry=0x7fff499031e8) at ../gio/gapplication.c:2577
	  #91 0x0000000000405dfd in real_main (argv=0x7fff499031e8, argc=4) at ../subprojects/gst-editing-services/tools/ges-launch.c:38
	  #92 main (argc=4, argv=0x7fff499031e8) at ../subprojects/gst-editing-services/tools/ges-launch.c:56
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5619>

2023-11-02 17:52:52 +0000  Philippe Normand <philn@igalia.com>

	* ges/ges-discoverer-manager.c:
	  ges: discoverer-manager: Use appropriate key hash function
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5608>

2023-11-06 09:47:04 +0000  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-discoverer-manager.c:
	* ges/ges-internal.h:
	* ges/ges-utils.c:
	  ges: discoverer-manager: Support for delayed clean-up of discoverers
	  The manager keeps track of one discoverer per thread and in large applications
	  with hundreds of threads this can significantly increase memory pressure. So we
	  need to periodically clean-up the unused discoverers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5608>

2023-11-01 15:11:41 +0000  Philippe Normand <philn@igalia.com>

	* ges/ges-timeline.c:
	  ges: timeline: Fix message leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5608>

2023-06-15 17:35:57 -0400  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-discoverer-manager.c:
	  ges: Expose GESDiscovererManager::source-setup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5608>

2023-06-22 23:19:05 -0400  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-discoverer-manager.c:
	  ges: discoverer-manager: Allow recursing discovery
	  When using deeply nested timelines with the `ges:` protocol the
	  formatters ends up trying to do discovery from the same thread current
	  discovery happens, leading to infinite freeze as GstDiscoverer can't run
	  several discoveries at the same time.
	  By ensuring that when calling `gst_discoverer_discover_uri_async` no
	  `GstDiscoverer` is set as "thread discoverer" we know that another
	  discoverer will be created if discovery recurses, effectively removing
	  the freeze.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5608>

2023-11-02 00:03:28 +0900  Seungha Yang <seungha@centricular.com>

	* meson.build:
	  meson: Fix MSVC build with GST_DISABLE_GST_DEBUG
	  MSVC does not understand Wno-unused
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5585>

2023-10-25 14:17:03 +0100  Philippe Normand <philn@igalia.com>

	* ges/ges-uri-asset.c:
	  ges-uri-asset: Fix GESDiscovererManager leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5552>

2022-04-06 12:56:30 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: Bump GLib requirement to >= 2.64
	  This includes fixes to make GstBus watches non-racy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2126>

2023-10-13 13:53:16 +0100  Tim-Philipp Müller <tim@centricular.com>

	* COPYING:
	* COPYING.LIB:
	  gst-editing-services: update COPYING to LGPL v2.1
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4268>

2023-06-22 22:23:48 -0400  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-internal.h:
	* ges/ges-project.c:
	* ges/ges-timeline.c:
	  ges: project: Start making MT safe where needed
	  Formatters might call "loaded" from the `gessrc` streaming thread
	  meaning that the `->formatters` field need to be protected.
	  Several other APIs are called from gesbasedemux, in some radom
	  thread, so we should ensure that this is all MT. safe, and the API
	  makes it simple.
	  Co-authored-by: Philippe Normand <philn@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5431>

2023-09-16 17:21:16 +0200  Michiel Westerbeek <happylinks@gmail.com>

	* ges/ges-asset.c:
	  ges: decreased log level for missing ->init method
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5339>

2023-09-11 00:41:22 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tools/meson.build:
	  ges: tools: fix msvc compiler warning about G_LOG_DOMAIN redefinition
	  cl: Command line warning D9025: overriding '/DG_LOG_DOMAIN="GES"'
	  with '/UG_LOG_DOMAIN'
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5312>

2023-09-11 00:38:48 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tools/meson.build:
	  ges: tools: fix duplicate ges_tools definition in meson.build
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5312>

2023-09-11 00:24:03 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tools/ges-launcher.c:
	  ges: launcher: fix compiler warning with MSVC 2022
	  tools/ges-launcher.c(315): warning C4133: 'function':
	  incompatible types - from 'GESTrackType *' to 'guint *'
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5312>

2023-09-06 10:58:17 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ges/ges-structured-interface.c:
	  ges: Fix setting keyframes from ges-launch
	  There is no registered GValue conversion function from string to double (on purpose) so
	  we need to handle that case appropriately.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5294>

2023-07-05 18:46:25 -0600  Olivier Crête <olivier.crete@collabora.com>

	* scripts/gen-changelog.py:
	  gst-omx: Retire the whole package
	  The OpenMAX standard is long dead and even the Raspberry Pi OS
	  no longer supports it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4976>

2023-07-12 09:27:22 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tests/check/meson.build:
	  meson: Always use forward slashes in defines with paths
	  Fixes the following build failure on MSYS2:
	  ```
	  ../subprojects/gstreamer/tests/check/elements/filesrc.c: In function 'test_seeking':
	  ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: error: incomplete universal character name \U
	  107 |   g_object_set (G_OBJECT (src), "location", TESTFILE, NULL);
	  |                                                     ^
	  ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\A'
	  ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\g'
	  ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\s'
	  ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\g'
	  ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\c'
	  ```
