=== release 1.24.3 ===

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

	* NEWS:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.24.3

2024-04-25 15:21:20 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/gstexiftag.c:
	  exiftag: Prevent integer overflows and out of bounds reads when handling undefined tags
	  Fixes ZDI-CAN-23896
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3483
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6768>

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

	* gst/playback/gstplaybin3.c:
	  playbin3: Handle combiner update in case of errors
	  The assertion that was present before is a bit too harsh, since there is now
	  a (understandable) use-case where this could happen.
	  In gapless use-case, with two files containing the same type (ex:audio). The
	  first one *does* expose a collection with an audio stream, but decoding
	  fails (for whatever reason).
	  That would cause us to have configured a audio combiner, which was never
	  used (i.e. not active).
	  Then the second file plays and we (wrongly) assume it should be activated
	  ... whereas the combiner was indeed present.
	  Demote the assertion to a warning and properly handle it
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3389
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6742>

2024-04-22 16:05:29 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Remove custom stream-start field if present
	  This field is added by urisourcebin so that we can avoid double-parsing. It's no
	  longer needed after.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6716>

2024-04-19 11:31:54 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin2: Adaptive demuxers don't require another parsebin
	  By setting the same field on the GST_EVENT_STREAM_START decodebin3 will be able
	  to avoid plugging in an extra parsebin
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6716>

2024-04-14 11:55:56 -0400  F. Duncanh <fduncanh@gmail.com>

	* sys/ximage/ximagesink.c:
	  ximagesink: initialize mask for XISelectEvents
	  Fixes #3470
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6654>

2024-04-10 14:58:54 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  glcolorconvert: don't overread the end of an array
	  Reverse index iteration needs a - 1 for the initial value.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6605>

2024-04-03 20:35:06 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  glcolorconvert: remove unused swizzling using "rgba" chars
	  We use indices now instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6605>

2024-04-10 07:22:36 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Ensure non-time subtitle streams get "parsed"
	  Since https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6153 ,
	  subtitle "decoders" (i.e. which decode to raw text) are no longer auto-plugged
	  by parsebin.
	  But if a given format does not have a parser at all, we would end up outputting
	  non-time/non-parsed outputs.
	  In order to mitigate the issue, until such parsers are available, we check if
	  the subtitle stream is in TIME format or not (i.e. whether it comes from a
	  parser or demuxer). If not, we attempt to plug in a subtitle "decoder".
	  Fixes #3463
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6597>

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-plugins-base.doap:
	* meson.build:
	  Release 1.24.2

2024-04-01 14:31:49 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefind: Handle WavPack block sizes > 131072
	  These are valid nowadays.
	  Also handle ID_ODD_SIZE and ID_WVX_NEW_BITSTREAM. The parser already
	  handles the former but not the latter.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3440
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6541>

2024-04-02 16:53:26 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/descriptions.c:
	  pbutils: descriptions: Don't warn on MPEG-1 audio caps without layer field
	  While this is not ideal and won't give too accurate codec descriptions,
	  it is what tsdemux produces.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6538>

2024-04-02 12:35:37 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/cocoa/gstglcaopengllayer.m:
	  glcaopengllayer: NULL some fields when freed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6524>

2024-04-02 12:34:16 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
	  glwindow/cocoa: keep a window reference across an async callback
	  Esnures that the window is alive when the callback is fired.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6524>

2024-04-02 12:27:13 +1100  Matthew Waters <matthew@centricular.com>

	* ext/gl/gstglimagesink.c:
	  glimagesink: avoid a possible critical on shutdown
	  It is possible that the close callback can be called after glimagesink
	  is changing state to NULL.  Protect against that by taking the glimagesink
	  lock and some NULL checking.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6524>

2024-04-02 12:25:08 +1100  Matthew Waters <matthew@centricular.com>

	* ext/gl/gstglimagesink.c:
	  glimagesink: unref the potential last ref outside of the glimagesink lock
	  Avoids a deadlock between the state change removing the last ref and
	  the destructer calling the window's on_close handler and trying to
	  take the glimagesink lock.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6524>

2024-04-02 12:22:33 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglbufferpool.c:
	  glbufferpool: protect release_buffer from multiple concurrent access
	  If two different threads attempt to release buffers at the same time, then the
	  keep-alive-slightly-longer GQueue may become corrupted.  Guard against that with
	  some locking.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6524>

2024-04-02 12:17:50 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m:
	  gl/context/cocoa: ensure pixel format lives as long as the context
	  Under some circumstances, the CGLPixelFormatObj was being destroyed too
	  early which could lead to potential use-after-frees.
	  Fix by returning a reference when asked for the pixel format.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3154
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6524>

2024-04-01 18:00:53 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst/videorate/gstvideorate.c:
	* tests/check/elements/videorate.c:
	  videorate: Reset last_ts when a new segment is received
	  This fix all buffers being droped when a new segment is received and
	  average-period property is set.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6522>

2024-04-01 14:26:11 +0900  Chao Guo <chao.guo@nxp.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  glcolorconvert: Ensure glcolorconvert does not miss supported RGB formats
	  Add RGB16 and other RGB formats to rgb_formats to ensure glcolorconvert
	  does not miss the RGB formats it supports
	  Signed-off-by: Chao Guo <chao.guo@nxp.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6517>

2024-03-29 12:30:28 +0900  Hou Qi <qi.hou@nxp.com>

	* gst/encoding/gstencodebasebin.c:
	  encodebin: Add the parser before timestamper to tosync list
	  Also need to sync the state of the parser before timestamper with
	  parent.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6486>

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-plugins-base.doap:
	* meson.build:
	  Release 1.24.1

2024-03-19 09:32:39 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Don't hold lock when posting messages or signals
	  There's a very good chance that the receiver might react on those synchronously
	  and call back into uridecodebin3 (ex: for setting the next URI).
	  Make sure we release the lock if we need to do that.
	  Fixes #3400
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6403>

2024-03-18 08:47:18 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Handle potential double redirection errors
	  Some elements (like qtdemux) might post a redirection error message twice. We
	  only want to handle it once.
	  Fixes #3390
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6394>

2024-03-13 12:49:41 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/audio/gstaudiobasesink.c:
	  Revert "audiobasesink: Don't wait on gap events"
	  This reverts commit 8e923a8e2d7d9391554371045cfe4d0e2d8d0c7a.
	  This caused regressions, see #3303.
	  Without this commit, osxaudiosrc ! osxaudiosink won't work
	  right, but since that hasn't really been a huge problem
	  for years it's probably best to revert this until a proper
	  solution can be figured out.
	  (cherry picked from commit f04f86f3ee4f9eccfd72f473b8ff848161576a90)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6384>

2024-03-14 09:27:10 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Post error messages if there are no streams to output
	  This could happen because:
	  * No streams were selected
	  * Or we end up with no stream selected
	  Also post a warning message if we are missing plugins but there are other
	  streams to output
	  Fixes #3360
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6377>

2024-03-12 16:36:36 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Remove failing stream from active selection also
	  It gets added in get_output_slot()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6377>

2024-03-11 13:27:09 +0100  Thomas Klausner <wiz@gatalith.at>

	* gst-libs/gst/allocators/gstshmallocator.c:
	  shmallocator: fix build on Illumos
	  Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3370
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6362>

2024-03-11 18:30:08 +0100  Piotr Brzeziński <piotr@centricular.com>

	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
	  audiovisualizer: Don't wrap temporary memory in buffers
	  Avoids potentially ending up with the buffermemory pointing to already-freed or reused addresses.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6339>

2024-03-11 13:14:51 +0100  Piotr Brzeziński <piotr@centricular.com>

	* gst-libs/gst/audio/gstaudioencoder.c:
	  audioencoder: Avoid wrapping temporarily mapped memory with a GstBuffer and passing that to subclass
	  Memory from gst_adapter_map() could live shorter than the GstMemory that the GstBuffer wraps around it, which in lucky
	  cases 'just' caused a re-use of the same memory for multiple (potentially still in use!) input buffers, but could easily
	  end up pointing to an already-freed memory.
	  Manifested when an AudioToolbox encoder kept getting silence inserted in seemingly random circumstances, turned out
	  to be the memory being re-used by GStreamer at the same time that the AT API was processing it...
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6339>

2024-03-11 11:56:51 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Do not propose allocators with sysmem
	  None of the GL allocators actually offer a generic alloc() implementation. As a
	  side effect, they cannot be offered as they don't work with generic video
	  buffer pool.
	  Our specialized buffer pool can be dropped by tee or alphacombine as sharing the
	  same buffer pool over two branch is not supported by the pool API.
	  Fixes #3372
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6350>

2024-03-11 15:58:53 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstplaybin3.c:
	  playbin3: Remove un-needed URI NULL check
	  This will mimic the playbin2 behaviour, which sets the "next" entry to be
	  NULL.
	  The biggest impact this has is that when going back to READY the current play
	  entry will be discarded (instead of being kept around for when you go back to
	  PAUSED/PLAYING).
	  Fixes #3371
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6338>

2024-03-06 09:48:43 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Handle race switching on pending streams
	  find_slot_for_stream_id() will return a slot which has the request stream-id as
	  active_stream *or* pending_stream (i.e. the slot on which that stream is
	  currently being outputted or will be outputted).
	  When figuring out which slot to use (if any) we want to consider stream-id
	  which *will* appear on a given slot which isn't outputting anything yet the same
	  way as if we didn't find a slot yet.
	  Fixes races when doing intensive state changes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6332>

2024-03-04 15:59:14 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Clear select streams seqnum when resetting
	  At this point there's definitely no pending select streams
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6332>

2024-03-01 17:38:46 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Only post collection message on actual updates
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6332>

2024-03-01 17:37:30 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Clear the global collection when resetting
	  This avoids having stray collections when re-using decodebin3
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6332>

2024-03-11 09:16:01 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Provide clear error message if no decoders present
	  If we don't do this we will end up with a more cryptic error message (not-linked
	  error from some upstream component).
	  Fixes #3198
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6329>

2024-02-22 16:36:40 +0100  Piotr Brzeziński <piotr@centricular.com>

	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
	  macos: Fix glimagesink not respecting preferred size
	  Cocoa version of glwindow only checks the preferred size upon window creation. glimagesink sets the size right before
	  calling gst_gl_window_show(), which might be way after the window is created in some cases. If the size was set too
	  late, glimagesink on macOS would remain 320x240 unless manually resized.
	  This change makes sure to resize the existing window when _show() is called.
	  Curiously, this has always been an issue, but went from manifesting every once in a while to being almost completely
	  broken once old event loop workarounds were removed and gst_macos_main() was introduced.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6276>

2024-03-05 18:37:36 +0800  Xi Ruoyao <xry111@xry111.site>

	* tests/check/meson.build:
	  gst-plugins-base: meson: Fix the condition to skip theoradec test
	  Due to operator priority "not a and b" is interpreted "(not a) and b".
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6269>

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

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

=== release 1.24.0 ===

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

	* NEWS:
	* README.md:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.24.0

2024-03-04 12:22:25 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstplaybackplugin.c:
	* gst/playback/gstplaybin3.c:
	  playback: Remove USE_PLAYBIN3 registration override
	  This was only introduced as a convenience for testing playbin3 instead of
	  playbin2.
	  Now that playbin3 is (explicitely) default in many cases, we should not do this
	  hack anymore
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6255>

2024-02-29 09:30:47 +0100  Jurijs Satcs <jurijs.satcs@veset.tv>

	* gst/audioconvert/gstaudioconvert.c:
	  audioconvert: set mix-matrix when user changes it to empty
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6243>

2024-02-28 16:51:37 +0100  Marvin Schmidt <marv@exherbo.org>

	* gst-libs/gst/allocators/gstdrmdumb.h:
	  allocators: drmdumb: Remove extra semicolon after G_DECLARE_FINAL_TYPE
	  The `G_DECLARE_FINAL_TYPE` macro does not need to be terminated with a
	  semicolon and the extra semicolon breaks building e.g. libcamera with
	  clang because `-Wextra-semi` is used which produces the following
	  error in conjunction with `-Werror`:
	  ```
	  gstreamer-1.0/gst/allocators/gstdrmdumb.h:61:43: error: extra ';' outside
	  of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]
	  61 |     GST, DRM_DUMB_ALLOCATOR, GstAllocator);
	  |                                           ^
	  1 error generated.
	  ```
	  Fix this by removing the extra semicolon
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6239>

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

	* docs/plugins/gst_plugins_cache.json:
	* gst/volume/gstvolume.c:
	* tests/check/elements/volume.c:
	  volume: Expose the `volume-full-range` as another property
	  In https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5063
	  the range of volume value has changed which breaks backward compatibility
	  when  using a GstDirectControlBinding which is not acceptable. To avoid
	  breaking compatibility add the feature of allowing the full range  using
	  another property with the full range. When using that full range, the
	  value of the `volume` property might end up being out of its valid
	  range but we do not really have a good solution for that.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3257
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6222>

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

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

=== release 1.23.90 ===

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

	* NEWS:
	* RELEASE:
	* gst-plugins-base.doap:
	* meson.build:
	  Release 1.23.90

2024-02-23 11:15:49 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Handle legacy pad replacements from parsebin
	  When dealing with demuxers which aren't streams-aware, we need to handle the
	  old-school "stream replacement" dance from `parsebin` and hide that in such a
	  way that output pads are re-used (if compatible).
	  By analyzing the collection posted by parsebin, we can:
	  * Identify whether some output slots are no longer used (because the stream they
	  currently handle is not present in the collection)
	  * Decide if some upcoming streams could re-use the existing slot
	  This supports both buffering and non-buffering modes.
	  Fixes #1651
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6201>

2024-02-23 13:17:42 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/theora/gsttheoradec.c:
	* ext/theora/gsttheoradec.h:
	  theoradec: Remove mis-leading and redundant uncropped_info
	  It's actually the cropped info, and equivalent to the info that is
	  already stored as part of the output state.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6203>

2024-02-23 13:16:36 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/theora/gsttheoradec.c:
	  theoradec: Don't leak input state if a second type packet is received
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6203>

2024-02-23 13:14:18 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/theora/gsttheoradec.c:
	  theoradec: Don't overwrite width/height of the input state
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6203>

2024-02-23 13:08:21 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/theora/gsttheoradec.c:
	* ext/theora/gsttheoradec.h:
	  theoradec: Don't use custom allocation logic and always crop locally
	  All video frames have to be copied from libtheora's memory to the output
	  frame anyway, so we can as well do the cropping here directly instead of
	  copying the full frames and having downstream do the cropping.
	  This reduces the complexity of the code considerably, and among other
	  things gets rid of a bug related to buffer pool configuration.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2612
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6203>

2024-02-22 17:00:50 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Atomically switch urisourcebin
	  When switching urisourcebin, ensure that we first unlink *all* pads from
	  decodebin3 before linking them again.
	  This is to ensure that decodebin3 completely knows that all previous pads are no
	  longer needed and can prepare itself to being re-used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6179>

2024-02-22 10:50:15 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Unify urisourcebin probe handling
	  Instead of handling events from urisourcebin pads in different probes (a
	  blocking and regular one), move it all to the non-blocking one.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6179>

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

	* gst-libs/gst/rtp/gstrtpbasepayload.c:
	  rtp: Fix constant for maximum two-byte RTP header extension length
	  The value is stored as an 8 bit integer, with 0 meaning that there is
	  not data for this extension. That means that the maximum length is 255
	  bytes and not 256 bytes.
	  On the other hand, the one-byte RTP header extensions are storing the
	  length as a 4 bit integer with an offset of 1 (i.e. 0 means 1 byte
	  extension length), so here 16 is the correct maximum length.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6180>

2024-02-22 23:41:12 +0900  Jeongki Kim <jeongki.kim@jeongki.kim>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: clear eos flag on flush stop event
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6186>

2024-02-22 11:09:24 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Use atomic lock for detecting shutdown
	  This fixes lock ordering issues
	  Fixes #3323
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6178>

2024-02-22 15:24:57 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstsubtitleoverlay.c:
	  subtitleoverlay: Also use "Decoder/Subtitle" elements
	  Elements that "decoded" subtitle formats to raw text were historically
	  classified as "Parser" and not "Decoder. This is being gradually fixed.
	  This commit ensures that both classification are allowed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6153>

2024-02-20 16:04:09 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstplaybin3.c:
	  playbin3: Inform (uri)decodebin3 of the subtitle caps from playsink
	  Subtitles are better handled by overlayers/renderers within playsink. By
	  informing (uri)decodebin3 of the formats that can be handled we can avoid those
	  being "decoded" too early.
	  Fixes #1081
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6153>

2024-02-20 16:02:25 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Use pbutils utils to identify more stream types
	  Handles all cases provided they are identified in the pbutils descriptions
	  list.
	  Fixes #1081
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6153>

2024-02-20 16:00:07 +0100  Edward Hervey <edward@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/subparse/gstssaparse.c:
	* gst/subparse/gstsubparse.c:
	  subparsers: Give proper category to subtitle "decoders"
	  Some subtitle "decoders" had a wrong category of "Parser", which `parsebin`
	  relies on to identify elements which do not *decode* streams but *parse* them.
	  This would cause such subtitle decoders to be plugged in within parsebin,
	  preventing the original stream to be properly used by (more efficient)
	  downstream decoders or subtitle renderers.
	  Fixes #1757
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6153>

2024-02-07 12:26:04 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/x11/gstglcontext_glx.c:
	  gl/x11: fix memory leak when retrieiving a foreign context's info
	  The FBConfig's were being leaked.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6160>

2024-02-21 12:53:53 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
	  rtpbasedepayload: Add "extensions" property for the currently enabled extensions
	  This works the same way as the one from `rtpbasepayload`.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6163>

2024-02-21 13:22:30 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtp/gstrtpbasepayload.c:
	  rtpbasepayload: Use `gst_value_array_append_and_take_value()` as a micro optimization
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6163>

2024-02-21 12:55:42 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtp/gstrtpbasepayload.c:
	  rtpbasepayload: Also notify "extensions" property when changing list during negotiation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6163>

2024-02-19 15:55:55 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: fix deadlock when switching input item
	  There was a race between urisourcebin src pad handlers.
	  One was starting the next item before the other was blocked.
	  See
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3297#note_2288799
	  for details.
	  Fix #3297
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6145>

2024-02-17 21:00:09 +0000  Philippe Normand <philn@igalia.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Fix stream type for encrypted streams
	  Without this patch the stream type for encrypted streams would be 'unknown'.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6138>

2024-01-29 11:05:15 +0100  Loïc Molinari <loic.molinari@collabora.com>

	* gst-libs/gst/video/video-info.c:
	  video: Fix NV12_16L32S video frame size
	  The size of a NV12_16L32S video frame is bigger than expected because
	  it uses the size of a Y tile to compute the interleaved UV plane
	  size. Get the right UV tile size instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6118>

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-plugins-base.doap:
	* meson.build:
	  Release 1.23.2

2024-02-15 09:14:37 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Don't acquire STATE_LOCK if shutting down
	  If we are shutting down (PAUSED->READY) we shouldn't take the STATE LOCK since
	  this function is being called from a streaming thread (which is trying to be
	  deactivated while the STATE LOCK is held)
	  Fixes #3292
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6121>

2024-02-14 12:26:36 +0100  Edward Hervey <edward@centricular.com>

	* tools/gst-play.c:
	  gst-play: Default to using playbin3
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6115>

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

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

2024-02-10 19:47:24 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/rtsp/gstrtsptransport.c:
	  realmedia: remove RealServer RTSP extension, RDT handling and PNM source
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6091>

2024-02-08 21:51:38 -0500  Damian Hobson-Garcia <damian@hobsong.com>

	* gst-libs/gst/allocators/gstshmallocator.c:
	  GstShmAllocator: Map/unmap full buffer when padding is added
	  When allocating buffers with alignment parameters specified, it
	  may be necessary to overallocate memory to adjust to the requested
	  alignment.  Previously the padding length was not included in the mmaped
	  buffer size, leaving unmapped bytes at the end of the buffer.
	  This caused intermittent SEGV faults and valgrind failures when running
	  the wayland_threads example.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6104>

2024-02-08 15:50:43 +0100  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/pbutils/descriptions.c:
	  musepack: Prefer using FFmpeg musepack decoder/demuxer
	  * Bump the rank of the musepack v7/v8 FFmpeg demuxers to SECONDARY
	  * Bump the rank of the musepack v7/v8 FFmpeg audio decoders to SECONDARY
	  * Demote the rank of the musepackdec element to MARGINAL
	  This is for two reasons:
	  * The musepack library is no longer maintained, whereas the FFmpeg
	  implementation can/will receive fixes
	  * The `musepackdec` implementation was a all-in-one "parsing and decoding" blob
	  which doesn't play nicely with decodebin3 and others
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3033
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6074>

2023-10-02 17:17:36 +0200  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/video/video-anc.c:
	* gst-libs/gst/video/video-anc.h:
	  video-anc: New GstMeta for SMPTE ST-291M Ancillary Data
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5488>

2024-01-31 20:06:06 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/videorate/gstvideorate.c:
	* tests/check/elements/videorate.c:
	  videorate: Correct segment-based calculations
	  It was adding and subtracting the segment base here and there, but it
	  was also doing so incorrectly, leading to various calculation errors.
	  Fixed a few bugs uncovered, related to getting a new segment:
	  * If we reset base_ts/next_ts/out_frame_count, also reset prevbuf
	  * Only do so if the new segment is different than the previous one
	  Also replaced a few occurrences of GST_BUFFER_TIMESTAMP with
	  GST_BUFFER_PTS for consistency.
	  Integrated the tests of
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
	  , now passing. The test_segment_update_same test had to be fixed,
	  because it was wrongly assuming that we would not fill the gap inside
	  the new-but-same segment.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6031>

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-plugins-base.doap:
	* meson.build:
	  Release 1.23.1

2024-02-04 10:12:22 +0100  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/allocators/gstdrmdumb.c:
	  allocators: drm-dumb: Fix non-thread safe dmabuf allocator creation
	  If the allocation function get called from multiple threads at the same time,
	  multiple allocators may get created but only one get saved. Leading to other
	  allocators to be leaked. Simply create it once in the instance initialization.
	  Fixes: #2456
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6052>

2023-08-22 09:21:17 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	* gst-libs/gst/rtsp/gstrtspdefs.h:
	  rtspconnection: support redirect when using tunnel
	  - Support HTTP redirect codes (301,302,307,308) on response to GET.
	  "Location" field is extracted and used for following GET and POST.
	  - Notify caller a redirect took place using return value
	  - log source and destination url on redirect
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5222>

2024-01-19 07:53:27 -0300  Thibault Saunier <tsaunier@igalia.com>

	* tests/check/gst-plugins-base.supp:
	  valgrind: Ignore some leaks in the X server that have been fixed already
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/899>

2024-01-31 00:10:59 +0100  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: fix bufferpool leak
	  that happens if it fails to activate the pool
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6025>

2024-01-26 10:56:19 +0100  Christian Curtis Veng <vengzor@gmail.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  glcolorconvert: fix wrong RGB to YUV matrix with bt709
	  Converting from RGB to YUV: When comparing the info.colorimetry to
	  GST_VIDEO_COLORIMETRY_BT709 it does not make sense to look at the input
	  signal because that is of type of RGB. The plugin needs to look at the
	  output YUV-type and compare GST_VIDEO_COLORIMETRY_BT709 to that, because
	  that is the YUV-type the plugin needs to convert input-RGB into.
	  Converting from YUV to RGB: Comparing to the input is correct, but because
	  here the color encoding info BT601/BT709 is on input side of the plugin.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5998>

2023-07-30 17:06:41 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst/playback/gstplaybin3.c:
	  playbin3: Fix deadlock while selecting streams going to playing
	  In the following backtrace for the deadlock, we can see that:
	  - In T8 `uridecodebin3` is exposing a new pad, in `pad_added_cb`,
	  `playbin3` is trying to get `GST_PLAY_BIN3_LOCK` in the callback. This
	  threads holds its `SELECTION_LOCK` in F17 `reconfigure_output_stream`,
	  which is looks right `decodebin3` is handling its selection state
	  in that code path
	  - In T7 `playbin3` holds the `GST_PLAY_BIN3_LOCK` when calling
	  `gst_element_post_message` in `gst_play_bin3_send_event` which is
	  not necessary in that section of the code.
	  ``` bt
	  Thread 8 (Thread 0x7f0b78ee36c0 (LWP 2952467) "multiqueue0:src"):
	  #0  futex_wait (private=0, expected=2, futex_word=0x1fa6d60) at ../sysdeps/nptl/futex-internal.h:146
	  #1  __GI___lll_lock_wait (futex=futex@entry=0x1fa6d60, private=0) at lowlevellock.c:49
	  #2  0x00007f0b858cd46a in lll_mutex_lock_optimized (mutex=0x1fa6d60) at pthread_mutex_lock.c:48
	  #3  ___pthread_mutex_lock (mutex=0x1fa6d60) at pthread_mutex_lock.c:128
	  #4  0x00007f0b7e665720 in pad_added_cb (uridecodebin=0x1fb4050, pad=0x7f0b54022060, playbin=0x1fb00e0) at ../subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:2463
	  #5  0x00007f0b85c00060 in g_closure_invoke (closure=0x1fa9eb0, return_value=0x0, n_param_values=2, param_values=0x7f0b78ee1dd0, invocation_hint=0x7f0b78ee1d50) at ../gobject/gclosure.c:832
	  #6  0x00007f0b85c2cf66 in signal_emit_unlocked_R.isra.0 (node=node@entry=0x1c5bf30, detail=detail@entry=0, instance=instance@entry=0x1fb4050, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7f0b78ee1dd0) at ../gobject/gsignal.c:3796
	  #7  0x00007f0b85c1d4da in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7f0b78ee1f90) at ../gobject/gsignal.c:3549
	  #8  0x00007f0b85c1d6f3 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3606
	  #9  0x00007f0b85e20c3e in gst_element_add_pad (element=0x1fb4050, pad=0x7f0b54022060) at ../subprojects/gstreamer/gst/gstelement.c:802
	  #10 0x00007f0b7e632620 in add_output_pad (dec=0x1fb4050, target_pad=0x7f0b6400fda0) at ../subprojects/gst-plugins-base/gst/playback/gsturidecodebin3.c:717
	  #11 0x00007f0b7e632788 in db_pad_added_cb (element=0x1fb8020, pad=0x7f0b6400fda0, dec=0x1fb4050) at ../subprojects/gst-plugins-base/gst/playback/gsturidecodebin3.c:736
	  #12 0x00007f0b85c00060 in g_closure_invoke (closure=0x1fb7fc0, return_value=0x0, n_param_values=2, param_values=0x7f0b78ee2300, invocation_hint=0x7f0b78ee2280) at ../gobject/gclosure.c:832
	  #13 0x00007f0b85c2cf66 in signal_emit_unlocked_R.isra.0 (node=node@entry=0x1c5bf30, detail=detail@entry=0, instance=instance@entry=0x1fb8020, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7f0b78ee2300) at ../gobject/gsignal.c:3796
	  #14 0x00007f0b85c1d4da in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7f0b78ee24c0) at ../gobject/gsignal.c:3549
	  #15 0x00007f0b85c1d6f3 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3606
	  #16 0x00007f0b85e20c3e in gst_element_add_pad (element=0x1fb8020, pad=0x7f0b6400fda0) at ../subprojects/gstreamer/gst/gstelement.c:802
	  #17 0x00007f0b7e6260b4 in reconfigure_output_stream (output=0x7f0b5400def0, slot=0x7f0b64013dd0, msg=0x7f0b78ee26b8) at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c:3086
	  #18 0x00007f0b7e623700 in check_slot_reconfiguration (dbin=0x1fb8020, slot=0x7f0b64013dd0) at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c:2455
	  #19 0x00007f0b7e623e62 in multiqueue_src_probe (pad=0x7f0b6001e600, info=0x7f0b78ee2930, slot=0x7f0b64013dd0) at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c:2544
	  #20 0x00007f0b85e53aaa in probe_hook_marshal (hook=0x7f0b74040500, data=0x7f0b78ee28c0) at ../subprojects/gstreamer/gst/gstpad.c:3669
	  #21 0x00007f0b85c88a3e in g_hook_list_marshal (hook_list=0x7f0b6001e698, may_recurse=1, marshaller=0x7f0b85e53786 <probe_hook_marshal>, data=0x7f0b78ee28c0) at ../glib/ghook.c:674
	  #22 0x00007f0b85e541be in do_probe_callbacks (pad=0x7f0b6001e600, info=0x7f0b78ee2930, defaultval=GST_FLOW_OK) at ../subprojects/gstreamer/gst/gstpad.c:3853
	  #23 0x00007f0b85e5ac9c in gst_pad_push_event_unchecked (pad=0x7f0b6001e600, event=0x7f0b64002120, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5538
	  #24 0x00007f0b85e54bc2 in push_sticky (pad=0x7f0b6001e600, ev=0x7f0b78ee2a60, user_data=0x7f0b78ee2ac0) at ../subprojects/gstreamer/gst/gstpad.c:4057
	  #25 0x00007f0b85e4a13c in events_foreach (pad=0x7f0b6001e600, func=0x7f0b85e54a8e <push_sticky>, user_data=0x7f0b78ee2ac0) at ../subprojects/gstreamer/gst/gstpad.c:613
	  #26 0x00007f0b85e54f91 in check_sticky (pad=0x7f0b6001e600, event=0x7f0b64002120) at ../subprojects/gstreamer/gst/gstpad.c:4116
	  #27 0x00007f0b85e5b65e in gst_pad_push_event (pad=0x7f0b6001e600, event=0x7f0b64002120) at ../subprojects/gstreamer/gst/gstpad.c:5706
	  #28 0x00007f0b7e5888e7 in gst_single_queue_push_one (mq=0x1fbb000, sq=0x7f0b64013b70, object=0x7f0b64002120, allow_drop=0x7f0b78ee2c3c) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2068
	  #29 0x00007f0b7e58a1bc in gst_multi_queue_loop (pad=0x7f0b6001e600) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2347
	  #30 0x00007f0b85e96a36 in gst_task_func (task=0x7f0b64016050) at ../subprojects/gstreamer/gst/gsttask.c:399
	  #31 0x00007f0b85e97e41 in default_func (tdata=0x7f0b640138d0, pool=0x1fbe9c0) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
	  #32 0x00007f0b85cd1ab2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:352
	  #33 0x00007f0b85ccc982 in g_thread_proxy (data=0x7f0b6006f640) at ../glib/gthread.c:831
	  #34 0x00007f0b858ca12d in start_thread (arg=<optimized out>) at pthread_create.c:442
	  #35 0x00007f0b8594bbc0 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
	  Thread 7 (Thread 0x7f0b7a7646c0 (LWP 2952434) "multiqueue3:src"):
	  #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
	  #1  0x00007f0b85cf470c in g_mutex_lock_slowpath (mutex=0x1fb81d0) at ../glib/gthread-posix.c:1494
	  #2  0x00007f0b7e6281a2 in gst_decodebin3_send_event (element=0x1fb8020, event=0x7f0b6800a650) at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c:3561
	  #3  0x00007f0b85e23ca3 in gst_element_send_event (element=0x1fb8020, event=0x7f0b6800a650) at ../subprojects/gstreamer/gst/gstelement.c:1994
	  #4  0x00007f0b7e63806b in gst_uri_decodebin3_send_event (element=0x1fb4050, event=0x7f0b6800a650) at ../subprojects/gst-plugins-base/gst/playback/gsturidecodebin3.c:2227
	  #5  0x00007f0b85e23ca3 in gst_element_send_event (element=0x1fb4050, event=0x7f0b6800a650) at ../subprojects/gstreamer/gst/gstelement.c:1994
	  #6  0x00007f0b7e66375a in gst_play_bin3_send_event (element=0x1fb00e0, event=0x7f0b6800a650) at ../subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:1863
	  #7  0x00007f0b85e23ca3 in gst_element_send_event (element=0x1fb00e0, event=0x7f0b6800a650) at ../subprojects/gstreamer/gst/gstelement.c:1994
	  #8  0x00007f0b85f61b5b in stream_selection_cb (bus=0x1dc2d80, message=0x7f0b68008b00, d=0x1d7de30) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-scenario.c:2235
	  #9  0x00007f0b85c00060 in g_closure_invoke (closure=0x1d2a5b0, return_value=0x0, n_param_values=2, param_values=0x7f0b7a7627b0, invocation_hint=0x7f0b7a762730) at ../gobject/gclosure.c:832
	  #10 0x00007f0b85c2cf66 in signal_emit_unlocked_R.isra.0 (node=node@entry=0x1c5e5f0, detail=detail@entry=235, instance=instance@entry=0x1dc2d80, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7f0b7a7627b0) at ../gobject/gsignal.c:3796
	  #11 0x00007f0b85c1d4da in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7f0b7a762970) at ../gobject/gsignal.c:3549
	  #12 0x00007f0b85c1d6f3 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3606
	  #13 0x00007f0b85e05be9 in gst_bus_sync_signal_handler (bus=0x1dc2d80, message=0x7f0b68008b00, data=0x0) at ../subprojects/gstreamer/gst/gstbus.c:1307
	  #14 0x00007f0b85e03834 in gst_bus_post (bus=0x1dc2d80, message=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstbus.c:364
	  #15 0x00007f0b85e2436c in gst_element_post_message_default (element=0x1fb00e0, message=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstelement.c:2127
	  #16 0x00007f0b85df42b1 in gst_bin_post_message (element=0x1fb00e0, msg=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstbin.c:2789
	  #17 0x00007f0b85e24627 in gst_element_post_message (element=0x1fb00e0, message=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstelement.c:2170
	  #18 0x00007f0b85df7c12 in gst_bin_handle_message_func (bin=0x1fb00e0, message=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstbin.c:4041
	  #19 0x00007f0b85e61bd3 in gst_pipeline_handle_message (bin=0x1fb00e0, message=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstpipeline.c:669
	  #20 0x00007f0b7e663fa4 in gst_play_bin3_handle_message (bin=0x1fb00e0, msg=0x7f0b68008b00) at ../subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:2030
	  #21 0x00007f0b85df5a98 in bin_bus_handler (bus=0x1dc2cc0, message=0x7f0b68008b00, bin=0x1fb00e0) at ../subprojects/gstreamer/gst/gstbin.c:3263
	  #22 0x00007f0b85e037f1 in gst_bus_post (bus=0x1dc2cc0, message=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstbus.c:357
	  #23 0x00007f0b85e2436c in gst_element_post_message_default (element=0x1fb4050, message=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstelement.c:2127
	  #24 0x00007f0b85df42b1 in gst_bin_post_message (element=0x1fb4050, msg=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstbin.c:2789
	  #25 0x00007f0b85e24627 in gst_element_post_message (element=0x1fb4050, message=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstelement.c:2170
	  #26 0x00007f0b85df7c12 in gst_bin_handle_message_func (bin=0x1fb4050, message=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstbin.c:4041
	  #27 0x00007f0b7e638005 in gst_uri_decode_bin3_handle_message (bin=0x1fb4050, msg=0x7f0b68008b00) at ../subprojects/gst-plugins-base/gst/playback/gsturidecodebin3.c:2218
	  #28 0x00007f0b85df5a98 in bin_bus_handler (bus=0x1dc2e40, message=0x7f0b68008b00, bin=0x1fb4050) at ../subprojects/gstreamer/gst/gstbin.c:3263
	  #29 0x00007f0b85e037f1 in gst_bus_post (bus=0x1dc2e40, message=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstbus.c:357
	  #30 0x00007f0b85e2436c in gst_element_post_message_default (element=0x1fb8020, message=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstelement.c:2127
	  #31 0x00007f0b85df42b1 in gst_bin_post_message (element=0x1fb8020, msg=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstbin.c:2789
	  #32 0x00007f0b85e24627 in gst_element_post_message (element=0x1fb8020, message=0x7f0b68008b00) at ../subprojects/gstreamer/gst/gstelement.c:2170
	  #33 0x00007f0b7e61ee43 in sink_event_function (sinkpad=0x7f0b6400f8c0, dbin=0x1fb8020, event=0x7f0b6c097870) at ../subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c:1450
	  #34 0x00007f0b85f51122 in gst_validate_pad_monitor_downstream_event_check (pad_monitor=0x7f0b6c094a80, parent=0x1fb8020, event=0x7f0b6c097870, handler=0x7f0b7e61e797 <sink_event_function>) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2101
	  #35 0x00007f0b85f535bf in gst_validate_pad_monitor_sink_event_full_func (pad=0x7f0b6400f8c0, parent=0x1fb8020, event=0x7f0b6c097870) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2406
	  #36 0x00007f0b85f537fa in gst_validate_pad_monitor_sink_event_func (pad=0x7f0b6400f8c0, parent=0x1fb8020, event=0x7f0b6c097870) at ../subprojects/gst-devtools/validate/gst/validate/gst-validate-pad-monitor.c:2418
	  #37 0x00007f0b85e5c523 in gst_pad_send_event_unchecked (pad=0x7f0b6400f8c0, event=0x7f0b6c097870, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5940
	  #38 0x00007f0b85e5ae65 in gst_pad_push_event_unchecked (pad=0x7f0b6400f650, event=0x7f0b6c097870, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5573
	  #39 0x00007f0b85e54bc2 in push_sticky (pad=0x7f0b6400f650, ev=0x7f0b7a763620, user_data=0x7f0b7a763680) at ../subprojects/gstreamer/gst/gstpad.c:4057
	  #40 0x00007f0b85e4a13c in events_foreach (pad=0x7f0b6400f650, func=0x7f0b85e54a8e <push_sticky>, user_data=0x7f0b7a763680) at ../subprojects/gstreamer/gst/gstpad.c:613
	  #41 0x00007f0b85e54f91 in check_sticky (pad=0x7f0b6400f650, event=0x7f0b6c097870) at ../subprojects/gstreamer/gst/gstpad.c:4116
	  #42 0x00007f0b85e5b65e in gst_pad_push_event (pad=0x7f0b6400f650, event=0x7f0b6c097870) at ../subprojects/gstreamer/gst/gstpad.c:5706
	  #43 0x00007f0b85e523e7 in event_forward_func (pad=0x7f0b6400f650, data=0x7f0b7a763820) at ../subprojects/gstreamer/gst/gstpad.c:3130
	  #44 0x00007f0b85e521e3 in gst_pad_forward (pad=0x7f0b6004f180, forward=0x7f0b85e522bd <event_forward_func>, user_data=0x7f0b7a763820) at ../subprojects/gstreamer/gst/gstpad.c:3084
	  #45 0x00007f0b85e525ab in gst_pad_event_default (pad=0x7f0b6004f180, parent=0x7f0b6400f650, event=0x7f0b6c097870) at ../subprojects/gstreamer/gst/gstpad.c:3181
	  #46 0x00007f0b85e5c523 in gst_pad_send_event_unchecked (pad=0x7f0b6004f180, event=0x7f0b6c097870, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5940
	  #47 0x00007f0b85e5ae65 in gst_pad_push_event_unchecked (pad=0x7f0b64008360, event=0x7f0b6c097870, type=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5573
	  #48 0x00007f0b85e54bc2 in push_sticky (pad=0x7f0b64008360, ev=0x7f0b7a763a60, user_data=0x7f0b7a763ac0) at ../subprojects/gstreamer/gst/gstpad.c:4057
	  #49 0x00007f0b85e4a13c in events_foreach (pad=0x7f0b64008360, func=0x7f0b85e54a8e <push_sticky>, user_data=0x7f0b7a763ac0) at ../subprojects/gstreamer/gst/gstpad.c:613
	  #50 0x00007f0b85e54f91 in check_sticky (pad=0x7f0b64008360, event=0x7f0b6c097870) at ../subprojects/gstreamer/gst/gstpad.c:4116
	  #51 0x00007f0b85e5b65e in gst_pad_push_event (pad=0x7f0b64008360, event=0x7f0b6c097870) at ../subprojects/gstreamer/gst/gstpad.c:5706
	  #52 0x00007f0b7e5888e7 in gst_single_queue_push_one (mq=0x7f0b60076540, sq=0x7f0b6c093300, object=0x7f0b6c097870, allow_drop=0x7f0b7a763c3c) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2068
	  #53 0x00007f0b7e58a1bc in gst_multi_queue_loop (pad=0x7f0b64008360) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2347
	  #54 0x00007f0b85e96a36 in gst_task_func (task=0x7f0b6c072050) at ../subprojects/gstreamer/gst/gsttask.c:399
	  #55 0x00007f0b85e97e41 in default_func (tdata=0x7f0b6c093ef0, pool=0x1fbe9c0) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
	  #56 0x00007f0b85cd1ab2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:352
	  #57 0x00007f0b85ccc982 in g_thread_proxy (data=0x7f0b70033800) at ../glib/gthread.c:831
	  #58 0x00007f0b858ca12d in start_thread (arg=<optimized out>) at pthread_create.c:442
	  #59 0x00007f0b8594bbc0 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5982>

2024-01-24 03:17:32 +1100  Jan Schmidt <jan@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/gl/gstglvideoflip.c:
	  glvideoflip: fix setting of method property at construction time
	  A port of the same fix that
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4536
	  did for the non-GL videoflip element
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3245
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5966>

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

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

2023-08-09 09:17:08 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/app/gstappsink.c:
	  appsink: Signal condition when adding serialized events to the queue
	  Users might be waiting on any objects and the appsink should unblock
	  the waiter and return the object in that case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5985>

2023-12-19 10:23:12 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstsubtitleoverlay.c:
	  subtitleoverlay: Handle video sink pad CAPS query earlier
	  The internal elements are only created when caps on both video and subtitle pads
	  are known.
	  Prior to that, a GST_QUERY_CAPS on a video sink pad would just return ANY
	  instead of giving a hint of what downstream can actually handle and
	  prefers. This could result in upstream elements (such as decoders) deciding on
	  chosing (in the best cases) a non-optimal caps or (in the worst case) caps that
	  couldn't be handled by the elements downstream of subtitleoverlay.
	  In order to fix that, we assume that all subtitle "elements" handle the subtitle
	  overlay composition feature/meta and handle `GST_QUERY_CAPS` ourselves if the
	  internal elements aren't present yet.
	  Fixes #3176
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5834>

2024-01-21 16:41:48 +0100  Robert Mader <robert.mader@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  doc: Update plugin cache for glsinkbin passthrough
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5948>

2023-12-22 11:40:37 +0100  Robert Mader <robert.mader@collabora.com>

	* ext/gl/gstglcolorbalance.c:
	  gl: colorbalance: Add DMA_DRM passthrough support
	  By adding them to additional caps that are only supported in passthrough
	  mode. They get filtered out otherwise.
	  This can easily extended to support other caps later.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5948>

2023-11-28 18:47:59 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	* tests/check/libs/gstglcolorconvert.c:
	  gl: colorconvert: Add DMA_DRM passtrough support
	  By always passing through caps before adding additional caps supported
	  by conversion.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5948>

2023-12-08 14:42:30 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	* tests/check/libs/gstglupload.c:
	  gl: upload: Add DMA_DRM passthrough upload
	  A simple noop upload method that is used whenever up- and downstream
	  elements share common caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5948>

