=== release 1.22.5 ===

2023-07-20 15:22:48 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2023-07-18 01:25:47 +0000  Ruslan Khamidullin <ruslank@borisfx.com>

	* tests/check/libs/videotimecode.c:
	  video: add extensive tests for gst_video_time_code_is_valid()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5061>

2023-07-12 22:45:28 +0000  Ruslan Khamidullin <ruslank@borisfx.com>

	* gst-libs/gst/video/gstvideotimecode.c:
	  video: accept timecode of 119.88 (120/1.001) FPS
	  The drop-frame rules are specified in “SMPTE ST 12-3:2016” and are
	  consistent with the traditional ones:
	  “
	  To minimize fractional time deviation from real time, the first two
	  super-frame numbers (00 and 01) shall be omitted from the count at the
	  start of each minute except minutes 00, 10, 20, 30, 40, and 50. Thus the
	  first eight frame numbers (0 through 7) are omitted from the count at
	  the start of each minute except minutes 00, 10, 20, 30, 40, and 50.
	  ”
	  Where “super-frame” is a group of 4 frames for 120 FPS.
	  Fixes #2797
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5061>

2023-04-10 12:54:51 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideotimecode.c:
	* tests/check/libs/videotimecode.c:
	  video: timecode: Add support for framerates lower than 1fps
	  These are not explicitly defined but the existing calculations can be
	  extended to also cover that case by inverting them to avoid floating
	  point calculations.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2465
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5074>

2023-07-18 15:15:40 +0100  Philippe Normand <philn@igalia.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Prevent a critical warning when reassigning output slots
	  Do not attempt to send a streams-selected message when reassigning
	  an output slot in case upstream signalled that it is handling stream selection.
	  In this case decodebin3 doesn't keep track of stream
	  collections (`dbin->collection` is NULL).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5069>

2023-07-17 15:23:35 +0100  Philippe Normand <philn@igalia.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Fix slot input linking when the associated stream has changed
	  Setting the input field on the empty slot prevents future linking of it and will
	  result in flow errors later on.
	  This was observed in WebKit's MediaStream source element, when it changes the
	  caps on one of its associated streams, from an encoded format to a raw video
	  format. The associated stream-id on the sticky stream-start event doesn´t
	  change, but the element creates a new GstStream with a different ID and sets it
	  on the stream-start event. Stream parsing is disabled in urisourcebin, so
	  decodebin3 handles the parsing. Without this patch we would end-up with unlinked
	  pads in decodebin3 after switching to the raw video format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5067>

2023-01-31 16:12:17 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Set source element to READY before querying it
	  Generating the source element is done when urisourcebin 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).
	  Finally it makes more sense to have an element in READY when attempting to query
	  information from it (such as SCHEDULING queries or probing live-ness).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5058>

2023-06-21 13:45:13 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	* tests/check/libs/videodecoder.c:
	  videodecoder: fix segfault copying buffer metas
	  The current implementation copies metas without checking if the buffer
	  is writable.
	  The operation that needs to be done, replacing the input buffer and
	  copying the metas, is only part of that process. We create a new function
	  that does both.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5054>

2023-07-12 17:08:32 +0100  Philippe Normand <philn@igalia.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Remove spurious input locking during parsebin reconfiguration
	  Commit 22917b140ffac5208eff173321fa7cdad8976cca added extra locks in
	  `reset_input_parsebin()` but all call sites of that function already take the
	  input lock.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5025>

2023-05-16 21:24:44 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/meson.build:
	* gst-libs/gst/gl/viv-fb/gstglviv-fb.h:
	  gl: provide a pkg-config/gir file for the viv-fb backend
	  Required to be able to generate coherent bindings for window system
	  specific APIs due to limitations in gobject-introspection.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4959>

2023-05-16 22:09:48 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/meson.build:
	  gl: don't install the viv-fb window header file
	  It is not needed at all by any external implementations and should not
	  be exposed to the outside world.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4959>

2023-06-30 13:53:19 +0200  Carlos Rafael Giani <crg7475@mailbox.org>

	* gst-libs/gst/gl/meson.build:
	  gl: Separate viv direct texture checks from viv-fb winsys check
	  Vivante direct textures do not depend on the viv-fb windowing system.
	  Decouple these two to be able to use direct textures even when viv-fb
	  is not enabled.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4959>

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

2023-03-26 16:40:28 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/subparse/gstsubparse.c:
	  taglist, plugins: fix compiler warnings with GLib >= 2.76
	  Fix compiler warnings about not using the return value when
	  freeing the GString segment with g_string_free(.., FALSE):
	  ignoring return value of ‘g_string_free_and_steal’ declared with attribute ‘warn_unused_result’
	  which we get with newer GLib versions. These were all harmless.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5015>

2023-07-07 16:01:33 +0300  Maksym Khomenko <maksym.khomenko@skelia.partners>

	* gst-libs/gst/app/gstappsink.c:
	  appsink: add missing make_writable call
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5013>

2023-07-05 14:27:22 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	  bad: audioaggregator: Do not post message before being constructed
	  `gst_aggregator_set_latency` will post a message on the bus which
	  triggers traces for not constructed objects which fails in rust tracers
	  as object should have names in all traces.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4984>

2023-07-04 15:37:16 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/playback/gstsubtitleoverlay.c:
	  subtitleoverlay: fix mutex error if sink caps is not video
	  We were trying to unlock a mutex that was not locked.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4972>

2023-06-20 19:10:38 +0100  Tim-Philipp Müller <tim@centricular.com>

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

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

2023-01-06 18:09:02 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefindfunctions: Add missing length check to XML typefinder
	  Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54811
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3690>

2023-01-06 14:37:31 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefindfunctions: Reduce XML typefinder minimum data size from 64 to 32 bytes
	  64 bytes makes the typefinder fail on very small XML documents on which
	  it succeeded previously.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3690>

2023-01-05 17:59:41 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/opus/gstopusdec.c:
	  opusdec: Try harder to negotiate the upstream channels/rate preferences
	  It might be possible to fulfill those but not with the first caps
	  structure. Instead of just fixating the first caps structure, check if
	  the preference can be fulfilled by any of the structures as the first
	  step.
	  Without this the following pipeline negotiates to mono after the
	  decoder because opusenc only has a single channel in its first caps
	  structure.
	  gst-launch-1.0 audiotestsrc ! audio/x-raw,channels=2 ! opusenc \
	  ! queue ! opusdec ! queue ! opusenc ! fakesink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3689>

2023-01-05 17:35:02 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/opus/gstopusenc.c:
	  Revert "opusenc: Reverse channel order in template caps"
	  This reverts commit cdf411e82d7e437e5de138492b6e75e5513686ee. It causes
	  pipelines to unnecessarily negotiate to 8 channels.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1688
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3689>

2023-01-03 18:53:41 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/audio/gstaudioutilsprivate.c:
	  audioenc/dec: Avoid adding temporary structure
	  As a minor optimisation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3673>

2023-01-03 18:52:05 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/audio/gstaudioutilsprivate.c:
	  audioenc/dec: Preserve downstream caps preference in get caps
	  This should fix pipelines such as this one to work as expected
	  ... ! opusenc ! capsfilter caps='audio/x-opus,
	  channels=1; audio/x-opus, channels=2' ! ...
	  The expectation is that the encoder will propose the first structure
	  before the second one to the source.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3673>

2022-12-23 16:15:49 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefindfunctions: Check for the SVG namespace URL in addition to `<svg` and the doctype
	  Finding the SVG namespace URL gives a clear indication that this is
	  actually an SVG file while the `<svg>` tag only gives a likely
	  indication as it's rather short.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1540
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3631>

2022-12-23 17:25:06 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefindfunctions: Make XML typefinder more strict
	  If a XMLDec is found, check also for its end. Similarly, check for the
	  end of the XML tag we're looking for and make sure that the following
	  characters are valid.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1536
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3632>

2022-12-30 08:44:35 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Fix parsebin handling
	  The goal of !3601 was to make sure we don't end up with non-streams-aware
	  adaptive demuxers. Since we know that parsebin is streams-aware, just remember
	  that and handle them that way.
	  Fixes issues with some scenarios where parsebin might add pads *before* the
	  collection is posted on the bus
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1675
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3658>

2022-12-29 16:02:38 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Fix handling of "expected" pads
	  The number of expected pads was:
	  * Defaulting to 1
	  * Or being overriden by GST_MESSAGE_STREAMS_SELECTED
	  This fails if upstream isn't a selectable source and has multiple streams, and
	  would therefore cause failures with multi-stream gapless playback
	  Fixes #1672
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3658>

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

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Avoid repeatedly calling the blocking probe
	  When skipping an event, we want to unref it and say we handled it. This avoids
	  being repeatedly called for the same (sticky) events.
	  The events will be properly propagated once the pad is linked.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3658>

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

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Handle multiple pending pad block probes
	  It is quite possible to have the blocking probe called from different streaming
	  threads when all expected pads are present.
	  * Notify all waiters by using g_cond_broadcast instead of g_cond_signal
	  * Properly remove the probe after waiting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3658>

2022-12-29 11:02:10 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/gstglcontext.c:
	  gl: Mark `gst_gl_context_new_wrapped()` return value as `nullable`
	  If a GL context is requested for which no API support is compiled in
	  then `NULL` is returned.
	  Also remove a useless `NULL` check: `g_object_new()` can't possibly
	  return `NULL`, ever.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3656>

2022-12-24 23:41:52 -0500  F. Duncanh <fduncanh@gmail.com>

	* gst-libs/gst/gl/meson.build:
	  plugins-base/tests/check/meson.build: add omitted Wayland dependence
	  SUSE places Wayland include files in /usr/include/wayland, and needs
	  a Cflag added to wayland_client_deps by pkg-config, which is added to
	  gl_winsys_deps: add this as a dependency in gstgl_dep to fix issue.
	  Fixes #1607
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3638>

2022-12-29 03:52:42 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/gl/meson.build:
	  meson: Add gstreamer-gl-1.0 pkgconfig vars to internal dependency
	  So we can fetch gl_winsys, gl_platforms, etc directly using
	  gst_gl_dep.get_variable() when building gstreamer as a subproject, or
	  when building gst-plugins-rs's gtk4 plugin.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3654>

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

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

2022-12-19 11:49:32 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Modify check for streams-aware adaptive demuxers
	  Using the "GstBin" flags to check if an adaptive demuxer is streams-aware isn't
	  a good idea since it prevents using elements which aren't bins.
	  Instead we see if a collection was posted by the demuxer by the time a pad is
	  added.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3601>

2022-12-19 15:22:15 +0100  Philipp Zabel <p.zabel@pengutronix.de>

	* gst/videoconvertscale/gstvideoconvertscale.c:
	  videoconvertscale: fix valid_tags NULL-terminated array of strings
	  The valid_tags array of strings must be NULL-terminated,
	  as it is passed to the g_strv_contains() function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3603>

2022-12-19 14:24:06 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: fix typo in doc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3602>

2022-12-13 12:23:56 +0100  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/video/navigation.h:
	  base:navigation: Cleanup navigation key modifiers enum
	  We were exposing the 'ALT' modifier as if we were guaranteeing its
	  accuracy but truth is we were only exposing configuration dependent
	  values.
	  Make the API simpler for now, the same way as Gtk3 was exposing it, and
	  when we have time to guarantee more values by making them take backends
	  configuration into account, we will expose those values in a accurate
	  way.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1402
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3565>

2022-11-30 04:04:09 +0000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: add CAN_ACCEPT_RAW to all dma-buf uploaders
	  Fixes cases where a dma-buf would be uploaded using direct-dma-buf
	  into an external-oes texture (using video/x-raw caps) and then
	  attempting to reconfigure the same source.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3486>

2022-06-03 11:40:35 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* docs/plugins/gst_plugins_cache.json:
	* ext/gl/gstglvideomixer.c:
	  glvideomixer: override sink pad template
	  Allow us to pass the GType of its pad and so
	  improve the documentation when inspecting glvideomixer.
	  Fix #1253
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2527>

2022-12-12 13:43:30 +0000  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/video/video-format.h:
	  video-format: Add macro checking for validity of GstVideoFormatInfo
	  Mostly to maintain consistency with the GST_AUDIO_FORMAT_INFO_IS_VALID_RAW
	  macro.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2800>

2022-07-27 09:39:52 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/audio/audio-format.c:
	* gst-libs/gst/audio/audio-format.h:
	  audio-format: Add macro checking for validity of GstAudioFormatInfo
	  `gst_audio_format_info_fill_silence()` not properly checking the validity of its
	  input may lead it into an infinite loop.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2800>

2022-12-11 17:36:53 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ext/pango/gsttimeoverlay.c:
	  timeoverlay: fix pad leak
	  Spotted by Jiri Uncovsky.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1336>

2022-12-07 14:49:05 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/pango/gsttextrender.c:
	  textrender: Negotiate caps on a GAP event if none were negotiated yet
	  Otherwise downstream wouldn't have received a segment event either and
	  wouldn't know what to do with the gap event
	  And also forward any pending segment event.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3541>

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

	* meson.build:
	  Back to development

=== release 1.21.3 ===

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

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

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

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

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

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

2022-12-02 15:52:56 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Protect against NULL uri/suburi
	  Fixes #1625
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3511>

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

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Always store pending buffering messages
	  Fixes #1586
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3487>

2022-11-30 20:48:28 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* ext/opus/gstopusdec.c:
	  opusdec: Use proper guint/guint8 type conversion
	  Do not cast, that might yield wrong results.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3494>

2022-11-30 20:47:11 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* ext/opus/gstopusdec.c:
	  opusdec: Negotiate default to 2 channels
	  In that place, dec->n_channels can still theoretically be 0. Default to
	  2 in that case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3494>

2022-11-30 20:46:05 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* ext/opus/gstopusenc.c:
	  opusenc: Reverse channel order in template caps
	  We want to make it so that we prefer a higher, not lower, number of
	  channels. Otherwise, this pipeline would convert from 2 to 1 channels:
	  gst-launch-1.0 audiotestsrc ! audio/x-raw,channels=2 ! opusenc ! queue ! opusdec ! queue ! opusenc ! fakesink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3494>

2022-11-28 16:05:16 +0000  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/audio/gstaudiodecoder.h:
	  audiodecoder: Make data processing errors non-fatal by default
	  The previous default value of `max-errors` was too small and would potentially trigger the
	  decoder to emit errors too often for most cases.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3478>

2022-11-30 10:27:27 +0000  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/video/gstvideodecoder.h:
	  videodecoder: Make data processing errors non-fatal by default
	  The previous default value of `max-errors` was too small and would potentially trigger the
	  decoder to emit errors too often for most cases.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3478>

2022-11-29 14:02:55 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	  sdpmessage: Annotate SDP message parameters for `parse_uri()` and `parse_buffer()` correctly
	  They are not actually `out` parameters but must be allocated and
	  initialized to a valid SDP message by the caller. Just allocating them
	  without initialization will cause memory corruptions because the
	  functions will try to clear/append to the existing SDP message.
	  As such they should be just marked as `transfer none`.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1605
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3484>

2022-11-28 10:19:20 +0100  Ignacio Casal Quinteiro <qignacio@amazon.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	  sdp: use g_strdup instead of strdup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3475>

2022-11-25 10:01:06 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gl/gstglimagesink.c:
	  glimagesink: Fix render rect assertion
	  Whenever the surface is resized before the stream is negotiated, we endup
	  with an assertion in libgstvideo.
	  gst_video_center_rect: assertion 'src->h != 0' failed
	  This fixes it, by following the style aready in place, which is to ensure
	  surfaces have a minimum size of 1x1.
	  Fixes #1139
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3467>

2022-11-26 09:23:59 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/audio/gstaudiofilter.c:
	* gst/audioconvert/gstaudioconvert.c:
	* gst/audioresample/gstaudioresample.c:
	  audioconvert, audioresample, audiofilter: fix divide by 0 for input buffer without caps
	  gst-launch-1.0 audiotestsrc ! udpsink host=127.0.0.1
	  gst-launch-1.0 udpsrc ! audioconvert ! autoaudiosink
	  would crash with a floating point exception when clipping the input
	  buffer owing to a division by zero because no caps event was received.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3469>

2022-08-09 10:26:00 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: propagate about-to-finish for new inputs
	  If the pending next urisourcebin is already draining, make sure we propagate it
	  when activating it.
	  Fixes gapless playback of small entries
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1588
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3457>

2022-08-10 16:52:23 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Remove old fixme
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3457>

2022-08-09 16:31:26 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	* gst/playback/gsturidecodebin3.c:
	  (uri)decodebin3: Ensure group-id consistency
	  Make sure that group-id of a given play item are made consistent from the
	  start (sources) and all the way through the output.
	  This ensures that we can reliably detect that we have switched to the next play
	  item on the output of decodebin3 (and we can therefore properly free/release it)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3457>

2022-08-09 10:42:22 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Fix shutdown procedures in probe
	  When shutting down, we want to remove the urisourcebin blocking probes ... but
	  we also want to propagate a GST_FLOW_FLUSHING upstream (and not
	  GST_FLOW_NOT_LINKED) to make the upstream task gracefully stop instead of
	  posting an error message.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3457>

2022-08-05 16:58:08 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Properly reset when going back to READY
	  Clear the remaining stream-related fields when going from PAUSED to READY, and
	  use when disposing.
	  Fixes various issues when re-using decodebin3/playbin3
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3457>

2022-08-05 10:37:23 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Don't output bogus GST_MESSAGE_STREAMS_SELECTED
	  When `is_selection_done` is called, it checks that all the requested streams are
	  present in the active stream list ...
	  ... except there could very well be a (about to be removed) stream from the
	  previous selection present.
	  Therefore filter the list of streams we add to the message by the streams which
	  are actually requested.
	  Fixes issues when switching between different stream types (ex: video-only to
	  audio-only).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3457>

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

	* ext/ogg/gstoggdemux.c:
	  oggdemux: Don't leak pending seek event
	  Make sure any pending seek event is released when going back down to READY.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3443>

2022-11-21 15:10:35 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Don't leak parsepad list on shutdown
	  Free it as it is down in other cases
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3443>

2022-11-21 18:47:50 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/pango/gsttextrender.c:
	* ext/pango/gsttextrender.h:
	  textrender: Don't pass plaintext as pango markup to Pango
	  Otherwise e.g. & in the text will cause Pango to complain about invalid
	  markup and render the text incorrectly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3445>

2022-11-21 18:43:54 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/pango/gsttextrender.c:
	  textrender: Don't blindly forward all events
	  Use gst_pad_event_default(), which does the right thing by default.
	  Especially it does not forward text/x-plain caps downstream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3445>

2022-11-16 11:47:54 -0500  Matt Crane <matt@standard.ai>

	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
	  rtpbasedepayload: Drop redundant reference timestamp buffer meta in RTP depayloaders
	  Currently, when rtspsrc property add-reference-timestamp-metadata=true,
	  a downstream rtph264depay element will attach multiple copies of the
	  same GstReferenceTimestampMeta to the depayloaded media buffers. This
	  can have signficant performance impacts further downstream in a pipeline
	  like the following:
	  rtspsrc add-reference-timestamp-metadata=true ! rtph264depay ! h264parse ! ... ! rtph264pay ! ...
	  For example, if there are 10 packet buffers for a frame of RTP H.264
	  video, each of those packet buffers will contain the same reference
	  timestamp meta. The rtph264depay element will then attach all 10
	  metadata to the depayloaded frame. And then later when we payload the
	  frame buffer again for proxying, we now have 10 more buffers each with
	  10 instance of the same metadata. Allocating/deallocating 100+ instances
	  of metadata @ 30fps for multiple streams has a pretty large performance
	  impact.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1578
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3431>

2022-11-16 15:17:24 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/video-frame.c:
	  video-frame: Avoid using tile width
	  The tile width in pixel is not always available. Notably for
	  8L128 10bit format, the tile is 8x128 bytes, and the pixel
	  format is fully packed. That means that the tile contains at
	  least 6 pixels per line, but it also hold some bits of the
	  pixel from the same line on the previous or next tile.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3424>

2022-11-15 13:50:13 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglmemory.c:
	* gst-libs/gst/gl/gstglutils.c:
	* gst-libs/gst/video/video-format.c:
	* gst-libs/gst/video/video-format.h:
	* gst-libs/gst/video/video-frame.c:
	* gst-libs/gst/video/video-info.c:
	* gst-libs/gst/video/video-tile.h:
	* gst/rawparse/gstrawvideoparse.c:
	  video: Add arbitrary tile dimensions support
	  In current tile representation, only tiles with power of two
	  width and height in bytes are supported. This limitation
	  prevents adding more complex tiles formats.
	  In this patch, we deprecate tile_ws and tile_hs from GstVideoFormatInfo and
	  replace if with an array of GstVideoTileInfo. Each plane tiles are then
	  described with their pixels width/height, line stride and total size.
	  The helper gst_video_format_info_get_tile_sizes() that depends on the
	  deprecated API is also being removed. This can simply be removed as it wasn't
	  in any stable release yet.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3424>

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

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

2022-11-17 15:41:35 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin2.c:
	  decodebin2: Minor debug fix for decodepad
	  decodedad might have their name changed when exposing, causing a race when
	  trying to get their name without taking a lock. Just use GST_PTR_POINTER in
	  debug statements instead
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3428>

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

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Remove un-needed define
	  This code hasn't use GValueArray in ages
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-14 14:17:25 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Use a non-buffering multiqueue for non-streamable URI
	  Even though buffering is not required, we need to ensure we are dealing with the
	  interleave (if any) before pushing the elementary streams further downstream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-10 10:27:48 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Minor doc fix
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-01 04:38:53 +1000  Jan Schmidt <jan@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Don't leak EOS event
	  Make sure to unref the EOS event in all code paths
	  when returning GST_PAD_PROBE_HANDLED
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-07-21 16:43:47 +0200  Edward Hervey <edward@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/playback/gstplaybin3.c:
	* gst/playback/gsturidecodebin3.c:
	* tools/gst-play.c:
	  playbin3: Move gapless to uridecodebin3
	  This was the intention from the start, just took me a few years *cough* to
	  actually implement it properly.
	  Gapless is handled by re-using as much as possible the same decoders and sinks
	  if present, and only pre-rolling switching at the sources level (with buffering
	  if/when needed).
	  In order to enable "gapless" playback, the "next" uri should be set at any time
	  between the moment the `about-to-finish` signal is emitted and the moment the
	  current play item is done. Previously this could only be done with the signal
	  emission.
	  This new implementation also allows "Instantaneous URI switching". This allows a
	  much faster way of switching playback entries while re-using as many elements as
	  possible. To enable this set `instant-uri` property to TRUE, the default being
	  FALSE.
	  API: instant-uri properties
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

	* gst/playback/gstplaybin3.c:
	  playbin3: Remove unused code
	  This was never used, and if ever it's needed at some point for reference it's
	  available in gstplaybin.c
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-14 09:54:24 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Clear input collection when linked again
	  The previous collection no longer applies to this input
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Improve collection merging
	  If the collections are the same, don't merge them
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-10 06:58:50 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3-parse.c:
	* gst/playback/gstdecodebin3.c:
	  decodebin3: doc cleanup
	  Remove old/invalid FIXME and cleanup some logs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-10 06:54:21 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Remove unused variable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-10 09:13:35 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Allow re-using inputs
	  DecodebinInput (and their backing parsebin or identity) are no longer released
	  when the corresponding sinkpad is unlinked, but when it's released.
	  The parsebin element will be resetted:
	  * If incoming caps are incompatible (was the case before)
	  * Or when unlinking and it was previously pull-based
	  This opens the way to use decodebin3 with changing inputs (i.e. gapless)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: use urisourcebin parse-streams property
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

	* docs/plugins/gst_plugins_cache.json:
	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Improve buffering handling
	  Introduce the option to have the streams be parsed with `parsebin` for
	  compatible sources (i.e. which are eligible for buffering in the same way as
	  before this commit).
	  By parsing the inputs directly, this allows more accurate buffering control:
	  * Instead of relying on potential bitrate information coming from somewhere
	  * and *without* being linked downstream
	  If `parse-streams` is activated and the stream is eligible for buffering, then a
	  `multiqueue` will be used on the output of `parsebin` in order to handle the
	  buffering.
	  API: `parse-streams`
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-09 10:33:22 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: avoid bogus processing
	  If a parsebin pad is already exposed, don't try to rename it or cause extra
	  processing which isn't needed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-09 10:26:41 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3-parse.c:
	* gst/playback/gstdecodebin3.c:
	  decodebin3: Avoid parsebin usage if not needed
	  If the incoming streams are already parsed, there is no need to add yet-another
	  parsebin to process it *IF* that stream is compatible with a decoder or the
	  decodebin3 output caps.
	  This only applies if all the following conditions are met:
	  * The incoming stream can *NOT* do pull-based scheduling
	  * The incoming stream provides a `GstStream` and `GstStreamCollection`
	  * The caps are compatible with either the decodebin3 output caps or a decoder
	  input
	  If all those conditions are met, a identity element is used instead of a
	  parsebin element and the same code paths are taken.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

	* gst/playback/gstdecodebin3-parse.c:
	  decodebin3: DecodebinInputStream: Hold a ref to srcpad
	  And move the locking outside of the input stream creation function
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-07 10:01:57 +0100  Edward Hervey <edward@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Bring high-watermark level in sync with legacy values
	  It was always 60%. For some reason this crept in during the initial urisourcebin
	  refactoring.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-07 09:49:02 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Don't leak collection when releasing inputs
	  And refactor the function slightly for clarity
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-05 09:20:03 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Protect input freeing with the input lock
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-05 09:16:41 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3-parse.c:
	* gst/playback/gstdecodebin3.c:
	  decodebin3: Refactor parsebin output handling
	  * Instead of creating temporary `PendingPad` structures, always create a
	  DecodebinInputStream for every pad of parsebin
	  * Remove never used `pending_stream` field from DecodebinInputStream
	  * When unblocking a given DecodebinInput (i.e. wrapping a parsebin), also make
	  sure that other parsebins from the same GstStreamCollection are unblocked
	  since they come from the same source
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Store GstStreamCollection from upstream
	  If upstream provides stream collection, use/store them as soon as possible
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-01 10:30:19 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Move adaptive demuxer handling into ChildSrcPadInfo
	  It's part of that chain of elements
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-01 09:53:36 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Only remove components in PAUSED->READY
	  With the refactoring, we are guaranteed the components are only created in PAUSED
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-01 09:49:39 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Refactor ChildSrcPadInfo and OutputSlot usage
	  Make an explicit topology/tree of structures:
	  * ChildSrcPadInfo is created for each source element source pad
	  * ChildSrcPadInfo contains the chain of optional elements specific to that
	  pad (ex: typefind)
	  * A ChildSrcPadInfo links to one or more OutputSlot, which contain what is
	  specific to the output (i.e. optional buffering and ghostpad)
	  * No longer use GObject {set|get}_data() functions to store those structures and
	  instead make them explicit
	  * Pass those structures around explicitely in each function/callback
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-31 06:13:31 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Remove duplicate call
	  We ensure sources are removed in PAUSED->READY->NULL. No need to call it when
	  creating the source.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

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

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

	  urisourcebin: Only expose pads once activation has completed
	  The following problem could happen:
	  * Thread 1 : urisourcebin gets activated from READY->PAUSED
	  * Thread 2 : some element causes a pad to be added to urisourcebin , which gets
	  linked downstream, which decides to activate upstream to pull-based.
	  * That requires "activating" the pads from PUSH to NONE, and then from NONE to PULL
	  * Thread 1 : the base class state change handlers checks if all pads are
	  activated
	  The issue is that since going form PUSH to PULL requires going through NONE,
	  there is a window during which:
	  * Thread 1 : The pad was set to NONE (before being set to PULL)
	  * Thread 2 : The base class activates that pad (to PUSH)
	  * Thread 1 : The attempt to "activate" to PULL fails (silently or not)
	  This is very racy, so in order to avoid that, we make sure that we only add pads
	  once the transition from READY->PAUSED in the parent classes is done.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-26 07:04:52 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Only allow streams-aware adaptive demuxer
	  We no longer want to deal with elements that use the old-style of stream
	  switching and instead expose/remove streams as they appear/disappear
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-25 17:13:21 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Simplify initial information collection
	  When iterating existing pads of a source, directly handle them:
	  * Raw pads are handled directly
	  * Pads without caps are connected to a typefind
	  * Other pads are handled via `handle_new_pad()`
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-25 11:15:05 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Use iterator function where applicable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-25 11:13:49 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Document and rename fields
	  Removes ambiguity when reading the code
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-25 11:05:45 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Remove unused lock/list
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-25 10:46:40 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Check for live source when generating element
	  Instead of at a later stage
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-19 12:28:41 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Streamline demuxer removal
	  And since remove_source also removes the dmeuxer, we no longer need to call it
	  in addition
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-19 11:03:03 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Clarify function name and arguments
	  * The "need_queue" variable is only used in one place, move it there
	  * Clarify the fact the function also exposes raw_pads
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-19 11:00:09 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Error out if a source doesn't expose pads
	  Looks like this fell through the cracks. If a source element doesn't have
	  dynamic pads and doesn't provide any source pad ... we should properly error
	  out.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-14 12:44:05 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/pbutils/codec-utils.c:
	  pbutils: Fix vp9 mime mapping when caps when no chroma-site.
	  It's possible to have 4:2:0 chroma format without chroma-site in caps, but it
	  isn't validated by the current code. This patch fixes it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3405>

2022-11-14 20:38:09 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: Consider having output data when the subclass drops a frame
	  The subclass might drop a frame for QoS reasons (e.g. vpxdec) and if all
	  frames are dropped because of that it wouldn't make sense to post an
	  error message on EOS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3408>

2022-11-14 07:26:25 +0100  Edward Hervey <edward@centricular.com>

	* ext/ogg/gstoggdemux.c:
	  oggdemux: Don't leak incoming EOS event
	  If we're going to drop it ... then do drop it :)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3400>

2022-11-12 11:35:58 +0100  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/pbutils/encoding-profile.c:
	  pbutils/encoding-profile: Streamline cleanup
	  Cleanup all local variables in one place, and ensure failure cases go through there.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

2022-11-11 14:18:21 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gststreamsynchronizer.c:
	  streamsynchronizer: Don't leak the syncstream object
	  It was leaked when breaking out early when handling GST_EVENT_STREAM_START
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

2022-11-12 10:00:01 +0100  Edward Hervey <edward@centricular.com>

	* gst/encoding/gstencodebasebin.c:
	  encodebasebin: Don't leak muxer pad
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

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

	* gst-libs/gst/pbutils/encoding-profile.c:
	  pbutils/encoding-profile: Don't leak string array
	  It was never freed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

2022-11-10 09:49:41 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/rawparse/gstrawvideoparse.c:
	  rawvideoparse: Fix support for sub-sampled tile
	  This element was missed as it does not use the new helpers to calculate the
	  plane size. The code is relatively simple though, so adding support for
	  subsample tiles was easy enough.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3385>

2022-11-08 17:47:10 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglupload.c:
	  gstgl: Fix handling of padded tile formats
	  When a tile format is padded and imported as DMABuf, the stride
	  contains the information about the actual width and height in
	  number of tiles. This information is needed by the detiling shader
	  in order accuratly calculate the location of pixels. To fix that,
	  we also copy the offset and strides into the otuput format and
	  the converter will ensure that the shader is recompiled whenever
	  the stride changes.
	  This fixes video corruptions observed when decoding on MT8195
	  with videos that aren't not aligned to 64bytes in width.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3365>

2022-11-08 22:42:58 +0800  Talha Khan <talha@averred.net>

	* docs/plugins/gst_plugins_cache.json:
	* gst/videoconvertscale/gstvideoconvert.c:
	* gst/videoconvertscale/gstvideoconvertscale.c:
	  videoconvert, videoscaleconvert: fix element description
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3362>

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

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

=== release 1.21.2 ===

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

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

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

	* ChangeLog:
	  Update ChangeLogs for 1.21.2

2022-11-07 20:31:25 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/gstdiscoverer-types.c:
	  discoverer: Annotate `DiscovererInfo::get_audio_streams()` and others with the concrete stream info type
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3353>

2022-11-05 07:34:27 +0100  Edward Hervey <edward@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Fix non-closed tag handling.
	  Unclear what the goal was, but we could end up reading way past the next_tag.
	  Instead just move everything from after the end tag ('>') to the next_tag.
	  Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53040
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3340>

2022-10-31 16:06:45 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Fix leak
	  Release the reference on the collection which was given to us when extracting it
	  from the event/message.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>

2022-10-13 22:15:58 +0530  Sanchayan Maity <sanchayan@asymptotic.io>

	* gst/playback/gstplaybin3.c:
	  playbin3: Fix missing pad unref
	  GST_TRACERS="leaks" GST_DEBUG="GST_TRACER:7,leaks:6" gst-play-1.0 --use-playbin3 test.mkv
	  When running a pipeline like above, leaks are observed.
	  0:00:56.882419132 240637 0x5562c528ccc0 TRACE             GST_TRACER :0:: object-alive, type-name=(string)GstConcatPad, address=(gpointer)0x7efd7c0d20a0, description=(string)<'':sink_0>, ref-count=(uint)1, trace=(string);
	  0:00:56.882429131 240637 0x5562c528ccc0 TRACE             GST_TRACER :0:: object-alive, type-name=(string)GstConcatPad, address=(gpointer)0x7efd7c0d2be0, description=(string)<'':sink_0>, ref-count=(uint)1, trace=(string);
	  0:00:56.882437056 240637 0x5562c528ccc0 TRACE             GST_TRACER :0:: object-alive, type-name=(string)GstConcatPad, address=(gpointer)0x7efd7c0d3720, description=(string)<'':sink_0>, ref-count=(uint)1, trace=(string);
	  gst_element_release_request_pad does not unref the pad. It needs to
	  be followed by gst_object_unref. Doing that fixes the above leaks.
	  Use g_ptr_array_new_with_free_func with gst_object_unref as the free
	  function to unref the pad after release.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3177>

2022-10-26 13:42:59 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/pbutils/codec-utils.c:
	  pbutils: add correct mime mapping for vp9
	  Based on https://www.webmproject.org/vp9/mp4/#codecs-parameter-string
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3260>

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

	* gst-libs/gst/app/gstappsrc.c:
	* gst-libs/gst/audio/gstaudiodecoder.c:
	* gst-libs/gst/audio/gstaudioencoder.c:
	* gst-libs/gst/video/gstvideoencoder.c:
	  core/base: Only post latency messages if the latency values have actually changed
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1525
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3282>

2022-10-27 07:21:19 +0200  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: Only post latency message if it changed
	  Posting latency messages causes a full and potentially expensive latency
	  recalculation of the pipeline. While subclasses should check whether the latency
	  really changed or not before calling this function, we ensure that we do not
	  post such messages if it didn't change.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3282>

2022-10-26 10:25:43 +0200  Daniels Umanovskis <du@axentia.se>

	* sys/ximage/ximagesink.c:
	* sys/xvimage/xvcontext.c:
	  ximagesink, xvimagesink: set the _NET_WM_PID atom on the window
	  This makes it easier for X11 window management to work with windows created by these sinks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3267>

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

	* gst-libs/gst/gl/gstgldisplay.c:
	* gst-libs/gst/gl/gstglshader.c:
	* gst-libs/gst/pbutils/gstdiscoverer.c:
	* gst-libs/gst/rtsp/gstrtspconnection.c:
	* gst-libs/gst/rtsp/gstrtspmessage.c:
	* gst-libs/gst/sdp/gstmikey.c:
	  Fix various warnings from gobject-introspection
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3261>

2022-10-21 21:50:01 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/gl/cocoa/gstgl_cocoa_private.h:
	* gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m:
	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
	  gl/vulkan: Fix static linking on macOS
	  duplicate symbol '__invoke_on_main' in:
	  /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstvulkan-1.0.a(cocoa_gstvkwindow_cocoa.m.o)
	  /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstgl-1.0.a(cocoa_gstglwindow_cocoa.m.o)
	  ld: 1 duplicate symbol for architecture x86_64
	  clang: error: linker command failed with exit code 1 (use -v to see invocation)
	  Also make the same change in iOS for consistency.
	  Continuation of https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1132
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3242>

2022-10-04 05:39:51 +0100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/meson.build:
	  build/gl: fix automatic dispmanx detection for rpi4
	  rpi4 doesn't contain dispmanx but still contains bcm_host.pc which
	  confuses the configure detection.  Add an explicit check for
	  EGL_DISPMANX_WINDOW_T to ensure that we only build with dispmanx when
	  the types are available.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/893
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/952
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3230>

2022-10-19 22:08:17 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglcontextconfig.c:
	  docs/glcontextconfig: rename title to not be GstGLContext
	  Can be confusing havint two pages that both have GstGLContext as the
	  title.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3227>

2022-07-06 21:45:24 +0300  Jordan Petridis <jordan@centricular.com>

	* ext/cdparanoia/meson.build:
	  cdparanoia: Ignore compiler warning coming from the cdparanoia header
	  When trying to build the plugin, GCC starts complaining about issues
	  with one of the cdparanoia headers and it block us from being able
	  to build the plugin with Werror.
	  The current warning in the header look like this:
	  ```
	  [1/2] Compiling C object subprojects/gst-plugins-base/ext/cdparanoia/libgstcdparanoia.so.p/gstcdparanoiasrc.c.o
	  In file included from ../subprojects/gst-plugins-base/ext/cdparanoia/gstcdparanoiasrc.h:37,
	  from ../subprojects/gst-plugins-base/ext/cdparanoia/gstcdparanoiasrc.c:31:
	  /usr/include/cdda/cdda_interface.h:164:3: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
	  164 |   "Success",
	  |   ^~~~~~~~~
	  ...
	  /usr/include/cdda/cdda_interface.h:163:14: warning: ‘strerror_tr’ defined but not used [-Wunused-variable]
	  163 | static char *strerror_tr[]={
	  |              ^~~~~~~~~~~
	  [2/2] Linking target subprojects/gst-plugins-base/ext/cdparanoia/libgstcdparanoia.so
	  ```
	  Last release of cdparanoia was in 2008, so our best bet for the
	  time is to ignore the warnings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2722>

2022-10-17 14:43:42 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/sdp/gstmikey.c:
	* gst-libs/gst/sdp/gstsdpmessage.c:
	  sdp: Add/fix various annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-17 14:51:03 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/gstid3tag.c:
	* gst-libs/gst/tag/gstvorbistag.c:
	* gst-libs/gst/tag/gstxmptag.c:
	* gst-libs/gst/tag/id3v2.c:
	* gst-libs/gst/tag/lang.c:
	* gst-libs/gst/tag/licenses.c:
	* gst-libs/gst/tag/tags.c:
	  tag: Add/fix various annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-17 11:31:05 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/allocators/gstdmabuf.c:
	* gst-libs/gst/allocators/gstfdmemory.c:
	  allocators: Add/fix various annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-15 12:16:01 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/cocoa/gstgldisplay_cocoa.m:
	* gst-libs/gst/gl/egl/gsteglimage.c:
	* gst-libs/gst/gl/egl/gstgldisplay_egl.c:
	* gst-libs/gst/gl/egl/gstgldisplay_egl_device.c:
	* gst-libs/gst/gl/gstglbasememory.c:
	* gst-libs/gst/gl/gstglbasememory.h:
	* gst-libs/gst/gl/gstglbufferpool.c:
	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglcontext.c:
	* gst-libs/gst/gl/gstgldisplay.c:
	* gst-libs/gst/gl/gstglformat.c:
	* gst-libs/gst/gl/gstglshader.c:
	* gst-libs/gst/gl/gstglsl.c:
	* gst-libs/gst/gl/gstglviewconvert.c:
	* gst-libs/gst/gl/viv-fb/gstgldisplay_viv_fb.c:
	* gst-libs/gst/gl/wayland/gstgldisplay_wayland.c:
	* gst-libs/gst/gl/x11/gstgldisplay_x11.c:
	  gl: Add/fix various annotations
	  And fix a memory leaks in gst_gl_display_egl_new() error cases.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-15 00:19:53 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/codec-utils.c:
	* gst-libs/gst/pbutils/descriptions.c:
	* gst-libs/gst/pbutils/encoding-profile.c:
	* gst-libs/gst/pbutils/encoding-target.c:
	* gst-libs/gst/pbutils/gstdiscoverer-types.c:
	* gst-libs/gst/pbutils/gstdiscoverer.c:
	* gst-libs/gst/pbutils/missing-plugins.c:
	  pbutils: Add/fix various annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-15 00:00:03 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtp/gstrtcpbuffer.c:
	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
	* gst-libs/gst/rtp/gstrtpbasepayload.c:
	* gst-libs/gst/rtp/gstrtpbuffer.c:
	* gst-libs/gst/rtp/gstrtphdrext.c:
	* gst-libs/gst/rtp/gstrtpmeta.c:
	* gst-libs/gst/rtp/gstrtppayloads.c:
	  rtp: Add/fix various annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-14 23:52:40 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	* gst-libs/gst/rtsp/gstrtspdefs.c:
	* gst-libs/gst/rtsp/gstrtspmessage.c:
	* gst-libs/gst/rtsp/gstrtsptransport.c:
	* gst-libs/gst/rtsp/gstrtspurl.c:
	  rtsp: Add/fix various annotations
	  Also initialize out parameters so that they don't have an undefined
	  value in case of errors.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

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

	* gst-libs/gst/app/gstappsink.c:
	* gst-libs/gst/app/gstappsrc.c:
	  app: Add/fix various annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

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

	* gst-libs/gst/audio/audio-channel-mixer.c:
	* gst-libs/gst/audio/audio-converter.c:
	* gst-libs/gst/audio/audio-info.c:
	* gst-libs/gst/audio/audio-resampler.c:
	* gst-libs/gst/audio/audio.c:
	* gst-libs/gst/audio/gstaudiobasesink.c:
	* gst-libs/gst/audio/gstaudiobasesrc.c:
	* gst-libs/gst/audio/gstaudiodecoder.c:
	* gst-libs/gst/audio/gstaudioencoder.c:
	  audio: Add/fix various annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-14 21:59:43 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	* gst-libs/gst/video/gstvideoencoder.c:
	* gst-libs/gst/video/gstvideometa.c:
	* gst-libs/gst/video/gstvideotimecode.c:
	* gst-libs/gst/video/video-anc.c:
	* gst-libs/gst/video/video-anc.h:
	* gst-libs/gst/video/video-converter.c:
	* gst-libs/gst/video/video-format.c:
	* gst-libs/gst/video/video-info.c:
	* gst-libs/gst/video/video-multiview.c:
	* gst-libs/gst/video/video-overlay-composition.c:
	* gst-libs/gst/video/video-sei.h:
	  video: Add/fix various annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-17 13:01:53 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Fix usage of raw and non-raw source provider
	  The computation in analyze_source was wrong, and would state that the element
	  has "all raw source pads" if it had at least one.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1029
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3199>

2022-10-17 18:38:43 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtp/gstrtpbuffer.c:
	* tests/check/libs/rtp.c:
	  rtpbuffer: Initialize extended timestamp to the first wraparound period
	  This allows correct handling of wrapping around backwards during the
	  first wraparound period and avoids the infamous "Cannot unwrap, any
	  wrapping took place yet" error message.
	  It allows makes sure that for actual timestamp jumps a valid value is
	  returned instead of 0, which then allows the caller to handle it
	  properly. Not having this can have the caller see the same timestamp (0)
	  for a very long time, which for example can cause rtpjitterbuffer to
	  output the same timestamp for a very long time.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1500
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3202>

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

	* tools/gst-play.c:
	  gst-play: Don't leak the stream collection
	  We are given a reference to the collection when parsing it from the
	  message. Just store it (instead of referencing it again).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3186>

2022-10-13 11:21:42 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/riff/riff-media.c:
	  riff: Mark jpeg as parsed
	  This is needed so that autoplugging works with avidemux and JPEG decoders that
	  need parsed sink caps (eg rockchip 'mppjpegdec' decoder). It also works fine
	  with 'jpegdec' decoder regardless.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3175>

2022-10-07 11:46:29 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/videorate/gstvideorate.c:
	  videorate: Do not close segment when getting a same segment twice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3059>

2022-09-14 16:39:48 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/videorate/gstvideorate.c:
	* gst/videorate/gstvideorate.h:
	* tests/validate/meson.build:
	* tests/validate/videorate/fill_segment_after_caps_changed_before_eos.validatetest:
	* tests/validate/videorate/fill_segment_after_caps_changed_before_eos/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/fill_segment_after_caps_changed_before_eos/flow-expectations/log-videorate-src-expected:
	  videorate: Handle closing segment on EOS right after caps event
	  The scenario is what we try in the tests:
	  - we have a segment with .stop set
	  - some frame(s) flow
	  - we get a CAPS event
	  - we get an EOS (before getting buffers after the CAPS event)
	  in that case, without that patch, the segment is not properly closed
	  which is not correct. In this patch we keep track of previous caps until
	  a new buffer arrives, this way in that situation we set previous caps
	  again, and close the segment with the previous buffer.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1352
	  in this specific case
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3059>

2022-08-22 16:33:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	  opengl: Fix usage of eglCreate/DestroyImage
	  The implementation was inconsistent between create and destroy. EGLImage
	  creation and destruction is requires for EGL 1.5 and up, while
	  otherwise the KHR version is only available if EGL_KHR_image_base
	  feature is set. Not doing these check may lead to getting a function
	  pointer to a stub, which is notably the case when using apitrace.
	  Fixes #1389
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2925>

2022-10-06 16:23:56 +0200  Aleksandr Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: allow to call "dispose" multiple times
	  https://docs.gtk.org/gobject/concepts.html#reference-counts-and-cycles
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3135>

2022-10-06 13:03:26 +0200  Aleksandr Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: fix mutex leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3126>

2022-10-03 15:20:53 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/playback/gstdecodebin3-parse.c:
	  decodebin3: Do not try to plug a decoder on raw formats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3123>

2022-10-06 00:00:59 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/video/gstvideosink.c:
	  videosink: Don't return unknown end-time from get_times()
	  ... in case of reverse playback. Otherwise basesink will not
	  wait for clock
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3121>

2021-07-02 16:22:04 +0800  Haihao Xiang <haihao.xiang@intel.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	  eglimage: fix Y412_LE DMABuf import support
	  This fixed the error below:
	  GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp !
	  "video/x-raw(memory:DMABuf),format=Y412_LE" ! glimagesink
	  0:00:00.063737691 576978 0x557c11266920 ERROR             gleglimage
	  gsteglimage.c:577:_drm_rgba_fourcc_from_info: Unsupported format for
	  DMABuf.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1389>

2021-07-02 16:01:19 +0800  Haihao Xiang <haihao.xiang@intel.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	  eglimage: add Y410 DMABuf import support
	  This fixed the error below:
	  GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp ! \
	  "video/x-raw(memory:DMABuf),format=Y410" ! glimagesink
	  0:00:00.040553883 576732 0x55be9b35f920 ERROR             gleglimage
	  gsteglimage.c:577:_drm_rgba_fourcc_from_info: Unsupported format for
	  DMABuf.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1389>

2021-07-02 20:31:22 +0800  Haihao Xiang <haihao.xiang@intel.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	  eglimage: add Y212_LE / Y212_BE DMABuf import support
	  This fixed the error below:
	  GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp \
	  ! "video/x-raw(memory:DMABuf),format=Y212_LE" ! glimagesink
	  0:00:00.148086281 575148 0x562a6d36d920 ERROR             gleglimage
	  gsteglimage.c:555:_drm_rgba_fourcc_from_info: Unsupported format for
	  DMABuf.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1389>

2021-07-02 15:37:19 +0800  Haihao Xiang <haihao.xiang@intel.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	  eglimage: add Y210 DMABuf import support
	  This fixed the error below:
	  GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp ! \
	  "video/x-raw(memory:DMABuf),format=Y210" ! glimagesink
	  0:00:00.039881627 571365 0x56245eba6920 ERROR             gleglimage
	  gsteglimage.c:549:_drm_rgba_fourcc_from_info: Unsupported format for
	  DMABuf
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1389>

2022-10-04 03:57:31 +0100  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.21.1 ===

2022-10-04 01:14:01 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2022-10-04 01:13:59 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Update ChangeLogs for 1.21.1

2022-10-01 02:33:49 +1000  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstplaysink.c:
	* gst/playback/gstplaysinkaudioconvert.c:
	* gst/playback/gstplaysinkaudioconvert.h:
	  playsink: Hold a reference to the soft volume element
	  Always hold a reference to the soft volume element
	  provided by the playsinkaudioconvert bin helper, the
	  same as when volume is provided by a sink element,
	  or the soft volume element gets unreffed too soon.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3108>

2022-10-01 04:51:21 +1000  Jan Schmidt <jan@centricular.com>

	* sys/xvimage/xvimageallocator.c:
	  xvimagesink: Don't leak XvShmImage
	  If allocating an XvShmImage generates an X error, but
	  still returns some allocated memory, make sure to free it
	  so it doesn't leak.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3100>

2022-10-01 04:49:16 +1000  Jan Schmidt <jan@centricular.com>

	* sys/xvimage/xvcontext.c:
	  xvimagesink: Zero initialize mask array
	  Clear the stack array before setting bits to pass to
	  XISelectEvents(). Fixes spurious crash from an X error:
	  X Error of failed request:  BadValue (integer parameter out of range for operation)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3100>

2022-10-01 04:47:31 +1000  Jan Schmidt <jan@centricular.com>

	* sys/xvimage/xvcontext.c:
	  xvimagesink: Don't leak temporary
	  Use a stack variable instead of a temporarily
	  malloced variable that wasn't being freed
	  properly. Fixes a small leak of a GstXvTouchDevice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3100>

2022-10-01 04:41:06 +1000  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Make sure event is writable before modifying
	  Make sure we're operating on a private copy of an event when
	  modifying it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3107>

2022-10-01 04:40:09 +1000  Jan Schmidt <jan@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Make sure event is writable before modifying.
	  Make sure we're operating on a private copy of an event before
	  modifying it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3107>

2022-10-01 04:37:05 +1000  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Don't lose a ref on EOS event
	  Make sure not to give away the ref on the final EOS
	  event for which the probe handler is returning GST_PAD_PROBE_REMOVE
	  when pushing the event manually.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3107>

2022-09-30 00:10:25 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/pbutils/descriptions.c:
	* tests/check/libs/pbutils.c:
	  pbutils: descriptions: add meta/x-klv
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3094>

2022-09-30 00:07:07 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/pbutils/descriptions.c:
	* tests/check/libs/pbutils.c:
	  pbutils: descriptions: fix gst_pb_utils_get_caps_description_flags()
	  And add a little unit test.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3094>

2022-09-29 09:39:15 +0100  James Cowgill <james.cowgill@blaize.com>

	* gst-libs/gst/tag/gstxmptag.c:
	  xmptag: Call gst_tag_register_musicbrainz_tags during init
	  We need to call this to register the MusixBrainz tags before we use
	  them in an XMP schema.
	  Fixes this critical when attempting to run jpegparse on a JPEG
	  containing MusicBrainz XMP tags:
	  GStreamer-CRITICAL **: 20:41:07.885: gst_tag_get_type: assertion 'info != NULL' failed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3092>

2022-09-29 14:36:38 +0300  Sebastian Dröge <sebastian@centricular.com>

	* tests/interactive/test-effect-switch.c:
	  test-effect-switch: Fix some memory leaks and make effect element ownership clearer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3091>

2018-03-28 17:54:15 +0200  Philipp Zabel <p.zabel@pengutronix.de>

	* gst-libs/gst/audio/gstaudiodecoder.c:
	* gst-libs/gst/audio/gstaudioencoder.c:
	* gst-libs/gst/video/gstvideodecoder.c:
	* gst-libs/gst/video/gstvideoencoder.c:
	  buffer: drop parent meta in deep copy/foreach_metadata
	  The purpose of a deep buffer copy is to be able to release the source
	  buffer and all its dependencies. Attaching the parent buffer meta to
	  the newly created deep copy needlessly keeps holding a reference to the
	  parent buffer.
	  The issue this solves is the fact you need to allocate more
	  buffers, as you have free buffers being held for no reason. In the good
	  cases it will use more memory, in the bad case it will stall your
	  pipeline (since codecs often need a minimum number of buffers to
	  actually work).
	  Fixes #283
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2928>

2022-09-27 13:41:37 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Fix memory issues with active selection list
	  This had a couple of issues:
	  * The backing strings (from GstStream) could disappear
	  * The actual list wasn't properly reset/freed when decodebin3 was re-used
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3083>

2022-09-21 19:19:45 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	  meson: Use implicit builtin dirs in pkgconfig generation
	  Starting with Meson 0.62, meson automatically populates the variables
	  list in the pkgconfig file if you reference builtin directories in the
	  pkgconfig file (whether via a custom pkgconfig variable or elsewhere).
	  We need this, because ${prefix}/libexec is a hard-coded value which is
	  incorrect on, for example, Debian.
	  Bump requirement to 0.62, and remove version compares that retained
	  support for older Meson versions.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061>

2022-09-06 17:25:50 -0400  Thibault Saunier <tsaunier@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/videorate/gstvideorate.c:
	* gst/videorate/gstvideorate.h:
	* tests/validate/meson.build:
	* tests/validate/videorate/duplicate_on_eos.validatetest:
	* tests/validate/videorate/duplicate_on_eos/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/duplicate_on_eos/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/duplicate_on_eos_disbaled.validatetest:
	* tests/validate/videorate/duplicate_on_eos_disbaled/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/duplicate_on_eos_disbaled/flow-expectations/log-videorate-src-expected:
	* tests/validate/videorate/duplicate_on_eos_half_sec.validatetest:
	* tests/validate/videorate/duplicate_on_eos_half_sec/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/duplicate_on_eos_half_sec/flow-expectations/log-videorate-src-expected:
	  videorate: Add a `max-closing-segment-duplication-duration` property
	  This allows users to let videorate fully fill the segments when received
	  EOS or on new segment, removing an arbitrary limit of 25 duplicates which
	  might not be what the user wants (for example on low FPS stream in GES,
	  that sometimes leaded to broken behavior)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3000>

2022-09-12 09:46:43 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* tools/meson.build:
	  meson: Set install_tag on some targets
	  Trying to follow recommendation from Meson documentation:
	  https://mesonbuild.com/Installing.html#installation-tags
	  Move tools into 'bin' or 'bin-devel' categories to keep only libs and
	  plugins in the default 'runtime' category. This simplifies distribution
	  of GStreamer application skipping parts that are not needed, similarly
	  to what Cerbero does by hardcoding huge list of files.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3017>

2022-09-19 08:54:15 +0200  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/video/video-converter.c:
	  video-converter: Fix doc
	  Argument names weren't correct
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3043>

2022-09-09 16:57:18 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst/playback/gstdecodebin2.c:
	  decodebin2: Do not fail if one of the decoders isn't able to output the requested format
	  when expose-all=False
	  When trying to find an decoder in that case, we loop over the different
	  decoder factories, and check that it outputs a format that matches the
	  requested one (through the :caps property), but if we find a decoder
	  that do match but later on some other don't we end up failing
	  autopluging. This patch ensures that we still plug the decoder that can
	  work.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3011>

2022-08-29 10:20:55 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/gl/meson.build:
	  gl:meson: Minor typo fix
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2954>

2022-08-29 10:17:45 -0400  Thibault Saunier <tsaunier@igalia.com>

	* docs/meson.build:
	  doc: Do not build plugins to build the doc
	  It is not actually necessary
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2954>

2022-09-07 10:36:09 -0400  Thibault Saunier <tsaunier@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/pbutils/gstdiscoverer.c:
	* gst/playback/gsturidecodebin.c:
	  discoverer: Fix discovering source that expose raw audio/video
	  Exposes a "uridecodebin:post-stream-topology" property as the discoverer
	  needs to have topology information about all streams so we need
	  `uridecodebin` to always plug decodebins for that case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3009>

2022-09-07 17:11:08 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst/playback/gsturidecodebin.c:
	  uridecodebin: Fix some property documentation syntax
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3009>

2022-09-07 10:39:21 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst/playback/gsturidecodebin.c:
	* tests/validate/meson.build:
	* tests/validate/uridecodebin/expose_raw_pad_caps.validatetest:
	  uridecodebin: Ensure that pads caps are set before exposing them
	  We are supposed to guarantee that pads that are exposed have the caps
	  set, but for sources that have pad with "all raw caps" templates, we end
	  up exposing pads that don't have caps set yet, which can break code (in
	  GES for example).
	  To avoid that we let uridecodebin plug a `decodebin` after such pads and
	  let decodebin to handle that for us. In the end the only thing that
	  decodebin does in those cases is to wait for pads to be ready and expose
	  them, after that `uridecodebin` will expose those pads.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3009>

2021-03-24 14:20:18 -0500  Zebediah Figura <z.figura12@gmail.com>

	* meson.build:
	  meson: Build with -Wl,-z,nodelete to prevent unloading of dynamic libraries and plugins
	  GLib made the unfortunate decision to prevent libgobject from ever being
	  unloaded, which means that now any library which registers a static type
	  can't ever be unloaded either (and any library that depends on those,
	  ad nauseam).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/778>

2022-07-06 04:18:37 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/video/video-format.c:
	  video-format: Workaround MSVC build error
	  ../gst-libs/gst/video/video-format.c(6779): error C2219: syntax error:
	  type qualifier must be after '*'
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2719>

2022-09-07 16:35:38 +1000  Matthew Waters <matthew@centricular.com>

	* gst/subparse/mpl2parse.c:
	  subparse: fix crash when parsing invalid timestamps in mpl2
	  Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49245
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2989>

2022-09-01 15:11:31 -0400  Thibault Saunier <tsaunier@igalia.com>

	* ext/alsa/meson.build:
	* ext/cdparanoia/meson.build:
	* ext/gl/meson.build:
	* ext/libvisual/meson.build:
	* ext/ogg/meson.build:
	* ext/opus/meson.build:
	* ext/pango/meson.build:
	* ext/theora/meson.build:
	* ext/vorbis/meson.build:
	* gst/adder/meson.build:
	* gst/app/meson.build:
	* gst/audioconvert/meson.build:
	* gst/audiomixer/meson.build:
	* gst/audiorate/meson.build:
	* gst/audioresample/meson.build:
	* gst/audiotestsrc/meson.build:
	* gst/compositor/meson.build:
	* gst/encoding/meson.build:
	* gst/gio/meson.build:
	* gst/overlaycomposition/meson.build:
	* gst/pbtypes/meson.build:
	* gst/playback/meson.build:
	* gst/rawparse/meson.build:
	* gst/subparse/meson.build:
	* gst/tcp/meson.build:
	* gst/typefind/meson.build:
	* gst/videoconvertscale/meson.build:
	* gst/videorate/meson.build:
	* gst/videotestsrc/meson.build:
	* gst/volume/meson.build:
	* meson.build:
	* sys/ximage/meson.build:
	* sys/xvimage/meson.build:
	  meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
	  Removing some copy pasted code
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>

2022-09-01 11:51:48 -0400  Thibault Saunier <tsaunier@igalia.com>

	* docs/meson.build:
	* gst-libs/gst/allocators/meson.build:
	* gst-libs/gst/app/meson.build:
	* gst-libs/gst/audio/meson.build:
	* gst-libs/gst/fft/meson.build:
	* gst-libs/gst/gl/meson.build:
	* gst-libs/gst/pbutils/meson.build:
	* gst-libs/gst/riff/meson.build:
	* gst-libs/gst/rtp/meson.build:
	* gst-libs/gst/rtsp/meson.build:
	* gst-libs/gst/sdp/meson.build:
	* gst-libs/gst/tag/meson.build:
	* gst-libs/gst/video/meson.build:
	* meson.build:
	  meson: Namespace the plugins_doc_dep/libraries variables
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>

2022-08-31 18:44:14 -0400  Thibault Saunier <tsaunier@igalia.com>

	* meson.build:
	  meson: Rename plugins list and make them "dependency" objects
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>

2022-08-31 14:50:38 +0000  Ádám Balázs <broothy@gmail.com>

	* gst/audioconvert/gstaudioconvert.c:
	  gstaudioconvert: doc: Fix mix-matrix example
	  mix-matrix should contain float elements, modify the example to do so
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2966>

2022-08-30 14:29:41 +0200  Rafael Caricio <rafael@caricio.com>

	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
	  audiovisualizer: fix buffer mapping to not increase refcount
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2953>

2022-08-23 19:12:17 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/ximage/ximagesink.c:
	* sys/xvimage/xvimagesink.c:
	  x(v)imagesink: Don't create invalid GstNavigationModifierType by simply passing through X11 event states
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2931>

2022-07-22 13:41:17 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/playback/gstrawcaps.h:
	  playback: add onvif metadata caps to raw caps
	  + remove encoding from x-onvif-metadata caps output by qtdemux
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2889>

2022-08-23 16:02:31 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/videoconvertscale/gstvideoconvertscale.c:
	  videoconvert: fix passthrough on equivalent transfer
	  When the input info and output info are equal, except for the
	  transfer functions that are *not* equivalent, we need to set up
	  a converter as we won't be passthrough.
	  Fixes an assertion in that case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2929>

2022-08-17 12:53:02 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst-libs/gst/video/video-converter.c:
	* gst-libs/gst/video/video-converter.h:
	* tests/check/libs/video.c:
	  base: video-converter: add accessors for input and output formats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2905>

2022-08-05 20:52:19 +0900  Seungha Yang <seungha@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/videoconvertscale/gstvideoconvert.c:
	* gst/videoconvertscale/gstvideoconvertscale.c:
	* gst/videoconvertscale/gstvideoconvertscale.h:
	* gst/videoconvertscale/gstvideoscale.c:
	  videoconvert,videoscale: Do conversion in videoconvert and scaling in videoscale
	  Keep behaving the same as before videoconvertscale port
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2778>

2022-08-05 20:16:00 +0900  Seungha Yang <seungha@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/videoconvertscale/gstvideoconvert.c:
	* gst/videoconvertscale/gstvideoconvertscale.c:
	* gst/videoconvertscale/gstvideoconvertscale.h:
	* gst/videoconvertscale/gstvideoscale.c:
	* tests/validate/convertscale/convert_disable_scale.validatetest:
	* tests/validate/convertscale/convert_disable_scale/flow-expectations/log-converter-src-expected:
	* tests/validate/convertscale/scale_disable_convert.validatetest:
	* tests/validate/convertscale/scale_disable_convert/flow-expectations/log-scaler-src-expected:
	* tests/validate/meson.build:
	  Revert "videoconvertscale: Add properties to disable scaling/converting in videoconvert/videoscale"
	  This reverts commit cd7a91cef1c6a2e24d440126b7f2ab543fb205c5.
	  Reverting properties, scaling in videoconvert and converting in
	  videoscale will be disabled by the other commit
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2778>

2022-08-12 22:42:28 -0700  Khem Raj <raj.khem@gmail.com>

	* gst/subparse/gstssaparse.c:
	  ssaparse: include required system headers for isspace() and sscanf() functions
	  Newer compilers ( clang 15 ) have turned stricter and errors out instead
	  of warning on implicit function declations
	  Fixes
	  gstssaparse.c:297:12: error: call to undeclared library function 'isspace' with type 'int (int)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
	  while (isspace(*t))
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2879>

2022-08-12 13:16:50 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtsp/gstrtspurl.c:
	* tests/check/libs/rtsp.c:
	  rtspurl: Use gst_uri_join_strings() in gst_rtsp_url_get_request_uri_with_control() instead of a hand-crafted, wrong version
	  For example the query string of the base must not be taken over to the
	  request URL unless there is no control path, and control paths can be
	  absolute and must not be considered relative if they start with a /.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/971
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2868>

2022-08-12 13:15:46 +0300  Sebastian Dröge <sebastian@centricular.com>

	* tests/check/libs/rtsp.c:
	  rtspurl: Use fail_unless_equals_string() in tests
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2868>

2022-07-27 22:34:42 +1000  Jan Schmidt <jan@centricular.com>

	* ext/pango/gstbasetextoverlay.c:
	* ext/pango/gstbasetextoverlay.h:
	  basetextoverlay: Don't miscalculate text running times
	  When a new segment event arrives, it immediately updates
	  the current stored segment, which was used for calculating
	  the running time of the current text buffer for every
	  passing video frame. This means a segment that arrives
	  after the text buffer might get used to (mis)calculate
	  the running times subsequently.
	  Instead, calculate and store the right running time
	  using the current segment when storing the buffer. Later
	  the stored segment can get freely updated.
	  This fixes the case where pieces of video and text streams
	  are seamlessly concatenated and fed through the text overlay.
	  Previously, it could lead to the current text buffer suddenly
	  have a massive running time and blocking all further input.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2802>

2022-08-09 18:06:41 +0100  Tim-Philipp Müller <tim@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/opus/gstopusenc.c:
	  opusenc: improve inband-fec property documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2853>

2022-06-30 16:14:27 +0300  Jordan Petridis <jordan@centricular.com>

	* ext/alsa/gstalsaplugin.c:
	  gstalsaplugin: return the result of the element registration
	  Previously there were branches that would return FALSE, however
	  it looks like we forgot to return the new result variable.
	  https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/900
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2695>

2022-01-22 02:35:36 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/encoding/gstsmartencoder.c:
	  smartencoder: fix detection of avc1
	  While avc1 is the FourCC, avc is the name used in caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1549>

2022-01-22 02:29:54 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/playback/gstdecodebin2.c:
	  decodebin2: don't reverse stream topology order
	  This can be important for instance when a container holds multiple
	  tracks with the same media type, with no indication (eg tags) of
	  which track is the default one.
	  In that case, players usually pick the first track by default.
	  This is especially useful when using smart editing with GES, as
	  it will result in the same ordering as the input file that was
	  used as a template.
	  For reference, this yields the same order as ffprobe.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1549>

2022-01-21 01:02:52 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/encoding/gstsmartencoder.c:
	  gstsmartencoder: don't make calculations for invalid DTS
	  Instead, as the current code relies on having a valid DTS (for lining
	  up passed through and re-encoded segments), simply compute a DTS
	  from the PTS if the DTS was invalid.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1549>

2022-01-21 00:57:16 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst-libs/gst/pbutils/encoding-profile.c:
	  encoding-profile: don't order profiles by stream ID ..
	  when creating a profile from a discoverer info.
	  There is no justification for the existing code, and talking with
	  Thibault he cannot remember why the sort was in place.
	  On the other hand, this allows GES users to not have to implement
	  a callback for the select-tracks-for-object callback when using
	  it to trim a single clip, which the output profile was built from:
	  track elements will be placed in the appropriate track by default,
	  that is the one that will be connected to the matching profile.
	  For multi-clip timelines, the situation doesn't change, users will
	  still have to implement a callback and do the leg work of placing
	  track elements (if any) in a matching track (if any).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1549>

2022-01-21 00:49:33 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst-libs/gst/pbutils/encoding-profile.c:
	  encoding-profile: ignore more output caps fields
	  chroma-format, bit-depth-chroma, bit-depth-luma are all informative
	  fields set by the H265 and H265 parser upon receiving an SPS.
	  They shouldn't be constrained downstream of the parser, instead
	  if a user wants those to ultimately match certain values they
	  should do so by constraining a profile.
	  In this case however, we also always remove the profile constraint
	  in order to let encoders pick a suitable one as a function of the
	  raw input video format and their own capabilities.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1549>

2022-08-01 17:25:56 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Avoid crash with unknown streams
	  With the new addition of handling unknown sream types we *could* end up with a
	  chain which doesn't have a current_pad (it's an intermediary one)
	  Fixes #1287
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2822>

2022-05-25 18:40:30 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	  rtsp+rtmp: Forward warning added to tls-validation-flags to our users
	  With the 2.72 release, glib-networking developers have decided that
	  TLS certificate validation cannot be implemented correctly by them, so
	  they've deprecated it.
	  In a nutshell: a cert can have several validation errors, but there
	  are no guarantees that the TLS backend will return all those errors,
	  and things are made even more complicated by the fact that the list of
	  errors might refer to certs that are added for backwards-compat and
	  won't actually be used by the TLS library.
	  Our best option is to ignore the deprecation and pass the warning onto
	  users so they can make an appropriate security decision regarding
	  this.
	  We can't deprecate the tls-validation-flags property because it is
	  very useful when connecting to RTSP cameras that will never get
	  updates to fix certificate errors.
	  Relevant upstream merge requests / issues:
	  https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2214
	  https://gitlab.gnome.org/GNOME/glib-networking/-/issues/179
	  https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/193
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2494>

2022-07-13 22:37:26 +0900  Seungha Yang <seungha@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	  compositor: Update plugins cache
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

2022-01-18 21:21:23 +0900  Seungha Yang <seungha@centricular.com>

	* gst/compositor/compositor.c:
	  compositor: Warn when inputs are SDR/HDR mixed
	  Let user know that the result of mixed SDR/HDR is not guaranteed
	  to be a good visual quality.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

2021-11-24 20:21:52 +0900  Seungha Yang <seungha@centricular.com>

	* gst/compositor/blend.c:
	* gst/compositor/blend.h:
	* gst/compositor/compositor.c:
	* gst/compositor/compositor.h:
	  compositor: Add support for all formats
	  For formats which we don't have fast-path implementation, compositor
	  will convert it to common unpack formats (AYUV, ARGB, AYUV64 and ARGB64)
	  then blending will happen using the intermediate formats.
	  Finally blended image will be converted back to the selected output format
	  if required.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

2021-11-20 00:41:52 +0900  Seungha Yang <seungha@centricular.com>

	* gst/compositor/blend.c:
	* gst/compositor/blend.h:
	* gst/compositor/compositor.c:
	  compositor: Add support for Y444 high bitdepth formats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

2021-11-19 16:32:38 +0900  Seungha Yang <seungha@centricular.com>

	* gst/compositor/blend.c:
	* gst/compositor/blend.h:
	* gst/compositor/compositor.c:
	* gst/compositor/compositororc-dist.c:
	* gst/compositor/compositororc-dist.h:
	* gst/compositor/compositororc.orc:
	  compositor: Add support for I420/I422 high bitdepth formats
	  Implementation for {I420,I422}_{10,12}_{LE,BE} formats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

2021-11-19 21:46:43 +0900  Seungha Yang <seungha@centricular.com>

	* gst/compositor/blend.c:
	* gst/compositor/compositor.c:
	* gst/compositor/compositor.h:
	  compositor: Calculate background color only once
	  ... instead of do that per fill_color() call in case of RGB format.
	  Moreover, respect selected GstVideoColorRange
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

2022-07-27 15:42:44 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	  rtspconnection: protect cancellable by a mutex
	  It is entirely possible for the cancellable to be cancelled (and freed)
	  in gst_rtsp_connection_flush() while there may be an ongoing read/write
	  operation.
	  Nothing prevents gst_rtsp_connection_flush() from waiting for the
	  outstanding read/writes.
	  This could lead to a crash like (where cancellable has been freed
	  within gst_rtsp_connection_flush()):
	  #0  0x00007ffff4351096 in g_output_stream_writev (stream=stream@entry=0x7fff30002950, vectors=vectors@entry=0x7ffe2c6afa80, n_vectors=n_vectors@entry=3, bytes_written=bytes_written@entry=0x7ffe2c6af950,  cancellable=cancellable@entry=0x7fff300288a0, error=error@entry=0x7ffe2c6af958) at ../subprojects/glib/gio/goutputstream.c:377
	  #1  0x00007ffff44b2c38 in writev_bytes (stream=0x7fff30002950, vectors=vectors@entry=0x7ffe2c6afa80, n_vectors=n_vectors@entry=3, bytes_written=bytes_written@entry=0x7ffe2c6afb90, block=block@entry=1, cancellable=0x7fff300288a0) at ../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c:1320
	  #2  0x00007ffff44b583e in gst_rtsp_connection_send_messages_usec (conn=0x7fff30001370, messages=messages@entry=0x7ffe2c6afcc0, n_messages=n_messages@entry=1, timeout=timeout@entry=3000000) at ../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c:2056
	  #3  0x00007ffff44d2669 in gst_rtsp_client_sink_connection_send_messages (sink=0x7fffac0192c0, timeout=3000000, n_messages=1, messages=0x7ffe2c6afcc0, conninfo=0x7fffac019610) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:1929
	  #4  gst_rtsp_client_sink_try_send (sink=sink@entry=0x7fffac0192c0, conninfo=conninfo@entry=0x7fffac019610, requests=requests@entry=0x7ffe2c6afcc0, n_requests=n_requests@entry=1, response=response@entry=0x0, code=code@entry=0x0) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:2845
	  #5  0x00007ffff44d3077 in do_send_data (buffer=0x7fff38075c60, channel=<optimized out>, context=0x7fffac042640) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:3896
	  #6  0x00007ffff4281cc6 in gst_rtsp_stream_transport_send_rtp (trans=trans@entry=0x7fff20061f80, buffer=<optimized out>) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.c:632
	  #7  0x00007ffff4278e9b in push_data (stream=0x7fff40019bf0, is_rtp=<optimized out>, buffer_list=0x0, buffer=<optimized out>, trans=0x7fff20061f80) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2586
	  #8  check_transport_backlog (stream=0x7fff40019bf0, trans=0x7fff20061f80) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2645
	  #9  0x00007ffff42793b3 in send_tcp_message (idx=<optimized out>, stream=0x7fff40019bf0) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2741
	  #10 send_func (stream=0x7fff40019bf0) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2776
	  #11 0x00007ffff7d59fad in g_thread_proxy (data=0x7fffbc062920) at ../subprojects/glib/glib/gthread.c:827
	  #12 0x00007ffff7a8ce2d in start_thread () from /lib64/libc.so.6
	  #13 0x00007ffff7b12620 in clone3 () from /lib64/libc.so.6
	  Fix by adding a cancellable lock and returning an extra reference used
	  across all read/write operations.  gst_rtsp_connection_flush() can free
	  the in-use cancellable and it will no longer affect any in progress
	  read/write.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2799>

2022-07-22 13:13:42 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/audiomixer/gstaudiointerleave.c:
	  audiointerleave: fix property docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2785>

2022-07-23 02:49:20 +1000  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/video/video-chroma.c:
	  video: Fix scaling in 4x horizontal co-sited chroma
	  4x downscaling of chroma with co-sited chroma has never worked
	  it seems.
	  Fixes incorrect videotestsrc output and videoconvert conversions
	  to Y41B, YUV9, YVU9 and IYU9 with co-sited chroma.
	  e.g.
	  gst-launch-1.0 videotestsrc ! video/x-raw,format=Y41B,width=1280,height=720 ! \
	  videoconvert ! autovideosink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2789>

2022-07-02 06:08:57 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: Don't force upstream alpha format
	  "video/x-raw,format=RGBA ! some-video-filter ! video/x-raw,format=NV12"
	  is a very common case and therefore such erroring at baseclass
	  does not seem to be a desired behavior.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2703>

2022-07-17 00:30:10 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/video/video-converter.c:
	  video-converter: Use primaries compare function
	  Avoid conversion if both color primaries are functionally equal
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765>

2022-07-16 23:36:22 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/video/video-color.c:
	* gst-libs/gst/video/video-color.h:
	* tests/check/libs/video.c:
	  video-color: Add primaries and colorimetry compare functions
	  SMPTE 170M and 240M use the same RGB and white point coordinates
	  and therefore both primaries can be considered functionally
	  equivalent.
	  Also, some transfer functions have different name but equal
	  gamma functions. Adding another colorimetry compare function
	  to deal with thoes cases at once
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765>

2022-07-12 14:47:20 +1000  Matthew Waters <matthew@centricular.com>

	* ext/gl/gstglimagesink.c:
	  glimagesink: only allow setting the GL display/context if it is a valid value
	  Otherwise, when setting the external application context, then the
	  display may be cleared and then not used and the asharing mechanism does
	  not work anymore.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2750>

2022-07-07 23:40:22 +1000  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Add raw caps to sink pad when needed.
	  When checking if the current upload method can support
	  the requested caps filter in _transform_caps(),
	  make sure the sink pad reports raw caps.
	  Fixes #1311
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2725>

2022-07-07 23:54:44 +1000  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/gl/gstglupload.c:
	  gstglupload: Remove raw caps from individual methods
	  Raw memory upload should always be the least preferred input
	  caps, only added by the raw memory uploader as the last thing
	  in the caps.
	  Caps negotiation should still choose raw data when it needs to,
	  and other upload methods that can accept raw data buffers will still do so.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2725>

2022-07-11 20:12:30 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: always convert when user provides converter-config
	  The `converter-config` property may be used to perform cropping,
	  conversion should always be performed when the user set the property
	  to a non-NULL value.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2746>

2022-07-08 20:49:21 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>

	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
	  glwindow_cocoa: fix a leak of the GstNSView
	  This leak is also causing a leak of the GstGLCAOpenGLLayer
	  which leaks the GstGLWrappedContext and the GstGLDisplay
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2736>

2022-07-08 20:38:51 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>

	* gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m:
	  gl: Fix leak of the whole CGL context
	  This was leaking the CGL context and several resources
	  allocated in the context, around 70MB for a 1080p clip
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2736>

2022-06-14 12:22:22 +0200  Marc Leeman <m.leeman@televic.com>

	* gst-libs/gst/video/video-format.c:
	  base: lookup RGB format without alpha
	  librfb requests a colour space for depth 32 and bpp 32 with alpha set to
	  0x0, treat this the same as depth 24 with bpp 32.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2627>

2022-07-04 17:27:50 +1000  Matthew Waters <matthew@centricular.com>

	* gst/videoconvertscale/gstvideoconvertscale.c:
	  videoconvertscale: ensure writable caps when fixating format
	  gst_video_convert_scale_get_fixed_format() receives 'othercaps' from
	  basetransforms' fixate_caps() vmethod which explicitly mentions that
	  '`othercaps` may not be writable'.
	  The gst_caps_intersect() call just before may or may not produce new
	  caps. Particularly in cases like EMPTY or ANY caps on either of the
	  inputs, only a ref is taken and returned to the caller.
	  As a result, gst_video_convert_scale_fixate_format() may have attempted
	  to modify a non-writable caps structure.
	  Fix by adding a gst_caps_make_writable().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2709>

2022-06-30 00:39:50 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/subparse/samiparse.c:
	  samiparse: clean up some GString usage
	  There's no need to re-assign the return value of
	  g_string_append_*() functions and such to the variable
	  holding the GString. These return values are just for
	  convenience so function calls can be chained. The actual
	  GString pointer won't change, it's not a GList after all.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2685>

2022-06-30 00:31:24 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/subparse/samiparse.c:
	  samiparse: micro-optimise entity handling
	  Avoid relocations and hard-code entity string length
	  in the struct, since we basically get it for free here.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2685>

2022-06-30 00:13:19 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/subparse/samiparse.c:
	* tests/check/elements/subparse.c:
	  samiparse: fix handling of self-closing tags
	  We would check the wrong string (rest of line rather than element)
	  for the / suffix of self-closing tags, which is not only wrong but
	  also has atrocious performance with certain strings like the garbled
	  nonsense clusterfuzz feeds us, which might cause discoverer to time
	  out when processing garbled SAMI files.
	  Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47461
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2685>

2022-07-01 23:57:08 +1000  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/gl/gstglupload.c:
	  Revert "glupload: Fix caps query with no filter"
	  This reverts commit 6f9ae5d7580763b5d18badb76f2166ff0012886a.
	  The _transform_caps() function can't tell the difference
	  between the caller wanting to know the output caps
	  for the current method, or all possible output caps. If
	  it includes caps for all possible methods, glupload can
	  end up negotiating and sending the wrong output caps
	  downstream.
	  Partially reverts !2687
	  Fixes #1310
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2699>

2022-06-28 09:38:34 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/gl/gstglvideomixer.c:
	  glvideomixer: Only consider property changes a geometry change if there as an actual change
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2669>

2022-06-27 21:28:07 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/gl/gstglvideomixer.c:
	  glvideomixer: Add crop-{left,right,top,bottom} pad properties for cropping inputs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2669>

2022-06-30 09:02:00 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	  sdpmessage: Don't set SDP medias from caps without media/payload/clock-rate fields
	  Previously it would've silently failed reading the payload/clock-rate
	  and instead would've used some random value that happened to be on the
	  stack.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2689>

2022-06-30 12:50:17 +1000  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Fix caps query with no filter
	  If no filter caps are provided with a caps query, always
	  generate a full set of all caps from all upload methods,
	  not just the configured one. This is needed to handle
	  renegotiation when dealing with raw sysmem caps - as the upload
	  method might accept raw sysmem caps, but only the raw data
	  uploader adds those to the caps query.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2687>

2022-06-30 12:46:31 +1000  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/gl/gstglupload.c:
	  Revert "glupload: allow system memory for dmabuf in transform_caps"
	  This reverts commit f3292dc1561a8d62812c3f1a2bb3de5c5bb6a807.
	  Only the raw data uploader should add sysmem caps to the
	  actual caps query, because we want them to be at the
	  lowest priority. If upstream does select to send raw
	  caps, then the correct upload method will still
	  be chosen because the accept_caps implementation
	  will accept them
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2687>

2022-06-30 18:41:01 +1000  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/gl/gstglupload.c:
	  gl: Don't use the full transform_caps() method for reconfiguration check
	  When checking if we need to reconfigure when uploading, check
	  specifically the output caps of the current method will
	  result in compatible/incompatible caps, not the full set
	  of output caps from all upload methods.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2687>

2022-06-30 08:42:43 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/video.h:
	  video: Include new video-sei.h in video.h
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2688>

2022-06-29 10:55:13 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  coding style: allow declarations after statement
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/
	  and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2683>

2022-06-16 10:19:17 +0000  James Hilliard <james.hilliard1@gmail.com>

	* tests/validate/videorate/change_rate_reverse_playback.validatetest:
	* tests/validate/videorate/change_rate_while_playing.validatetest:
	  videorate: remove property-value quotes
	  Fixes warnings like:
	  Received a structure string that contains '="0.5"'. Reading as a gdouble value, rather than a string value. This is undesired behaviour, and with GStreamer 1.22  onward, this will be interpreted as a string value instead because it is wrapped in '"' quotes. If you want to guarantee this value is read as a string, before this change, use '=(string)"0.5"' instead. If you want to read in a gdouble value, leave its value unquoted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2621>

2022-06-25 19:50:10 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/meson.build:
	  tests: skip unit tests for dependency-less elements that have been disabled
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2660>

2022-05-13 12:57:06 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst-libs/gst/video/video-frame.c:
	* gst-libs/gst/video/video-frame.h:
	* tests/check/libs/video.c:
	  GstVideoFrame: Add g_auto() support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2412>

2022-06-08 19:18:48 +0300  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst-libs/gst/video/video.c:
	* gst-libs/gst/video/video.h:
	  avviddec, video.c, h265parse: Workaround for broken field-based interlaced encoders
	  Some encoders (e.g. Makito) have H265 field-based interlacing, but then
	  also specify an 1:2 pixel aspect ratio. That makes it kind-of work with
	  decoders that don't properly support field-based decoding, but makes us
	  end up with the wrong aspect ratio if we implement everything properly.
	  As a workaround, detect 1:2 pixel aspect ratio for field-based
	  interlacing, and check if making that 1:1 would make the new display
	  aspect ratio common. In that case, we override it with 1:1.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2577>

2022-06-12 05:35:27 -0600  James Hilliard <james.hilliard1@gmail.com>

	* gst/playback/gstdecodebin3-parse.c:
	* gst/playback/gstdecodebin3.c:
	  decodebin3: fix EOS event sequence
	  See docs:
	  https://gstreamer.freedesktop.org/documentation/additional/design/seqnums.html?gi-language=c#seqnums-sequence-numbers
	  Per docs:
	  When a sink element receives an EOS event and creates a new EOS
	  message to post, it should copy the seqnum from the event to the
	  message because the EOS message is a consequence of the EOS event
	  being received.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2588>

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

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	* gst-libs/gst/video/gstvideodecoder.c:
	* gst-libs/gst/video/gstvideoencoder.c:
	* meson.build:
	* tests/check/elements/audioresample.c:
	  Bump GLib requirement to >= 2.62
	  Can't require 2.64 yet because of
	  https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/323
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2568>

2022-05-16 19:29:10 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>

	* gst-libs/gst/video/meson.build:
	  video: add new video-sei.h header to the list of video_headers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458>

2022-02-27 18:41:12 +0000  Andoni Morales Alastruey <ylatuya@gmail.com>

	* gst-libs/gst/video/video-sei.c:
	* gst-libs/gst/video/video-sei.h:
	  Fix documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458>

2022-02-17 15:55:19 +1100  Brad Hards <bradh@frogmouth.net>

	* gst-libs/gst/video/video-sei.c:
	* gst-libs/gst/video/video-sei.h:
	  h264parse: add unit test for Precision Time Stamp in SEI messages
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458>

2022-02-17 15:55:19 +1100  Brad Hards <bradh@frogmouth.net>

	* gst-libs/gst/video/video-sei.c:
	  h264parse: fix copying of data and UUID
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458>

2021-12-19 19:14:05 +0100  Andoni Morales Alastruey <ylatuya@gmail.com>

	* gst-libs/gst/video/meson.build:
	* gst-libs/gst/video/video-sei.c:
	* gst-libs/gst/video/video-sei.h:
	  h264parse: add support Precision Time Stamp in SEI messages
	  Expose User Data Unregistered as a new Meta and add
	  API to parse Precision Time Stamp (ST 0604).
	  Fixes #927
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458>

2022-05-27 14:18:30 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/video-info.c:
	  video: Fix NV12_16L32 size calculation
	  The subsampling of the second plane was not taken into account, resulting in a
	  16bit per pixel buffers instead of 12.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2512>

2022-05-25 02:10:30 +0900  Seungha Yang <seungha@centricular.com>

	* gst/playback/gstplaybin3.c:
	  playbin3: Configure combiner on pad-added if needed
	  When collection is updated, decodebin3 exposes pad first and then
	  streams-selected message is posted.
	  The condition can cause a situation where playbin3 links non-existing
	  combiner/playsink pads (since streams-selected is not posted yet) with
	  new decodebin output pad. This commit will re-check selected/active
	  streams condition on pad-added and reconfigure output if needed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2482>

2022-05-23 21:24:40 -0400  Eli Schwartz <eschwartz@archlinux.org>

	* gst-libs/gst/tag/meson.build:
	  meson: use better zlib dependency fallback
	  zlib is required, and if it isn't found it is checked several ways and
	  then forced via subproject(). This code was added in commit
	  b93e37592a3ccc0eaece1c8fef2d362b1e5fe685, to account for systems where
	  zlib doesn't have pkg-config files installed.
	  But Meson already does dependency fallback, and also, since 0.54.0, does
	  the in-between checks for find_library('z') and has_header('zlib.h') via
	  the "system" type dependency. Simplify dependency lookup by marking it
	  as required, which also makes sure that the console log doesn't
	  confusingly list "not found".
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2484>

2022-05-19 12:17:59 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/descriptions.c:
	* gst-libs/gst/pbutils/descriptions.h:
	  pbutils: Add GST_PBUTILS_CAPS_DESCRIPTION_FLAG_METADATA and ONVIF XML Timed MetaData
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2453>

2022-05-15 16:53:12 +0000  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/rtp/gstrtcpbuffer.c:
	* gst-libs/gst/rtp/gstrtcpbuffer.h:
	* tests/check/libs/rtp.c:
	  rtcpbuffer: Allow padding on first reduced size packets
	  It is valid to have the padding set to 1 on the first packet and it
	  happens very often from TWCC packets coming from libwebrtc. This means
	  that we were totally ignoring many TWCC packets.
	  Fix test that checked that a first packet with padding was not valid and
	  instead test a single twcc packet with padding to check precisely what
	  this patch was about.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2422>

2022-05-13 13:31:55 +0200  Alicia Boya García <aboya@igalia.com>

	* gst-libs/gst/app/gstappsink.c:
	* tests/check/elements/appsink.c:
	  appsink: Fix race condition on caps handling
	  Background:
	  Whenever a caps event is received by appsink, the caps are stored in the
	  same internal queue as buffers. Only when enough buffers have been
	  popped from the queue to reach the caps, `priv->sample` gets its caps
	  updated to match, so that they are correct for the following buffers.
	  Note that as far as upstream elements are concerned, the caps of appsink
	  are updated immediately when the CAPS event is sent. Samples pulled from
	  appsink retain the old caps until a later buffer -- one that was sent by
	  upstream elements after the new caps -- is pulled.
	  The race condition:
	  When a flush is received, appsink clears the entire internal queue. The
	  caps of `priv->sample` are not updated as part of this process, and
	  instead remain as those of the sample that was last pulled by the user.
	  This leaves open a race condition where:
	  1. Upstream sends a new caps event, and possibly some buffers for the
	  new caps.
	  2. Upstream sends a flush (possibly from a different thread).
	  3. Upstream sends a new buffer for the new caps. Since as far as
	  upstream is concerned, appsink caps are the new caps already, no new
	  CAPS event is sent.
	  4. The appsink user pulls a sample, having not pulled before enough
	  samples to reach the buffers sent in step 1.
	  Bug: the pulled sample has the old caps instead of the new caps.
	  Fixing the race condition:
	  To avoid this problem, when a buffer is received after a flush,
	  `priv->sample`'s caps should be updated with the current caps before the
	  buffer is added to the internal queue.
	  Interestingly, before this patch, appsink already had code for this, in
	  gst_app_sink_render_common():
	  /* queue holding caps event might have been FLUSHed,
	  * but caps state still present in pad caps */
	  if (G_UNLIKELY (!priv->last_caps &&
	  gst_pad_has_current_caps (GST_BASE_SINK_PAD (psink)))) {
	  priv->last_caps = gst_pad_get_current_caps (GST_BASE_SINK_PAD (psink));
	  gst_sample_set_caps (priv->sample, priv->last_caps);
	  GST_DEBUG_OBJECT (appsink, "activating pad caps %" GST_PTR_FORMAT,
	  priv->last_caps);
	  }
	  This code assumes `priv->last_caps` is reset when a flush is received,
	  which makes sense, but unfortunately, there was no code in the flush
	  code path resetting it.
	  This patch adds such code, therefore fixing the race condition. A unit
	  test demonstrating the bug and testing its behavior with the fix has
	  also been added.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2413>

2022-05-16 12:34:36 -0400  U. Artie Eoff <ullysses.a.eoff@intel.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: unref temporary caps
	  The "possible_caps" needs unref after finished using to
	  avoid memory leak.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2430>

2022-05-05 02:54:37 +0900  Seungha Yang <seungha@centricular.com>

	* tools/gst-play.c:
	  tools: gst-play: Print position even if duration is unknown
	  Gives better visual feedback regarding position information
	  although duration is unknown, live streams for example.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2365>

2022-05-09 16:21:55 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglcontext.c:
	* gst-libs/gst/gl/gstglcontext_private.h:
	* gst-libs/gst/gl/gstglcontextquirks.c:
	* gst-libs/gst/gl/meson.build:
	  gl/context: disable timer queries for ARM Mali-G52
	  Performing a timer query with a default framebuffer that is incomplete
	  (from using a surfaceless context) will produce GL errors.  Disable the
	  timer query on this platform to avoid the errors.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2396>

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

	* tools/gst-device-monitor.c:
	  tools: device-monitor: Print string property as-is without serialize
	  gst_value_serialize() does more than what's needed to printf-ing
	  especially when given GValue is already string. Just print string
	  value as-is without gst_value_serialize() to avoid unreadable
	  string print, especially for multi-bytes character encoding cases.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2387>

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

	* gst/playback/gstplaybin3.c:
	* gst/playback/gstplaysink.c:
	* gst/playback/gstplaysink.h:
	  playbin3: Cleanup and refactor combiner sourcecombine
	  * Remove fields no longer used, or that can be replaced by smaller code
	  * Rename "channels" to a more meaningful "input pads"
	  * Directly handle/use combiner pads in the combiners instead of on the playbin3
	  main structure
	  Remove the corresponding combiner sinkpad whenever a uridecodebin3 source pad
	  goes away
	  * If used, store the corresponding combiner sink pad in the SourcePad helper
	  structure
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2384>

2022-05-03 16:25:19 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Don't modify inexistant GstStream
	  When handling exposing un-handled streams, we can only replace the GstStream for
	  those we are creating ourselves (i.e. the fallback collection).
	  Fixes assertions when the demuxer creates those streams
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2353>

2022-05-03 16:08:39 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  playbin3: Don't use unknown types for default selection
	  When creating a fallback default selection from a collection, don't attempt to
	  use unknown stream types
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2353>

2022-05-03 13:37:31 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/audioconvert/gstaudioconvert.c:
	  audioconvert: If no channel-mask can be fixated then use a NONE channel layout
	  Otherwise this is generating caps without a channel-mask, which is
	  invalid for >1 channels and will always fail negotiation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2350>

2022-05-02 14:36:03 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  doc: Update cache for NV12_4L4 and NV12_16LE32 gl support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-14 15:02:11 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	* gst-libs/gst/gl/gstglformat.c:
	* gst-libs/gst/gl/gstglmemory.h:
	  opengl: Add NV12_4L4 conversion support
	  This format is produced notably by Hantro G1/G2 HW. Using a shader instead of
	  the Hantro embedded converter helps reduce drastrictly the memory usage at a
	  relatively small GPU overhead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-12 14:18:59 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	* gst-libs/gst/gl/gstglformat.c:
	* gst-libs/gst/gl/gstglmemory.h:
	  opengl: Add NV12_16L32S conversion support
	  This adds a first detiling shader with initial support for
	  NV12_16L32S as produced by Mediatek decoders.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-13 14:54:40 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglsl.c:
	  glsl: Enable GLSL 1.30 if we have OpenGL 3.0/3.1
	  As implemented, we only support OpenGL 3 API from version 3.2. Though, there
	  is no issue enabling GLSL 1.30 even if we are going to restrict our API usage
	  to 2. This allows using texelFetch() on OpenGL 3.0 and 3.1 drivers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-12 12:24:03 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	* gst-libs/gst/gl/gstglmemory.c:
	* gst-libs/gst/gl/gstglutils.c:
	  opengl: Add low level support for tiled formats
	  This adds support for tiled format in stride and plane size
	  code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-12 12:16:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/video-frame.c:
	  video: Port video frame to the new tile size helper
	  This is now moved to the library, so it can be used in multiple
	  places.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-12 12:14:03 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/video-format.c:
	* gst-libs/gst/video/video-format.h:
	  video: Add a helper to get the tile size information
	  Since the addition of tiling format with subsampled tile size
	  (NV12_16L32S), getting the tile width/height shifts and tile
	  size have become more complex. Add a helper to extract and
	  scale this information for the selected plane and format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-12 12:18:06 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	  eglimage: Add missing NV21/61 support
	  Caps would allow that, but selecting this format would lead to
	  an "no reached" assertion in the code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-27 10:18:39 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: release stream lock after handling gap events
	  The stream lock is taken before handling gap events but was not released in all
	  possible runtime situations. This issue was introduced in:
	  https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1274
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2307>

2022-04-28 15:32:27 +1000  Matthew Waters <matthew@centricular.com>

	* gst/subparse/samiparse.c:
	  subparse: don't deref a potentially NULL variable
	  If the html SAMI data is malformed, then retrieving the attribute name
	  may fail.  We then cannot retrieve the attribute value.
	  Fixes: https://oss-fuzz.com/testcase-detail/4700130671984640
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2317>

2022-04-27 09:22:40 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	* tools/gst-play.c:
	  parsebin: Expose streams of unknown type
	  This actually respects the existing `expose-all-streams` property by exposing
	  them and having them present in the stream collection (as streams of type
	  unknown).
	  Fixes #1179
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2309>

2022-04-27 08:23:59 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstplaybin2.c:
	  playbin2: Remove dead code
	  blacklisted_mimes has been empty for ages. Remove the code "using" it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2306>

2022-04-21 02:04:57 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/pango/gsttimeoverlay.c:
	* ext/pango/gsttimeoverlay.h:
	  timeoverlay: add support for reference timestamp time mode
	  + update date-time mode to actually use the timestamp that
	  was selected with the time-mode property
	  Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2252>

2022-04-27 02:08:00 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst-libs/gst/rtp/gstrtpbasepayload.c:
	  rtpbasepayload: always store input buffer meta before negotiation
	  The decision to store the input buffer depends on whether extensions
	  are to be added to the output buffer, I assume as an optimization.
	  This creates an issue for subclasses that call negotiate(), where
	  header_exts is actually populated, from their handle_buffer()
	  implementation: at chain time, no header extension has been negotiated
	  yet, which means that we don't add extensions to the first batch of
	  buffers that comes out.
	  Keep track of whether negotiate has been called (this is different
	  from the negotiated field) and always store the input buffer until
	  then. This fixes the issue while largely preserving the optimization.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2304>

2022-04-24 23:19:00 +0800  He Junyan <junyan.he@intel.com>

	* gst/videoconvertscale/gstvideoconvertscale.c:
	  videoscale: Fix the src video info error in transfer_colorimetry_from_input()
	  Pipeline such as:
	  gst-launch-1.0 -vf videotestsrc ! video/x-raw,format=NV12,colorimetry=\(string\)bt709 \
	  ! videoscale ! video/x-raw,format=I420 ! fakesink
	  Always trigger a error:
	  ERROR             video-info video-info.c:556:gst_video_info_from_caps: no width property given
	  Because it is called before the fixate_size(), the src caps' resolution
	  may be absent or not fixed. That causes that the src video info can not
	  be created correctly and we can not inherit the colorimetry and chroma-site
	  from the input caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2289>

2022-04-26 10:58:08 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/videorate/gstvideorate.c:
	  videorate: fix assertion when pushing last and only buffer without duration
	  Fixing this pipeline:
	  gst-launch-1.0 filesrc location=sample.png ! pngdec ! videorate ! fakesink
	  - videorate receives a single buffer with pts = 0, duration = invalid;
	  - then it receives eos triggering this buffer to be pushed downstream;
	  - the pushing code was assuming that a duration was set, which is
	  impossible as we received a single buffer and no output framerate was
	  set either. So the best we can do is to push the buffer without
	  duration.
	  Fix #1177
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2296>

2022-04-26 09:29:39 +0200  Edward Hervey <edward@centricular.com>

	* ext/ogg/gstoggstream.c:
	  oggdemux: Protect against invalid framerates
	  This check wasn't done for all mappings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2295>

2022-03-07 08:46:57 -0500  Xavier Claessens <xavier.claessens@collabora.com>

	* gst-libs/gst/gl/meson.build:
	  Meson: Fix deprecation warnings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1876>

2022-04-21 11:41:43 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/videorate/gstvideorate.c:
	  Revert "videorate: Update the base time on segment updates"
	  This reverts commit 75b4809ebc23814009bebc70c775ab44d85decf2.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2254>

2022-04-21 11:41:36 +0300  Sebastian Dröge <sebastian@centricular.com>

	* tests/check/elements/videorate.c:
	  Revert "videorate: Add test for segment update"
	  This reverts commit a76f38b2c7ddbed546bb058c32ebcf8a553c003f.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2254>

2022-04-21 11:41:25 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/videorate/gstvideorate.c:
	* tests/check/elements/videorate.c:
	  Revert "videorate: Only "close" the segment if it is discontinous"
	  This reverts commit 6f7922b4dbba5ed780e7b0988669a81848a9e333.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2254>

2022-04-21 11:41:15 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/videorate/gstvideorate.c:
	  Revert "videorate: Drop incoming buffers that are outside of the segment"
	  This reverts commit 24fd80344dbc059b72e13d813ca82f414a9d6cce.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2254>

2022-04-21 11:40:47 +0300  Sebastian Dröge <sebastian@centricular.com>

	* tests/check/elements/videorate.c:
	  Revert "videorate: Add unit test for closing a segment and opening a separate one"
	  This reverts commit 98f2a84a289ed4d4cfac9bc5c73182a56eefa99c.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2254>

2020-11-26 18:18:52 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: keep old buffer when processing a MISSING_DATA gap
	  GAP events flagged with MISSING_DATA are transformed into GAP buffers
	  flagged with CORRUPTED.
	  In these cases, it is preferable to simply keep rendering the previous
	  buffer (if there was one) instead of flashing the pad in and out of
	  view.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/708>

2020-11-26 18:16:10 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/compositor/compositor.c:
	  compositor: fix prepare_frame obscuring check
	  A pad without a buffer or with a GAP buffer cannot obscure a
	  pad below it. Ignore those when considering whether a pad should
	  be drawn.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/708>

2020-11-26 15:57:10 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/compositor/compositor.c:
	  compositor: a pad without a frame can't obscure the background
	  Skip those when considering whether the background should be
	  drawn
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/708>

2022-04-20 16:25:49 -0500  Olivier Crête <olivier.crete@collabora.com>

	* tests/check/elements/videoscale.c:
	  videoscale: Add test to ensure that non-scaled metas are kept
	  Just make sure that we're not breaking non-scaled metas
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1630>

2022-02-02 15:28:15 +0000  James Cowgill <james.cowgill@blaize.com>

	* tests/check/elements/videoscale.c:
	  videoscale: Add test for transform_meta function
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1630>

2022-02-02 15:28:21 +0000  James Cowgill <james.cowgill@blaize.com>

	* gst/videoconvertscale/gstvideoconvertscale.c:
	  videoscale: Don't copy scaled metas
	  Returning TRUE from the `transform_meta` function tells
	  GstBaseTransform to copy the meta into the new buffer. If videoscale
	  has already transformed a meta by scaling it, it should always return
	  FALSE to avoid duplicating the meta.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1630>

2022-04-01 15:16:20 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/ximage/ximagesink.c:
	* sys/xvimage/xvimagesink.c:
	  x11: Fix unused variable warnings
	  These are emitted when XInput 2 is not available.
	  ```
	  ../subprojects/gst-plugins-base/sys/ximage/ximagesink.c: In function ‘gst_x_image_sink_handle_xevents’:
	  ../subprojects/gst-plugins-base/sys/ximage/ximagesink.c:696:29: warning: unused variable ‘state’ [-Wunused-variable]
	  696 |   GstNavigationModifierType state = GST_NAVIGATION_MODIFIER_NONE;
	  |                             ^~~~~
	  ../subprojects/gst-plugins-base/sys/ximage/ximagesink.c:694:35: warning: unused variable ‘touch_frame_open’ [-Wunused-variable]
	  694 |   gboolean pointer_moved = FALSE, touch_frame_open = FALSE;
	  |                                   ^~~~~~~~~~~~~~~~
	  ../subprojects/gst-plugins-base/sys/xvimage/xvimagesink.c: In function ‘gst_xv_image_sink_handle_xevents’:
	  ../subprojects/gst-plugins-base/sys/xvimage/xvimagesink.c:427:35: warning: unused variable ‘touch_frame_open’ [-Wunused-variable]
	  427 |   gboolean pointer_moved = FALSE, touch_frame_open = FALSE;
	  |                                   ^~~~~~~~~~~~~~~~
	  ../subprojects/gst-plugins-base/sys/xvimage/xvimagesink.c:426:29: warning: unused variable ‘state’ [-Wunused-variable]
	  426 |   GstNavigationModifierType state = GST_NAVIGATION_MODIFIER_NONE;
	  |                             ^~~~~
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2093>

2022-04-21 10:21:37 -0400  Thibault Saunier <tsaunier@igalia.com>

	* tests/validate/convertscale/convert_disable_scale.validatetest:
	* tests/validate/convertscale/convert_disable_scale/flow-expectations/log-converter-src-expected:
	* tests/validate/convertscale/scale_disable_convert.validatetest:
	* tests/validate/convertscale/scale_disable_convert/flow-expectations/log-scaler-src-expected:
	  tests: convertscale: Do not log EOS events in validateflow
	  We already checked that we are getting an EOS before going back to ready
	  and adding the EOS at the end of the .validateflow is racy as the ERROR
	  message might reach the bus before it is logged.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2264>

2022-04-14 09:48:14 -0400  Thibault Saunier <tsaunier@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/videoconvertscale/gstvideoconvert.c:
	* gst/videoconvertscale/gstvideoconvertscale.c:
	* gst/videoconvertscale/gstvideoconvertscale.h:
	* gst/videoconvertscale/gstvideoscale.c:
	* tests/validate/convertscale/convert_disable_scale.validatetest:
	* tests/validate/convertscale/convert_disable_scale/flow-expectations/log-converter-src-expected:
	* tests/validate/convertscale/scale_disable_convert.validatetest:
	* tests/validate/convertscale/scale_disable_convert/flow-expectations/log-scaler-src-expected:
	* tests/validate/meson.build:
	  videoconvertscale: Add properties to disable scaling/converting in videoconvert/videoscale
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/898>

2021-05-21 18:55:25 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst/videoconvertscale/gstvideoconvert.c:
	* gst/videoconvertscale/gstvideoconvertscale.c:
	* gst/videoconvertscale/gstvideoconvertscale.h:
	* gst/videoconvertscale/gstvideoscale.c:
	  videoconvertscale: Don't claim we can support any kind of memory
	  Since d0133a2d11566ff4c0cded7af8dfdff0046e0e8b "videoconvert: Allow
	  passthrough for ANY caps features" videoconvert will always claim that
	  it supports any kind of memory which is true in very specific case (when
	  it is running in passthrough mode). To get elements that autoplug
	  converters depending on the caps running in the pipeline (like
	  autovideoconvert), we need to have converters no lie about what they can
	  do when queried `accept_caps` or `query_caps`.
	  This still accepts any caps feature as before but it introduces
	  a restriction in the way we handle memory capsfeatures.
	  We keep previous behaviour in videoconvert and videoscale.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/898>

2020-04-17 15:23:03 -0400  Thibault Saunier <tsaunier@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/meson.build:
	* gst/videoconvert/gstvideoconvert.c:
	* gst/videoconvert/meson.build:
	* gst/videoconvertscale/README:
	* gst/videoconvertscale/gstvideoconvert.c:
	* gst/videoconvertscale/gstvideoconvert.h:
	* gst/videoconvertscale/gstvideoconvertscale.c:
	* gst/videoconvertscale/gstvideoconvertscale.h:
	* gst/videoconvertscale/gstvideoconvertscaleplugin.c:
	* gst/videoconvertscale/gstvideoscale.c:
	* gst/videoconvertscale/gstvideoscale.h:
	* gst/videoconvertscale/meson.build:
	* gst/videoscale/README:
	* gst/videoscale/meson.build:
	* meson_options.txt:
	  Introduce the videocolorscale element
	  Now that videoconvert and videoscale's are both based on
	  GstVideoConverter and are using the exact same code, it makes much more
	  sense to have one element doing the two operation, and it can be
	  more efficient in some cases (one single path for both operations).
	  This removes the `videoscale` and `videoconvert` plugins but keeps the element
	  but makes them also do both operations (adding some APIs to each element).
	  There is a small change in API for the `videoscale:dither` property which
	  was previously a totally unused boolean, it is now an enum and is used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/898>

2022-04-07 19:36:25 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	  sdp: Parse the RFC5576 Source-specific media SDP attributes into caps
	  The format of the caps fields is
	  ssrc-(SSRC_VALUE)-(ATTRIBUTE_NAME)=(ATTRIBUTE_VALUE)
	  .
	  Parsing of the attributes from the caps into the SDP is not implemented
	  as this depends not only a single stream's caps but on the whole rtpbin
	  configuration.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>

2022-04-18 18:53:45 +0900  Camilo Celis Guzman <camilo@pexip.com>

	* ext/gl/gstglmixerbin.c:
	  gstglmixerbin: minor refactor of _find_element_pad_template
	  As suggested by @slomo, make the loop more readable and prevent returning
	  a garbage value to the caller from the previous implementation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2232>

2022-03-25 10:18:34 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* meson.build:
	  Always define ENABLE_NLS
	  GLib guarantees libintl API is always available, provided by
	  proxy-libintl as last resort. GLib itself unconditionally define
	  ENABLE_NLS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028>

2022-03-25 10:20:24 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst-libs/gst/gettext.h:
	* gst-libs/gst/gst-i18n-app.h:
	* gst-libs/gst/gst-i18n-plugin.h:
	  Delete unused i18n headers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028>

2022-03-25 09:59:23 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* ext/alsa/gstalsaelement.c:
	* ext/alsa/gstalsaplugin.c:
	* ext/alsa/gstalsasink.c:
	* ext/alsa/gstalsasrc.c:
	* ext/cdparanoia/gstcdparanoiasrc.c:
	* ext/gl/gstgltestsrc.c:
	* ext/ogg/gstoggdemux.c:
	* gst-libs/gst/audio/gstaudiobasesrc.c:
	* gst-libs/gst/audio/gstaudiocdsrc.c:
	* gst-libs/gst/gl/gstglbasesrc.c:
	* gst-libs/gst/pbutils/descriptions.c:
	* gst-libs/gst/pbutils/missing-plugins.c:
	* gst-libs/gst/pbutils/pbutils.c:
	* gst-libs/gst/tag/gsttagdemux.c:
	* gst-libs/gst/tag/lang.c:
	* gst-libs/gst/tag/tags.c:
	* gst/encoding/gstencodebasebin.c:
	* gst/encoding/gstencodingelements.c:
	* gst/playback/gstdecodebin2.c:
	* gst/playback/gstparsebin.c:
	* gst/playback/gstplaybackelement.c:
	* gst/playback/gstplaybackplugin.c:
	* gst/playback/gstplaybin2.c:
	* gst/playback/gstplaybin3.c:
	* gst/playback/gstplaysink.c:
	* gst/playback/gstplaysinkaudioconvert.c:
	* gst/playback/gstplaysinkconvertbin.c:
	* gst/playback/gstplaysinkvideoconvert.c:
	* gst/playback/gsturidecodebin.c:
	* gst/playback/gsturidecodebin3.c:
	* gst/playback/gsturisourcebin.c:
	* gst/tcp/gstmultifdsink.c:
	* gst/tcp/gstmultihandlesink.c:
	* gst/tcp/gstmultisocketsink.c:
	* gst/tcp/gstsocketsrc.c:
	* gst/tcp/gsttcpclientsink.c:
	* gst/tcp/gsttcpclientsrc.c:
	* gst/tcp/gsttcpserversink.c:
	* gst/tcp/gsttcpserversrc.c:
	* tools/gst-device-monitor.c:
	* tools/gst-play.c:
	  Replace gst-i18n-*.h with gi18n-lib.h
	  GLib guarantees libintl is always present, using proxy-libintl as
	  last resort. There is no need to mock gettex API any more.
	  This fix static build on Windows because G_INTL_STATIC_COMPILATION must
	  be defined before including libintl.h, and glib does it for us as part
	  as including glib.h.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028>

2022-03-25 11:21:03 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* tools/gst-play.c:
	  gst-play: Do not split translatable string
	  Concatenating N_() strings does not work with gi18n.h macro, was working
	  only with GStreamer's redefinition.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028>

2021-12-08 11:48:08 +0000  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/gl/meson.build:
	  cuda: Factor out a public GstCUDA library
	  So applications and elements implemented outside GStreamer can reuse
	  our infrastructure
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1472>

2022-04-19 11:05:05 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/video-format.c:
	* gst-libs/gst/video/video-frame.c:
	  video: Fix possible overrun when iterating comp[] array
	  Fix 2 iterations that can overrun the array if the number of component is
	  equal to the size of the array.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2239>

2022-04-19 10:53:15 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/video-frame.c:
	  Revert "video-frame: avoid possible out of bound memory access"
	  This reverts commit c4255f08f787ff6a41504b538fa4c2e911d40ec7.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2239>

2022-04-18 15:44:47 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/sdp/meson.build:
	  meson: Add -Wl,-rpath,${libdir} on macOS
	  We made the gstreamer installation prefix relocatable by picking up
	  plugins relative to the location of libgstreamer-1.0.dylib, similar to
	  how it's done for Windows:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1627
	  This had a lot of side-effects:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1051
	  https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/363
	  https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/371
	  https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/362
	  A partial fix for the cerbero side of these was:
	  https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/807
	  However, this relied on the consumers knowing that they need to add
	  `LC_RPATH` entries to the libdir of the prefix. This is done
	  automatically by build systems like Meson, but not by others, such as
	  Autotools, CMake, Cargo, XCode, etc. For those, we need to add the
	  RPATH entries to the gstreamer-1.0.pc file.
	  This also has the side-effect of fixing the loading of gstreamer rust
	  plugins on macOS:
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1159
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1149
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2218>

2022-04-18 18:14:44 +0900  Camilo Celis Guzman <camilo@pexip.com>

	* gst-libs/gst/video/video-frame.c:
	  video-frame: avoid possible out of bound memory access
	  Although the components' initialization code would fill in -1 to all
	  unset components, make the code a bit more defensive and check for an
	  index bound first.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2231>

2021-11-12 20:13:10 +0100  Ruben Gonzalez <rgonzalez@fluendo.com>

	* docs/plugins/gst_plugins_cache.json:
	  gst_plugin_load_file: force plugin reload if diff filename
	  If a file includes a new version of a plugin that exits in the
	  registry, the output of gst-inspect is incorrect. The output has the
	  correct version but incorrect filename, and element description.
	  This seems to have also fixed some documentation issues.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1344>

2021-05-25 14:41:51 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: fix collection leak
	  get_merged_collection() returns an owned stream collection and was
	  leaked in the else block.
	  Fix leak when running:
	  GST_TRACERS=leaks GST_DEBUG="GST_TRACER:7,leaks:6" gst-play-1.0 --use-playbin3 test.mkv
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/954>

2022-04-15 14:03:08 +0900  hoonhee.lee <hoonhee.lee@lge.com>

	* gst/playback/gstplaybin3.c:
	  playbin3: fix missing lock when unknown stream type in pad-removed cb
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2193>

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

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Don't duplicate stream selections
	  Make sure that the requested stream selection isn't identical to the current
	  one. If that's the case, just carry on as usual.
	  This avoids multiple `streams-selected` posting ... when the selection didn't
	  change.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2185>

2022-04-14 18:44:48 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: fix annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2188>

2022-04-15 19:55:34 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtp/gstrtpbasepayload.c:
	  rtpbasepayload: Don't write header extensions if there's no corresponding input buffer for the packet
	  The GstRTPHeaderExtension API requires the input buffer to exist.
	  This can happen if the output packet is generated e.g. from a caps or
	  tags event like in the case for rtpgstpay.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2198>

2022-04-14 20:10:46 +1000  Brad Hards <bradh@frogmouth.net>

	* tests/interactive/audio-trickplay.c:
	* tests/interactive/benchmark-appsink.c:
	* tests/interactive/benchmark-appsrc.c:
	* tests/interactive/benchmark-video-conversion.c:
	* tests/interactive/input-selector-test.c:
	* tests/interactive/meson.build:
	* tests/interactive/output-selector-test.c:
	* tests/interactive/playback/decodetest.c:
	* tests/interactive/playback/test.c:
	* tests/interactive/playback/test2.c:
	* tests/interactive/playback/test3.c:
	* tests/interactive/playback/test4.c:
	* tests/interactive/playback/test5.c:
	* tests/interactive/playback/test6.c:
	* tests/interactive/playback/test7.c:
	* tests/interactive/playbin-text.c:
	* tests/interactive/position-formats.c:
	* tests/interactive/stress-playbin.c:
	* tests/interactive/stress-videooverlay.c:
	* tests/interactive/test-box.c:
	* tests/interactive/test-colorkey.c:
	* tests/interactive/test-effect-switch.c:
	* tests/interactive/test-header-compile:
	* tests/interactive/test-overlay-blending.c:
	* tests/interactive/test-resample.c:
	* tests/interactive/test-reverseplay.c:
	* tests/interactive/test-scale.c:
	* tests/interactive/test-textoverlay.c:
	* tests/interactive/test-videooverlay.c:
	* tests/meson.build:
	  tests: rename 'icles' subdir to be more descriptive
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2178>

2022-04-12 01:35:43 +0900  Seungha Yang <seungha@centricular.com>

	* tools/meson.build:
	  meson: gst-play: Restore Windows high-resolution timer support
	  Fix regression of the commit 2952a73f4083487f33ae83407bef5245d2f8fef2
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2154>

2022-04-12 01:01:23 +0900  Seungha Yang <seungha@centricular.com>

	* tools/gst-play.c:
	* tools/meson.build:
	  win32: Enable high-resolution timer for MinGW build
	  timeapi.h is missing in our MinGW toolchain. Include mmsystem.h
	  header instead, which defines struct and APIs in case of our MinGW
	  toolchain. Note that in case of native Windows10 SDK (MSVC build),
	  mmsystem.h will include timeapi.h
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2153>

2022-04-12 15:23:08 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtp/gstrtpbasepayload.c:
	  Fix `transfer` gobject-introspection annotation typos
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2160>

2022-04-10 10:55:02 +1000  Matthew Waters <matthew@centricular.com>

	* gst/subparse/gstsubparseelement.c:
	  subparse: don't try to index string with -1
	  If the len of the string turns out to be 0, str[len - 1] resolved to
	  str[-1] which is not a good idea.
	  Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46543
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2147>

2022-04-08 11:10:49 +1000  Matthew Waters <matthew@centricular.com>

	* ext/ogg/gstoggstream.c:
	* ext/ogg/vorbis_parse.c:
	* ext/ogg/vorbis_parse.h:
	  ogg: fix possible buffer overrun
	  If an ogg stream does not match our expectations of how the end of a
	  buffer may be structured, it was possible to read memory past the end of
	  the buffer parsed by libogg.  Include a bounds check for this case and
	  stop parsing.
	  Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3930
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2134>

2022-04-08 01:52:32 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst-libs/gst/rtp/gstrtpbasepayload.c:
	  rtpbasepayload: fix transfer annotation for push and push_list
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2133>

2022-04-07 10:08:37 +0900  hoonhee.lee <hoonhee.lee@lge.com>

	* gst-libs/gst/riff/riff-media.c:
	  riff-media: fix memory leak after usage for g_strjoin
	  This leak is observed with valgrind.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2129>

2022-04-06 18:08:46 +0200  Bastian Krause <bst@pengutronix.de>

	* ext/gl/gstgltransformation.c:
	* ext/gl/gstgltransformation.h:
	  gltransformation: let graphene alloc its structures memory aligned
	  With NEON instructions enabled, graphene expects the memory passed to it
	  16-byte-aligned. Otherwise unaligned memory access faults occur causing
	  SIGBUS signals.
	  graphene has alloc functions for its structures that take care of this,
	  so use them.
	  See also: https://github.com/ebassi/graphene/issues/215#issuecomment-794744829
	  Suggested-by: Sebastian Dröge <sebastian@centricular.com>
	  Signed-off-by: Bastian Krause <bst@pengutronix.de>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1321>

2022-04-04 10:46:24 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: Clarify buffer ref semantics in signals
	  The documentation could be read to mean that the caller continuous to
	  'own' the buffer, and that there is some other mechanism to find out
	  when to unref it.
	  Clarify that "not taking ownership" here means "taking a reference",
	  and specify that you can unref it at any time after calling the
	  function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2110>

2021-01-21 16:01:38 +0800  Zhao Zhili <quinkblack@foxmail.com>

	* tests/examples/gl/gtk/gstgtk.c:
	* tests/examples/playback/playback-test.c:
	  examples: fix build on macOS with gtk+-quartz-3.0
	  gdk_quartz_window_get_nsview is not declared in the header file now:
	  error: implicit declaration of function 'gdk_quartz_window_get_nsview'
	  is invalid in C99 [-Werror,-Wimplicit-function-declaration]
	  fixes #979
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2095>

2022-04-01 21:47:59 +0800  Haihua Hu <jared.hu@nxp.com>

	* ext/gl/gstglelement.c:
	* sys/ximage/ximage.c:
	* sys/xvimage/xvimage.c:
	* tests/check/elements/glfilter.c:
	* tests/check/elements/glimagesink.c:
	* tests/check/elements/glmixer.c:
	* tests/check/elements/glstereo.c:
	* tools/gst-play.c:
	  ximagesink/xvimagesink: use GST_XINITTHREADS to ensure call to XInitThreads
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2098>

2022-03-30 11:06:02 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* meson.build:
	  Use gmodule-no-export-2.0
	  We don't need `-Wl,--export-dynamic`, that's used only for executables
	  that needs to export an API to be used by plugins they load.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>

2022-03-25 15:00:20 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* ext/alsa/meson.build:
	* ext/cdparanoia/meson.build:
	* ext/libvisual/meson.build:
	* ext/ogg/meson.build:
	* ext/opus/meson.build:
	* ext/pango/meson.build:
	* ext/theora/meson.build:
	* ext/vorbis/meson.build:
	* gst-libs/gst/sdp/meson.build:
	* gst/tcp/meson.build:
	* gst/videoscale/meson.build:
	* gst/videotestsrc/meson.build:
	* gst/volume/meson.build:
	* meson.build:
	* sys/ximage/meson.build:
	* sys/xvimage/meson.build:
	* tests/check/meson.build:
	* tests/examples/app/meson.build:
	* tests/examples/audio/meson.build:
	* tests/examples/decodebin_next/meson.build:
	* tests/examples/dynamic/meson.build:
	* tests/examples/encoding/meson.build:
	* tests/examples/fft/meson.build:
	* tests/examples/gio/meson.build:
	* tests/examples/overlay/meson.build:
	* tests/examples/playback/meson.build:
	* tests/examples/playrec/meson.build:
	* tests/examples/seek/meson.build:
	* tests/examples/snapshot/meson.build:
	* tools/meson.build:
	  Remove glib and gobject dependencies everywhere
	  They are part of gst_dep already and we have to make sure to always have
	  gst_dep. The order in dependencies matters, because it is also the order
	  in which Meson will set -I args. We want gstreamer's config.h to take
	  precedence over glib's private config.h when it's a subproject.
	  While at it, remove useless fallback args for gmodule/gio dependencies,
	  only gstreamer core needs it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>

2022-03-31 12:47:06 +0200  Xabier Rodriguez Calvar <calvaris@igalia.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  glcolorconvert: should copy metadatas from the incoming buffer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2094>

2022-04-01 10:25:23 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/playback/gstplaybin2.c:
	* gst/playback/gstplaybin3.c:
	  playbin/playbin3: Allow setting a NULL URI
	  The URI is already initialized to NULL at the beginning and GstPlayer
	  was assuming that it is possible to set to NULL at a later time too.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1124
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2090>

2022-03-31 23:41:41 +0200  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/video/navigation.c:
	* gst-libs/gst/video/navigation.h:
	  navigation: Rename parse_state to parse_modifier_state
	  `parse_state` sounds a bit weird and `parse_modifier_state` is clearer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2087>

2022-03-29 17:51:13 +0200  Stéphane Cerveau <scerveau@collabora.com>

	* gst-libs/gst/gl/meson.build:
	* tests/check/libs/gstglmatrix.c:
	* tests/check/meson.build:
	  base:gl: add x11 deps to gstglx11_dep
	  On MacOS with homebrew the xlib-xcb.h is in
	  own cellar /opt/homebrew/Cellar/libx11/1.7.3.1/include
	  Need to add the windowing dependencies to gl tests
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2061>

2020-03-30 15:16:29 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* tests/examples/overlay/meson.build:
	  overlay: Fix qt support detection
	  On Ubuntu moc-qt5 command is called moc. This requires Meson 0.54.0 for
	  the new has_tools() method.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2075>

2022-03-29 22:16:14 +0900  Seungha Yang <seungha@centricular.com>

	* tools/gst-play-kb.c:
	  gst-play: Improve Win32 keyboard input handling
	  The console HANDLE will be keep signalled state unless application
	  reads console input buffer immediately. So we should read and flush
	  console input buffer from the thread where the event is signalled,
	  instead of GMain context thread.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2058>

2021-09-11 12:17:56 -0300  Thibault Saunier <tsaunier@igalia.com>

	* meson.build:
	* tools/meson.build:
	  tools: Add support for building gstreamer tools against gst-full
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1581>

2022-03-28 18:43:27 +0200  Enrique Ocaña González <eocanha@igalia.com>

	* gst/playback/gstplaysink.c:
	  playsink: improve GL context sharing
	  Configure playsink tried element with the bus of the main pipeline.
	  That tried element can be a gl video sink, which would benefit from being
	  able to propagate context messages to the main pipeline and have other
	  internal pipeline elements configured with it. Having different elements
	  configured with the same GL context allows them to share buffers with
	  video/x-raw(memory:GLMemory) caps and achieving zero-copy.
	  Thanks to Alicia Boya García <aboya@igalia.com> for her work co-debugging
	  the issue and contributing to find a solution.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2056>

2021-06-09 11:25:36 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: When streams-aware, remove pads immediately
	  For the same reason we add them immediately
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1905>

2021-06-08 14:31:10 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Don't wait for pads content when streams-aware
	  If the adaptive demux is streams-aware it can add/remove pads at any point in
	  time without the need for no-more-pads or data blocking
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1905>

2021-05-29 07:31:15 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Don't do buffering if source already does
	  Sources that can internally handle buffering shouldn't have yet-another
	  buffering element after it. This can be simply detected by checking if it can
	  answer a TIME BUFFERING query just after creation.
	  If that is the case, we can expose the element source pads directly
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1905>

2021-05-28 07:49:10 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Handle upstream selection
	  Detect if upstream handles stream-selection, and if so bypass all stream
	  selection handling (streams are forwarded as-is).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1905>

2022-03-28 12:13:12 +0200  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/pbutils/descriptions.c:
	  pbutils: Fix wmv screen detection
	  strncmp vs !strncmp :)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2050>

2022-03-28 10:10:45 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/video/video-format.h:
	  video-format: Move NV12_8L128 into the correct position in GST_VIDEO_FORMATS_ALL
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2045>

2022-03-16 10:31:56 +0000  Corentin Damman <c.damman@intopix.com>

	* gst/rawparse/gstrawvideoparse.c:
	  rawvideoparse: set format from caps in gst_raw_video_parse_set_config_from_caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1970>

2022-03-27 16:35:14 +1100  Matthew Waters <matthew@centricular.com>

	* ext/gl/gstglmixerbin.c:
	  glmixerbin: slightly better pad/element creation
	  Use the return value from gst_element_link_pads() and gst_bin_add()
	  Fixes:
	  ../ext/gl/gstglmixerbin.c:305:12: error: variable 'res' set but not used [-Werror,-Wunused-but-set-variable]
	  gboolean res = TRUE;
	  ^
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2038>

2022-03-25 13:00:13 +0100  Stéphane Cerveau <scerveau@collabora.com>

	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
	  gl: cocoa: fix warnings of unused variables
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2026>

2022-03-18 16:59:32 +0000  Thibault Saunier <tsaunier@igalia.com>

	* ext/gl/gstglimagesink.c:
	* gst-libs/gst/video/navigation.c:
	* gst-libs/gst/video/navigation.h:
	* sys/ximage/ximagesink.c:
	* sys/xvimage/xvimagesink.c:
	* tests/check/libs/navigation.c:
	* tests/examples/playback/playback-test.c:
	  navigation: Add support for key Modifiers in all relevant events
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010>

2022-03-24 13:01:52 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

	* gst-libs/gst/video/navigation.c:
	* gst-libs/gst/video/navigation.h:
	  navigation: Add missing annotation to send_event_simple
	  Adds the missing "transfer full" annotation for the event argument.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2017>

2022-03-22 21:13:31 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

	* sys/xvimage/meson.build:
	* sys/xvimage/xvcontext.c:
	* sys/xvimage/xvcontext.h:
	* sys/xvimage/xvimagesink.c:
	  xvimagesink: Add touch event support
	  Send touch events for XI_TouchBegin, XI_TouchEnd, and XI_TouchUpdate
	  events, grouping events with identical timestamps into one TOUCH_FRAME.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-02-03 15:01:46 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

	* meson_options.txt:
	* sys/meson.build:
	* sys/ximage/meson.build:
	* sys/ximage/ximagesink.c:
	* sys/ximage/ximagesink.h:
	  ximagesink: Add touch event support
	  Send touch events for XI_TouchBegin, XI_TouchEnd, and XI_TouchUpdate
	  events, grouping events with identical timestamps into one TOUCH_FRAME.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-01-31 20:25:23 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

	* gst-libs/gst/video/navigation.c:
	* gst-libs/gst/video/navigation.h:
	  navigation: Add API for touchscreen events
	  Add 5 new navigation event types for touchscreen events, with the same
	  naming and meaning as in libinput - touch-down, touch-motion, touch-up,
	  touch-frame and touch-cancel - as well as constructors and parse
	  functions for them.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-02-14 16:08:23 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

	* ext/gl/gstglimagesink.c:
	* ext/gl/gstglsinkbin.c:
	* ext/gl/gstgltransformation.c:
	* gst/playback/gstplaybin2.c:
	* gst/playback/gstplaybin3.c:
	* gst/playback/gstplaysink.c:
	* gst/videoscale/gstvideoscale.c:
	* sys/ximage/ximagesink.c:
	* sys/xvimage/xvimagesink.c:
	* tests/check/libs/navigation.c:
	* tests/examples/playback/playback-test.c:
	  all: Use new navigation interface and API
	  Use and implement the new navigation interface in all relevant sink elements,
	  and use API functions everywhere instead of directy accessing the event structure.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-02-14 14:22:29 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

	* gst-libs/gst/video/navigation.c:
	* gst-libs/gst/video/navigation.h:
	  navigation: Add coordinate helper functions
	  Add a function to get x/y coordinates from suitable navigation events,
	  and one to create a copy with given coordinate values.
	  For e.g. translating event coordinates, this avoids having to either
	  switch on the event type to select the right parse function, or
	  having to rely on implementation details of the underlying event
	  structure.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-02-14 14:06:12 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

	* gst-libs/gst/video/navigation.c:
	* gst-libs/gst/video/navigation.h:
	* tests/check/libs/struct_aarch64.h:
	* tests/check/libs/struct_arm.h:
	* tests/check/libs/struct_i386.h:
	* tests/check/libs/struct_i386_osx.h:
	* tests/check/libs/struct_ppc32.h:
	* tests/check/libs/struct_ppc64.h:
	* tests/check/libs/struct_x86_64.h:
	  navigation: Improve interface to avoid exposing implementation details
	  This deprecates the current send_event interface, and the wrapper
	  functions based on it, replacing it with a send_event_simple interface and
	  wrapper function. Together with the new event constructors, this avoids
	  implementations having to directly access the underlying structure.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-03-18 16:34:38 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  doc: Update cache after NV12_8L128 addition
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379>

2021-08-12 11:00:11 +0800  Ming Qian <ming.qian@nxp.com>

	* gst-libs/gst/video/video-converter.c:
	* gst-libs/gst/video/video-format.c:
	* gst-libs/gst/video/video-format.h:
	* gst-libs/gst/video/video-info.c:
	* tests/check/elements/videoscale.c:
	* tests/check/libs/video.c:
	  video: Add support for linear 8x128 NV12 tiles and 10bit BE tiles
	  This adds linear 8x128 NV12 based tiles and NV12 10bit big endian tiles.
	  These formats are used by i.MX 8QXP/8QM VPU and exposed in V4L2.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379>

2022-03-18 13:42:27 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	  meson: Bump all meson requirements to 0.60
	  Lots of new warnings ever since
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977>

2022-03-18 20:43:24 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/pbutils/gstdiscoverer-types.c:
	  discoverer: chain up to parent finalize methods in all our types
	  Fixes a memory leak:
	  Direct leak of 32 byte(s) in 1 object(s) allocated from:
	  #0 0x5ac5cd in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:129:3
	  #1 0x1007007 in g_malloc /work/glib-2.72.0/_builddir/../glib/gmem.c:125:13
	  #2 0xf82e82 in g_data_set_internal /work/glib-2.72.0/_builddir/../glib/gdataset.c:464:8
	  #3 0xf833f7 in g_datalist_id_set_data_full /work/glib-2.72.0/_builddir/../glib/gdataset.c:670:3
	  #4 0xef81be in g_object_notify_queue_freeze /work/glib-2.72.0/_builddir/../gobject/gobject.c:295:7
	  #5 0xef79c6 in g_object_unref /work/glib-2.72.0/_builddir/../gobject/gobject.c:3632:16
	  #6 0x5e58bf in LLVMFuzzerTestOneInput /src/gstreamer/ci/fuzzing/gst-discoverer.c:132:5
	  #7 0x4dd1a2 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15
	  #8 0x4dc98a in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:514:3
	  #9 0x4de6c4 in fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:809:5
	  #10 0x4dea29 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:857:3
	  #11 0x4ce4a0 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:912:6
	  #12 0x4f6f52 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
	  #13 0x7f1c709980b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b2)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1984>

2022-01-17 16:10:37 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

	* ext/gl/gstglvideomixer.c:
	* tests/check/libs/gstglvideomixerelement.c:
	* tests/check/meson.build:
	  glvideomixerelement: send translated navigation events to the relevant sink pads
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1495>

2022-01-05 19:33:06 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

	* gst/compositor/compositor.c:
	* tests/check/elements/compositor.c:
	  compositor: send translated navigation events to the relevant sink pads
	  Fixes #888
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1495>

2022-03-15 13:59:16 +0100  Corentin Noël <tintou@noel.tf>

	* gst-libs/gst/audio/gstaudiodecoder.h:
	* gst-libs/gst/audio/gstaudioringbuffer.c:
	* gst-libs/gst/audio/gstaudiosink.h:
	* gst-libs/gst/audio/gstaudiosrc.h:
	* gst-libs/gst/video/gstvideoaggregator.h:
	* gst-libs/gst/video/video-chroma.c:
	* gst-libs/gst/video/video-scaler.c:
	  gst-plugins-base: Fix several annotations
	  Add annotations for virtual methods when possible.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1965>

2021-12-16 18:41:38 +0000  Tim-Philipp Müller <tim@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/opus/gstopusenc.c:
	  opusenc: change default bitrate-type from cbr to constrained-vbr
	  Which is the default in libopus itself as well, with a comment
	  that constrained-vbr is considered "safer for real-time use".
	  Unclear why CBR was the default in the first place.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1451>

2022-03-15 12:57:49 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/rtp/gstrtpbuffer.c:
	  rtpbuffer: The out args for rtp extension data are optional
	  The code checks that these are != NULL before dereferencing them.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1962>

2022-03-10 10:25:53 +0100  Bastien Nocera <hadess@hadess.net>

	* gst-libs/gst/video/convertframe.c:
	* meson.build:
	  convertframe: Add support for GL-memory backend GstFrame input
	  Add "gldownload" early in the pipeline so that GL-memory backed raw
	  frames can be downloaded and processed on the CPU.
	  Closes: #1073
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1916>

2022-03-11 18:08:14 -0500  Xavier Claessens <xavier.claessens@collabora.com>

	* gst-libs/gst/gl/meson.build:
	  Meson: Set install_tag on some files
	  Meson tries to guess the tag (runtime, devel, etc) for every installed
	  file, but it cannot guess them all. There is a list at the end of
	  meson-log.txt of files we need to tag manually.
	  See https://mesonbuild.com/Installing.html#installation-tags.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934>

2022-03-02 03:45:48 +1100  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstplaybin3.c:
	  playbin3: Remove stale code
	  Remove now-unused get_stream_type_for_event() function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900>

2022-01-21 16:23:38 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Reset parsebin when new caps arrive
	  Check if parsebin can handle the new caps, and if not reset it so that it can
	  reconfigure itself for the new stream format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900>

2022-03-09 10:15:08 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Convert checks to assertions
	  "decodebin.input" is never resetted and should always be present, therefore make
	  it an assertion check
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900>

2022-01-21 14:52:07 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Implement ACCEPT_CAPS handling
	  The default query handler would go through typefind, which by default accepts
	  any CAPS. But once configured, parsebin can't reconfigure itself, it should
	  therefore pass through the ACCEPT_CAPS query to the first element after
	  typefind (if any).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900>

2022-01-18 05:48:08 +1100  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstplaybin3.c:
	  playbin3: Hold playbin lock on pad-added
	  Take the playbin lock when accessing the combiner
	  to add a new pad to link to. Fixes races against
	  streams-selected messages triggering reconfiguration.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900>

2022-01-18 02:52:47 +1100  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstplaybin3.c:
	  playbin3: Reconfigure on streams-selected message.
	  Don't reconfigure outputs when the select-streams
	  event is sent from the app, as the selection may
	  not take effect for some time. Instead, wait
	  for the pipeline to confirm the new set of
	  selected streams when it sends the message.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900>

2021-11-11 03:20:23 +1100  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstplaysink.c:
	  playsink: Fix reconfiguration after removing text_sink
	  If we previously had subtitles coming in, the video
	  may be chained through a text overlay block. Before,
	  the code would end up trying to link pads that were
	  already linked and video would not get reconnected
	  properly.
	  To fix that, make sure that the candidate
	  pads are actually unlinked first. If a textoverlay
	  is present and no longer needed, it will be cleaned
	  up later in the reconfiguration sequence.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900>

2021-08-06 19:27:02 +1000  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstplaysink.c:
	  playsink: Complete reconfiguration on pad release.
	  Requesting a new pad can start a reconfiguration cycle, where
	  playsink will block all input pads and wait for data on them
	  before doing internal reconfiguration. If a pad is released,
	  that reconfiguration might never trigger because it's now waiting
	  for a pad that doesn't exist any more.
	  In that case, complete the reconfiguration on pad release.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1180>

2022-03-08 09:46:33 +0100  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/pbutils/codec-utils.c:
	* gst-libs/gst/pbutils/codec-utils.h:
	* tests/check/libs/pbutils.c:
	  pbutils: Add function to parse RFC 6381 codecs field
	  This is the opposite of `gst_codec_utils_caps_get_mime_codec()`, which allows
	  elements to get the `GstCaps`
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1894>

2022-03-09 16:02:06 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/rtp/gstrtpbasepayload.c:
	* tests/check/libs/rtpbasepayload.c:
	  rtpbasepayload: Remove dead twcc code
	  This feature was removed in 7a53fbad68d702ca4905f7da223f4d2884548edc,
	  but this code was left behind.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1902>

2021-12-14 16:14:56 +0100  Edward Hervey <edward@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Handle GAP events before buffers
	  Make sure we did initial negotiation and segment pushing if we get GAP events
	  before buffers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1903>

2021-11-17 15:30:38 +0100  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/tag/gsttagdemux.c:
	  tagdemux: Properly propagate sequence numbers
	  If we received a time segment from upstream, we need to make sure we propagate
	  it downstream with the same sequence number.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1903>

2022-03-02 03:43:00 +1100  Jan Schmidt <jan@centricular.com>

	* gst/playback/gstplaybin3.c:
	  playbin3: Add lock to protect buffering messages
	  Fix a small race where a group can receive stream-start
	  and post a pending buffering message just as another
	  thread posts a different buffering message, causing them
	  to be received by the application out of order. In the
	  worst case, this leads the application receiving a
	  stale 99% buffering message and going back to buffering
	  right after the 100% buffering message.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1840>

2022-03-02 12:15:19 +0800  Hou Qi <qi.hou@nxp.com>

	* gst/encoding/gstencodebasebin.c:
	  encodebasebin: Use GST_DEBUG instead of GST_ERROR when skipping muxer
	  _get_muxer() skips the muxers that do not satisfy the requirement and select
	  the desired one. It should not print error log, so use debug log instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1830>

2022-03-04 22:21:13 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/gl/gstgldisplay.c:
	  gldisplay: Reorder GST_GL_WINDOW check for egl-device
	  "egl-device" should be checked before the "egl", otherwise unexpected egl will be picked
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1853>

2022-02-24 01:41:34 +1100  Jan Schmidt <jan@centricular.com>

	* tools/gst-play.c:
	  gst-play: Allow switching to previous tracks
	  Implement case sensitive key-press handling,
	  and make 'V', 'A', 'S' switch to the previous
	  video, audio, or subtitle track. The lower-case
	  keypress cycles to the next track, as before
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1841>

2021-09-01 14:02:29 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	* tests/check/libs/sdp.c:
	  sdp: support multiple rid parameters
	  As specified formally in RFC8851
	  Each rid description is placed in its own caps field in the structure.
	  This is very similar to the already existing extmap-$id sdp<->caps
	  transformations that already exists.
	  The mapping is as follows:
	  a=rid:0 direction ';'-separated params
	  where direction is either 'send' or 'recv'
	  gets put into a caps structure like so:
	  rid-0=(string)<"direction","param1","param2",etc>
	  If there are no rid parameters then the caps structure is generated to
	  only contain the direction as a single string like:
	  rid-0=(string)direction
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1760>

2022-03-02 00:52:22 +1100  Jan Schmidt <jan@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Remove dead variables
	  Leftover junk from original port
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1820>

2022-02-21 10:49:15 +0100  Sebastian Fricke <sebastian.fricke@collabora.com>

	* gst-libs/gst/tag/licenses.c:
	  Remove the uninstalled term
	  Remove the symbolic link `gst-uninstalled` which points to `gst-env`.
	  The `uninstalled` is the old name and the project should stick to a
	  single name for the procedure.
	  Remove the term from all the files, exceptions are variables from
	  dependencies like `uninstalled_variables` from pkgconfig and
	  `meson-uninstalled`.
	  Adjust mentions of the script in the documentation and README.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1743>

2022-02-23 11:10:11 +0100  Sebastian Fricke <sebastian.fricke@collabora.com>

	* README.md:
	  Maintain build instructions at a single location
	  Do not maintain similar build instructions within each gst-plugins-*
	  subproject and the subproject/gstreamer subproject. Use the build
	  instructions from the mono-repository and link to them via hyperlink.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1743>

2021-12-10 15:51:51 +0100  Célestin Marot <marotcelestin@gmail.com>

	* gst-libs/gst/video/video-info.c:
	  video-info: encoded format can have RGB color-matrix (Fixes #1435)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1435>

2022-02-27 13:19:49 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/video-format.c:
	  video-format-info: Use correct parameter name in gst_video_format_info_extrapolate_stride() docs
	  ../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.c:7570: Warning: GstVideo: gst_video_format_info_extrapolate_stride: unknown parameter 'info' in documentation comment, should be 'finfo'
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1803>

2022-02-16 18:49:52 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/audio/audio-converter.c:
	* gst-libs/gst/audio/audio-converter.h:
	* gst/audioconvert/gstaudioconvert.c:
	* gst/audioconvert/gstaudioconvert.h:
	  audioconvert: Add dithering-threshold property
	  By default, no dithering is applied if the target bit depth is above 20
	  bits. This new property allows to apply dithering nonetheless in these
	  cases.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1730>

2022-02-16 13:28:52 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/audio-quantize.c:
	  audio-quantize: Switch dither PRNG from LCG to xorshift
	  While this is slightly more expensive (~48% slower per random number) it
	  does not cause any measurable difference when running through a complete
	  audio conversion pipeline.
	  On the other hand its random numbers are of much higher quality and on
	  spectrograms for 32 bit to 24 bit conversion the difference is clearly
	  visible.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1729>

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

	* tools/gst-play.c:
	  gst-play: Fix trick-mode handling.
	  The instant-rate value in the TrickMode enum is a
	  flag, but the other values are not. Move instant-rate
	  to the end of the enum and give it a value large enough
	  for it to be used without modifying the trick-mode
	  setting.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1788>

2022-02-24 10:09:50 +0200  Sebastian Dröge <sebastian@centricular.com>

	* tests/check/elements/appsrc.c:
	  appsrc: Store strong references to the expected buffers in the tests
	  Otherwise the buffers might already be freed as they were only owned by
	  the GstSample / appsrc and potentially don't survive until the pad
	  probe, as observed in some CI runs of the tests.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1787>

2022-02-22 15:08:48 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: Correct use of start_time/end_time
	  When 29713c5d changed most uses of `start_time` and `end_time` to
	  `start_running_time` and `end_running_time`, it missed two.
	  Fixes: 29713c5d40a1d7d1f21dada68f55f7a97f0b7025
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1038
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1779>

2022-02-22 10:54:23 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/rtp/gstrtpbasepayload.c:
	  rtpbasepayload: Copy all buffer metadata instead of just GstMetas for the input meta buffer
	  This gives RTP header extensions some more metadata to work from.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1774>

2022-02-21 14:23:27 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/egl/gstglmemoryegl.c:
	* gst-libs/gst/gl/egl/gstglmemoryegl.h:
	* gst-libs/gst/gl/gstglbasememory.c:
	* gst-libs/gst/gl/gstglbasememory.h:
	* gst-libs/gst/gl/gstglbuffer.c:
	* gst-libs/gst/gl/gstglbuffer.h:
	* gst-libs/gst/gl/gstglmemory.c:
	* gst-libs/gst/gl/gstglmemory.h:
	* gst-libs/gst/gl/gstglmemorypbo.c:
	* gst-libs/gst/gl/gstglmemorypbo.h:
	* gst-libs/gst/gl/gstglrenderbuffer.c:
	* gst-libs/gst/gl/gstglrenderbuffer.h:
	  gl: Mark GL memory GType functions as deprecated
	  They can't be used in any useful way. The type of every GstMemory is
	  always GST_TYPE_MEMORY and the subtyping relationship has to be
	  implemented on top of that via the associated allocator and mem_type
	  string.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764>

2022-02-21 15:12:04 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/gstgldisplay.c:
	* gst-libs/gst/gl/gstglshaderstrings.c:
	  gl: Add `#ifndef GST_REMOVE_DEPRECATED` for existing deprecated API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764>

2022-02-21 15:08:44 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/gstgldisplay.c:
	  gl: Add versioned `Deprecated` marker to gst_gl_display_find_window
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764>

2022-02-21 15:05:55 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/gstgldisplay.h:
	* gst-libs/gst/gl/gstglshaderstrings.h:
	  gl: Replace existing G_DEPRECATED_FOR usage with GST_GL_DEPRECATED_FOR
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764>

2022-02-21 15:02:02 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/gl-prelude.h:
	  gl: Add GST_GL_DEPRECATED
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764>

2022-02-20 14:05:05 +0100  Sebastian Groß <s3b.gr0ss@gmail.com>

	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
	  audiovisualizer: shader: Fix dframe out of bound write
	  shader_fade_and_move_horiz_out writes a complete stride at the end of its
	  dframe data
	  This led to SIGSEGV since the stride reached into sframe->map[0]->memory
	  which could not be umpapped later on.
	  This is due to `d` is increased twice. Once at the end of the upper loop
	  and at the start of the lower loop.
	  The corresponding dframe stride is therefore skipped.
	  Rewind `d` and start at the correct position.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1702
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1751>

2022-02-20 15:20:07 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  doc: Add NV12_16L32S into the cache
	  Autogenerated by CI
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>

2022-02-18 15:25:17 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* tests/check/libs/video.c:
	  tests: video: Add a unit test for stride extrapolation
	  This is a minimal unit test the show that the stride extrapolation can work
	  with all pixel format we support. This minimal verify that the extrapolation
	  match the stride we set into GstVideoInfo with 320x240 for all the pixel
	  format we support. The tiles formats are skipped, since their stride is
	  set as two 16bit integers, and we also skip over palette planes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>

2022-01-25 14:04:13 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/video-format.c:
	* gst-libs/gst/video/video-format.h:
	  video: Add an helper to extrapolate strides
	  Many of the legacy APIs, specifically in the Linux Kernel, have a
	  single stride for the pictures. In this context, it is common
	  to extrapolate the other strides based on the selected pixel
	  format. Such function have been copy pasted from video4linux2
	  plugin into wayland, kms and v4l2codecs plugins.
	  This patch implements a generalized from of that function and
	  make it available to everyone through the video library.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>

2021-12-02 21:46:59 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/video-converter.c:
	* gst-libs/gst/video/video-format.c:
	* gst-libs/gst/video/video-format.h:
	* gst-libs/gst/video/video-frame.c:
	* gst-libs/gst/video/video-info.c:
	* gst-libs/gst/video/video-tile.h:
	* tests/check/elements/videoscale.c:
	* tests/check/libs/video.c:
	  video: Add NV12_16L32S aka Mediatek MM21 support
	  Unlike other simple tiled formats, the Mediatek HW use different tile size
	  per-plane. The tile size is scaled according to the subsampling. Effectively,
	  using the name 16L32S to represent linearly layout tiles of size 16x32 bytes
	  in the Y plane, and 16x16 in the UV plane. In order to make this specificity
	  discoverable, a new SUBTILES flags have been added.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>

2022-02-19 01:58:20 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: Use floor() to calculate current position
	  ... instead of round(). Depending on framerate, calculated position
	  may not be clearly represented by using uint64, 30000/1001 for example.
	  Then the result of round() can be sliglhtly larger (1ns) than
	  buffer timestamp. And that will cause unnecessary frame delay.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1747>

2021-10-28 17:09:34 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/audio/gstaudioencoder.c:
	  base: audioencoder: Keep serialize event behind buffers
	  If a serialized event arrives behind a buffer, it should not be send before
	  it. This fixes the pending event handling so that only early pending events,
	  the one that arrrived or was generated while the adapter was empty get send
	  before pushing buffer. All other events are not pushed after.
	  This issue lead the latency tracer to think our audio encoder did not have any
	  latency. This was testing with opusenc in a live pipeline.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1266>

2022-02-06 22:54:42 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/pbutils/missing-plugins.c:
	  gstinfo,ptpclock,libcheck: Use GetCurrentProcessId() instead of getpid() on Windows
	  getpid() shouldn't be used in case of UWP. Use GetCurrentProcessId()
	  instead which provides exactly the same functionality and can be
	  used with UWP as well.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1006>

2021-10-01 20:27:28 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/gl/winrt/gstglwindow_winrt_egl.cpp:
	* meson.build:
	* tests/examples/seek/instant-rate-change.c:
	  meson: Do hard build error for some MSVC warnings
	  Handle various MSVC warnings as errors for development version.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1006>

2022-02-08 23:30:00 +0900  Seungha Yang <seungha@centricular.com>

	* tests/examples/seek/instant-rate-change.c:
	  Remove some trailing white spaces
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1006>

2022-01-07 20:02:46 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	* tests/check/elements/compositor.c:
	  videoaggregator: Fix for unhandled negative rate
	  Nagative rates have been considered only in
	  gst_video_aggregator_advance_on_timeout(). Update other places
	  to fix broken reverse playback.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1500>

2021-08-25 20:18:20 +0900  Seungha Yang <seungha@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	* tests/check/gst/typefindfunctions.c:
	  typefindfunctions: Fix WebVTT format detection
	  If WebVTT file consists of "WebVTT" header without body,
	  the file size can be smaller than 10 bytes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1359>

2022-01-31 13:01:10 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

	* gst-libs/gst/video/navigation.c:
	* gst-libs/gst/video/navigation.h:
	  navigation: add more constructors for navigation events
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1610>

2022-02-07 09:30:58 +0100  David Svensson Fors <davidsf@axis.com>

	* gst-libs/gst/pbutils/codec-utils.c:
	  codec-utils: Avoid out-of-bounds error
	  For artificial input (in unit tests), all six bytes of
	  constraint_indicator_flags in hevc_caps_get_mime_codec() can be
	  zero. Add a guard against an out-of-bounds error that occurred in that
	  case. Change variables to signed int so comparison with -1 works.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1677>

2020-07-17 14:37:14 +1000  Jan Schmidt <jan@centricular.com>

	* gst/videotestsrc/gstvideotestsrc.c:
	* gst/videotestsrc/gstvideotestsrc.h:
	  videotestsrc: Don't re-render every frame when it's not needed.
	  When the pattern being rendered by videotestsrc doesn't have motion,
	  cache a rendered buffer and output it repeatedly with updated
	  metadata.
	  Based on a patch by Edward Hervey <edward@centricular.com>
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/10
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1293>

2021-12-22 18:46:44 +0000  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/video/navigation.h:
	  navigation: Fix Since marker for mouse scroll
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1665>

2022-02-03 01:04:40 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/video/video-color.c:
	  video-color: Fix for missing clipping in PQ EOTF function
	  * Add missing clipping in EOTF
	  * Use pre-calculated values
	  * Update variable names to specification's defined ones
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1629>

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

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

=== release 1.20.0 ===

