=== release 1.22.2 ===

2023-04-11 17:29:28 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2023-04-10 13:49:41 +0100  Tim-Philipp Müller <tim@centricular.com>

	* po/sr.po:
	  gstreamer: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4390>

2023-03-31 04:40:58 +0900  Seungha Yang <seungha@centricular.com>

	* tools/gst-inspect.c:
	* tools/gst-launch.c:
	* tools/gst-stats.c:
	* tools/gst-typefind.c:
	  tools: Count argc after parsing GOption on Windows
	  Existing codes rely on modified argc value by g_option_context_parse()
	  but g_option_context_parse_strv() is used in case of Windows.
	  Count arguments after the option parsing manually.
	  Fixing command "gst-inspect-1.0.exe -b"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4322>

2023-03-24 18:34:36 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstdatetime.c:
	  datetime: Return G_MAXFLOAT instead of G_MAXDOUBLE for no timezone offset
	  Returning G_MAXDOUBLE from a function returning a float is not going to
	  work well and MSVC also correctly warns about this.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4285>

2023-03-16 12:38:23 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* plugins/elements/gstinputselector.c:
	  inputselector: Wake up streaming thread before PLAYING_TO_PAUSED transition
	  Also take object lock before iterating the pads.
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1772
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4196>

2023-03-04 16:13:04 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development

=== release 1.22.1 ===

2023-03-04 13:42:32 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2023-03-02 15:51:08 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* plugins/elements/gstinputselector.c:
	* plugins/elements/gstinputselector.h:
	  inputselector: Avoid deadlock when shutting down
	  Transition from PLAYING to PAUSED unschedules any pending clock wait,
	  but there was no guard that prevented another input buffer then waiting
	  again while in PAUSED before dataflow stops. Use a new `playing` flag to
	  avoid this, and exit the chain function if instead of playing we're now
	  flushing. Basically the same as the clocksync element.
	  Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1772
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4099>

2023-01-28 02:32:13 +0900  Seungha Yang <seungha@centricular.com>

	* tools/gst-inspect.c:
	* tools/gst-launch.c:
	* tools/gst-stats.c:
	* tools/gst-typefind.c:
	  tools: Make sure UTF-8 encoded command line arguments on Windows
	  On Windows, arguments passed in main() are system codepage
	  encoded and might not be valid UTF-8 string.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4072>

2023-02-21 20:13:57 -0700  James Hilliard <james.hilliard1@gmail.com>

	* gst/gstbuffer.c:
	  buffer: fix copy meta reference debug log formatting
	  Fixes the following valgrind error:
	  ==616== Conditional jump or move depends on uninitialised value(s)
	  ==616==    at 0x4900E34: gst_debug_print_object (gstinfo.c:1143)
	  ==616==    by 0x49010B6: gst_info_printf_pointer_extension_func (gstinfo.c:1215)
	  ==616==    by 0x4959FDB: __gst_printf_pointer_extension_serialize (printf-extension.c:47)
	  ==616==    by 0x495A487: printf_postprocess_args (vasnprintf.c:258)
	  ==616==    by 0x495A52C: __gst_vasnprintf (vasnprintf.c:290)
	  ==616==    by 0x4959F8F: __gst_vasprintf (printf.c:154)
	  ==616==    by 0x4901C1F: gst_debug_message_get (gstinfo.c:791)
	  ==616==    by 0x4901C75: _gst_debug_log_preamble (gstinfo.c:1431)
	  ==616==    by 0x4903208: gst_debug_log_default (gstinfo.c:1575)
	  ==616==    by 0x49020BA: gst_debug_log_full_valist (gstinfo.c:624)
	  ==616==    by 0x490211D: gst_debug_log_valist (gstinfo.c:656)
	  ==616==    by 0x49021AD: gst_debug_log (gstinfo.c:533)
	  ==616==    by 0x48DDC11: gst_buffer_copy_into (gstbuffer.c:693)
	  ==616==    by 0x48DF5F1: gst_buffer_copy_with_flags (gstbuffer.c:727)
	  ==616==    by 0x48DF640: gst_buffer_copy_deep (gstbuffer.c:756)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4038>

2023-02-22 11:51:58 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/fur.po:
	  gstreamer: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4041>

2023-02-09 13:53:48 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/gstpad.c:
	  pad: Don't leak user_data in gst_pad_start_task
	  When the task already exists, we forgot to free the passed `user_data`.
	  This wasn't an issue for most C code, which doesn't pass a
	  `GDestroyNotify`, but bindings such as gstreamer-rs do!
	  That said, allocating a trampoline in gstreamer-rs just for it to get
	  thrown away again is awkward. Maybe we need a `gst_pad_resume_task`?
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3925>

2023-02-07 13:43:06 +0000  medithe <medithe@gmx.at>

	* gst/gstbin.c:
	  gstreamer: bin: Don't unlock unlocked mutex in gst_bin_remove_func()
	  Calling `g_mutex_unlock(mutex)` leads to an undefined behavior if the
	  mutex is not locked by the current thread.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3910>

2023-01-27 19:29:24 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* libs/gst/base/gstbasesrc.h:
	  BaseSrc: fix transfer annotation for fixate virtual method
	  The fixate virtual method has the same semantics as gst_caps_fixate(),
	  so the caps parameter must be marked as (transfer full).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3839>

2023-01-26 15:42:18 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* libs/gst/base/gstbasesrc.h:
	* libs/gst/base/gstpushsrc.h:
	  BaseSrc, PushSrc: add nullable annotations to virtual methods
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3833>

2023-01-26 10:33:26 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: Warn about the right segment's format
	  We were checking the head segment here, not the current segment.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3819>

2020-09-02 17:59:30 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* libs/gst/base/gstaggregator.c:
	  aggregator: Always lock aggpad around update_time_level
	  `aggpad->segment` is protected by the `aggpad`'s object lock. We need to
	  take the lock before calling `update_time_level`.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3819>

2023-01-25 13:26:08 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gsttypefind.c:
	  gst: Fix gst_type_find_peek() return value annotation
	  It's not possible to annotate a in-parameter for a return value array as
	  the array length. Both are assumed to have the same direction and the
	  current annotation causes the size parameter to be considered an out
	  parameter.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3814>

2023-01-23 17:26:07 +0100  Edward Hervey <edward@centricular.com>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: Handle use-interleave latency live pipelines
	  Due to the dynamic nature of multiqueue, when `use-interleave` is used we can't
	  report a maximum tolerated latency (when queried) since it is calculated
	  dynamically.
	  When in such live pipelines, we need to make sure multiqueue can handle the
	  lowest global latency (provided by this event). Failure to do that would
	  result in not providing enough buffering for a realtime pipeline.
	  Fixes #1732
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3810>

2023-01-25 16:46:42 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development

=== release 1.22.0 ===

2023-01-23 19:29:34 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2023-01-23 16:27:36 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/bg.po:
	* po/de.po:
	* po/es.po:
	* po/hr.po:
	* po/id.po:
	* po/nb.po:
	* po/pl.po:
	* po/ro.po:
	* po/ru.po:
	* po/uk.po:
	* po/zh_CN.po:
	  gstreamer: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773>

2023-01-19 16:01:21 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstquery.c:
	  gst: Mark caps parameters in ALLOCATION query API as nullable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3752>

2023-01-18 16:07:39 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* plugins/elements/gstinputselector.c:
	  input-selector: Take the object lock while iterating sinkpads
	  Otherwise we can race with pad removal and crash from use-after-free.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1717
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3745>

=== release 1.21.90 ===

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

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

2023-01-11 15:40:49 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/LINGUAS:
	* 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/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/3711>

2023-01-11 14:53:39 +0000  Tim-Philipp Müller <tim@centricular.com>

	* scripts/dist-translations.py:
	* scripts/meson.build:
	  Fix translation pot files when creating dist tarballs
	  Add version as per Translation Project requirements and
	  also add a .pot file without the ABI suffix.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711>

2023-01-11 12:17:13 +0200  Sebastian Dröge <sebastian@centricular.com>

	* tools/gst-inspect.c:
	* tools/gst-launch.c:
	* tools/gst-typefind.c:
	  tools: Use `gst_macos_main()` on macOS
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1673
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3709>

2023-01-04 21:37:55 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/meson.build:
	  docs: explicitly declare gir build dependencies
	  As the path to the gir file is passed to hotdoc.generate_doc() and
	  not the build target itself, meson doesn't know about the dependency.
	  In turn, as the CI doesn't build everything before building the
	  documentation target, some gir files might not exist, for instance
	  in the case of gst-rtsp-server, causing the output documentation to
	  be empty.
	  The error occurred silently because hotdoc accepts wildcards for
	  *-sources arguments, thus it won't warn about a missing gir file as
	  it is legitimate for glob matching to resolve to nothing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3686>

2022-12-29 18:16:31 +0000  Philippe Normand <philn@igalia.com>

	* gst/gstevent.c:
	  event: Fix gst_event_parse_stream_collection annotation
	  The output parameter ownership is passed to the caller.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3659>

2022-12-28 17:42:31 +0000  Philippe Normand <philn@igalia.com>

	* tests/check/gst/gstelement.c:
	  tests: gstelement: Fix test_add_pad_while_paused flakiness
	  `gst_element_remove_pad()` doesn't automatically deactivate the pad, it has to
	  be done explicitly beforehand, otherwise the pad task might be left dangling,
	  exposed to undefined behaviour.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3653>

2019-05-04 03:54:44 +0200  Alicia Boya García <aboya@igalia.com>

	* gst/gstelement.c:
	* tests/check/gst/gstelement.c:
	  gstelement: fix deadlock in gst_element_add_pad() when >=PAUSED
	  gst_element_add_pad() is supposed to activate the pad if the element
	  state is >= PAUSED and the pad is not already active.
	  Unfortunately, before this patch, the activation was performed while the
	  element lock was still taken, which ended causing a deadlock in
	  gst_pad_start_task() as it attempted to post `stream-status` message in
	  the element, which also requires the element lock.
	  Elements could work around this bug by activating the pad manually
	  before adding it to the element.
	  This patch fixes the problem by performing pad activation only after the
	  element lock has been released.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3635>

2022-12-14 23:30:54 +0200  Mart Raudsepp <mart.raudsepp@globalm.media>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: Fix potential deadlock with parallel release_pad calls
	  Commit d3a66f9851ea introduced a potential deadlock with two parallel release_pad
	  calls, where one could release the main multiqueue lock (qlock) while still
	  holding the reconf_lock and then calling other routines which in some conditions
	  may try to acquire qlock again. The second release_pad could already acquire the
	  qlock and then start waiting on reconf_lock, which may never be possible because
	  because the first one isn't releasing it until it can acquire qlock.
	  Fix it by holding reconf_lock for the whole durationg of qlock, making this
	  particular deadlock impossible.
	  Fixes #1642
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3571>

2022-12-20 03:54:46 +0900  Hiero32 <unnoh@tkd.att.ne.jp>

	* plugins/elements/gstfdsink.c:
	* plugins/elements/gstfdsrc.c:
	  fdsrc,fdsink: Set binary mode on FD
	  Default mode of STD handles on Windows is text mode, and OS will
	  insert CRLF sequence by default.
	  Co-authored-by: Seungha Yang <seungha@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3070>

2022-12-20 03:51:45 +0900  Hiero32 <unnoh@tkd.att.ne.jp>

	* plugins/elements/gstcoreelementselements.h:
	* plugins/elements/gstcoreelementsplugin.c:
	* plugins/elements/gstelements_private.c:
	* plugins/elements/gstfdsink.c:
	* plugins/elements/gstfdsrc.c:
	  coreelements: Use G_OS_WIN32 macro
	  * HAVE_WIN32 is not defined elsewhere
	  * Enables fdsrc/fdsink for MinGW build as well
	  Co-authored-by: Seungha Yang <seungha@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3070>

2022-12-13 08:58:43 -0500  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/gstconfig.h.in:
	* libs/gst/check/libcheck/meson.build:
	* meson.build:
	  Fix API visibility macros
	  This copies the logic from GLib discussed there:
	  https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2936
	  Beside being simpler, it also fix all public symbols being annotated
	  with dllexport when doing a static build, as discovered there:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3540#note_1678335
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3567>

2022-12-17 00:36:49 +0000  Mathieu Duponchelle <mathieu@centricular.com>

	* libs/gst/base/gstbasesrc.c:
	  basesrc: respect FIXED_CAPS flag in caps query implementation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3590>

2022-07-28 00:43:42 +0900  Hosang Lee <hosang10.lee@lge.com>

	* gst/gststreams.c:
	* tests/check/gst/gststream.c:
	  gst: handle combinations in gst_stream_type_get_name()
	  This should handle the majority of the valid stream cases.
	  The element setting the stream type may set each type separately.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2804>

2022-12-13 18:42:11 +0100  Piotr Brzeziński <piotr@centricular.com>

	* gst/gst.h:
	* gst/gstmacos.h:
	* gst/gstmacos.m:
	* gst/meson.build:
	* meson.build:
	  macos: Add wrapper API to run a NSApplication in the main thread
	  On macOS, a Cocoa event loop is needed in the main thread to ensure
	  things like opening a GL window work correctly. In the past, this was
	  patched into glib via Cerbero, but that prevented us from updating it.
	  This workaround simply runs an NSApplication and then calls the
	  main function on a secondary thread, allowing GStreamer to correctly
	  display windows and/or system permission prompts, for example.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3532>

2022-12-12 11:34:51 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstsystemclock.c:
	* meson.build:
	  systemclock: Use `futex_time64` syscall if available (32-bit systems) and use correct `struct timespec` definition
	  See also https://gitlab.gnome.org/GNOME/glib/-/issues/2634
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1648
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3561>

2020-08-15 12:53:13 +0000  sezanzeb <to.213692@protonmail.ch>

	* gst/gst.c:
	  gst_init: Removed wrong warning in docstring
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3562>

2022-12-07 21:57:31 +0000  Hugo Svirak <hugosvirak@gmail.com>

	* gst/gstbuffer.c:
	* gst/gstbuffer.h:
	* gst/gstmemory.c:
	* gst/gstmemory.h:
	* gst/gstminiobject.c:
	  docs: specify possibility of a NULL return
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3546>

2022-12-10 11:33:38 +0000  Tim-Philipp Müller <tim@centricular.com>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: update for renamed log id macros
	  See #1635.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3553>

2022-12-10 11:32:25 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/gstinfo.h:
	  info: rename new log macros from GST_*_OBJECT_ID -> GST_*_ID
	  Fixes #1635
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3553>

2022-12-10 03:54:23 +1100  Jan Schmidt <jan@centricular.com>

	* gst/gstplugin.c:
	  gstplugin: Handle static plugins in gst_plugin_load_by_name()
	  gst_plugin_load_by_name() assumed a plugin has a filename,
	  which isn't true for static plugins, leading to criticals.
	  If a plugin is already loaded, just return the loaded plugin,
	  which makes it work for static plugins as well as saving a
	  moment for already-loaded dynamic plugins.
	  Add locking in gst_plugin_is_loaded(), as a plugin may be
	  still being loaded in another thread.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3552>

2022-12-07 11:49:40 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  meson: fix check for pthread_setname_np()
	  Need to define _GNU_SOURCE.
	  Fixes #1542
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3538>

2022-11-29 15:12:51 +0100  Edward Hervey <edward@centricular.com>

	* gst/gstinfo.c:
	  gstinfo: Minor modification to avoid gst-indent pain
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3483>

2022-11-29 10:03:14 +0100  Edward Hervey <edward@centricular.com>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: Use new id-based debugging methods
	  Clarifies the debug logs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3483>

2022-11-29 09:37:00 +0100  Edward Hervey <edward@centricular.com>

	  gstinfo: Allow passing a string identifier for debugging
	  This adds "id" variants to most debugging functions, and allows providing a
	  string identifier instead of a GObject.
	  This allows providing unified and clearer debug logs for all the
	  non-gobject-based items, and opens the way for more unified logging.
	  As an extension, copying the object name is avoided as much as possible, by
	  using it directly instead of going through another copy.
	  * API : gst_debug_message_get_object_id
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3483>

2022-12-05 02:29:08 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development

=== release 1.21.3 ===

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

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

2022-12-04 12:25:41 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* docs/random/ChangeLog-0.8:
	* docs/random/old/ChangeLog.gst-plugins:
	* docs/random/old/ChangeLog.gstreamer:
	  Remove ChangeLog files from git repository
	  This information is tracked fully in the git repository, so
	  no point having the ChangeLog duplicate it, and it interferes
	  with grepping the repository.
	  We are going to create the ChangeLogs on the fly when generating
	  tarballs going forward (with a limited history), since it's still
	  valuable for tarball consumers to be able to easily see a list of
	  recent changes.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/73
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3521>

2022-11-07 00:10:39 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	* scripts/gen-changelog.py:
	  meson: Generate ChangeLog files for release tarballs on dist
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3521>

2022-11-30 16:16:53 +0100  Edward Hervey <edward@centricular.com>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: Handle gapless with flushing
	  Don't reset the stream-start group-id when stop/pausing single queues. They are
	  only resetted when re-used (in READY->PAUSED).
	  Fixes #1586
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3487>

2022-12-01 08:16:45 +0100  Edward Hervey <edward@centricular.com>

	* gst/gstinfo.c:
	  gstinfo: Optimize color escape code creation
	  When coloring is in use, those escape codes are going to be created many times
	  for almost all debug lines.
	  Don't create plenty of temporary allocations, and instead build the escape code
	  ourselves statically
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3498>

2022-11-30 09:59:09 +0100  Edward Hervey <edward@centricular.com>

	* tools/gst-inspect.c:
	  gst-inspect: Don't leak list
	  Just iterate the list instead of trying to be smart...
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3497>

2022-10-24 18:02:27 +0300  Vivia Nikolaidou <vivia@ahiru.eu>

	* docs/plugins/gst_plugins_cache.json:
	* plugins/elements/gstinputselector.c:
	* plugins/elements/gstinputselector.h:
	  inputselector: Add drop-backwards property
	  When sync-streams=true, drop backwards buffers on pad switch.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3256>

2022-10-24 16:49:47 +0300  Vivia Nikolaidou <vivia@ahiru.eu>

	* plugins/elements/gstinputselector.c:
	* plugins/elements/gstinputselector.h:
	  inputselector: Fix waiting on sync-mode=clock
	  Basically copy over what clocksync does, but taking into account that we
	  have multiple upstream latencies.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3256>

2022-11-19 02:04:13 +1100  Jan Schmidt <jan@centricular.com>

	* gst/gstevent.c:
	  event: Add transfer none annotation to gst_event_new_stream_collection()
	  Update the documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3387>

2022-11-11 22:57:38 +1100  Jan Schmidt <jan@centricular.com>

	* gst/gstevent.c:
	* gst/gstevent.h:
	* gst/gstpad.c:
	* tests/check/gst/gstpad.c:
	  pad: Fix sticky event ordering for instant-rate-change
	  The event type for instant-rate-change events was poorly chosen,
	  leading to them being re-sent too late and even after EOS.
	  Add a mechanism in GstPad for the sticky event order to be
	  different to the value of the event type to fix that up.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3387>

2022-11-18 16:57:16 +0100  Célestin Marot <c.marot@intopix.com>

	* plugins/elements/gstfakesrc.c:
	  fakesrc: avoid time overflow with datarate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3433>

2022-09-01 18:57:58 +0100  Colin Kinloch <colin.kinloch@collabora.com>

	* gst/gstvalue.c:
	  gst: serialization of GLibDateTime
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2980>

2022-11-18 14:24:30 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* libs/gst/base/gstaggregator.c:
	* libs/gst/base/gstaggregator.h:
	* tests/check/libs/aggregator.c:
	  aggregator: Implement force_live API
	  Setting force_live lets aggregator behave as if it had at least one of
	  its sinks connected to a live source, which should let us get rid of the
	  fake live test source hack that is probably present in dozens of
	  applications by now.
	  + Expose API for subclasses to set and get force_live
	  + Expose force-live properties in GstVideoAggregator and GstAudioAggregator
	  + Adds a simple test
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3008>

2022-09-28 03:08:39 +1000  Jan Schmidt <jan@centricular.com>

	* plugins/elements/gstmultiqueue.c:
	* plugins/elements/gstmultiqueue.h:
	  multiqueue: Protect reconfiguration with a lock
	  Add a lock to prevent overlapping of request and release
	  pads, to close a race where multiqueue might try and
	  add a slot with an id that hasn't quite finished being
	  removed yet by another thread.
	  Fix for https://gitlab.freedesktop.org/bilboed/gstreamer/-/issues/5
	  and https://gitlab.freedesktop.org/bilboed/gstreamer/-/issues/11
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-07-21 15:26:14 +0200  Edward Hervey <edward@centricular.com>

	* plugins/elements/gstmultiqueue.c:
	  multiqueue: Handle gapless input
	  When dealing with gapless input (i.e. streams with changing group-id in
	  GST_EVENT_STREAM_START), we need to take into account the elapsed
	  running-time (if applicable) in order to properly calculate levels and output
	  time. Without doing this all incoming data from future groups would be
	  considered as being "late" and would be consumed immediately.
	  This does **NOT** modify the actual segment and buffer times, and is only used
	  internally.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-27 14:30:30 +0200  Edward Hervey <edward@centricular.com>

	* gst/gstpad.c:
	  urisourcebin: Remove pending pad handling
	  This was needed to support the legacy handling of changing streams (add new
	  pads, send EOS and remove old pads).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-15 19:14:14 +0200  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/base/gsttypefindhelper.c:
	  typefindhelper: Fix docs/annotations for the new functions
	  Follow-up for https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3296
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3418>

2022-11-09 16:57:15 -0300  Thibault Saunier <tsaunier@igalia.com>

	* tools/gst-inspect.c:
	  inspect: Print default value of ValueArray properties
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3377>

2022-10-31 19:09:06 +0530  Sanchayan Maity <sanchayan@asymptotic.io>

	* libs/gst/base/gsttypefindhelper.c:
	  typefindhelper: Use the new GstTypeFind * API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3296>

2022-10-31 18:33:19 +0530  Sanchayan Maity <sanchayan@asymptotic.io>

	* libs/gst/base/gsttypefindhelper.c:
	* libs/gst/base/gsttypefindhelper.h:
	  typefindhelper: Introduce a new API for working with a GstTypeFind *
	  Introduce a new API that can return a GstTypeFind * with helper functions
	  and data set around buffer data.
	  While at it, drop factory field from GstTypeFindBufHelper. While it was
	  useful for logging, it was not passed through function arguments and keeping
	  it for logging would require an additional API increasing the API surface
	  and making it harder to use.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3296>

2022-11-15 14:45:56 +0530  Sanchayan Maity <sanchayan@asymptotic.io>

	* libs/gst/base/gsttypefindhelper.c:
	* libs/gst/base/gsttypefindhelper.h:
	  typefindhelper: Add helpers to improve type finding given the caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3296>

2022-10-30 13:07:14 +0530  Sanchayan Maity <sanchayan@asymptotic.io>

	* libs/gst/base/gsttypefindhelper.c:
	  typefindhelper: Update annotation for function parameters
	  Fix the nullable/optional situation. allow-none is deprecated and
	  replaced by either or both of the others.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3296>

2022-11-12 09:57:18 +0100  Edward Hervey <edward@centricular.com>

	* gst/gststreams.c:
	  streams: Reset stream id field on finalize
	  If debugging is activated, the parent class finalize might attempt to read it
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

2022-11-09 09:28:37 +0100  Edward Hervey <edward@centricular.com>

	* gst/gstchildproxy.c:
	  childproxy: Fix documentation
	  Warning: Gst: gst_child_proxy_get_child_by_name_recurse: unknown parameter
	  'parent' in documentation comment, should be 'child_proxy'
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3370>

2022-11-08 17:45:37 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstallocator.c:
	  allocator: Switch `allow-none` annotations to `nullable` / `optional`
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3364>

2022-11-08 17:44:54 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/gstallocator.c:
	  allocator: Copy allocator name in gst_allocator_register()
	  The parameter is not marked as `transfer full` and stays around in the
	  hash table, so we will have to copy it ourselves.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3364>

2022-11-08 08:56:47 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* plugins/tracers/gstlatency.c:
	  tracers: latency: document the 'reported' flag
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3359>

2022-11-08 02:08:08 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.21.2 ===

2022-11-07 23:53:59 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2022-11-07 23:53:57 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Update ChangeLogs for 1.21.2

2022-11-07 09:27:09 -0500  Xavier Claessens <xavier.claessens@collabora.com>

	* docs/meson.build:
	  hotdoc: gst-hotdoc-plugins-scanner is not needed for libraries
	  Meson >= 0.64.0 does not allow any more to add executables into
	  hotdoc.generate_doc(..., dependencies: ...) and it should not be needed
	  any way.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3352>

2020-09-01 16:01:08 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* tests/check/gst/gstinfo.c:
	  tests: gstinfo: Test set_threshold_from_string's new reset behavior
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/605>

2020-08-22 23:42:40 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* tests/check/gst/gstinfo.c:
	  tests: gstinfo: Make logging tests pass when GST_DEBUG is set
	  Use gst_debug_set_threshold_from_string's new reset behavior to undo
	  GST_DEBUG and ensure the logging tests have a known configuration.
	  `gst_debug_set_threshold_from_string ("LOG", TRUE)` has the same effect
	  as `gst_debug_set_threshold_from_string ("", TRUE)` followed by
	  `gst_debug_set_default_threshold (GST_LEVEL_LOG)`.
	  Don't bother remembering the default log level set when the test
	  started. It will get reset by the next test, anyway.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/605>

2020-08-22 22:41:15 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/gstinfo.c:
	  info: Reset patterns with set_threshold_from_string
	  TLDR: Make `gst_set_threshold_from_string ("", TRUE)` reset *all*
	  threshold settings, including those set by previous invocations of
	  `gst_debug_set_threshold_from_string`.
	  The docs say:
	  @reset: %TRUE to clear all previously-set debug levels before setting
	  new thresholds
	  What actually happens is it sets the default threshold to `ERROR`,
	  leaves the patterns in place and calls
	  `gst_debug_category_reset_threshold` on each category.
	  In effect, any category that is matched by a pattern gets reset to that
	  threshold if the app changed it by directly invoking
	  `gst_debug_category_set_threshold`. All other categories are reset to
	  `ERROR`.
	  In my opinion this parameter currently has little value, as the same
	  effect can be achieved by including `ERROR` (without a pattern) in the
	  string, as in `"foo*:WARNING,*bar:INFO,ERROR"`.
	  What I actually expect it to do is reset *all* threshold settings,
	  including those set by previous invocations of
	  `gst_debug_set_threshold_from_string`, starting off with a clean slate
	  for the patterns provided with the call.
	  Otherwise there is no API to do this, besides:
	  - Painfully removing patterns one-by-one via
	  `gst_debug_unset_threshold_for_name` *if* you know what the patterns
	  are.
	  - Adding a `*:FOO` pattern to affect all categories, which makes the
	  default threshold useless and practically leaks all the old
	  patterns.
	  In my opinion this also makes it fit better into the layers of threshold
	  config, which is:
	  1. Temporary:
	  - `gst_debug_category_set_threshold`
	  - `gst_debug_category_reset_threshold`
	  2. Patterns:
	  - `gst_debug_set_threshold_for_name`
	  - `gst_debug_unset_threshold_for_name`
	  - `gst_debug_set_threshold_from_string`
	  - `GST_DEBUG`
	  3. Default:
	  - `gst_debug_set_default_threshold`
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/605>

2022-09-21 10:05:05 +0200  Edward Hervey <edward@centricular.com>

	* gst/gstpad.c:
	  gstpad: Avoid race in (un)setting EOS flag on sinkpads
	  The scenario is the following:
	  * Thread 1 is pushing an EOS event on a sinkpad
	  * Thread 2 is pushing a STREAM_START event on the same sinkpad before Thread 1
	  returns. Note : It starts pushing the event after Thread 1 took the object lock.
	  There is a potential race between:
	  * The moment Thread 1 sets the EOS flag once it has finished sending the
	  event (via store_sticky_event). When it does that it has both the STREAM and
	  OBJECT lock
	  * The moment Thread 2 sends the STREAM_START event (Which should release that
	  EOS status), but removing the EOS flag is only done while holding the OBJECT
	  lock and not the STREAM_LOCK, which means it could be re-set by Thread 1 before
	  it then checks again the EOS flag (without the STREAM lock taken).
	  The EOS flag unsetting by STREAM_START should be done with the STREAM lock
	  taken, otherwise it will be racy.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1452
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3320>

2022-11-06 18:10:44 +0000  Tim-Philipp Müller <tim@centricular.com>

	* tools/gst-inspect.c:
	  gst-inspect: print doc urls for Rust plugins
	  We have documentation for them now after all.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3346>

2022-11-05 00:06:25 +0000  Tim-Philipp Müller <tim@centricular.com>

	* plugins/elements/gstidentity.c:
	  identity: fix "handoff" signal docs
	  The docs list an extra pad argument, which doesn't
	  match the actual signal function signature. Probably
	  a copy'n'paste mistake when copying things from fakesink.
	  Fixes #1546
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3337>

2022-10-24 12:13:14 +0200  Edward Hervey <edward@centricular.com>

	* gst/gstpad.c:
	  gstpad: Fix non-serialized sticky event push
	  With non-serialized sticky events, such as GST_EVENT_INSTANT_RATE, we both want
	  to store the event (for later re-linking) *AND* push the event in a non-blocking
	  way.
	  We therefore must *not* propagate pending sticky events if the event is "sticky
	  or serialized" but only if it's "serialized"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3254>

2022-08-17 22:34:35 -0600  Michael Gruner <michael.gruner@ridgerun.com>

	* gst/parse/grammar.y.in:
	  parse: do delayed set only if the target child was not found and fail otherwise
	  When using the child proxy notation (child::property=value) it may
	  happen that the target child does not exist at the time of parsing
	  (i.e: decodebin creates the encoder according to the contents of the
	  stream). On this cases, we want to delay the setting of the property
	  to later, when new elements are added. Previous logic performed a
	  delayed set even if the target child was found but the property
	  was not found in it. This should be treated as a failure because,
	  unlike missing elements, properties should not appear dynamically.
	  By not failing, typos in property names may go unnoticed to the end
	  user.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2908>

2022-10-18 18:15:12 +0200  Michael Gruner <michael.gruner@ridgerun.com>

	* gst/gstchildproxy.c:
	* gst/gstchildproxy.h:
	  childproxy: Implement a new ::get_child_by_name_recurse() API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2908>

2022-10-27 15:13:36 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/base/gstaggregator.c:
	* libs/gst/base/gstbaseparse.c:
	  core/base: Only post latency messages if the latency values have actually changed
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1525
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3282>

2022-10-27 11:18:24 +0200  Edward Hervey <edward@centricular.com>

	* plugins/elements/gstconcat.c:
	  concat: Properly propagate EOS seqnum
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3284>

2022-10-25 09:39:07 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/gsturi.c:
	* libs/gst/net/gstnettimepacket.c:
	* libs/gst/net/gstntppacket.c:
	  Fix various warnings from gobject-introspection
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3261>

2022-10-22 01:43:22 +0900  Seungha Yang <seungha@centricular.com>

	* tools/gst-inspect.c:
	  gst-inspect: Hide GST_PARAM_DOC_SHOW_DEFAULT flag
	  It's known flag but only for documentation purpose. Don't show
	  its (and user cannot understand) value 0x2000
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3241>

2022-10-22 18:34:14 +0300  Sebastian Dröge <sebastian@centricular.com>

	* libs/gst/net/gstnetclientclock.c:
	  net: Add missing nullable annotation on the name parameter in the net/NTP clock constructors
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3249>

2022-10-22 22:04:57 +0900  Seungha Yang <seungha@centricular.com>

	* gst/gstpadtemplate.c:
	  padtemplate: Fix annotations
	  gst_caps_replace() does not take ownership of the new caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3248>

2022-10-22 05:29:59 +0900  Seungha Yang <seungha@centricular.com>

	* tools/gst-inspect.c:
	  gst-inspect: Don't print link to doc if it's known to be unavailable
	  "gst_element_factory_get_skip_documentation() == true" means
	  documentation was intentionally skipped for the element feature
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3243>

2022-10-21 11:47:11 +0200  François Laignel <fengalin@free.fr>

	* gst/gstquery.c:
	  gst: uri query: fix inconsistent `uri` nullability  assertion
	  Functions `gst_query_set_uri` and `gst_query_set_uri_redirection`
	  can both set a `NULL` `uri`, as annotated in the documentation.
	  However the functions bodies reject `NULL` `uri`s.
	  See [1] for a discussion on that matter.
	  [1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1134#note_1600988
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3237>

2022-10-21 11:11:13 +0200  Thibault Saunier <tsaunier@igalia.com>

	* docs/gst-hotdoc-plugins-scanner.c:
