=== release 1.22.4 ===

2023-06-20 17:42:25 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2023-06-13 12:58:26 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Skip after the end of a valid closing tag instead of only skipping `<`
	  This is a small optimization and avoids restarting the next parsing
	  iteration on already accepted data.
	  On its own it would also fix ZDI-CAN-20968 (see previous commit) but the
	  previous commit independently is also a valid fix for it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4898>

2023-06-13 12:53:13 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Look for the closing `>` of a tag after the opening `<`
	  Previously when fixing up subrip markip, we were looking from the start
	  of the remaining buffer instead. Due to how skipping over closing tags
	  works, the remaining buffer will still contain the closing `>` of the
	  previous tag so if a unexpected closing tag is found after another
	  closing tag, we would potentially do an out of bounds memmove().
	  Fixes ZDI-CAN-20968
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2662
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4898>

2023-06-13 13:22:57 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/tags.c:
	  tags: Don't allow image tags with G_MAXUINT32 length
	  This will cause an integer overflow a little bit further down because we
	  allocate a bit more memory to allow for a NUL-terminator.
	  The caller should've avoided passing that much data in already as it's
	  not going to be a valid image and there's likely not even that much data
	  available.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4897>

2023-06-13 10:30:16 +0800  Haihua Hu <jared.hu@nxp.com>

	* gst-libs/gst/gl/gstglfilter.c:
	  glfilter: add parent meta to output buffer for input buffer
	  glfilter will unref input buffer after _transform() call immidiately,
	  but gpu may still reading input buffer for rendering because gl
	  api is executed async. Need hold reference for input buffer by
	  adding parent meta to output buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4846>

2023-06-07 14:24:46 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* ext/opus/gstopusenc.c:
	  opus: Fix crash when getting unexpected channel position
	  gst_opus_channel_names is a static array with only 13 items.
	  GstAudioChannelPosition have bigger values than that.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4843>

2016-06-01 11:52:38 +0100  William Manley <will@williammanley.net>

	* docs/plugins/gst_plugins_cache.json:
	* ext/pango/gstbasetextoverlay.c:
	  basetextoverlay: Fix typo in "text-y" property description
	  Looks like a copy and paste error.
	  Co-authored-by: Fabian Orccon <cfoch.fabian@gmail.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4827>

2023-06-09 21:08:36 +0800  Kevin Song <kesong@nvidia.com>

	* gst-libs/gst/app/gstappsink.c:
	  appsink: unref gstbuffer in prev sample early
	  Appsink will unref prev sample in dispose function. Which is later
	  when V4L2 video decoder link with appsink as V4L2 video decoder
	  will close V4L2 device fd during GST_STATE_CHANGE_READY_TO_NULL.
	  If the video buffer return to V4L2 video decoder after the decoder
	  closed V4L2 device fd, V4L2 can't release the video frame buffer
	  which allocated with MMAP mode as application can't call
	  VIDIOC_REQBUFS 0 to release the video frame buffer by V4L2 driver.
	  The memory of the video frame will leak.
	  Unref the gstbuffer in stop() function, so V4L2 video decoder
	  can received all video frame buffers and release it before close
	  V4L2 device fd.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4820>

2023-06-07 13:46:39 +1000  Matthew Waters <matthew@centricular.com>

	* ext/gl/gstgldownloadelement.c:
	  gldownload: handle passthrough without a critical
	  With passthrough mode, gldownload/glbasefilter may not ever retrieve a
	  relevant GstGLContext as it doesn't actually query the surrounding
	  elements.  Guard against that.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4800>

2023-05-27 13:06:22 +0100  Philippe Normand <philn@igalia.com>

	* ext/ogg/gstoggdemux.c:
	* ext/ogg/gstoggdemux.h:
	* ext/ogg/gstoggstream.c:
	  oggdemux: vp8: Detect keyframe packets
	  decodebin3 drops data on video streams until a keyframe or header is detected,
	  so for Ogg/VP8 we now need to correctly flag and signal keyframes downstream.
	  The first buffer pushed from each src pad also has the HEADER flag set.
	  Fixes playback of
	  https://github.com/web-platform-tests/wpt/raw/master/media/test.ogv in playbin3.
	  Fixes #1418
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4745>

2023-05-31 16:26:45 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/playback/gststreamsynchronizer.c:
	  streamsynchronizer: check reset-time when handling FLUSH_STOP
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4755>

2023-05-31 16:05:48 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/playback/gststreamsynchronizer.c:
	  streamsynchronizer: reset eos on STREAM_START
	  self->eos was never reset after streamsynchronizer has sent EOS
	  (except on explicit flush or switching back to PAUSED).
	  As a result, synchronization was broken if new streams were pushed later
	  as gst_stream_synchronizer_wait() does not wait if self->eos is set.
	  Fix this by reseting self->eos on STREAM_START as that means a new
	  stream is being sent upstream and so a new EOS will follow later on.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4755>

2023-05-29 02:14:44 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/video/video-blend.h:
	  video-blend: Fix linking error with C++
	  Add missing extern "C"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4735>

2023-05-19 15:20:16 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/video/gstvideometa.c:
	  videometa: Only validate the alignment only when it contains some info
	  When the alignment contains nothing, all its fields are 0 and always
	  can be satisfied. So there is no need to validate it in this case.
	  And there are a lot of places just setting this alignment to default
	  all zero value, this validation generates lots of warnings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4704>

2023-05-15 15:57:15 -0400  Nicolas Beland <nicolas@inogeni.com>

	* ext/alsa/gstalsasink.c:
	* ext/alsa/gstalsasink.h:
	  alsasink: Fix stall for transition of alsasink from PAUSED to READY with USB speakerphone
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4699>

2022-07-05 05:14:01 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/video/convertframe.c:
	  video: convertframe: Add D3D11 specific conversion path
	  Add d3d11 conversion path to make gst_video_convert_sample() work
	  for GstD3D11Memory.
	  Note that just adding "d3d11download" to the exisitng code is
	  suboptimal from GstD3D11 point of view because:
	  * d3d11convert element can support crop/colorspace-conversion/scale
	  all at once while existing software pipeline needs intermediate steps
	  for the conversion
	  * "Process everything on GPU then download it to CPU memory" would be likely
	  faster than "download GPU memory to CPU then processing it on CPU"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4689>

2022-07-05 04:42:57 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/video/convertframe.c:
	  video: convertframe: Remove pointless const qualifier
	  const keyword for refcounted object does not very make sense
	  and unnecessary in this case
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4689>

2023-05-19 12:36:19 +0100  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.22.3 ===

2023-05-19 09:23:19 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2023-05-17 21:43:21 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/meson.build:
	  Revert "meson: Install viv-fb GL headers, needed by i.MX"
	  Missing pkg-config files and gir files as is required from any public
	  facing GL API for bindings reasons.
	  This reverts commit c95b7b8e7aa80276c0604dd3dd03eeda634f42b9.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4657>

2023-05-10 16:34:16 +0800  Haihua Hu <jared.hu@nxp.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: fix random hang when remove failing stream
	  When reconfigure_output_stream entry missing decoder path,
	  requested_selection should been update with what is really
	  active/selected immdiately with SELECTION_LOCK hold. So
	  use an optional message return from reconfigure_output_stream
	  and post it after release SELECTION_LOCK. This can make sure
	  other thread call to check_slot_reconfiguration will got
	  a correct requested_selection.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4656>

2023-03-07 11:40:42 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Ensure atomic urisourcebin state change
	  When dynamically adding and synchronizing the state of urisourcebin, we need to
	  ensure that no-one else attempts to change the state in case of failures
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1803
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4620>

2023-03-09 00:25:51 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/gl/meson.build:
	  meson: Install viv-fb GL headers, needed by i.MX
	  Needed by qmlglsink at build time to allocate a viv-fb display.
	  Without this, the GL fastpath doesn't work, and performance is really
	  bad.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4618>

2023-04-26 12:20:25 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Handle streams without CAPS or TIME segment
	  decodebin3 will do its best to figure out whether a parsebin is required to
	  process the incoming stream.
	  The problem is that for push-based stream it could happen that the stream would
	  not provide any caps, resulting in nothing being linked internally.
	  Furthermore, there is the possibility that a stream *with* caps would not be
	  using a TIME segment, which is required for multiqueue to properly work.
	  In order to fix those two issues, we force the usage of parsebin on push-based
	  streams:
	  * When the pad is linked, if upstream can't provide any caps
	  * When we get a non-TIME segment
	  Fixes #2521
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4499>

2023-04-22 11:42:36 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiotestsrc/gstaudiotestsrc.c:
	  audiotestsrc: Initialize all samples in wave=ticks mode
	  Previously samples were only initialized in 2 out of 3 cases.
	  Probably fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/337
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4476>

2023-04-20 10:03:27 +0200  Patricia Muscalu <patricia@axis.com>

	* gst/playback/gstplaysink.c:
	  playsink: Fix volume leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4463>

2023-04-10 16:06:19 +0200  Jan Alexander Steffens (heftig) <heftig@archlinux.org>

	* tests/check/libs/allocators.c:
	  tests: allocators: Fix fdmem test with recent GLib
	  The test failed with recent GLib, where `g_close` emits a critical
	  warning on EBADF. Remove the `g_close` check from `test_fdmem` and add
	  another version that tests `GST_FD_MEMORY_FLAG_DONT_CLOSE`.
	  We will depend on the Valgrind test run to warn us about leaked FDs.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2480
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4422>

2023-04-06 08:54:30 +0200  Matthias Fuchs <matthias1.fuchs@zeiss.com>

	* ext/gl/gstglvideoflip.c:
	  glvideoflip: fix leaked caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4420>

2023-04-05 13:20:19 +0200  Matthias Fuchs <matthias1.fuchs@zeiss.com>

	* gst-libs/gst/gl/wgl/gstglcontext_wgl.c:
	  glcontext_wgl: fix missing unref
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4419>

2023-04-12 00:31:17 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development

=== release 1.22.2 ===

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

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

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

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

2023-04-06 07:58:03 +0200  Rouven Czerwinski <r.czerwinski@pengutronix.de>

	* gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c:
	  gst-plugins-base: gl: wayland: cleanup on close
	  The proxy and queue are created in the gst_gl_window_wayland_egl_open()
	  function and will be recreated on open. This leaks both objects, the
	  wayland client documentation mentions that they should be destroyed
	  using the appropriate destroy functions.
	  Found during valgrind memory leak testing, these blocks were marked as
	  definitely lost.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4355>

2023-04-04 19:21:56 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	  sdp: Skip source-specific caps fields when creating an SDP media from caps
	  Regression from https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132
	  We parse the source-specific fields from the SDP and put it into the
	  caps, but when converting caps into an SDP again this would need special
	  handling. By default it would end up as part of the fmtp field, which is
	  simply wrong.
	  Automatically putting it into the caps and SDP will need some more work.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4344>

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

	* tools/gst-device-monitor.c:
	* tools/gst-discoverer.c:
	* tools/gst-play.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-30 16:09:06 +0200  Robert Rosengren <robertr@axis.com>

	* ext/alsa/gstalsasink.c:
	  alsasink: Fix for being stuck in stop_streaming_threads state
	  Moving from PLAYING to NULL will set the stop_streaming_threads to TRUE,
	  but when moving back upwards its not reset to FALSE (as only done in
	  uncalled init and resume callbacks).
	  Fix by reseting value in the prepare callback.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4321>

2023-03-18 11:54:15 +0200  Ilie Halip <ilie.halip@gmail.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefindfunctions: Increase xml typefinder closing brace limit
	  If the first XML element in a DASH manifest has its closing brance
	  beyond the first 512 bytes (because of, e.g. lots of attributes),
	  the MPD typefinder fails. Try to read a larger block, and then
	  smaller blocks until 512 bytes.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2385
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4302>

2023-03-28 15:49:36 +0200  Bart Van Severen <bart.vanseveren@barco.com>

	* gst-libs/gst/rtsp/gstrtspurl.c:
	  rtsp: gstrtspurl: gst_rtsp_url_get_request_uri: use rtsps scheme for tls transport methods
	  gst_rtsp_url_get_request_uri returns rtsp://... url when requested url is rtsps://, this is not
	  in accordance with https://www.rfc-editor.org/rfc/rfc7826.html#section-19.2.
	  This also impedes setting up a rtsps session with a live555 rtsp server.
	  Don't expose other than rtsp and rtsps internal gstreamer rtsp url schemes
	  to avoid regression:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2412
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4298>

2023-03-28 15:38:07 +0200  Bart Van Severen <bart.vanseveren@barco.com>

	* gst-libs/gst/rtsp/gstrtspurl.c:
	  Revert "rtsp: gstrtspurl: gst_rtsp_url_get_request_uri: fix incorrect scheme for tls transport methods"
	  This reverts commit 024ef7659d3cb1ceee6628646aa37001399be92d because it causes a regression:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2412
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4298>

2023-03-27 11:18:09 +0800  Haihua Hu <jared.hu@nxp.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: fix hang issue when remove failing stream
	  Need mark selection_update to true when update selection,
	  otherwise, pipeline will not handle this selection update
	  sometimes when this flag has been reset
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4284>

2023-03-20 16:16:34 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Improve elementary stream handling
	  The goal of parsebin is to figure out which elements to link together in order
	  to provide elementary streams given any random input.
	  The problem is that deciding whether a given stream should still have more
	  elements plugged in or not was dependent on ... the presence of compatible
	  decoders (sic).
	  Instead of that, if we can't plug anymore elements on a given stream *and* it is
	  detected as being an elementary stream, expose it.
	  Fixes #2118
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4237>

2023-03-20 11:53:35 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Activate pad before transferring sticky events
	  Otherwise they get refused since the pad is flushing
	  Fixes #2384 for good
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4233>

2023-03-17 16:32:45 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/gl/gstglfilterglass.c:
	  plugins: Fix various trivial clang compiler warnings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4221>

2023-03-17 09:58:55 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Propagate sticky events from parsebin
	  If sticky events are present on parsebin source pads, we propagate them to the
	  multiqueue source pads. Those will be propagated on the new urisourcebin source
	  pads like in the other code paths.
	  This ensures that STREAM_START event are present on new source pads. If CAPS
	  event are also present (not guaranteed), they will also be available.
	  Fixes #2384
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4218>

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

2023-03-01 16:26:20 -0500  Nicolas Beland <nicolas@inogeni.com>

	* ext/alsa/gstalsasink.c:
	* ext/alsa/gstalsasink.h:
	  alsasink: Fix stall when going from PLAYING to NULL (stucked at PAUSED) with uac1 gadget
	  This happened with a uac1 gadget which for some reason does not behave nicely.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4104>

2023-02-27 08:23:38 +0100  Carlos Falgueras García <cfalgueras@fluendo.com>

	* gst-libs/gst/gl/gstgldisplay.c:
	  gldisplay: Remove unused code
	  The code related with environment variable `GST_GL_PLATFORM` is unused
	  since commit 33c60bdbf9ae2fd2e88099ad89ad836b8b78c2f5.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4091>

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

	* tools/gst-device-monitor.c:
	* tools/gst-discoverer.c:
	* tools/gst-play.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-22 14:14:15 +0100  Patricia Muscalu <patricia@axis.com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	* gst-libs/gst/rtsp/gstrtspmessage.c:
	  rtspconnection: Annotate RTSP message parameters correctly
	  These parameters are not actually `out` parameters but must
	  be allocated and zero-initialized by the calling function.
	  Marking them as `out caller-allocates` will cause memory
	  corruptions when calling these APIs from e.g., Python code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4061>

2023-02-22 15:05:56 +0000  Tristan van Berkom <tristan.vanberkom@codethink.co.uk>

	* gst-libs/gst/gl/x11/gstglwindow_x11.c:
	  gstglwindow_x11.c: Fix colormap leak
	  This fixes an X server side memory leak, this is normally not severe
	  but in some circumstances where the glwindow is recreated frequently
	  it can result in a very bad memory leak.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4054>

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

	* po/af.po:
	* po/az.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/lt.po:
	* po/lv.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.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:
	  gst-plugins-base: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4041>

2023-02-21 18:42:57 +0000  Tim-Philipp Müller <tim@centricular.com>

	* tools/gst-play.c:
	  gst-play: update translated string
	  Make it more consistent with the other option descriptions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4033>

2023-01-19 18:49:17 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: Don't chain up `BaseSrc::negotiate()`
	  If we have caps then we can only set exactly those caps, if we have no
	  caps yet then negotiating anything is not very meaningful because the
	  caps are defined by the application and not downstream.
	  Avoids, among other things, an unnecessary allocation query and spurious
	  useless caps being set before the first buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4020>

2023-02-09 17:23:55 +0100  Edward Hervey <edward@centricular.com>

	* tools/gst-play.c:
	  gst-play: Don't force accurate seeking
	  This crept in several years ago sadly :(
	  The usage of accurate seeking should be reserved to use-cases where it is
	  essential that we seek to that position. This should not be the default.
	  There is a new option `--acurate-seeks/-a` to be able to force that.
	  Furthermore, if accurate seeks aren't required, a player should be using the
	  GST_SEEK_FLAG_KEY_UNIT flag to seek to the closest keyframe and provide the most
	  reactive experience.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4017>

2023-01-31 13:21:48 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/playback/gsturidecodebin.c:
	  uridecodebin: Set source element to READY before querying it
	  Generating the source element is done when uridecodebin is doing the
	  READY to PAUSED state change, so it is reasonable to set the new source
	  element to that state.
	  This also allows detecting early failures with backing libraries or
	  hardware (checks done in NULL->READY).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4016>

2023-02-10 08:20:38 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ext/gl/gstglvideomixer.c:
	  glvideomixer: Keep a reference to the underlying pad
	  There was cases where we were accessing the pad while it was already
	  destroyed. Ensure it can't happen by owning a ref on it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3963>

2023-02-13 11:46:03 -0800  Yang, Xuchen <xuchen.yang@dolby.com>

	* gst-libs/gst/audio/audio-channel-mixer.c:
	  audio: channel-mix: Fix channel count limit to be able to equal 64
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3958>

2023-02-08 12:00:54 +0100  Edward Hervey <edward@centricular.com>

	* gst/subparse/gstsubparse.c:
	* gst/subparse/gstsubparse.h:
	  subparse: Properly forward segment seqnum
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3917>

2023-02-02 23:20:04 +1100  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/gl/cocoa/gstglcaopengllayer.m:
	  gl/cocoa: Return a strong ref to the parent GstGLContext
	  If the GstGLCAOpenGLLayer was initialized via a parent
	  context, make sure to ref the context before returning it
	  from getGLContext as all callers will unref it.
	  Follow up to !3729
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3885>

2023-01-27 16:22:06 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/gstglcontext.c:
	* gst-libs/gst/gl/gstgldisplay.c:
	  gldisplay: Mark `gst_gl_display_create_context()` `other_context` parameter as nullable
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/438
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3835>

2023-01-25 13:58:16 +0100  Bart Van Severen <bart.vanseveren@barco.com>

	* gst-libs/gst/rtsp/gstrtspurl.c:
	  rtsp: gstrtspurl: gst_rtsp_url_get_request_uri: fix incorrect scheme for tls transport methods
	  gst_rtsp_url_get_request_uri returns rtsp://... url when requested url is rtsps://, this is not
	  in accordance with https://www.rfc-editor.org/rfc/rfc7826.html#section-19.2.
	  This also impedes setting up a rtsps session with a live555 rtsp server.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3818>

2022-12-14 10:31:14 +0100  Bart Van Severen <bart.vanseveren@barco.com>

	* gst-libs/gst/sdp/gstmikey.c:
	  sdp: gstmikey: gst_mikey_message_to_caps: extract salt and append to srtp-key
	  A KEMAC can hold both key and salt, so if salt is present, we should extract it
	  and append it to the srtp-key cap because libsrtp expects the srtp-key to hold
	  the concantenated srtp master key and salt.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3818>

2022-12-14 10:29:27 +0100  Bart Van Severen <bart.vanseveren@barco.com>

	* gst-libs/gst/sdp/gstmikey.c:
	  sdp: gstmikey: gst_mikey_message_to_caps: extract ROC from first crypto session
	  We need the ROC to decrypt a SRTP stream as the ROC is part of the AES IV.
	  So look for first crypto session, from which we can get the ROC and find corresponding
	  crypto policy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3818>

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

	* gst-libs/gst/sdp/gstmikey.c:
	  sdp: Fix gst_mikey_payload_key_data_set_interval() array length annotation
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1744
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3814>

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

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

	* po/af.po:
	* po/az.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/lt.po:
	* po/lv.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.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:
	  gst-plugins-base: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773>

2023-01-22 00:52:56 +0100  Ruben Gonzalez <rgonzalez@fluendo.com>

	* ext/gl/gstglvideomixer.c:
	  glvideomixer: Fixing error with mouse navigation events when no pixel-aspect-ratio
	  Handling mouse navigation events in glvideomixer element, if no
	  pixel-aspect-ratio info in the caps, an assertion error is produced
	  inside gst_util_fraction_multiply because default denominator is zero.
	  Error fixed:
	  ```
	  (gst-launch-1.0:102654): GStreamer-CRITICAL **: 00:47:51.598: gst_util_fraction_multiply: assertion 'b_d != 0' failed
	  ```
	  Simple pipeline to reproduce the issue:
	  ```
	  gst-launch-1.0 -v glvideomixer name=mix ! glimagesinkelement  gltestsrc  ! mix.sink_0
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3766>

2023-01-20 09:59:06 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	* gst/playback/gstparsebin.c:
	* gst/playback/gstplaybin3.c:
	* gst/playback/gsturidecodebin3.c:
	* gst/playback/gsturisourcebin.c:
	  playback: New playback elements are no longer experimental
	  The API is not expected to change and it has been used extensively since 1.18.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3761>

2023-01-19 16:35:08 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Remove failing stream from selection
	  If no decoder is present for a given stream, remove it from the requested
	  selection.
	  Fixes #1581 and #1662
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3754>

2023-01-19 16:27:57 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3-parse.c:
	  decodebin3: Don't intercept queries if no parsebin present
	  If we don't use a parsebin, we forward the queries as-is from upstream. There is
	  no reconfiguration possible within identity.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3754>

2023-01-19 16:25:51 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	* gst/playback/gsturisourcebin.c:
	  decodebin3: Don't insert parsebin if input is already parsed
	  This is a temporary workaround until we find a generic solution to indicate that
	  a stream has already been "parsed".
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3754>

2023-01-09 11:36:38 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* tools/gst-play.c:
	  gst-play: add --no-position
	  It can be useful to reduce or remove the clutter in logs due to those
	  queries when debugging.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3698>

2023-01-18 16:39:03 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	  gleglimage: Fix GL_OES_EGL_image_external name in debug trace
	  There is a debug log when this extension is missing, but it was
	  reporting the wrong extension name, which was confusing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3748>

2023-01-16 11:43:37 +0100  Michiel Konstapel <github@konstapel.nl>

	* ext/gl/gstglvideomixer.c:
	  glvideomixer: don't clear pad->geometry_change when setting an identical value
	  Closes #1715
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3733>

2023-01-14 16:16:49 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: clear subitem if suburi is set to NULL
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1649
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3730>

2023-01-16 15:55:56 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/gl/gstglcontext.c:
	  gl: Fix crash in cocoa due to race in gst_gl_context_activate()
	  We create a new context in `gst_gl_context_create_thread()` and then
	  activate it on the current thread. Thereafter we assume that the
	  current thread continues to be the active thread for that context and
	  call `gst_gl_context_fill_info()` which asserts that the current
	  thread is the active thread.
	  However, if at the same time a different thread calls
	  `send_message_async()`, it will call into
	  `gst_gl_window_cocoa_send_message_async()` which will schedule the
	  message to be invoked using GCD. That anonymous function will also
	  call `gst_gl_context_activate()`, which creates a race, which can lead
	  to:
	  ```
	  gst_gl_context_fill_info: assertion 'context->priv->active_thread == g_thread_self ()' failed
	  ```
	  Fix it by using `gst_gl_context_thread_add()` to invoke `fill_info()`
	  on the context.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3732>

2023-01-14 16:16:39 +0530  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/cocoa/gstglcaopengllayer.h:
	* gst-libs/gst/gl/cocoa/gstglcaopengllayer.m:
	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
	  gl/cocoa: Store a weak reference to the `GstGLWindow` instead of the `GstGLContext`
	  We can't rely on the `GstGLContext` to stay alive and need to keep track
	  of it. For that we keep track of the `GstGLWindow` in a weak reference
	  to avoid a reference cycle, and get the corresponding `GstGLContext`
	  whenever needed.
	  With contributions from Nirbheek Chauhan.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1697
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3729>

=== release 1.21.90 ===

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

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

2023-01-13 16:39:51 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Cleanup on failure
	  This ensures there is a source present/valid *ONLY* in PAUSED and above.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3720>

2023-01-13 16:37:03 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Unset locked state
	  Some elements still had it in failure cases
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3720>

2023-01-13 16:34:45 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Handle state synchronization failures
	  Properly reset and remove the failing urisourcebin if we failed bringing them up
	  to the same state as ourselves.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1708
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3720>

2023-01-12 14:39:20 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/gl/gstglbasefilter.c:
	  glbasefilter: Copy metas when they only contain they "video" tag
	  Same logic as in `GstVideoFilter`
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3716>

2023-01-11 17:30:09 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Fix global group-id handling
	  The goal of the "global" group-id is to fix new inputs that do not come from the
	  same "source" as others. In order to ensure all "current" streams have the same
	  group-id we distribute the first valid group-id to all streams.
	  This commit fixes two issues with that:
	  * When inputs are unlinked they weren't always properly resetted (it would only
	  work if parsebin is used, which is no longer the default in
	  uridecodebin3/playbin3).
	  * When computing the global group-id, take into account unset
	  group-id (i.e. GST_GROUP_ID_INVALID).
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1698
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3712>

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

	* po/LINGUAS:
	* po/af.po:
	* po/az.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/lt.po:
	* po/lv.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.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:
	  gst-plugins-base: 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-10 11:19:12 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: ensure recalculate_group_id() is called with INPUT lock
	  This function uses main_input and current_group_id which are protected
	  by the input lock.
	  Some calls were already safe but not all.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3702>

2022-12-21 15:35:21 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: fix stream leak
	  GstSourcePad owns the GstStream but was not unreffing it when being
	  disposed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3617>

2022-12-21 10:44:40 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: fix dead lock when removing pad
	  gst_element_remove_pad() is triggering a call to
	  gst_decodebin3_input_pad_unlink() which needs the input lock as well,
	  resulting in a dead lock.
	  Fix #1667
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3614>

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

	* tools/gst-device-monitor.c:
	* tools/gst-discoverer.c:
	* tools/gst-play.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-10 13:06:37 +0000  Tim-Philipp Müller <tim@centricular.com>

	* tests/interactive/test-effect-switch.c:
	  tests: interactive: test-effect-switch: use autovideosink
	  Also works on Windows.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3703>

2023-01-09 01:24:57 +0000  Tim-Philipp Müller <tim@centricular.com>

	* tools/gst-play.c:
	  gst-play: fix command line option string formatting
	  Add missing space to translated string.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3696>

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

	* docs/meson.build:
