=== release 1.24.13 ===

2025-06-11 14:40:38 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2024-10-25 17:00:48 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst-libs/gst/app/gstappsink.c:
	  appsink: fix initial pile-up of caps events
	  appsink was queuing the caps event both in its GstBaseSinkClass.set_caps()
	  and its GstBaseSinkClass.sink_event() implementation, but only signaling
	  new_event from `sink_event`.
	  This caused `new_event` callbacks to start lagging by one.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8261>

2025-06-07 13:32:18 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/gl/gstglutils.c:
	* ext/gl/gstglutils.h:
	* ext/gl/gstopengl.c:
	  gl: simplify private gst_gl_gst_meta_api_type_tags_contain_only()
	  Follow-up to backport commit 7dd465ba.
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9041#note_2923013
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9048>

2025-05-18 11:30:24 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/videoconvertscale/gstvideoconvertscale.c:
	  videoconvertscale: Use new gst_meta_api_type_tags_contain_only() API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9048>

2025-05-17 11:40:51 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/gl/gstglcolorbalance.c:
	* ext/gl/gstglcolorconvertelement.c:
	* ext/gl/gstglcolorscale.c:
	* ext/gl/gstgldownloadelement.c:
	* ext/gl/gstgluploadelement.c:
	* ext/gl/gstglutils.c:
	* ext/gl/gstglutils.h:
	* ext/gl/gstopengl.c:
	  gl: Implement basetransform meta transform function
	  This makes sure we can pass through more metas correctly, e.g.
	  GstVideoOverlayComposition meta.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4422
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9048>

2025-05-08 12:46:40 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Make sure that subrip time string is not too long before zero-padding
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4419
	  Fixes CVE-2025-47806
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9145>

2025-05-08 09:14:15 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Check for valid UTF-8 before cleaning up lines and check for regex replace errors
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4418
	  Fixes CVE-2025-47807
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9145>

2025-05-08 09:04:52 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/tmplayerparse.c:
	  tmplayer: Don't append NULL + 1 to the string buffer when parsing lines without text
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4417
	  Fixes CVE-2025-47808
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9145>

2025-05-27 19:20:35 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/pango/gstbasetextoverlay.c:
	  textoverlay: fix shading for RGBx/RGBA pixel format variants
	  ... for cases where there's padding at the end of each row.
	  Fixes #4414.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9113>

2025-05-01 11:48:30 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/sdp/gstmikey.c:
	  mikey: Avoid infinite loop while parsing MIKEY payload with unhandled payload types
	  Skip over the unhandled payload types for now, and error out if an unknown
	  payload type is found.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3314
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8948>

2025-04-26 13:38:06 +0000  Biswapriyo Nath <nathbappai@gmail.com>

	* gst-libs/gst/audio/gstaudioutilsprivate.c:
	  gstaudioutilsprivate: Fix gcc 15 compiler error with function pointer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8911>

2025-04-15 14:24:12 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideoencoder.c:
	  videoencoder: Use the correct segment and buffer timestamp in the chain function
	  The only thing that can be used in the chain function is the input segment. The
	  output segment might not be available at all yet or out of sync with the current
	  input segment.
	  Also because of that, the unadjusted timestamp has to be used for the
	  calculations as the adjustment is only part of the output segment.
	  This fixes the deadline calculation and the handling of force-keyunit events for
	  encoders using frame reordering (i.e. setting a minimum PTS).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8844>

2025-04-07 15:07:56 +0100  Philippe Normand <philn@igalia.com>

	* ext/ogg/gstoggdemux.c:
	  oggdemux: Don't push new packets if there is a pending seek
	  There was a race condition where the demuxer would seek back to beginning after
	  determining the duration and while that seek was in progress one pad would
	  attempt to push a new buffer downstream, leading to a critical warning in
	  gst_pad_push().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8835>

2025-03-11 09:30:29 +0100  Carlos Rafael Giani <crg7475@mailbox.org>

	* gst-libs/gst/audio/gstaudiobasesink.c:
	  audiobasesink: Fix custom slaving driftsamples calculation
	  driftsamples currently uses the requested skew directly, even if it
	  exceeds cexternal.
	  Use the approach that skew_slaving uses to fix this. As a side benefit,
	  this makes the custom_slaving and skew_slaving code easier to compare.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8810>

2025-03-09 22:00:06 +0100  Carlos Rafael Giani <crg7475@mailbox.org>

	* tests/examples/audio/audiobasesink-custom-clock-slaving.c:
	* tests/examples/audio/meson.build:
	  examples: Add custom audio clock slaving callback example
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8810>

2024-08-20 01:44:57 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/audio/gstaudiocdsrc.c:
	* gst-libs/gst/glib-compat-private.h:
	* gst/audiomixer/gstaudiointerleave.c:
	  gst-plugins-base: use g_sort_array() instead of deprecated g_qsort_with_data()
	  Fixes compiler warnings with the latest GLib versions.
	  See https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4127
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8678>

2025-03-15 12:07:22 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideotimecode.c:
	* tests/check/libs/videotimecode.c:
	  videotimecode: Add missing 119.88fps support to some functions
	  And while at it generalize the drop frame handling to all integer multiples
	  of 30000/1001 fps.
	  Also adjust tests accordingly and add some other missing test.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8723>

2025-03-15 11:00:52 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/gstvideotimecode.c:
	* tests/check/libs/videotimecode.c:
	  videotimecode: Fix conversion of timecode to datetime with drop-frame timecodes
	  gst_video_time_code_to_date_time() simply calculated the date time based on
	  adding the hours/minutes/seconds to the daily jam. This causes a gap every full
	  minute (except for every 10th minute) with drop-frame timecodes as the first 2
	  (29.97fps) or 4 (59.94fps) timecodes are skipped (not frames!), e.g. with
	  29.97fps:
	  timecode: 12:00:59;28  12:00:59;29  12:01:00;02  12:01:00;03
	  time    : 12:00:59.950 12:00:59.983 12:01:00.017 12:01:00.050
	  and not
	  time    : 12:00:59.934 12:00:59.968 12:01:00.067 12:01:00.100
	  |-- gap of 2 frames --|
	  The correct calculation would be to use gst_video_time_code_nsec_since_daily_jam()
	  and add that to the daily jam.
	  Also add a test for this.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8723>

2025-03-14 09:37:16 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Don't avoid `parsebin` even if we have a matching decoder
	  This is too brittle, there is no guarantee that the input stream has been
	  properly parsed.
	  There is another check above (is_input_parsed) that will skip that if the
	  content came from `urisourcebin` and had a parser applied
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4308
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8645>

2025-03-12 10:30:04 +0100  Olivier Blin <olivier.blin@softathome.com>

	* ext/alsa/gstalsadeviceprovider.c:
	  alsadeviceprovider: Fix leak of Alsa longname
	  Detected by ASan.
	  As a drive-by fix, use free() instead of g_free() in gstalsadeviceprovider.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8635>

2025-02-18 15:53:46 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Make parsebin activation more reliable
	  `parsebin` is potentially added by a `typefind` callback.
	  That `typefind` was activated by a `READY_TO_PAUSED` state change on `urisourcebin`
	  We want to ensure that it is the "setup_parsebin_for_slot" method that activates
	  the underlying `parsebin`, and not the external state-change.
	  Otherwise we would risk a potential deadlock where elements activating in
	  `parsebin`, and which would cause the upstream `typefind` to switch scheduling
	  mode, would not be able to acquire the STREAM_LOCK of the `typefind` task.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4225
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8623>

2025-02-28 14:24:09 +0900  Dongyun Seo <dongyun.seo@lge.com>

	* gst/playback/gstplaybin3.c:
	  playbin3: fix unlocking twice
	  fix unlocking playbin3 lock twice.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8575>

2025-02-20 19:57:48 +1100  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/video/convertframe.c:
	  convertframe: Fix video crop meta handling
	  Cropping parameters were being miscalculated - getting
	  the output width/height wrong when an x/y crop offset
	  was given.
	  Cropping was also incorrectly being applied twice (because at
	  some point after the convertframe code was written,
	  `videocrop` also started paying attention to the
	  GstVideoCropMeta, but not in useful ways for this purpose). Add
	  a buffer probe to strip the crop meta from the input buffer
	  so videocrop can do its job correctly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8528>

2024-12-27 13:31:41 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Don't hold play items lock while activating source items
	  Activating them can cause messages that call back into the message handler of
	  uridecodebin3 and take exactly the same lock again.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8509>

2020-09-25 21:06:44 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/gl/gstglupload.c:
	* tests/check/libs/gstglupload.c:
	  glupload: Fix for wrongly recognized reconfigure condition
	  gst_gl_upload_transform_caps() method might return non-fixed
	  caps (texture-target for example) but priv->out_caps is fixed one
	  so the former (non-fixed caps) is superset.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8497>

2025-02-10 16:47:16 +0100  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Don't skip all other methods than the currently selected one when transforming caps
	  This leads to spurious negotiation failures because the configured method can
	  change over time and caps queries (and thus transform_caps) are happening
	  independently from configuring caps. Instead prefer the transformed caps of the
	  current method, but always also return the transformed caps for all other
	  methods. Previously all other methods would've only been used if the current
	  method returned empty caps. If a different method is needed later when
	  configuring the caps, it will be and was selected regardless.
	  Later during caps fixation, prefer the caps of the current method too for the
	  fixated caps if possible in any way.
	  This should preserve the desired behaviour of preferring the current method if
	  possible but to change to a different method if nothing else is possible, while
	  also returning consistent (and not too narrow) caps every time.
	  The way how the current method was checked was also racy as the current method
	  might change at any moment during caps query handling, and apart from
	  inconsistent results also a NULL pointer dereference was possible here. Use the
	  GST_OBJECT_LOCK to protect access to the current method like in other places.
	  This part of the code was introduced in f349cdccf5e1538f3eb9caa31458b53fdd81671b
	  and tried to be fixed multiple times over the years without addressing the root
	  cause of caps queries and caps configuration happening independently from each
	  other, e.g. in !2687 and !2699.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8482>

2025-02-14 12:02:57 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/gl/gstgluploadelement.c:
	  gluploadelement: Fix typo in debug output
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8482>

2025-02-10 14:41:01 +0100  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/video-overlay-composition.c:
	  video-overlay-composition: Fix meta scale transformation for xscale != yscale
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8482>

2025-02-07 11:34:18 +0100  Sebastian Dröge <sebastian@centricular.com>

	* gst/videoconvertscale/gstvideoconvertscale.c:
	  videoconvertscale: Explicitly handle overlaycomposition meta caps feature
	  Otherwise it will be dropped unnecessarily. videoconvertscale can always pass it
	  through, no matter if it does conversion or not.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4161
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8482>

2025-01-08 16:53:39 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/encoding/gstsmartencoder.c:
	  smartencoder: Don't assert if the caps have unknown chroma-site
	  This can happen if the caps have colorimetry but no chroma-site, in which case
	  gst_video_info_from_caps() keeps the chroma-site configured as unknown.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8467>

2019-04-11 11:24:34 +0100  Philippe Normand <philn@igalia.com>

	* ext/ogg/gstoggdemux.c:
	  oggdemux: Fix racy decode error
	  Sometimes the seek to the end of file to determine the duration would trigger a
	  reset of the source pads, that would confuse the decoder downstream and trigger
	  an error. So the proposed fix is to not reset pads when the segment event being
	  processed is the consequence of a seek performed to determine the duration.
	  Fixes #4212
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8411>

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

	* meson.build:
	  Back to development after 1.24.12

=== release 1.24.12 ===

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

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

2025-01-13 16:19:26 +0100  Tomas Granath <tomas.granath@outlook.com>

	* ext/ogg/gstoggdemux.c:
	  oggdemux: Do not change total duration until new duration is found
	  After calculating a correct duration the oggdemux in some cases sets the duration to GST_CLOCK_TIME_NONE.
	  After that any seek will fail due to the oggdemux calculating a target time after the actual duration.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8368>

2025-01-12 12:44:29 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/video-overlay-composition.c:
	  video-overlay-composition: Handle the SCALE meta transformation
	  Simply update the render rectangle according to the scale factor. As only the
	  render rectangle is changed, the seqnum of the rectangle stays intact and no
	  additional GPU uploads are necessary.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8344>

2025-01-12 12:43:54 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/video-overlay-composition.c:
	  video-overlay-composition: Declare the video/size/orientation tags for the meta
	  If any of these change then the meta needs to be updated one way or another.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8344>

2024-02-23 15:20:41 +0100  François Laignel <francois@centricular.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	  sdp: accept empty attribute value represented as a NULL pointer
	  Some empty media attribute values are set to an empty string, others as a NULL
	  pointer. It seems that code is able to deal with both, except for the UTF8
	  validation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8314>

2025-01-03 12:01:37 +0100  Edward Hervey <edward@centricular.com>

	* gst/audiorate/gstaudiorate.c:
	  audiorate: Fix unsigned integer comparision
	  next_offset uses a magic "-1" value for unset values. Use that value and not
	  checking whether it's positive (it always is, it's unsigned)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8293>

2025-01-03 11:59:43 +0100  Edward Hervey <edward@centricular.com>

	* gst/videorate/gstvideorate.c:
	  videorate: Avoid overflow in calculations
	  base_ts and next_end_ts are both guint64. Use explicit check to avoid "negative"
	  timestamps (which would overflow, not be negative).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8293>

2025-01-03 11:59:05 +0100  Edward Hervey <edward@centricular.com>

	* tests/check/libs/rtspconnection.c:
	  test: Fix unsigned integer usage
	  num_queued is unsigned, it'll never be below 0.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8293>

2025-01-03 11:57:57 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Add missing break in switch
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8293>

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

	* meson.build:
	  Back to development after 1.24.11

=== release 1.24.11 ===

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

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

2024-12-27 14:27:54 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Free main input even if it is not part of the list of inputs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8232>

2024-12-23 09:49:51 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: Gracefully handle missing data without prior input segment
	  Exit early in case the decoder has been resetted and hasn't received a new
	  segment event yet.
	  This was detected with netsim dropping buffers in a WebRTC pipeline.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8206>

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

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Avoid deadlock on shutdown
	  The reason why the STATE lock was taken was to avoid issues where we would be
	  adding (and activating) elements at the same time as urisourcebin would be
	  brought down to READY. That would cause those new elements to potentially return
	  ERRORS because of not-negotiated/flushing-pads
	  But that creates a really bad deadlock (state lock is taken to deactivate the
	  streaming thread which .. is currently grabbing the state lock).
	  Instead, we can just ignore the warning/error messages that might occur when
	  shutting down.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4075
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8187>

2024-12-13 15:51:20 +0300  Max Romanov <max.romanov@gmail.com>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: Decrease log level for item drop
	  Leaky appsrc feature was implemented similar to queue. Dropping item
	  is a normal case because it is configured so. Warning messages
	  is too severe for this event.
	  Level changed to DEBUG just like in queue.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8151>

2024-12-13 10:07:58 +0800  Dean Zhang (张安迪) <dean.zhang@mediatek.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: set decode only flag by decode only buffer
	  This is used for optimize frame drop issue. Some video streams such as av1
	  contains decode-only frames. These frames are handled by decoder but not show
	  by display, which will cause input frame count unmatch the output frame count.
	  After collecting more decoder only frame, it will cause error report "so many
	  frame droped". So attach the flag GST_BUFFER_FLAG_DECODE_ONLY with the input
	  buffer, the v4l2videodecoder can further handle the decode-only buffer in
	  output list.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8148>

2024-12-12 10:43:26 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst-libs/gst/gl/gbm/gstgldisplay_gbm.c:
	  gl: raise WARNING instead of ERROR when no connector is connected
	  This is a valid and working use case when rendering on a headless
	  server.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8139>

2024-12-12 05:51:09 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Only rewrite stream-start event once
	  If the custom field is already present, we don't want to rewrite the event
	  again. Otherwise it would cause downstream into believing that a *new*
	  stream-start event has arrived ... which isn't the case.
	  Fixes #4097
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8144>

2024-11-28 11:57:57 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Don't use decodebin3 static sink pad
	  Makes the code leaner, and fixes the issue which would happen when the
	  urisourcebin stream that was linked to the sink pad goes away (without any
	  replacement).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8119>

2024-11-28 11:55:36 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Make usage of static sink pad optional
	  There is no reason why we should mandate people to "at least" use the static
	  sink pad. This caused issues, like mandating that it should always have valid
	  content linked to it (problematic in case of upstream stream changes).
	  Instead we only use it if it's actually linked to, in which case it gets added
	  to the list of inputs.
	  This actually simplifies the code too.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8119>

2024-11-25 10:50:34 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Fix issue re-using outputs
	  When checking whether a no-longer used output could be re-used for another slot,
	  we only want to do that for streams which are not still used.
	  Otherwise we end up potentially re-assigning a demuxer stream to a completely
	  different one
	  Furthermore, if we *are* re-using an output slot, indicate what the replacement
	  GstStream will be so slot matching can work properly (which can happen in the
	  case of demuxers which add/remove all pads even if only a single one changed)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8119>

2024-12-04 18:45:30 +0800  Cheung Yik Pang <pang.cheung@harmonicinc.com>

	* gst-libs/gst/video/video-format.c:
	  video: fix AV12 format lacking the GST_VIDEO_FORMAT_FLAG_ALPHA flag
	  The GST_VIDEO_FORMAT_FLAG_ALPHA indicates whether a video format has an
	  alpha channel.  AV12 does have an alpha plane.  Switching from
	  MAKE_YUV_FORMAT to MAKE_YUVA_FORMAT to generate GST_VIDEO_FORMAT_AV12.
	  Fixes #4081
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8084>

2024-12-05 09:21:04 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Fix collection leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8081>

2024-11-20 14:16:23 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst-libs/gst/video/video-sei.c:
	  h264parse: parse unregistered SEI without user data
	  We get loads of warnings when parsing videos from users:
	  gsth264parser.c:1115:gst_h264_parser_parse_user_data_unregistered: No more remaining payload data to store
	  gsth264parse.c:646:gst_h264_parse_process_sei:<h264parse0> failed to parse one or more SEI message
	  Those are raised because of unregistered SEI without user data.
	  The spec does not explicitly state that unregistered SEI needs to have
	  data and I suppose the UUID by itself can carry valuable information.
	  FFmpeg also parses and exposes such SEI so there is no reason for us no
	  too as well.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8071>

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

	* meson.build:
	  Back to development after 1.24.10

=== release 1.24.10 ===

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

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

2024-10-02 16:52:51 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* ext/ogg/gstoggstream.c:
	  oggstream: review and fix per-format min_packet_size
	  This addresses all manually detected invalid reads in setup functions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8050>

2024-10-02 15:16:30 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* ext/ogg/vorbis_parse.c:
	  vorbis_parse: check writes to GstOggStream.vorbis_mode_sizes
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-117 Fixes gstreamer#3875
	  Also perform out-of-bounds check for accesses to op->packet
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8050>

2024-09-30 18:19:30 +0300  Sebastian Dröge <sebastian@centricular.com>

	* tools/gst-discoverer.c:
	  discoverer: Don't print channel layout for more than 64 channels
	  64+ channels are always unpositioned / unknown layout.
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-248
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3864
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8046>

2024-10-09 11:23:47 -0400  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstsubparse.c:
	  subparse: Check for NULL return of strchr() when parsing LRC subtitles
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-263
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3892
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8051>

2024-10-01 13:22:50 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/opus/gstopusdec.c:
	  opusdec: Set at most 64 channels to NONE position
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-116
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3871
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8049>

2024-09-30 18:36:19 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstssaparse.c:
	* meson.build:
	  ssaparse: Don't use strstr() on strings that are potentially not NULL-terminated
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8048>

2024-09-30 21:40:44 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/subparse/gstssaparse.c:
	  ssaparse: Search for closing brace after opening brace
	  Otherwise removing anything between the braces leads to out of bound writes if
	  there is a closing brace before the first opening brace.
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-228
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3870
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8048>

2024-09-30 21:35:07 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/vorbis/gstvorbisdec.c:
	  vorbisdec: Set at most 64 channels to NONE position
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-115
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3869
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8047>

2024-09-26 13:43:06 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/tag/id3v2.c:
	  id3v2: Don't try parsing extended header if not enough data is available
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-235
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3842
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8045>

2024-11-29 17:33:29 +0000  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/rtp/gstrtcpbuffer.c:
	* tests/check/libs/rtp.c:
	  rtp: Fix precision loss in gst_rtcp_ntp_to_unix()
	  Without this patch the UNIX timestamp resulting from the translation from NTP
	  would be off by one nano-second.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8022>

2024-11-25 12:27:03 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/playback/gststreamsynchronizer.c:
	  streamsynchronizer: Only send GAP events out of source pads
	  If streamsynchronizer is waiting on the stream's sinkpad and srcpad at the same
	  time, it can happen that the GAP event is otherwise sent out of the sinkpad,
	  which is in the wrong direction.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7997>

2024-11-26 15:20:45 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/gstdiscoverer-types.c:
	  discoverer: Also copy missing element details when copying a GstDiscovererInfo
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7986>

2024-11-26 15:41:24 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/gstdiscoverer-types.c:
	* gst-libs/gst/pbutils/gstdiscoverer.c:
	  discoverer: Make sure the missing elements details array is NULL-terminated in a thread-safe way
	  And also avoid a possible out-of-bounds read if the array contains no elements.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7986>

2024-10-28 12:38:39 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/pbutils/gstdiscoverer.c:
	  discoverer: Fix typos
	  discovererd / discoverered -> discovered
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7986>

2024-11-26 06:40:34 +0100  Tomáš Polomský <1155369-polomsky@users.noreply.gitlab.freedesktop.org>

	* gst-libs/gst/app/gstappsink.c:
	  appsink: fix timeout logic for gst_app_sink_try_pull_sample
	  In case of gst_app_sink_try_pull_object returns an object instead of a sample,
	  the whole process must be restarted with the reduced timeout, otherwise requested
	  timeout could be easily exceeded.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7980>

2024-11-22 11:50:05 +0100  Edward Hervey <bilboed@bilboed.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Unify collection switching checks
	  We only want to switch to a selection of an output collection if all streams are
	  present.
	  This was previously only done in one place (when triggering by new incoming
	  streams) but not when triggered by user/application.
	  Avoid this by moving the check to handle_stream_switch()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7956>

2024-11-20 13:32:20 +0100  Andoni Morales Alastruey <ylatuya@gmail.com>

	* gst-libs/gst/pbutils/gstdiscoverer.c:
	* tests/check/libs/discoverer.c:
	  discoverer: fix segfault in race condition adding a new uri's
	  There is a race condition adding new uri's right after receiving
	  the `discovered` event. We must wait until we have cleaned-up
	  the last discovery to start processing the new one
	  Fix #3758
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7934>

2024-11-20 04:23:32 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/gl/meson.build:
	  meson: Don't use libdrm_dep in cc.has_header()
	  It can't handle subproject dependencies. Pointed out in
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4033#note_2665974
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7932>

2024-10-10 15:51:36 -0400  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/sdp/gstmikey.c:
	* gst-libs/gst/sdp/gstsdpmessage.c:
	  sdp: Add debug categories for message and mikey modules
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7926>

2024-11-16 18:24:23 +0000  Philippe Normand <philn@igalia.com>

	* gst/playback/gstplaybackutils.c:
	  playbackutils: Fix caps leak in get_n_common_capsfeatures()
	  The gst_static_caps_get() return value is transfer-full.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7909>

2024-11-14 15:15:43 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Upgrade uploader selection message to INFO
	  This allow using INFO log to quickly see what uploader we
	  picked. This is very useful as the DEBUG category has became
	  very noisy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7907>

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

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: dmabuf: Fix emulated tiled import
	  The added check for LINEAR modifier broke dmabuf import for
	  NV12 emulation (R8/RG88) of all sort (linear and tiled).
	  Fixes !5461
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7907>

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

	* gst-libs/gst/audio/gstaudiostreamalign.c:
	  audiostreamalign: Don't report disconts for every buffer if alignment-threshold is too small
	  If it is too small, the maximum allowed diff becomes 0 samples which would then
	  trigger if there is no discontinuity at all.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7906>

2024-11-04 09:21:44 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Also use event probe for HLS use-cases
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3957
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7857>

2024-11-06 18:51:21 +1100  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/video/convertframe.c:
	  video-converter: Set TIME segment format on appsrc
	  Combine the appsrc and appsink settings into one place and ensure that
	  the appsrc will output a TIME segment, to avoid incorrect segment format
	  criticals in some situations.
	  The D3D11 path was already setting the segment format correctly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7842>

2024-11-05 00:01:56 +0100  Andoni Morales Alastruey <ylatuya@gmail.com>

	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
	  cocoa: fix rendering artefacts in retina displays
	  Set the correct contentsScale in the CALayer instead of using
	  the default (1.0) which causes rendering artefacts in retina
	  displays due to using a smaller bitamp than the display size.
	  See: https://developer.apple.com/documentation/quartzcore/calayer/1410746-contentsscale?language=objc
	  Fix: #3942
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7834>

2024-11-03 17:36:38 +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/7820>

2024-10-25 10:38:36 +0200  Albert Sjolund <alberts@axis.com>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: Fix use-after-free when making buffer / buffer-lists writable
	  make_writable can cause a reallocation of the buffer, meaning that obj
	  would point to an invalid object, both for buffer and for bufferlist.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7806>

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

	* meson.build:
	  Back to development after 1.24.9

=== release 1.24.9 ===

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

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

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

	* gst/playback/gstdecodebin3.c:
	* gst/playback/gstplaybackutils.c:
	* gst/playback/gstplaybackutils.h:
	* gst/playback/gsturisourcebin.c:
	  playback: Improve stream list search
	  There is the possibility than an element/code/helper creates an identical
	  `GstStream` (same type and stream-id) instance instead of re-using a previous
	  one.
	  For those cases, when detecting whether a `GstStream` is already present in a
	  collection, we need to do more checks than just comparing the pointer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7764>

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

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Aggregate collections from multiple parsebin
	  In the case where multiple parsebin are present (ex: from rtsp sources), we want
	  to aggregate the collections provided by the different parsebin and expose a
	  single "unified" collection.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7764>

2024-10-23 14:25:52 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Store caps on parsepad as early as possible
	  When analyzing a new pad, we can store the updated caps on the GstStream if they
	  are fixed.
	  If they are not fixed, this function will be called again once the element will
	  provide them.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7764>

2024-10-23 14:24:36 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Don't store bogus caps on GstStream
	  If we can't get the current caps when receiving a stream-start, that's fine,
	  they can/will be provided by other means at a later time.
	  What we definitely should not do is provide the starting caps of the chain,
	  which are potentially completely different from the end ones (like for example
	  `application/x-rtp`)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7764>

2024-10-23 14:24:18 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Minor debug statement updates
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7764>

2024-08-19 10:33:23 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst-libs/gst/gl/meson.build:
	  gl: Fix configure error when libdrm is a subproject
	  When libdrm is a subproject it cannot be used in a configure time check:
	  ERROR: Dependencies must be external dependencies
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7761>

2024-05-28 04:23:01 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/gl/meson.build:
	* gst-libs/gst/gl/egl/gsteglimage.c:
	* gst-libs/gst/gl/gstglupload.c:
	* gst-libs/gst/gl/meson.build:
	  gl: Fix libdrm dependency detection and usage
	  drm_fourcc.h should be picked up via the pkgconfig dep, not the system
	  includedir directly. All this allows it to be picked up consistently
	  (via the subproject, for example).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7760>

2024-10-15 15:58:53 +0100  Philippe Normand <philn@igalia.com>

	* gst/encoding/gstencodebasebin.c:
	  encodebasebin: Fix parser selection
	  If an encoder supports multiple codecs (a bin wrapping/auto-plugging encoders)
	  then its src pad template caps might list the supported codecs. Without this
	  patch the selected parser would be the one corresponding to the first codec,
	  leading to caps negotiation error later on. The proposed fix is to check the
	  media type on the parser candidates sink pad templates according to the
	  requested encoded format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7756>

2024-10-15 15:57:06 +0100  Philippe Normand <philn@igalia.com>

	* gst/encoding/gstencodebasebin.c:
	  encodebasebin: Fix parser cleanup
	  When removing the parser from the stream group, it might not be linked to a
	  combiner so this needs to be checked.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7756>

2024-10-22 13:23:05 +0100  James Cowgill <james.cowgill@blaize.com>

	* gst-libs/gst/tag/gstexiftag.c:
	  exiftag: Check the result of gst_date_time_new_local_time
	  Fixes a critical warning when parsing a JPEG containing a malformed
	  `DateTime` tag (like `0000:00:00 00:00:00`).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7713>

2024-10-18 14:41:44 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	  glcontext: egl: Unrestrict the support base DRM formats
	  There is no requirement for a base DRM format to be supported by libgstvideo
	  in order to be uploaded to. Don't limite to DRM fourcc that have a libgstvideo
	  format mapping. This notably enabled AFBC support, which uses an opaque based
	  format that does not have a linear definition. This also adds R8/RG88 and
	  simimlar other formats that are not yet mapped in libgstvideo.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7699>

2024-10-16 17:20:46 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Don't remove probe if not present
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7682>

2024-10-03 17:16:25 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Set pad probe before linking pad
	  We want to grab all events that pass through, so we need to set the
	  probe **before** the pad is linked
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7682>

2024-10-03 17:16:08 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Streamline event forwarding code
	  Instead of two different functions for copying events and rewriting the
	  stream-start event, just have a single one.
	  This is needed, since we want to do both of those in one go, with the pad lock
	  taken.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7682>

2024-10-03 17:09:13 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Set stream collection on pad before exposing it
	  We want to ensure the stream-collection is present on the pad (as a sticky
	  event) before we expose the pad.
	  This is more reliable since it will ensure it is present before any other event
	  is pushed through.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7682>

2024-10-03 17:07:59 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Use lock when checking input/output items
	  Otherwise there is the risk that the play items list could have changed in
	  between
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7682>

2024-10-03 17:05:15 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Free pending events on input pads when unlinking
	  Otherwise we could end up with *old* events leaking through on the next linking.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7682>

2024-08-14 16:09:06 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/audioconvert/gstaudioconvert.c:
	  audioconvert: fix setting of mix matrix at run time
	  There were two main issues:
	  The mix matrix was not protected with the object lock
	  The code was mistakenly assuming that after updating the mix matrix
	  a reconfigure event sent upstream would be enough to cause upstream to
	  send caps again, and the converter was only reconstructed in ->set_caps.
	  That was not actually enough, as if the new matrix didn't affect the
	  number of input / output channels there was no reason for upstream to do
	  anything after getting the unchanged caps.
	  The fix for this was to have ->transform also recreate the converter
	  when needed, with the added subtlety that depending on the mix matrix
	  the element could be set to passthrough. This means that when setting
	  the mix matrix the converter also had to be recreated immediately to
	  check if the element had to be switched back to non-passthrough.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7399>

2024-07-19 20:14:29 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/gl/meson.build:
	  Revert "meson: Fix invalid include flag in uninstalled gl pc file"
	  This reverts commit 9d719b9937e2ef476cf18f800f54ccac1feea8ee.
	  The old pkg-config implementation errors out if a variable specified
	  in the pkgconfig file is not defined, so this actually broke
	  uninstalled pc files.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7606>

2024-09-27 15:09:38 +0200  Théo Maillart <tmaillart@freebox.fr>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: do not attempt to remove a null stream
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7605>

2024-09-26 11:29:08 +0200  Théo Maillart <tmaillart@freebox.fr>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: protect internal reset with SELECTION_LOCK
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7605>

2024-09-25 15:32:20 +0200  Théo Maillart <tmaillart@freebox.fr>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: remove output event probe on remove input stream
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7605>

2024-10-02 11:29:38 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Ensure all stream-start are handled
	  In order to ensure all initial events (stream-start, caps, ..) are present on
	  pads that we expose, those various sticky events are propagated (from parsebin
	  to multiqueue output, from multiqueue output to exposed pads).
	  The problem was that the "hack" in `urisourcebin` to inform downstream elements
	  that the stream is parsed data and a collection will be present was only done in
	  one place : a probe on the output of parsebin ... but the stream-start could
	  potentially have already been propagated to the output pads before that.
	  In order to fix that, we make sure any pending sticky stream-start event is
	  updated before being propagated.
	  Fixes #3788
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7604>

2024-10-02 10:34:57 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Allow more cases for posting stream-collection
	  Previously urisourcebin only allows stream-collections messages from adaptive
	  demuxers or sources to be posted.
	  This commit also allows the case where they come from a single parsebin. We
	  still want to prevent it in the case where they are multiple parsebins, since
	  that would require some form of aggregation to show a single/unified collection.
	  In order to avoid a regression with uridecodebin3 behavior, we also implement
	  support for GST_QUERY_SELECTABLE, so that uridecodebin3 can figure out whether
	  it should let GST_MESSAGE_STREAM_COLLECTION flow upwards (because app/user could
	  react on it) or whether it drops it in order for decodebin3 to do the collection
	  aggregation and posting.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7603>

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

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Make update/posting of collection messages atomic
	  The presence (or not) of a collection on an input will determine whether events
	  will be throttled so that there are only forwarded when that input gets a valid
	  collection.
	  Therefore the input lock should be used.
	  In addition to that, we want to ensure that the application/user has a chance to
	  reliably (i.e. synchronously) specify what streams it is interested in by
	  sending a GST_EVENT_SELECT_STREAMS.
	  But we cannot allow anything to go forward until that message posting has come
	  back, otherwise we run in various races.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3872
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7602>

2024-09-27 19:45:06 +0900  Elliot Chen <elliot.chen@nxp.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: check and send selected stream message even if no decoder is selected
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7601>

2024-09-27 09:23:26 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/allocators/gstdrmdumb.c:
	  allocators: drmdump: Add NV15 supports
	  This is a packed version of P010, names NV14_10LE40 in GStreamer. This
	  format is used on all Rockchip SoC variants.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7596>

2024-09-27 09:20:37 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/allocators/gstdrmdumb.c:
	  allocators: drmdumb: Fix bpp value for P010
	  P010 uses 16 bits per pixel, with least significant being padding. This
	  code worked with Intel display driver since they roundup that value, but
	  does not work with the generic DRM helpers which also support NV15,
	  which does not have any padding.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7596>

2024-05-29 19:12:21 +0200  Jakub Adam <jakub.adam@collabora.com>

	* ext/gl/gstgldownloadelement.c:
	  gldownload: use gst_gl_sync_meta_wait_cpu()
	  Simple gst_gl_sync_meta_wait() is not sufficient to ensure GL commands
	  are executed before dma-buf devices get to see the buffer.
	  This is the first step that should make the code behave correctly for
	  everybody, although there may be performance penalty. In the future we
	  should introduce a more general sync meta that would allow to move the
	  waiting from gldownload (the producer) to the sink elements (the
	  consumers).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7595>

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

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

=== release 1.24.8 ===

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

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

2024-04-17 09:46:35 +0200  Edward Hervey <edward@centricular.com>

	* gst/encoding/gstencodebasebin.c:
	  encodebin: Fix pad removal for encodebin vs encodebin2
	  Clarify the fact that `encodebasebin->src_pad` is set when using a static source
	  pad (`encodebin`) and when not set it's dynamically added source
	  pads (`encodebin2`).
	  Fixes usage of encodebin2 when profiles are updated
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7523>

2024-09-05 22:07:24 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
	* gst-libs/gst/video/gstvideoaggregator.c:
	* gst-libs/gst/video/gstvideodecoder.c:
	* gst-libs/gst/video/gstvideoencoder.c:
	  video: Don't overshoot QoS earliest time by a factor of 2
	  By setting the earliest time to timestamp + 2 * diff there would be a difference
	  of 1 * diff between the current clock time and the earliest time the element
	  would let through in the future. If e.g. a frame is arriving 30s late at the
	  sink, then not just all frames up to that point would be dropped but also 30s of
	  frames after the current clock time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7518>

2024-09-10 21:25:42 +0200  Carlos Bentzen <cadubentzen@igalia.com>

	* tools/meson.build:
	  meson: gst-play: link to libm
	  gst-play.c depends on libm due to using `round`.
	  Passing by, correct identation of `gst_tools` definition.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7501>

2024-08-13 12:07:12 +0900  Chao Guo <chao.guo@nxp.com>

	* ext/gl/gstglimagesink.c:
	* ext/gl/gstglimagesink.h:
	  glimagesink: resize viewport when video size changed in caps
	  When re-negotiation happends and caps is changed, resize the
	  viewport to the corresponding video size in changed caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7450>

2024-08-21 16:29:03 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Fix collection identity check
	  Collections can be auto-generated from upstream and yet have exactly the same
	  streams in it.
	  Therefore do a more in-depth check for equality.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3742
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7402>

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

	* meson.build:
	  Back to development after 1.24.7

=== release 1.24.7 ===

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

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

2024-08-19 09:37:51 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Actually drop EOS on old-school pad switch
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7376>

2024-08-16 14:25:53 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturisourcebin.c:
	  urisourcebin: Don't hold lock when emitting about-to-finish
	  This could trigger actions that re-enter this element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7373>

2024-08-14 10:51:13 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/pbutils/descriptions.c:
	* tests/check/libs/pbutils.c:
	  pbutils: descriptions: use subsampling factor to get YUV subsampling
	  The algorithm used to determine the YUV subsampling string uses width and height
	  subsampling factor, not the raw subsampling. Otherwise all 4:2:0 YUV frames will
	  be detected as 4:4:4
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7359>

2024-07-08 11:29:08 +0300  Max Romanov <max.romanov@gmail.com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	  rtspconnection: Handle invalid argument properly
	  In case when conn->input_stream is NULL and glib was built with
	  "glib_checks" enabled, g_pollable_input_stream_read_nonblocking()
	  returns -1, but does not set the "err".
	  The call stack:
	  read_bytes() ->
	  fill_bytes() ->
	  fill_raw_bytes()
	  The return value -1 passed up to read_bytes() and incorrectly
	  processed there after "error:" label.
	  This changes the return value to EINVAL.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7309>

2024-07-31 12:35:20 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/xvimage/xvimagepool.c:
	  xv: imagepool: Improve error logging
	  The shm creation function can return a GError, use this to improve the error
	  reporting.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7292>

2024-07-30 16:18:56 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/xvimage/xvimagepool.c:
	  xvimagesink: Fix crash in pool on error
	  The set_config() virtual function is not support to free the config. As a side
	  effect, when there is protocol error of some sort, we endup with a crash.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7292>

2024-07-26 16:10:59 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglframebuffer.c:
	  glframebuffer: Improve error tracing
	  glCheckFrameStatus() can fail by returning 0, and otherwise return a
	  status. Fix the trace to make it clear when we get an unkown status
	  compare to having an error, in which case we also trace the error code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7295>

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

	* meson.build:
	  Back to development after 1.24.6

=== release 1.24.6 ===

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

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

2024-07-29 10:03:58 +0100  Philippe Normand <philn@igalia.com>

	* gst/playback/gstparsebin.c:
	  parsebin: accept-caps handling for elements with unusual pad names
	  In case the last element of the parse chain doesn´t have a sink pad named
	  "sink", send the accept-caps query to the first sink pad of the element.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7257>

2024-07-25 10:34:45 +0800  Shengqi Yu <shengqi.yu@mediatek.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/videoconvertscale/gstvideoscale.c:
	  videoscale: correct classification error
	  videoscale does not have convert function, so remove the convert
	  description in it's classification. Otherwise, if we want use
	  autovideoconvert to convert colorsapce, autovideoconvert will select
	  videoscale to do convert and this will cause to fail.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7235>

2024-07-19 21:34:31 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/gl/gstglmixerbin.c:
	  glvideomixer: Fix critical when setting start-time-selection
	  It caused a critical, but did not affect functionality because the
	  GValue was passed as-is to the glvideomixerelement which actually does
	  something with the property.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7207>

2024-05-28 18:26:56 +0200  Jakub Adam <jakub.adam@collabora.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  gstvideoaggregator: preserve features in non-alpha caps
	  Fixes caps negotiation when sink template caps of an element inheriting
	  GstVideoAggregator have features different from the implicit
	  "memory:SystemMemory".
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7198>

2024-05-01 18:05:35 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	* gst/typefind/gsttypefindfunctionsplugin.c:
	* gst/typefind/gsttypefindfunctionsplugin.h:
	* gst/typefind/gsttypefindfunctionsriff.c:
	* gst/typefind/gsttypefindfunctionsstartwith.c:
	  typefind: Add typefinders for formats that were previously available via ffmpeg
	  Co-Authored-By: Matthew Waters <matthew@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7148>

2024-07-03 18:26:00 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/gl/meson.build:
	  meson: Fix invalid include flag in uninstalled gl pc file
	  ${libdir}/gstreamer-1.0/include is only valid after installation, but
	  extra_cflags are added unconditionally, so we can't use that for
	  include flags.
	  Instead, let's add the include flag via variables, which are different
	  for installed and uninstalled pc files.
	  This is particularly bad for consuming GStreamer via CMake which barfs
	  on non-existent include paths.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7143>

2024-07-02 15:50:28 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/subparse/gstsubparseelement.c:
	  subparse: remove regex optimized flag explicitly
	  That way the other flags in jit_flags are not touched and
	  flags changes in future only need to be done in one place.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7129>

2024-07-02 15:49:03 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	* tests/check/meson.build:
	  gst-plugins-base: put valgrind header availability define into config.h for subparse
	  Make the valgrind header avaibility accessible to any code in
	  gst-plugins-base, currently it was only signalled to unit tests.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7129>

2024-07-02 09:44:25 +0200  Edward Hervey <edward@centricular.com>

	* gst/subparse/gstsubparseelement.c:
	  subparse: Don't use jitted regex when used with valgrind
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7124>

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

	* gst-libs/gst/pbutils/encoding-target.c:
	  encoding-target: Chain up to parent class
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7123>

2024-06-28 17:09:58 +0200  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/pbutils/encoding-profile.c:
	  encoding-profile: Chain up to parent class finalize
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7123>

2024-06-20 11:37:33 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Fix keyframe drop probe handling
	  We were storing the probe id in a different structure (DecodebinOutputStream)
	  than the pad it is targetting (which is in MultiQueueSlot).
	  The problem is that when re-targetting outputs (to a different slot)... we would
	  end up having an invalid probe id, or not have a reference to an existing one.
	  Instead, store the probe id in the same structure as the pad it's targetting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7074>

2024-06-20 11:35:08 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Fix detection of selection done
	  We should not assert if there are still some old streams that are waiting to be
	  deactivated.
	  Instead wait for them to be gone before posting the selection done message
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7074>

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

	* meson.build:
	  Back to development after 1.24.5

=== release 1.24.5 ===

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

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

2024-06-18 16:27:39 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/video-info.c:
	  video-info: Don't crash in gst_video_info_is_equal() if one videoinfo is zero-initialized
	  Instead handle it like gst_audio_info_is_equal() and consider both different.
	  And also add a shortcut for the pointers to both infos being equal.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7059>

2024-06-11 16:42:34 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Don't hold PLAY_ITEMS lock when activating them
	  Once the item is configured it can be activated without holding that lock
	  Fixes #3610
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7020>

2024-06-10 14:56:00 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Always ensure we end up with parsebin or identity
	  This fixes a regression introduced by 6c4f52ea20ce27730501348c6e575b8d35580239
	  There are cases where the input stream will be push-based, time-segment and not
	  have a collection nor caps. This means the event-based checks are not sufficient
	  to decide when/where to plug in a identity or parsebin to process the input.
	  For those corner cases we setup a buffer probe to ensure we always end up with
	  at least a parsebin
	  Fixes #3609
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7018>

2024-05-29 10:31:19 +0200  Edward Hervey <bilboed@bilboed.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Avoid usage of parsebin even more
	  When dealing with push-based inputs, we are now delaying the creation of
	  parsebin/identity until we get all pre-buffer events.
	  We therefore can simplify the handling of new pads being linked and only have to
	  check if upstream can handle pull-based or not.
	  Avoids creating parsebin for parsed upstream data altogether
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6995>

2024-04-29 11:26:48 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Ensure we get a collection for parsed inputs
	  When we are dealing with parsed inputs (i.e. using identity), we need to ensure
	  that we have a valid stream collection (and therefore DBCollection) before
	  anything flows dowsntream.
	  In those cases, we hold onto those events until we get such a collection.
	  Fixes #3356
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

2024-04-08 09:56:21 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: New mechanism for handling collection and selections
	  This commit separates collection and selections into a new separate structure:
	  DecodebinCollection.
	  This provides a much cleaner/saner way of dealing with collections being
	  updated, gapless playback, etc...
	  There is now a list of DecodebinCollection in flight, of which two are special:
	  * input_collection, the currently inputted/merged collection
	  * output_collection, the currently active collection on the output of multiqueue
	  Handling GST_EVENT_SELECT_STREAMS is split, by looking for the collection to
	  which it applies. And the requested streams are stored in it. IIF that
	  collection is output_collection we can do the switch, else it will be updated
	  when it becomes active.
	  Detecting which collection/selection is active is done by looking at the
	  GST_EVENT_STREAM_START on the output of the multiqueue.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

2024-04-08 09:34:22 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: minor refactoring to identify selected stream
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

2024-04-08 09:28:46 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Debug line cleanups
	  Use identifiable items in log lines instead of random pointers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

2024-03-26 08:34:42 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin: Remove unused includes
	  * config.h is not used, plugin/element is registered in another file
	  * play-enum.h is not used
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

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

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Remove un-needed variable
	  We don't do anything with the unknown streams. Detecting that a list of
	  requested streams don't apply to a given collection should be handled
	  before-hand
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

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

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Remove un-needed variable
	  pending_select_streams was only set just before releasing/taking the selection
	  lock in a single place. That temporary lock release is not needed and therefore
	  the variable isn't needed either
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

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

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Remove active_selection list
	  It's a duplicate of the list of slots which have an output. Use that instead.
	  Also when we fail to (re)configure an output, remove it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

2024-03-25 08:50:21 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Cache slot stream_id and rename more variables
	  * Move the handling of GST_EVENT_STREAM_START on a slot to a separate function
	  * There was a lot of usage of `gst_stream_get_stream_id()` for the slot
	  active_stream. Cache that instead of constantly querying it.
	  * Rename the variables in `handle_stream_switch()` to be clearer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

2024-03-24 12:51:43 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Refactor slot/output (re)configuration
	  * Re-use existing function where possible
	  * Only set/reset keyframe probe at unique places
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

2024-03-24 12:05:29 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Refactor linking input to slot
	  The same sequence of calls was done when doing that
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

2024-03-24 11:50:17 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: input_unblock_streams: Clarify variable
	  It's a list of pads, not slots
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

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

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Rename multiqueue related functions
	  To make clear on what they apply
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

2024-03-22 11:55:40 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Refactor/rename slot/output
	  * Centralize associating an output to a slot in one function, including properly
	  resetting those fields
	  * Rename functions to be more explicit
	  * Move code to "reset" an output stream into a dedicated function (will be used
	  later)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

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

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Refactor removal of slot/output from streaming thread
	  The code was identical in several places
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

2024-03-21 11:04:55 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: rename/clarify eos and draining usage around multiqueue
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

2024-03-21 08:52:41 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Document/refactor DecodebinInput handling
	  * Rename the function names to be clearer, with prefixes
	  * Pass the input (or stream) directly where appropriate
	  * Document usage, inputs, ownership
	  * Rename variables for clarity where applicable
	  * Avoid double lock/unlock if callee can handle it directly
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

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

	* gst/playback/gstdecodebin3-parse.c:
	* gst/playback/gstdecodebin3.c:
	  decodebin3: Move gstdecodebin3-parse.c into gstdecodebin3.c
	  Makes it easier to work with LSP
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

2024-03-19 11:27:23 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Refactor incoming collection handling
	  Simplify its usage by having it directly create the message if the collection
	  changed. This is what caller were always doing and avoids releasing selection
	  locks yet-another-time
	  Also use it in more places to avoid code repetition
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

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

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Rename variable for clarity
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

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

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Refactor GST_EVENT_SELECT_STREAMS handling
	  * The same code is used for the event, regardless of whether it's coming from
	  via a pad or directly on the element
	  * The pending_select_streams list content was never used, switch it to a boolean
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

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

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Don't forward select streams if we are handling it
	  Since the introduction of the "SELECTABLE" query, the usage of selection was
	  clarified. We don't need to forward the GST_EVENT_SELECT_STREAMS at this point.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7002>

2024-05-24 17:32:21 +0200  Jakub Adam <jakub.adam@collabora.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  glcolorconvert: update existing sync meta if outbuf has one
	  Instead of always adding a new one, which means the buffer could end up
	  with multiple sync meta instances.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6962>

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

	* meson.build:
	  Back to development after 1.24.4

=== release 1.24.4 ===

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

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

2024-05-28 16:04:37 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/typefind/gsttypefindfunctions.c:
	  typefind: Fix handling of ID_ODD_SIZE in WavPack typefinder
	  Chunks are always starting on an even position and this flag only
	  specifies that the last byte of the chunk is not valid.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3569
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6944>

2024-04-29 12:15:20 +0200  Yacine Bandou <yacine.bandou@softathome.com>

	* gst/playback/gststreamsynchronizer.c:
	  streamsynchronizer: Fix deadlock when streams have been flushed before others start
	  To simplify the description, I'm assuming we only have two streams: video and audio.
	  For the video stream, we have the following events :
	  - STREAM_START => stream->wait set to true
	  - NEW_SEGMENT(1) => blocked waiting in gst_stream_synchronizer_wait
	  - FLUSH_START => unblocked
	  - FLUSH_STOP => stream->wait reset to false
	  - NEW_SEGMENT(2) => not waiting, since stream->wait is false
	  Then for the audio stream, we have the following events :
	  - STREAM_START => stream->wait set to true
	  - NEW_SEGMENT(2) => blocked waiting in gst_stream_synchronizer_wait for ever.
	  Note: The first NEW_SEGMENT event and the FLUSH_START, FLUSH_STOP events of the audio stream
	  are dropped before being received by the streamsynchronizer element, because the decodebin audio pad src
	  is not yet linked to the playsink audio pad sink.
	  To fix this deadlock, we don't reset stream->wait to false in the FLUSH_STOP event when it is not
	  waiting for the EOS of the other streams.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6887>

2024-05-15 10:58:57 -0700  Joshua Breeden <joshua.breeden@kiswe.com>

	* gst/videotestsrc/gstvideotestsrc.c:
	* gst/videotestsrc/gstvideotestsrc.h:
	  videotestsrc: add mutex around cache buffer to prevent race condition
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6889>

2024-05-15 22:17:44 +0900  Seungha Yang <seungha@centricular.com>

	* gst/playback/gstdecodebin3.c:
	* gst/playback/gsturidecodebin3.c:
	* gst/playback/gsturisourcebin.c:
	  decodebin3: Fix caps and stream leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6866>

2024-05-09 12:41:45 +0300  Sebastian Dröge <sebastian@centricular.com>

	* tests/check/elements/audioconvert.c:
	  audioconvert: Add test for 96 channel conversion
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6828>

2024-05-09 09:57:54 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/audio-channel-mixer.c:
	* gst-libs/gst/audio/audio-channels.c:
	  audioconvert: Support converting >64 channels
	  There's nothing requiring <= 64 channels except for getting the reorder
	  map and creating a channel mixing matrix, but those won't be possible to
	  call anyway as channel positions can only express up to 64 channels.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6828>

2024-05-03 22:35:21 -0400  Bill Nottingham <notting@splat.cc>

	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
	  pbutils: fix visualization plugins
	  inbuf is persistent, GST_BUFFER_COPY_MEMORY's append behavior is
	  not what we want.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6814>

2024-04-29 15:25:28 +0800  Shengqi Yu <shengqi.yu@mediatek.com>

	* ext/gl/gstgldownloadelement.c:
	* gst-libs/gst/gl/gstglmixer.c:
	  glmixer: Add GL_SYNC_META option to bufferpool
	  when pipline is
	  glvideomixerelement->glcolorconvertelement->gldownloadelement and
	  glcolorconvertelement is not passthrough, the gl bufferpool between
	  glvideomixerelement and glcolorconvertelement will not add gl sync meta
	  during allocating buffer. This will cause that glcolorconvert's inbuf
	  has no sync meta to wait for.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6784>

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

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

=== release 1.24.3 ===

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* meson.build:
	  Back to development after 1.24.2

=== release 1.24.2 ===

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* meson.build:
	  Back to development

=== release 1.24.1 ===

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

=== release 1.24.0 ===

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

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

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

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

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

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

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

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

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

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

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

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

=== release 1.23.90 ===

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

=== release 1.23.2 ===

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

=== release 1.23.1 ===

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2024-01-17 15:58:50 +0100  Jonas K Danielsson <jonas.danielsson@spiideo.com>

	* tools/gst-play.c:
	  gst-play: Use gst_util_filename_compare
	  The added benefit is not assuming UTF-8 in filenames.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4491>

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

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Protect set_uri with the PLAY_ITEMS_LOCK
	  We access fields that are protected by the lock and this was already
	  held in other places where we call the method. I have got cases where
	  we get the following stack/assertion:
	  ```
	  #0  g_logv (log_domain=0x7fb9d84e6cd5 "GStreamer", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fb9d4de54e0) at ../glib/gmessages.c:1433
	  #1  0x00007fb9d802d0f3 in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>) at ../glib/gmessages.c:1471
	  #2  0x00007fb9d845bc2c in gst_pad_send_event (pad=0x7fb98c01e050, event=0x7fb9c4105b90) at ../subprojects/gstreamer/gst/gstpad.c:6096
	  #3  0x00007fb9d6541c35 in gst_uri_decode_bin3_set_uri (dec=0x7fb9bc450960 [GstURIDecodeBin3], uri=0x7fb9c40f5410 "file:///var/home/thiblahute/devel/gstreamer/gstreamer/subprojects/gst-integration-testsuites/medias/defaults/mp4/mp3_h264.0.mp4") at ../subprojects/gst-plugins-base/gst/playback/gsturidecodebin3.c:1918
	  #4  0x00007fb9d6540c40 in gst_uri_decode_bin3_set_property (object=0x7fb9bc450960 [GstURIDecodeBin3], prop_id=1, value=0x7fb9d4de57b0, pspec=0x7fb9bcee5280 [GParamString]) at ../subprojects/gst-plugins-base/gst/playback/gsturidecodebin3.c:1569
	  #5  0x00007fb9d7f8f73d in object_set_property (object=0x7fb9bc450960 [GstURIDecodeBin3], pspec=0x7fb9bcee5280 [GParamString], value=0x7fb9d4de57b0, nqueue=0x7fb9c40d0c40, user_specified=<optimized out>) at ../gobject/gobject.c:1794
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5968>

2024-01-18 19:11:25 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ext/gl/gstglimagesink.c:
	  glimagesink: fix typo in docs
	  Fixes #3233
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5942>

2024-01-18 20:32:44 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  glcolorconvert: Correct transform_caps direction
	  If GST_PAD_SINK is passed in this means that we're supposed to convert
	  from sink caps to src caps, not the other way around. In other words, if
	  GST_PAD_SINK is passed we're supposed to produce the possible output
	  caps.
	  Previously this was inverted. This had the effect that glcolorconvert
	  pretended to be able to convert *to* I420 without glDrawBuffers, which is
	  not possible, and pretended not to be able to convert *from* I420
	  without glDrawBuffers, which it always supports.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5941>

2024-01-10 12:42:21 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/encoding/gstencodebasebin.c:
	  encodebin2: Fix support for rendering to stream without muxer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5914>

2024-01-15 22:44:09 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: Release lock before pushing segment event
	  Do not hold lock during event push. Similar fix to the commit
	  2e5908d33f14e178da6baf411b96f82116324e2f but another place
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5925>

2024-01-12 12:01:03 +0900  Chao Guo <chao.guo@nxp.com>

	* gst-libs/gst/gl/viv-fb/gstgldisplay_viv_fb.c:
	  viv-fb: fix build warning of [-Wunused-variable]
	  display_viv_fb is unused in gst_gl_display_viv_fb_finalize ().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5913>

2024-01-12 11:55:01 +0900  Chao Guo <chao.guo@nxp.com>

	* gst-libs/gst/gl/gstgldisplay.c:
	  gl/display: fix build warning of [-Wint-in-bool-context]
	  GST_GL_DISPLAY_TYPE_VIV_FB is enum constant but is used
	  as bool.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5913>

2024-01-11 17:46:01 +0900  Chao Guo <chao.guo@nxp.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: fix build warning of [-Wincompatible-pointer-types]
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5913>

2023-10-25 11:51:38 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/gl/gstglbasefilter.c:
	  gl: basefilter: Ensure we have a context before running allocation query
	  Even in the case where we are not in passthrough but the subclasses are
	  going to run the allocation query, we need to ensure that we have a
	  GLContext ready to be used. Otherwise we might end up with assertions
	  with `gloverlaycompositor` like:
	  ```
	  #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140285688829504) at ./nptl/pthread_kill.c:44
	  #1  __pthread_kill_internal (signo=6, threadid=140285688829504) at ./nptl/pthread_kill.c:78
	  #2  __GI___pthread_kill (threadid=140285688829504, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
	  #3  0x00007f985ed88476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
	  #4  0x00007f985ed6e7f3 in __GI_abort () at ./stdlib/abort.c:79
	  #5  0x00007f985faedb57 in g_assertion_message (domain=<optimized out>, file=<optimized out>, line=<optimized out>, func=0x7f9856251b80 <__func__.5> "gst_gl_buffer_pool_set_config", message=<optimized out>) at ../../../glib/gtestutils.c:3253
	  #6  0x00007f985fb4770f in g_assertion_message_expr (domain=0x7f9856251883 "GStreamer-GL", file=0x7f9856251820 "../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c", line=132, func=0x7f9856251b80 <__func__.5> "gst_gl_buffer_pool_set_config", expr=<optimized out>) at ../../../glib/gtestutils.c:3279
	  #7  0x00007f9856200e1f in gst_gl_buffer_pool_set_config (pool=0x7f977009d7e0, config=0x7f9704549050) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbufferpool.c:132
	  #8  0x00007f985f99bcf7 in gst_buffer_pool_set_config (pool=0x7f977009d7e0, config=0x7f9704549050) at ../subprojects/gstreamer/gst/gstbufferpool.c:698
	  #9  0x00007f985620e2be in gst_gl_filter_propose_allocation (trans=0x7f9754014a80, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglfilter.c:834
	  #10 0x00007f98562b43c5 in gst_gl_overlay_compositor_element_propose_allocation (trans=0x7f9754014a80, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/ext/gl/gstgloverlaycompositorelement.c:188
	  #11 0x00007f985f8e9ea8 in gst_base_transform_default_query (trans=0x7f9754014a80, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1537
	  #12 0x00007f98561eed91 in gst_gl_base_filter_query (trans=0x7f9754014a80, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:319
	  #13 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f977c07c7e0, parent=0x7f9754014a80, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
	  #14 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f977c07c7e0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #15 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f977c07c340, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #16 0x00007f985f8e9817 in gst_base_transform_default_propose_allocation (trans=0x7f975401e2b0, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1394
	  #17 0x00007f985f8e9ea8 in gst_base_transform_default_query (trans=0x7f975401e2b0, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1537
	  #18 0x00007f98561eed91 in gst_gl_base_filter_query (trans=0x7f975401e2b0, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:319
	  #19 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f96e420b0c0, parent=0x7f975401e2b0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
	  #20 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f96e420b0c0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #21 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a0bf0f0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #22 0x00007f985f8e9817 in gst_base_transform_default_propose_allocation (trans=0x7f982a128790, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1394
	  #23 0x00007f9856289017 in _gst_gl_upload_element_propose_allocation (bt=0x7f982a128790, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/ext/gl/gstgluploadelement.c:239
	  #24 0x00007f985f8e9ea8 in gst_base_transform_default_query (trans=0x7f982a128790, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1537
	  #25 0x00007f98561eed91 in gst_gl_base_filter_query (trans=0x7f982a128790, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:319
	  #26 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f96e405b630, parent=0x7f982a128790, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
	  #27 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f96e405b630, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #28 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f9730289670, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #29 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f9730289670, data=0x7f96cea60000) at ../subprojects/gstreamer/gst/gstpad.c:3458
	  #30 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f98280f5d00, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea60000) at ../subprojects/gstreamer/gst/gstpad.c:3084
	  #31 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f98280f5d00, parent=0x7f98280cc540, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:3529
	  #32 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f98280f5d00, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #33 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f978438b680, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #34 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f978438b680, data=0x7f96cea60290) at ../subprojects/gstreamer/gst/gstpad.c:3458
	  #35 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f98280f5a10, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea60290) at ../subprojects/gstreamer/gst/gstpad.c:3084
	  #36 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f98280f5a10, parent=0x7f97ec0147f0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:3529
	  #37 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f98280f5a10, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #38 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f9784831a70, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #39 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f9784831a70, data=0x7f96cea60520) at ../subprojects/gstreamer/gst/gstpad.c:3458
	  #40 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f9770081da0, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea60520) at ../subprojects/gstreamer/gst/gstpad.c:3084
	  #41 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f9770081da0, parent=0x7f983c14e330, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:3529
	  #42 0x00007f9812258e5c in ghostpad_query_function (ghostpad=0x7f9770081da0, parent=0x7f983c14e330, query=0x7f97040310a0) at ../subprojects/gst-editing-services/plugins/nle/nleghostpad.c:568
	  #43 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f9770081da0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #44 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2713e0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #45 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f982a2713e0, data=0x7f96cea60800) at ../subprojects/gstreamer/gst/gstpad.c:3458
	  #46 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f982a2800c0, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea60800) at ../subprojects/gstreamer/gst/gstpad.c:3084
	  #47 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f982a2800c0, parent=0x7f982a2713e0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:3529
	  #48 0x00007f9812258a94 in internalpad_query_function (internal=0x7f982a2800c0, parent=0x7f982a2713e0, query=0x7f97040310a0) at ../subprojects/gst-editing-services/plugins/nle/nleghostpad.c:460
	  #49 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2800c0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #50 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2f4c80, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #51 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f982a2f4c80, data=0x7f96cea60ae0) at ../subprojects/gstreamer/gst/gstpad.c:3458
	  #52 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f982a2dfb00, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea60ae0) at ../subprojects/gstreamer/gst/gstpad.c:3084
	  #53 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f982a2dfb00, parent=0x7f982a2f4c80, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:3529
	  #54 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2dfb00, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #55 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2fbc10, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #56 0x00007f985f8e9817 in gst_base_transform_default_propose_allocation (trans=0x7f982a2e87d0, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1394
	  #57 0x00007f985f8e9ea8 in gst_base_transform_default_query (trans=0x7f982a2e87d0, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1537
	  #58 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2fb9c0, parent=0x7f982a2e87d0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
	  #59 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2fb9c0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #60 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2fb770, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #61 0x00007f985f8e9817 in gst_base_transform_default_propose_allocation (trans=0x7f982a302780, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1394
	  #62 0x00007f985c008d9d in gst_video_rate_propose_allocation (trans=0x7f982a302780, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst/videorate/gstvideorate.c:1365
	  #63 0x00007f985f8e9ea8 in gst_base_transform_default_query (trans=0x7f982a302780, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1537
	  #64 0x00007f985c008cc5 in gst_video_rate_query (trans=0x7f982a302780, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst/videorate/gstvideorate.c:1347
	  #65 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2fb520, parent=0x7f982a302780, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
	  #66 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2fb520, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #67 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2889c0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #68 0x00007f98122048e6 in gst_base_auto_convert_internal_sink_query (pad=0x7f9750046af0, parent=0x0, query=0x7f97040310a0) at ../subprojects/gst-plugins-bad/gst/autoconvert/gstbaseautoconvert.c:1381
	  #69 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f9750046af0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #70 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2c13e0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #71 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f982a2c13e0, data=0x7f96cea61680) at ../subprojects/gstreamer/gst/gstpad.c:3458
	  #72 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f982a2de340, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea61680) at ../subprojects/gstreamer/gst/gstpad.c:3084
	  #73 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f982a2de340, parent=0x7f982a2c13e0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:3529
	  #74 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2de340, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #75 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2db760, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #76 0x00007f98561eebd1 in gst_gl_base_filter_query (trans=0x7f982a2d8df0, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:285
	  #77 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2db510, parent=0x7f982a2d8df0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
	  #78 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2db510, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #79 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2db2c0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #80 0x00007f98561eebd1 in gst_gl_base_filter_query (trans=0x7f982a2dc3d0, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:285
	  #81 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2db070, parent=0x7f982a2dc3d0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
	  #82 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2db070, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #83 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2dae20, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #84 0x00007f98561eebd1 in gst_gl_base_filter_query (trans=0x7f982a2d8a60, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:285
	  #85 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2dabd0, parent=0x7f982a2d8a60, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
	  #86 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2dabd0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #87 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2c1170, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #88 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f982a2c1170, data=0x7f96cea62060) at ../subprojects/gstreamer/gst/gstpad.c:3458
	  #89 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f982a2de0e0, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea62060) at ../subprojects/gstreamer/gst/gstpad.c:3084
	  #90 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f982a2de0e0, parent=0x7f982a2c1170, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:3529
	  #91 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2de0e0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #92 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2da980, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #93 0x00007f985f8e9817 in gst_base_transform_default_propose_allocation (trans=0x7f982a2c8c10, decide_query=0x0, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1394
	  #94 0x00007f985f8e9ea8 in gst_base_transform_default_query (trans=0x7f982a2c8c10, direction=GST_PAD_SINK, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1537
	  #95 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2da730, parent=0x7f982a2c8c10, query=0x7f97040310a0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
	  #96 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2da730, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #97 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2da4e0, query=0x7f97040310a0) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #98 0x00007f985f8e7ff9 in gst_base_transform_do_bufferpool (trans=0x7f982a2d1a50, outcaps=0x7f970407aac0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:948
	  #99 0x00007f985f8e963e in gst_base_transform_setcaps (trans=0x7f982a2d1a50, pad=0x7f982a2da290, incaps=0x7f970407aac0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1351
	  #100 0x00007f985f8e99c8 in gst_base_transform_reconfigure_unlocked (trans=0x7f982a2d1a50) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1431
	  #101 0x00007f985f8e9d38 in gst_base_transform_default_query (trans=0x7f982a2d1a50, direction=GST_PAD_SINK, query=0x7f9704541620) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1515
	  #102 0x00007f98561eed91 in gst_gl_base_filter_query (trans=0x7f982a2d1a50, direction=GST_PAD_SINK, query=0x7f9704541620) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:319
	  #103 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2da290, parent=0x7f982a2d1a50, query=0x7f9704541620) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
	  #104 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2da290, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #105 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2da040, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #106 0x00007f985f8e9817 in gst_base_transform_default_propose_allocation (trans=0x7f982a2c88d0, decide_query=0x0, query=0x7f9704541620) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1394
	  #107 0x00007f985f8e9ea8 in gst_base_transform_default_query (trans=0x7f982a2c88d0, direction=GST_PAD_SINK, query=0x7f9704541620) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1537
	  #108 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2d7d30, parent=0x7f982a2c88d0, query=0x7f9704541620) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
	  #109 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2d7d30, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #110 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2b7d40, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #111 0x00007f985f9f0cb3 in query_forward_func (pad=0x7f982a2b7d40, data=0x7f96cea62cb0) at ../subprojects/gstreamer/gst/gstpad.c:3458
	  #112 0x00007f985f9ef9ac in gst_pad_forward (pad=0x7f982a2c0f00, forward=0x7f985f9f0b90 <query_forward_func>, user_data=0x7f96cea62cb0) at ../subprojects/gstreamer/gst/gstpad.c:3084
	  #113 0x00007f985f9f0ed1 in gst_pad_query_default (pad=0x7f982a2c0f00, parent=0x7f982a2ba620, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:3529
	  #114 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2c0f00, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #115 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2d7ae0, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #116 0x00007f98561eebd1 in gst_gl_base_filter_query (trans=0x7f982a2d86d0, direction=GST_PAD_SINK, query=0x7f9704541620) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:285
	  #117 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2d7890, parent=0x7f982a2d86d0, query=0x7f9704541620) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
	  #118 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2d7890, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #119 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2d7640, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #120 0x00007f98561eebd1 in gst_gl_base_filter_query (trans=0x7f982a2d5b00, direction=GST_PAD_SINK, query=0x7f9704541620) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:285
	  #121 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2d73f0, parent=0x7f982a2d5b00, query=0x7f9704541620) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
	  #122 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2d73f0, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #123 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2d71a0, query=0x7f9704541620) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #124 0x00007f985f8e7ff9 in gst_base_transform_do_bufferpool (trans=0x7f982a2d8340, outcaps=0x7f9704004e30) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:948
	  #125 0x00007f985f8e963e in gst_base_transform_setcaps (trans=0x7f982a2d8340, pad=0x7f982a2d6f50, incaps=0x7f9704002120) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1351
	  #126 0x00007f985f8e99c8 in gst_base_transform_reconfigure_unlocked (trans=0x7f982a2d8340) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1431
	  #127 0x00007f985f8e9d38 in gst_base_transform_default_query (trans=0x7f982a2d8340, direction=GST_PAD_SINK, query=0x7f97045afe90) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1515
	  #128 0x00007f98561eed91 in gst_gl_base_filter_query (trans=0x7f982a2d8340, direction=GST_PAD_SINK, query=0x7f97045afe90) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasefilter.c:319
	  #129 0x00007f985f8ea223 in gst_base_transform_query (pad=0x7f982a2d6f50, parent=0x7f982a2d8340, query=0x7f97045afe90) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1628
	  #130 0x00007f985f9f2f77 in gst_pad_query (pad=0x7f982a2d6f50, query=0x7f97045afe90) at ../subprojects/gstreamer/gst/gstpad.c:4202
	  #131 0x00007f985f9f3aa2 in gst_pad_peer_query (pad=0x7f982a2d6d00, query=0x7f97045afe90) at ../subprojects/gstreamer/gst/gstpad.c:4334
	  #132 0x00007f985f8e7ff9 in gst_base_transform_do_bufferpool (trans=0x7f982a2d4920, outcaps=0x7f9704071fb0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:948
	  #133 0x00007f985f8e963e in gst_base_transform_setcaps (trans=0x7f982a2d4920, pad=0x7f982a2d6ab0, incaps=0x7f97500020c0) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1351
	  #134 0x00007f985f8e99c8 in gst_base_transform_reconfigure_unlocked (trans=0x7f982a2d4920) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:1431
	  #135 0x00007f985f8eb797 in default_submit_input_buffer (trans=0x7f982a2d4920, is_discont=0, inbuf=0x7f972c009b70) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2041
	  #136 0x00007f985f8ecb28 in gst_base_transform_chain (pad=0x7f982a2d6ab0, parent=0x7f982a2d4920, buffer=0x7f972c009b70) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2348
	  #137 0x00007f985f9f47c2 in gst_pad_chain_data_unchecked (pad=0x7f982a2d6ab0, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4463
	  #138 0x00007f985f9f5a15 in gst_pad_push_data (pad=0x7f982a2d6860, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4739
	  #139 0x00007f985f9f61cc in gst_pad_push (pad=0x7f982a2d6860, buffer=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4858
	  #140 0x00007f985f8ecd2e in gst_base_transform_chain (pad=0x7f982a2d6610, parent=0x7f982a2c8590, buffer=0x7f972c009b70) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2391
	  #141 0x00007f985f9f47c2 in gst_pad_chain_data_unchecked (pad=0x7f982a2d6610, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4463
	  #142 0x00007f985f9f5a15 in gst_pad_push_data (pad=0x7f982a2de5a0, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4739
	  #143 0x00007f985f9f61cc in gst_pad_push (pad=0x7f982a2de5a0, buffer=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4858
	  #144 0x00007f985f9ce428 in gst_proxy_pad_chain_default (pad=0x7f982a2c1650, parent=0x7f982a290880, buffer=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstghostpad.c:127
	  #145 0x00007f985f9f47c2 in gst_pad_chain_data_unchecked (pad=0x7f982a2c1650, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4463
	  #146 0x00007f985f9f5a15 in gst_pad_push_data (pad=0x7f97500468a0, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4739
	  #147 0x00007f985f9f61cc in gst_pad_push (pad=0x7f97500468a0, buffer=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4858
	  #148 0x00007f9812203aa4 in gst_base_auto_convert_sink_chain (pad=0x7f982a288770, parent=0x7f982a22fbd0, buffer=0x7f972c009b70) at ../subprojects/gst-plugins-bad/gst/autoconvert/gstbaseautoconvert.c:1032
	  #149 0x00007f985f9f47c2 in gst_pad_chain_data_unchecked (pad=0x7f982a288770, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4463
	  #150 0x00007f985f9f5a15 in gst_pad_push_data (pad=0x7f982a288520, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4739
	  #151 0x00007f985f9f61cc in gst_pad_push (pad=0x7f982a288520, buffer=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4858
	  #152 0x00007f985f8ecd2e in gst_base_transform_chain (pad=0x7f982a2882d0, parent=0x7f982a274570, buffer=0x7f972c009b70) at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2391
	  #153 0x00007f985f9f47c2 in gst_pad_chain_data_unchecked (pad=0x7f982a2882d0, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4463
	  #154 0x00007f985f9f5a15 in gst_pad_push_data (pad=0x7f982a288080, type=4112, data=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4739
	  #155 0x00007f985f9f61cc in gst_pad_push (pad=0x7f982a288080, buffer=0x7f972c009b70) at ../subprojects/gstreamer/gst/gstpad.c:4858
	  #156 0x00007f982499b9f9 in gst_queue_push_one (queue=0x7f9829d61910) at ../subprojects/gstreamer/plugins/elements/gstqueue.c:1388
	  #157 0x00007f982499c88d in gst_queue_loop (pad=0x7f982a288080) at ../subprojects/gstreamer/plugins/elements/gstqueue.c:1541
	  #158 0x00007f985fa376bb in gst_task_func (task=0x7f976002eb90) at ../subprojects/gstreamer/gst/gsttask.c:399
	  #159 0x00007f985fa38bf9 in default_func (tdata=0x7f975400c160, pool=0x7f984cb62380) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
	  #160 0x00007f985fb566b4 in g_thread_pool_thread_proxy (data=<optimized out>) at ../../../glib/gthreadpool.c:350
	  #161 0x00007f985fb53a51 in g_thread_proxy (data=0x7f982a071580) at ../../../glib/gthread.c:827
	  #162 0x00007f985eddaac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
	  #163 0x00007f985ee6ca40 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5856>

2023-01-31 05:37:52 -0800  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	  audioaggregator: Sync property values to output timestamp
	  This is what videoaggregator already does since 2019, and it makes
	  sense. The properties need to change at every output frame based on
	  the output time because they may change even though the input frame is
	  not changing. See:
	  https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/commit/6a8c15f3bdc7077b1e5954580c25f99e1b112ead
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3851>

2023-08-30 10:56:19 -0600  Scott Moreau <oreaus@gmail.com>

	* gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c:
	  gst-launch: accept option to set program name
	  The option --prog-name="PROGRAM-NAME" can be passed to set the program name.
	  The program name is used by gtk and gstreamer to set the class or app-id.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5263>

2023-12-19 12:01:30 -0500  Damian Hobson-Garcia <damian@hobsong.com>

	* ext/gl/gstgloverlay.c:
	  gloverlay: Apply updated overlay coordinates correctly
	  When overlay coordinates are updated, after the initial coordinates
	  are set, the shader indices are applied to the wrong buffer, resulting
	  in the background image appearing where the overlay should.
	  Bind the array buffer before applying subsequent coordinate
	  updates.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5901>

2024-01-05 12:13:49 +0000  Philippe Normand <philn@igalia.com>

	* gst/playback/gstdecodebin3-parse.c:
	* gst/playback/gstdecodebin3.c:
	  decodebin3: Fix clean-up of EOS'd parsebin src pad
	  In `parse_chain_output_probe()` the corresponding input stream might receive EOS
	  and thus be removed before the actual pad is removed. So we cannot assert about
	  this in `parsebin_pad_removed_cb()`.
	  Also, driving-by, protect `find_input_stream_for_pad()` with the selection lock
	  similarly to other functions accessing the input streams list.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5887>

2023-12-14 12:31:01 +0100  Michael Tretter <m.tretter@pengutronix.de>

	* gst/videorate/gstvideorate.c:
	  videorate: keep pool if max_buffers is unlimited
	  The value 0 for max_buffers means unlimited. If the max_buffers are unlimited,
	  the videorate element shouldn't throw away the bufferpool, but just increase the
	  min_buffers value.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5857>

2023-12-19 13:57:04 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/video/video-format.h:
	  video-format: Fix format order once again
	  RGBA should be before RBGA. Both the Python script and the gstreamer-rs
	  tests agree on that, but somehow this is not caught by the CI.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5837>

2023-12-18 16:33:07 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/audio/gstaudiometa.c:
	* gst-libs/gst/video/gstvideometa.c:
	  meta: Add API to register metas in two steps
	  And also remove the specific registration APIs for
	  serializable meta.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5830>

2023-12-18 10:28:18 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/audioconvert/gstaudioconvert.c:
	  audioconvert: change gst_audio_convert_get_unit_size() log levels
	  INFO is a bit high for such technical details and best to use WARNING
	  when it fails.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5822>

2023-12-18 09:23:14 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Don't send sticky events to unlinked decoder
	  This causes a lot of nasty side effects (like decoders assuming they are
	  actually linked downstream).
	  The reason why this was done was to check whether a decoder could handle the
	  actual caps, but this is the wrong way to do it.
	  The proper way to query whether a decoder can handle certain caps is via
	  `GST_QUERY_ACCEPT_CAPS` which is already done just before.
	  Partially reverts !4677 and partially fixes #3160
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5821>

2023-09-18 19:24:35 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst-libs/gst/audio/gstaudiometa.c:
	* gst-libs/gst/audio/gstaudiometa.h:
	* gst-libs/gst/video/gstvideometa.c:
	* gst-libs/gst/video/gstvideometa.h:
	* tests/check/libs/audio.c:
	* tests/check/libs/video.c:
	  meta: Add serialize/deserialize API
	  This allows metas to be serialized to be transmitted or stored. This is
	  intended to be used for example by gdppay or unixfdsink.
	  Implemented on GstCustomMeta, GstVideoMeta, GstReferenceTimestampMeta,
	  and GstAudioMeta.
	  Sponsored-by: Netflix Inc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5355>

2023-12-04 18:45:49 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	* gst-libs/gst/audio/gstaudiobasesink.c:
	* gst-libs/gst/audio/gstaudiostreamalign.c:
	* tests/check/libs/audio.c:
	  audio: Consider the expected timestamp for discont-wait handling
	  Otherwise if there is a huge gap it will only be considered a
	  discontinuity after another discont-time amount of buffers has passed.
	  Like this it will be immediately a discontinuity if the gap between the
	  expected and received time becomes bigger than the discont-time.
	  The last part of the test was actually testing for this behaviour and
	  expected the previous behaviour. Most other tests also had to be
	  adjusted because discont will now happen at slightly different times
	  than before.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5759>

2023-11-27 09:01:38 -0500  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/audio/gstaudioringbuffer.c:
	  audioringbuffer: Don't try to map MONO channel
	  Avoids critical message:
	  gstaudioringbuffer.c: line 2155 (gst_audio_ring_buffer_set_channel_positions):
	  should not be reached
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5721>

2023-11-28 11:39:58 -0300  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/drop_out_of_segment.validatetest:
	* tests/validate/videorate/drop_out_of_segment/flow-expectations/log-videorate-sink-expected:
	* tests/validate/videorate/drop_out_of_segment/flow-expectations/log-videorate-src-expected:
	  videorate: Add a property to force dropping out of segment buffers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5725>

2023-11-14 22:29:41 +1100  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/audio/gstaudioringbuffer.c:
	  audio: Extra documentation for gst_audio_ring_buffer_set_timestamp()
	  Clarify the documentation that gst_audio_ring_buffer_set_timestamp()
	  expects timestamps sampled directly from the pipeline clock
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5657>

2023-12-02 00:49:47 +0900  Seungha Yang <seungha@centricular.com>

	* tests/check/elements/appsrc.c:
	  tests: appsrc: Fix test on Windows
	  Windows does not support fork() so all tests will run in a single
	  process, and global variables will be reused across multiple tests.
	  Thus, each test should reset global variables.
	  Also, setup pad chain/event functions before playing state
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5752>

2023-12-02 00:32:31 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/app/gstappsrc.c:
	* tests/check/elements/appsrc.c:
	  appsrc: Fix flow return when buffer is dropped
	  Flow EOS on buffer drop (upstream leaky mode) was not
	  intended behavior. Appsrc should return OK instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5753>

2023-11-30 23:34:50 +0900  Seungha Yang <seungha@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	* gst-libs/gst/gl/gstglformat.c:
	* gst-libs/gst/gl/gstglmemory.h:
	  gl: Add RBGA format support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5738>

2023-11-30 23:22:00 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/video/video-format.c:
	  video: Fix RBGA format poffset
	  The offset array should be [0, 2, 1, 3]
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5738>

2023-12-01 18:46:35 +0900  Jimmy Ohn <yongjin.ohn@lge.com>

	* gst/playback/gstdecodebin2.c:
	  decodebin2: Properly free when shutting down in gst_decode_bin_expose
	  missing_plugin_details causes memory leakages when shutting down.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5744>

2023-12-01 17:55:28 +0900  Jimmy Ohn <yongjin.ohn@lge.com>

	* gst-libs/gst/pbutils/encoding-target.c:
	  encoding-target: Properly free when missing type field in parse_encoding_profile
	  pname and description in parse_encoding_profile function causes
	  memory leakages when missing the 'type' field for streamprofile.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5744>

2023-11-22 00:07:57 +0900  Seungha Yang <seungha@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* 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:
	* gst-libs/gst/video/video-orc-dist.c:
	* gst-libs/gst/video/video-orc-dist.h:
	* gst-libs/gst/video/video-orc.orc:
	  video: Add RBGA format
	  This new format is intended to be used by hardware decoders
	  where VUYA is only supported 4:4:4 decoding surface but
	  stream is encoded with GBR color space, HEVC and VP9 GBR streams
	  for example.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5703>

2023-11-28 16:54:59 +0200  Maksym Khomenko <maksym.khomenko@skelia.partners>

	* gst-libs/gst/rtp/gstrtpbasepayload.c:
	* tests/check/libs/rtpbasepayload.c:
	  rtpbasepayload: add extensions property
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5694>

2023-11-28 16:54:38 +0200  Maksym Khomenko <maksym.khomenko@skelia.partners>

	* gst-libs/gst/rtp/gstrtpbasepayload.c:
	  rtpbasepayload: fix documentation formatting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5694>

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

	* gst-libs/gst/pbutils/codec-utils.c:
	* tests/check/libs/pbutils.c:
	  pbutils: Don't include default vp9 parameters in resulting codec mime string
	  According to the document defining the vp9 codec string, the optional fields
	  should all be present only if at least one of them has a non-default value.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5716>

2023-11-22 11:45:38 +0100  Ruben Gonzalez <rgonzalez@fluendo.com>

	* gst/debugutils/gstfakevideodec.c:
	  debug: delete reference to gstdump script
	  It's an interesting script from @thiblahute my-devtools repository[1],
	  but no official.
	  [1] https://github.com/thiblahute/my-devtools
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5705>

2023-11-17 10:48:21 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/videorate/gstvideorate.c:
	  videorate: Don't forget last_ts on caps changes
	  Whenever that caps changes does not imply that a new segment will start.
	  Don't reset the last_ts if only the caps have changed. This fixes issues
	  if you have a stream without only first frame with TS=0, and have resolution
	  change happening. This was a regression introduced by !3059, which issue was
	  described in #1352. The reported issue is still fix after this change.
	  Fixes #1034
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5687>

2023-11-10 11:46:34 -0300  Thibault Saunier <tsaunier@igalia.com>

	* tests/validate/fakevideodec/encoded.validatetest:
	* tests/validate/fakevideodec/encoded/flow-expectations/log-dec-sink-expected:
	* tests/validate/fakevideodec/encoded/flow-expectations/log-dec-src-expected:
	* tests/validate/fakevideodec/simple.validatetest:
	* tests/validate/fakevideodec/simple/flow-expectations/log-dec-sink-expected:
	* tests/validate/fakevideodec/simple/flow-expectations/log-dec-src-expected:
	* tests/validate/meson.build:
	  fakevideodec: Add some tests
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5636>

2019-12-12 11:29:17 -0800  Julien Isorce <jisorce@oblong.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/debugutils/gstdebug.c:
	* gst/debugutils/gstdebugutilselements.h:
	* gst/debugutils/gstfakevideodec.c:
	* gst/debugutils/gstfakevideodec.h:
	* gst/debugutils/meson.build:
	* gst/meson.build:
	* meson_options.txt:
	  debug: add new element fakevideodec
	  The fake video decoder ignores input bitstream except
	  to enforce caps restrictions. It reads video width,
	  height and framerate from caps. Then it just pushes
	  video frames without doing any decoding.
	  The fake video decoder just draws a snake moving from
	  left to right in the middle of the frame. This is a
	  light weight drawing while it still provides an idea
	  about how smooth is the rendering.
	  The fake video decoder inherits from GstVideoDecoder.
	  It is useful to measure how smooth will be the whole
	  rendering pipeline if you had the most efficient video
	  decoder. Also useful to bisect issues for example when
	  suspecting issues in a specific video decoder.
	  Handles mpeg2, mpeg4, h263, h264, theora, vp8, wmv3, msmpeg,
	  flash-video, vp6, vp9, wmv1, wmv2, divx but more can be
	  added if needed.
	  For now it can only output RGBA, RGBx, BGRA, BGRx.
	  Its rank is 0 (none) but I added a property to change it so
	  that it can be selected by decodebin.
	  gst-launch-1.0 fakevideodec rank=512 \
	  playbin uri=http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4
	  http://bugzilla.gnome.org/show_bug.cgi?id=723778
	  Closes #679
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5636>

2023-10-19 00:55:58 +0200  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	  glcontext/egl: Prefer GLES2 over GL/GL3 by default
	  From a multimedia perspective GLES >= 2 has the big advantage of
	  supporting external textures (`OES_EGL_image_external` /
	  `OES_EGL_image_external_essl3`), allowing various YUV formats to be
	  imported directly by drivers.
	  It appears unlikely by now that the extension will ever be ported to
	  GL with Vulkan becoming more popular, leaving GL without an "official"
	  way to import YUV formats.
	  Further more, for Gst internal purposes it's likely that GLES2 works
	  equally well if not better on most drivers these days, especially on
	  embedded devices.
	  Thus switch the default for EGL context creation to GLES2. This won't
	  affect apps that create their own context, but `gst-launch-1.0` etc.,
	  which are often used for testing so people don't have to pass
	  `GST_GL_API=gles2`.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5509>

2023-11-16 14:39:35 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/allocators/gstshmallocator.c:
	  allocators: shm: Remove future write sealing
	  By sealing for future writes, we broke Wayland SHM support. It seems like the
	  wayland library maps the SHM in read/write mode. This is visible through no
	  display and an error message like this:
	  wl_shm@7: error 2: failed mmap fd 43: Operation not permitted
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5684>

2023-11-17 10:15:46 +0900  Hosang Lee <hosang10.lee@lge.com>

	* ext/gl/gstglstereomix.c:
	  glstereomix: Fix typo
	  Fix typo in example. vid -> video
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5685>

2023-10-12 13:18:44 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/pbutils/gstdiscoverer.c:
	  discoverer: Fix accumulating discoverer info when loading from cache
	  With the previous accumualator loading stopped after the first handler,
	  even if it return NULL which is unexpected, instead we want to use the
	  first non-value returned by handlers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5665>

2023-11-11 11:10:46 +0800  qian hu <qian.hu@mediatek.com>

	* gst-libs/gst/video/video-info-dma.c:
	  video: dma-drm: add color format mappping about RGB and BGR
	  add mapping relationship between GST and DRM about RGB888/BGR888
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5641>

2023-11-09 08:37:39 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/audio/gstaudiodecoder.c:
	  audiodecoder: propagate resync flag
	  - propagate resync flag on last input frame to output frame
	  - resync TS when RESYNC flag is set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5529>

2023-11-07 00:27:57 +0100  Piotr Brzeziński <piotr@centricular.com>

	* ext/pango/gstbasetextoverlay.c:
	  basetextoverlay: Fix overlay never rendering again if width reaches 1px
	  If text width ever reached 1px, for example after resizing the output window, the overlay would stop rendering
	  and never return again. The 1px condition itself does not seem to make much sense here anyway.
	  This was a chain of events: width reached 1, so the composition was set to NULL. Then, after resizing the output window,
	  push_frame() was called but would not attempt to renegotiate because composition is NULL. This caused the width/height
	  to never be updated again, as that only happens during negotiation, so the overlay was gone for good.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5614>

2023-11-07 00:32:32 +0100  Piotr Brzeziński <piotr@centricular.com>

	* gst-libs/gst/gl/gstgloverlaycompositor.c:
	  gloverlaycompositor: Add GL sync point when uploading overlays
	  In rare cases - notably on macOS, because of multiple GL contexts - the lack of a sync point was causing overlays
	  to disappear for a frame after being redrawn, or sometimes not appear at all. This change makes sure that the display
	  in one GL context will be correctly synchronised with the other GL context where the overlay texture was uploaded.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5610>

2023-10-31 16:27:55 +0000  Philippe Normand <philn@igalia.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Tidy-up dispose function
	  Protect code with mutexes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5607>

2023-10-31 16:26:38 +0000  Philippe Normand <philn@igalia.com>

	* gst/playback/gstparsebin.c:
	  parsebin: Fix a potential stream collection leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5607>

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

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Dispose decoder in case linking failed
	  Otherwise it will be leaked and remain forever in the bin when trying the next
	  decoder candidate.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5551>

2023-09-18 14:38:25 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst-libs/gst/allocators/gstshmallocator.c:
	* gst-libs/gst/allocators/gstshmallocator.h:
	  GstShmAllocator: Add documentation
	  Sponsored-by: Netflix Inc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5328>

2023-09-18 14:38:25 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst-libs/gst/allocators/gstshmallocator.c:
	  GstShmAllocator: Respect allocation params
	  Sponsored-by: Netflix Inc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5328>

2023-09-18 14:38:25 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst-libs/gst/allocators/gstshmallocator.c:
	  GstShmAllocator: Seal memfd for future write
	  The GstMemory we created is kept mapped RW, but any future mapping that
	  uses the fd should be RO.
	  Sponsored-by: Netflix Inc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5328>

2023-09-18 14:38:24 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst-libs/gst/allocators/gstshmallocator.c:
	* gst-libs/gst/allocators/meson.build:
	  GstShmAllocator: Use shm_open() instead of temporary file
	  There is no guarantee that g_get_user_runtime_dir() is in a tmpfs. Using
	  an explicit shared memory API seems safer for all POSIX platforms.
	  Note that Android does not have shm_open() and only added memfd_create()
	  since API level 30 (Android 11).
	  Sponsored-by: Netflix Inc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5328>

2023-09-18 14:38:24 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst-libs/gst/allocators/gstshmallocator.c:
	  GstShmAllocator: Use GST_ALLOCATOR_FLAG_NO_COPY flag
	  Sponsored-by: Netflix Inc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5328>

2023-09-18 14:38:23 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst-libs/gst/allocators/allocators.h:
	* gst-libs/gst/allocators/gstshmallocator.c:
	* gst-libs/gst/allocators/gstshmallocator.h:
	* gst-libs/gst/allocators/meson.build:
	  GstShmAllocator: New shared memory allocator
	  This makes Wayland's allocator public. It is generally useful to have a
	  shared memory allocator that can create memfd on Linux.
	  Sponsored-by: Netflix Inc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5328>

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

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

2023-10-20 17:55:04 -0700  Slava Andrejev <vyac.andrejev@gmail.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  glcolorconvert: add reordering for plain GBR color format
	  Fixes #2991
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5582>

2023-10-20 15:21:03 +0200  Lieven Paulissen <lieven.paulissen@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/audioconvert/gstaudioconvert.c:
	* tests/check/elements/audioconvert.c:
	  audioconvert: Fix fallback to identity mixing matrix when setting an empty mix-matrix
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5530>

2023-10-19 19:41:27 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstaudioaggregator.c:
	  audioaggregator: Make access to the pad list thread-safe while mixing
	  When mixing every single buffer the object lock is shortly released and
	  acquired again. In the meantime the pad list can become invalid because
	  a pad was removed or added, and equally the current pad might as well
	  have been finalized in the meantime.
	  To get around that, take a snapshot of all sinkpads before mixing and
	  work with that list of pads.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3052
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5510>

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

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

2023-09-08 18:03:17 +0300  Jordan Petridis <jordan@centricular.com>

	* ext/cdparanoia/meson.build:
	  cdparanoia: Ignore discarded-qualifiers coming from the header (again)
	  Followup to 75872c802b990a59fb327a546543824668d5485e , clang version
	  While we ignore `discarded-qualifiers` already for gcc, clang seems
	  to assign this error to `incompatible-pointer-types-discards-qualifiers`
	  so we need to ignore that as well.
	  ```
	  In file included from \
	  ../subprojects/gst-plugins-base/ext/cdparanoia/gstcdparanoiasrc.h:37: \
	  /usr/include/cdda/cdda_interface.h:164:3: error: initializing 'char *' with an expression \
	  of type 'const char [8]' discards qualifiers [-Werror, \
	  -Wincompatible-pointer-types-discards-qualifiers]
	  "Success",
	  ^~~~~~~~~
	  ```
	  See 75872c802b990a59fb327a546543824668d5485e for more
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5474>

2023-10-19 14:10:16 +0200  Loïc Le Page <llepage@igalia.com>

	* gst-libs/gst/gl/egl/gstgldisplay_egl.c:
	* gst-libs/gst/gl/egl/gstgldisplay_egl.h:
	* gst-libs/gst/gl/gstgldisplay.c:
	* gst-libs/gst/gl/gstgldisplay.h:
	* gst-libs/gst/gl/gstglwindow.c:
	* gst-libs/gst/gl/meson.build:
	* meson_options.txt:
	  gl: add support for surfaceless display in GstGL
	  Use of the EGL_MESA_platform_surfaceless EGL extension to create an EGL
	  display that is not depending on any kind of windowing system.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5511>

2023-10-19 18:45:29 +0200  Loïc Le Page <llepage@igalia.com>

	* gst-libs/gst/gl/gstgldisplay.c:
	  gl: fix "winrt" string comparison in gst_gl_display_type_from_environment
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5511>

2023-10-12 16:44:01 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglupload.c:
	  gl: upload: gl memory method should not provide pool for system memory caps
	  In _gl_memory_upload_propose_allocation(), when output target is "external-oes",
	  then we should not provide GL allocator and pool in the allocation query.
	  This is because the "external-oes" kind memory can never be mapped directly
	  and the upstream element may misuse it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5468>

2023-10-13 21:34:19 +0800  He Junyan <junyan.he@intel.com>

	* ext/gl/gstgluploadelement.c:
	* gst-libs/gst/gl/gstglupload.c:
	* gst-libs/gst/gl/gstglupload.h:
	  gl: upload: Implement the fixate_caps virtual function
	  We now prefer the 2D target than other targets when fixating src caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5468>

2023-10-18 14:39:04 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglupload.c:
	  gl: upload: rename the _dma_buf_check_target() helper function
	  Make it a common helper function, not only for the DMA buffer method.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5468>

2023-10-05 13:49:16 +1100  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/gl/gstglfilter.c:
	  glfiter: Protect GstGLContext access
	  The propose and decide allocation vfuncs are called directly from
	  basetransform and need to use the locked accessor function for
	  retrieving a reliable reference to the GstGLContext (if available)
	  Fixes spurious crashes on shutdown during pad reconfiguration
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5437>

2023-10-13 15:07:45 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	* gst-libs/gst/gl/egl/gsteglimage.h:
	* gst-libs/gst/gl/gstglupload.c:
	  glupload: egl: Use n_plane values from the GstVideoInfo
	  The number of planes is a meta we carry around in the GstVideoMeta with
	  DMA_DRM format. In cannot be decuded correctly from knowledge of the
	  base format. Notably, some compression modifier may introduce an extra
	  plane to store the compression parameters.
	  So use n_planes from GstVideoMeta and pass this explicitly when
	  importing to EGLImage.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5461>

2023-10-13 15:04:22 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Plane size is not known for DMA_DRM
	  For these format, the plane size is not known, simply use 1 when
	  searching for the memory object in the GstBuffer array.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5461>

2023-10-12 16:56:08 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	  egl: Fix direct dmabuf upload without DMABuf caps feature
	  The DMAbuf accept function was ensuring the in_dma_info values was valid if
	  the in_caps have change. But the check was bogus since the in_caps was being
	  modified without a pointer change. As a side effect, on the second accept
	  call, the drm_fourcc was reset to 0, which cause the uploader to fallback.
	  Fix this by ensuring we always have a valid dma_frm info directly in the
	  set_caps() function. Also remove the bogus caps changed check and remove any
	  modification to the info structure and always do that inner checks.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5461>

2023-10-11 10:25:32 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	* gst-libs/gst/gl/egl/gsteglimage.h:
	* gst-libs/gst/gl/gstglupload.c:
	  egl: Fix indirect dmabuf importation of none DRM formats
	  DRM Modifiers are not generically transferrable from a format like NV12 to
	  their indirect shading format (R8 / RG88). So the helper to this do needs
	  to be removed from our API.
	  To make things worse, we support indirect formats that aren't DRM format in
	  the first place. Notably NV12_16L32 (aka MM21) is not (yet) a DRM format. Yet,
	  each plane can be indirectly imported using R8/RG88 and a detiling shader.
	  This patch also removes this constraint restoring zero-copy playback on
	  Mediatek SoC.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5461>

2020-12-17 12:11:45 +0800  Haihua Hu <jared.hu@nxp.com>

	* gst/playback/gstdecodebin2.c:
	* gst/playback/gstplaybin2.c:
	* gst/playback/gsturidecodebin.c:
	* gst/playback/gsturisourcebin.c:
	  playback: Support runtime change connection-speed of adaptivedemux(2)
	  Update connection-speed at runtime in playbin, uridecodebin and decodebin
	  also do the same thing in urisourcebin.
	  With contributions from Philippe Normand <philn@igalia.com> (build fixes and
	  rebase on mono-repo).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4713>

2023-10-10 22:45:30 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  glcolorconvert: add A422/A444 to output switch statement
	  Fixes glcolorconvert writing to A422 or A444 formats.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5455>

2023-10-09 14:48:35 +0200  Piotr Brzeziński <piotr@centricular.com>

	* gst-libs/gst/gl/gstglfilter.c:
	  glfilter: Only add parent meta if inbuf != outbuf
	  This was causing a memory leak in cases like `gltestsrc ! gltransformation scale-x=0.5 ! glimagesink`.
	  Parent meta was being added in assumption that those buffers are different, which was not the case here,
	  creating a reference loop and never freeing the buffer.
	  Co-authored-by: Matthew Waters <matthew@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5445>

2023-10-04 13:28:38 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/videorate/gstvideorate.c:
	  videorate: log when rolling back previous caps
	  We were logging when restoring the current caps but not when it was
	  changed, making logs quite confusing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5433>

2023-09-27 14:50:46 +0200  Arun Raghavan <arun@asymptotic.io>

	* gst/gio/gstgiobasesink.c:
	* gst/gio/gstgiobasesink.h:
	* gst/gio/gstgiosink.c:
	  gio: Drop some trailing whitespace in giobasesink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5372>

2023-09-27 13:45:26 +0200  Arun Raghavan <arun@asymptotic.io>

	* docs/plugins/gst_plugins_cache.json:
	* gst/gio/gstgiobasesink.c:
	* gst/gio/gstgiobasesink.h:
	* gst/gio/gstgiosink.c:
	  giostreamsink: Add a property to close stream on stop()
	  Back in the mists of time[1], we switched `giostream*` elements to not close the
	  stream on stop() so that applications that needed a handle to the stream after
	  the element stopped had it.
	  Unfortunately, we also have cases[2] where waiting for the element to be
	  finalized is too late for the stream to be closed.
	  In order to not change the behaviour of the element, we add a property to allow
	  users to select the desired behaviour.
	  [1]: https://bugzilla.gnome.org/show_bug.cgi?id=587896
	  [2]: gst-plugins-rs#423
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5372>

2023-10-03 15:05:15 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  doc: Update plugin cache for added DMA_DRM format
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5386>

2023-09-29 14:46:35 +0200  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/gstvideoaggregator.c:
	  videoaggregator: Avoid creating caps that are not in the template
	  By using the gst_caps_set_simple() to set the format on all structures, the
	  compositor may create invalid combinations as the caps may contain passthrough
	  caps. Avoid this issue by intersecting the resul with its original.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5386>

2023-09-29 14:45:26 +0200  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* tests/check/elements/videoscale.c:
	  tests: videoscale: Skip passthrough caps
	  There scaler can only passthrough with the caps from the ANY caps filter. This
	  stops testing all the formats twice and avoid failing on DMA_DRM format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5386>

2023-09-27 13:55:33 +0200  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/overlaycomposition/gstoverlaycomposition.c:
	* gst/videoconvertscale/gstvideoconvertscale.c:
	  video-filters: Fix passthrough with ANY caps feature
	  With the support for DRM modifiers, passthrough caps must now include DMA_DRM
	  format, otherwise pipeline using thhese filters unconditionally may fail
	  to negotiate.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5386>

2023-09-24 17:31:45 +0200  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/video-format.c:
	* gst-libs/gst/video/video-format.h:
	* tests/check/libs/video.c:
	  video: Add support for a list of any video formats
	  Adds list of formats that should be used by element in needs to passthrough
	  video. It contains the full list of video format plus DMA_DRM format
	  and will be extended in the future as needed. This patches includes 3 new
	  symbols:
	  - GST_VIDEO_FORMATS_ANY_STR
	  - GST_VIDEO_FORMATS_ANY
	  - gst_video_formats_any()
	  The last one can be used by bindings or for code that prefers having
	  GstVideoFormat values instead of strings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5386>

2023-09-29 15:47:48 +0300  Sebastian Dröge <sebastian@centricular.com>

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

2023-09-27 20:44:45 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/video/video-format.h:
	  video-format: Fix up video formats ordering by quality
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5412>

2023-09-27 17:13:22 +0200  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Fix always true compiler warning
	  There was an if case that was always true. After re-reading the Khronos
	  spec, this case is actually undefined. It is better to just always ignore
	  the format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5410>

2023-01-23 15:39:22 +0100  Aleksandr Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst/videotestsrc/gstvideotestsrc.c:
	  videotestsrc: fix max value for timestamp-offset
	  Compiled for x64 with msvc the timestamp-offset property
	  max limit is 2147483646999999999 that is smaller then
	  the timestamps provided by the rtspsrc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3771>

2022-03-23 13:38:00 +0000  Philippe Normand <philn@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/videoconvertscale/gstvideoconvertscale.c:
	  videoconvertscale: Expose converter config as new property
	  This allows the user to have full control on the conversion parameters. If set,
	  the property takes precedence over the other similar conversion tweaking properties.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2263>

2023-09-05 08:40:49 +0200  Jochen Henneberg <jh@henneberg-systemdesign.com>

	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
	  rtpbasedepayload: Fixes for cleanup of header ext. aggregation
	  * Free delayed buffer on _finalize()
	  * Reset header aggregation cache and delayed buffer on state change
	  from READY_TO_PAUSE
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5278>

2023-09-05 08:39:45 +0200  Jochen Henneberg <jh@henneberg-systemdesign.com>

	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
	  rtpbasedepayload: Only aggregate RTP header extensions if in use
	  Right now we split the RTP header from the current buffer into a new
	  buffer and aggregate those buffers for later processing if the
	  depayloader creates an output buffer.
	  This is cumbersome as it happens even if none of the incoming RTP
	  buffers carries RTP header extensions at all just because header
	  aggregation has been enabled in the depayloader class.
	  This commit will start aggregation only in case that there really are
	  RTP header extensions available on an incoming RTP buffer. The check
	  is trivial and cheap. Once activated we keep aggregation active for
	  all buffers. The active state is reset on state change READY_TO_PAUSE.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5278>

2023-09-27 19:43:59 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglformat.c:
	  gl/format: fix swizzle indices for RGB10A2/BGR10A2
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3003
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5400>

2023-08-23 15:00:27 +0200  Daniel Moberg <daniemob@axis.com>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	* gst-libs/gst/rtsp/gstrtspconnection.h:
	  rtspconnection: Add API for adding extra http request headers
	  This commit adds capability to add custom headers to any http requests
	  during http tunnel mode. If header exist new header will replace old.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5268>

2023-09-21 19:50:31 +0900  Seungha Yang <seungha@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* 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:
	  video: Add GBR 16bits formats
	  Adding 16bits planar RGB formats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5375>

2023-09-21 08:12:47 -0400  Eric <ekc4yz@virginia.edu>

	* gst-libs/gst/rtsp/gstrtspconnection.c:
	  rtspconnection: Ignore trailing whitespace in headers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5358>

2023-09-20 16:07:35 +0200  Michiel Westerbeek <happylinks@gmail.com>

	* gst-libs/gst/audio/audio-resampler.c:
	* gst-libs/gst/video/video-scaler.c:
	  video-scaler, audio-resampler: downgrade 'can't find exact taps' to debug
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5369>

2023-09-07 23:41:36 +0300  Maksym Khomenko <maksym.khomenko@skelia.partners>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: use macros for getters/setters
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5321>

2023-09-13 00:39:52 +0300  Maksym Khomenko <maksym.khomenko@skelia.partners>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/app/gstappsink.c:
	* gst-libs/gst/app/gstappsink.h:
	* tests/check/elements/appsink.c:
	  appsink: add max-time and max-buffers properties
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5321>

2023-09-05 15:06:35 +0300  Maksym Khomenko <maksym.khomenko@skelia.partners>

	* gst-libs/gst/app/gstappsrc.c:
	* gst-libs/gst/app/gstapputils.c:
	* gst-libs/gst/app/gstapputils.h:
	* gst-libs/gst/app/meson.build:
	  appsrc: extract buffering level calculations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5321>

2023-09-11 23:10:00 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglformat.c:
	  glcolorconvert: Calculate correct swizzles for Y410, Y412 formats
	  The GST_VIDEO_FORMAT_Y410, GST_VIDEO_FORMAT_Y412_LE and GST_VIDEO_FORMAT_Y412_BE
	  formats in fact are packed formats, which have just 1 plane. But we have special
	  setting for them rather than using get_single_planar_format_gl_swizzle_order().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5314>

2023-09-01 17:05:11 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Only allow non-linear formats with direct dmabuf uploaders
	  As we don't have any mapping from YUV formats + modifiers to an equivalent
	  emulated format (e.g. NV12 + modifier -> R8+modifier/RG88+modifier), do no
	  allow these formats to be used with the indirect DMABuf uploader.
	  Fixes #2942
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5270>

2023-09-10 17:05:00 +0100  Philippe Normand <philn@igalia.com>

	* ext/gl/gstglsinkbin.c:
	  glsinkbin: Check sink property exists before attempting to read it
	  The same is done in the set_property function. This was noticed when attempting
	  to dump a pipeline containing glsinkbin sink=gtk4paintablesink to dot format.
	  Critical warnings were raised due to the missing force-aspect-ratio property on
	  that sink.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5311>

2023-09-10 19:13:28 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  doc: Update cache after template pixel formats changes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5304>

2023-09-07 22:18:54 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/video-format.h:
	  video: Use generated format order
	  Update the order according to what the generator produces.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5304>

2023-09-07 17:20:52 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/video-format.h:
	  video: Fix unknown big endian format list
	  That list contained multiple formats that did not exists.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5304>

2023-09-06 23:25:39 +1000  Matthew Waters <matthew@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	* gst-libs/gst/gl/gstglformat.c:
	* gst-libs/gst/gl/gstglmemory.h:
	  gl: add support for I420 10/12 bit formats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5292>

2023-09-06 20:27:18 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglmixer.c:
	  gl/mixer: use the pad's video info instead of creating our own
	  The pad's video info will match the actual video format in use.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5290>

2023-09-06 12:00:25 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	  glcontext_egl: Remove spurious mutex unlock
	  The context is not locked in any call site of the "failed" goto.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5291>

2023-08-03 15:08:03 +1000  Matthew Waters <matthew@centricular.com>

	* ext/gl/gstgldownloadelement.c:
	* gst-libs/gst/gl/gstglbufferpool.c:
	* gst-libs/gst/gl/gstglbufferpool.h:
	* gst-libs/gst/gl/gstglupload.c:
	* tests/check/elements/glimagesink.c:
	  gl/bufferpool: add configuration to extend buffer lifetime before reuse
	  Fixes a potential GPU stall if an immediately freed texture/buffer is
	  attempted to be reused immediately by the CPU, e.g. when uploading.
	  Problematic scenario is this:
	  1. element does GPU processing reading from texture
	  2. frees the buffer back to the pool
	  3. pool acquire returns the just released buffer
	  4. GPU processing then has to wait for the previous GPU operation to
	  complete causing a stall
	  If there was a reliable way to know whether a buffer had been finished
	  with across all GPU drivers, we would use it.  However as that does not
	  exist, this workaround is to keep the released buffer unusable until the
	  next released buffer.
	  This is the same approach as is used in the qml (Qt5) elements.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5144>

2023-08-26 15:12:05 +0200  Stephan Seitz <sseitz@nvidia.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	  sdp: fix wrong error message for missing clock-rate in caps
	  When using `gst_sdp_media_set_media_from_caps` on `application/x-rtp` caps
	  without `clock-rate` it wrongly reports missing payload type even if `payload`
	  is present in the caps.
	  This seems to be a copy&paste error from the error message for missing payload
	  type.
	  When using payload=10, both `clock-rate` and some other media properties are
	  defined by the RTP standard so I was wondering whether I could omit `clock-rate`
	  and was confused about the error message.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5250>

2023-08-24 21:29:29 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/video/video-format.h:
	  video: Fix ordering of video formats in GST_VIDEO_FORMATS_ALL_STR
	  This now follows the algorithm again that is described in the
	  documentation and implemented in gstreamer-rs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5243>

2023-08-24 12:03:50 +1000  Matthew Waters <matthew@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	* gst-libs/gst/gl/gstglformat.c:
	* gst-libs/gst/gl/gstglmemory.h:
	  gl: add support for 16-bit A420/A422/A444
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5233>

2023-08-24 11:32:51 +1000  Matthew Waters <matthew@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* 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:
	  video: add support for A420/A422/A444 16-bit formats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5233>

2023-08-23 18:33:51 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  glcolorconvert: fix writing to subsampled yuv formats >8-bit
	  It's not quite enough to have the GstVideoInfo use a RGBA64 format, the
	  GstGLFormat (texture format) also needs to match as that's what actually
	  is used for allocation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5226>

2023-08-23 16:51:41 +1000  Matthew Waters <matthew@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	* gst-libs/gst/gl/gstglformat.c:
	* gst-libs/gst/gl/gstglmemory.h:
	  gl: add support for 12-bit A444/A422/A420
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5226>

2023-08-23 16:33:16 +1000  Matthew Waters <matthew@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* 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:
	  video: add support for 12-bit A420/A422/A444
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5226>

2023-08-23 10:08:33 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* docs/plugins/gst_plugins_cache.json:
	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: proxy urisourcebin::download-dir property
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5227>

2023-08-23 10:04:24 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* docs/plugins/gst_plugins_cache.json:
	* gst/playback/gsturisourcebin.c:
	  urisourcebin: add 'download-dir' property
	  The directory were buffers are downloaded was not documented and not
	  configurable. Users may want to ensure buffers are saved to a specific
	  partition for example.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5227>

2023-08-23 14:06:20 +1000  Matthew Waters <matthew@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	* gst-libs/gst/gl/gstglformat.c:
	* gst-libs/gst/gl/gstglmemory.h:
	  gl: add support A422/A444
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5224>

2023-08-21 21:02:01 +1000  Matthew Waters <matthew@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* 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:
	  video: add support for 8-bit A422/A444
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5213>

2023-08-22 10:58:18 +0900  Hou Qi <qi.hou@nxp.com>

	* gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c:
	  gl: wayland: fix memory leak when do egl_close
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5219>

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

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	  glcolorconvert: add support for 10-bit A420/A422/A444
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5209>

2023-08-21 17:07:58 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglformat.c:
	* gst-libs/gst/gl/gstglmemory.h:
	  gl/format: add support for RGBA64_LE/BE
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5209>

2023-08-19 01:00:16 +1000  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/audio/gstaudiobasesrc.c:
	* gst-libs/gst/audio/gstaudioringbuffer.c:
	* gst-libs/gst/audio/gstaudioringbuffer.h:
	  audio: Make sure to stop ringbuffer on error
	  Add gst_audio_ring_buffer_set_errored() that will mark the
	  ringbuffer as errored only if it is currently started or paused,
	  so gst_audio_ringbuffer_stop() can be sure that the error
	  state means that the ringbuffer was started and needs stop called.
	  Fixes a crash with osxaudiosrc if the source element posts
	  an error, because the ringbuffer would not get stopped and CoreAudio
	  would continue trying to do callbacks.
	  Also, anywhere that modifies the ringbuffer state, make sure to
	  use atomic operations, to guarantee their visibility
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5205>

2023-08-16 13:17:57 +1000  Matthew Waters <matthew@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/gl/gstglformat.c:
	* gst-libs/gst/gl/gstglmemory.h:
	  gl: support uploading/downloading 10-bit A420/A422/A444
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5193>

2023-08-14 23:53:01 +1000  Jan Schmidt <jan@centricular.com>

	* gst/videoconvertscale/gstvideoconvertscale.c:
	  videoconvertscale: Don't passthrough with dither or alpha settings
	  If the configured properties request dithering/quantization be applied
	  or alpha be set/multiplied then don't do passthrough, even if the
	  caps are the same.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5183>

2023-07-06 10:13:06 +0200  Jochen Henneberg <jh@henneberg-systemdesign.com>

	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
	* gst-libs/gst/rtp/gstrtpbasedepayload.h:
	* tests/check/libs/rtpbasedepayload.c:
	* tests/check/libs/rtpdummyhdrextimpl.c:
	  rtpbasedepayload: Fixed HdrExt handling for aggregated output buffer
	  If a depayloader aggregates multiple RTP buffers into one buffer only
	  the last RTP buffer was checked for header extensions. Now the
	  depayloader remembers all RTP packets pushed before a output buffer is
	  pushed and checks all RTP buffers for header extensions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4979>

2023-08-12 10:43:14 +1000  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/audio/gstaudiobasesink.c:
	  audiobasesink: Don't wait on gap events
	  Don't call wait_event() at all for gap events, as basesink will
	  end up waiting for the time that the gap event would be rendered
	  out at the audio device. There's no need to render it at all,
	  just treat it as a handy point to resync the audio if needed,
	  let the ringbuffer render silence, and place the next buffer
	  into the ringbuffer where it belongs.
	  The only thing we really need to do is make sure the ringbuffer
	  and clock are running, and wait for preroll.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2749
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5178>

2023-08-09 17:35:39 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	  sdpmessage: Parse zero clock-rate as default
	  It seems there is at least one broken RTSP server out there that returns a clock-rate of 0.
	  Let's just ignore it and use the default in that case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5171>

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

	* docs/plugins/gst_plugins_cache.json:
	* 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 Mediatek 10bit formats
	  These 10bit formats are identical to NV12_16L32S, but 64bytes of data is being
	  prefixed with 16bytes data with four pixels of lower 2bits per byte. For
	  MT2110T, the lower two bits set so each bytes contains a column of 4 pixels,
	  also describe as tiled lower 2 bits. MT2110T has been chosen as a name to match
	  the vendor chosen name. This format is unlikely to exist for other vendors.
	  For MT2110R, the 2 low bits are in raster order.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3444>

2023-06-02 18:17:25 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/video/video-info-dma.c:
	  video DMA: Add several video formats support
	  Add Y410, Y412, Y210, Y212, BGR10A2, P010 and P012 format support.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5159>

2023-07-19 03:11:52 +0300  Roman Lebedev <lebedev.ri@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/volume/gstvolume.c:
	* gst/volume/gstvolume.h:
	* tests/check/elements/volume.c:
	  volume: support arbitrarily-large positive gains
	  The current limit is `x10`, which allows just `+20 dB` of gain.
	  While it may seem sufficient, this came up as a problem
	  in a real-world, non-specially-engineered situation,
	  in strawberry's EBU R 128 loudness normalization.
	  (https://github.com/strawberrymusicplayer/strawberry/pull/1216)
	  There is an audio track (that was not intentionally engineered that way),
	  that has integrated loudness of `-38 LUFS`,
	  and if we want to normalize it's loudness to e.g. `-16 LUFS`,
	  which is a very reasonable thing to do,
	  we need to apply gain of `+22 dB`,
	  which is larger than `+20 dB`, and we fail...
	  I think it should allow at least `+96 dB` of gain,
	  and therefore should be at `10^(96/20) ~= 63096`.
	  But, i don't see why we need to put any specific restriction
	  on that parameter in the first place, other than the fact
	  that the fixed-point multiplication scheme does not support volume
	  larger than 15x-ish.
	  So let's just implement a floating-point fall-back path
	  that does not involve fixed-point multiplication
	  and lift the restriction altogether?
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5063>

2023-06-02 23:18:35 +0800  He Junyan <junyan.he@intel.com>

	* docs/plugins/gst_plugins_cache.json:
	  doc: Update the caps for glupload related plugins
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3524>

2023-06-01 18:52:28 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Delete the flag of METHOD_FLAG_CAN_ACCEPT_RAW for DMABuf
	  When this flag is enabled, the transform_caps() simply set passthrough
	  to generate the raw caps. This is not correct, because the sink and
	  src have different format/drm-format fields.
	  We already add system memory conversion for DMABuf manner, so no more
	  need for this flag.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3524>

2023-05-25 14:27:57 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: make nvmm upload manner only consider system memory
	  The current _nvmm_upload_transform_caps() only simply apply
	  "memory:NVMM" to all input caps to transform the output caps.
	  This is not precise and may cause problem. For example, if the
	  input caps include:
	  video/x-raw(memory:DMABuf), width=(int)1920, height=(int)1080, \
	  interlace-mode=(string)progressive, multiview-mode=(string)mono, \
	  framerate=(fraction)30/1, drm-format=(string)NV12:0x0100000000000002
	  it will be changed as
	  video/x-raw(memory:GLMemory), width=(int)1920, height=(int)1080, \
	  interlace-mode=(string)progressive, multiview-mode=(string)mono, \
	  framerate=(fraction)30/1, drm-format=(string)NV12:0x0100000000000002
	  For GLMemory kind caps, no drm-format should appear.
	  So we should let it only transforms which it can recognize.
	  And in _nvmm_upload_accept(), we should only accept the "memory:NVMM"
	  feature in input caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3524>

2023-05-25 14:15:33 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: make directviv upload manner only consider system memory
	  The current _directviv_upload_transform_caps() only simply apply
	  "memory:GLMemory" to all input caps to transform the output caps.
	  This is not precise and may cause problem. For example, if the
	  input caps include:
	  video/x-raw(memory:DMABuf), width=(int)1920, height=(int)1080, \
	  interlace-mode=(string)progressive, multiview-mode=(string)mono, \
	  framerate=(fraction)30/1, drm-format=(string)NV12:0x0100000000000002
	  it will be changed as
	  video/x-raw(memory:GLMemory), width=(int)1920, height=(int)1080, \
	  interlace-mode=(string)progressive, multiview-mode=(string)mono, \
	  framerate=(fraction)30/1, drm-format=(string)NV12:0x0100000000000002
	  For GLMemory kind caps, no drm-format should appear.
	  So we should let it only transforms which it can recognize.
	  And in _directviv_upload_accept(), we should only accept the system
	  memory as input caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3524>

2023-05-25 13:18:14 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: make gl memory upload manner only consider memory:GLMemory feature
	  The current _gl_memory_upload_transform_caps() only simply apply
	  "memory:GLMemory" to all input caps to transform the output caps.
	  This is not precise and may cause problem. For example, if the
	  input caps include:
	  video/x-raw(memory:DMABuf), width=(int)1920, height=(int)1080, \
	  interlace-mode=(string)progressive, multiview-mode=(string)mono, \
	  framerate=(fraction)30/1, drm-format=(string)NV12:0x0100000000000002
	  it will be changed as
	  video/x-raw(memory:GLMemory), width=(int)1920, height=(int)1080, \
	  interlace-mode=(string)progressive, multiview-mode=(string)mono, \
	  framerate=(fraction)30/1, drm-format=(string)NV12:0x0100000000000002
	  For GLMemory kind caps, no drm-format should appear.
	  So we should let it only transforms which it can recognize.
	  And in _gl_memory_upload_propose_allocation(), we should only allocate
	  the allocator and buffer pool for the caps with "memory:GLMemory"
	  feature.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3524>

2023-05-25 11:11:40 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: make meta upload manner only consider TextureUploadMeta feature
	  The current _upload_meta_upload_transform_caps() only simply apply
	  "memory:GLMemory" to all input caps to transform the output caps.
	  This is not precise and may cause problem. For example, if the
	  input caps include:
	  video/x-raw(memory:DMABuf), width=(int)1920, height=(int)1080, \
	  interlace-mode=(string)progressive, multiview-mode=(string)mono, \
	  framerate=(fraction)30/1, drm-format=(string)NV12:0x0100000000000002
	  it will be changed as
	  video/x-raw(memory:GLMemory), width=(int)1920, height=(int)1080, \
	  interlace-mode=(string)progressive, multiview-mode=(string)mono, \
	  framerate=(fraction)30/1, drm-format=(string)NV12:0x0100000000000002
	  For GLMemory kind caps, no drm-format should appear.
	  So we should let it only transforms which it can recognize.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3524>

2023-05-25 10:41:21 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: make raw manner only consider system memory
	  The current _raw_data_upload_transform_caps() only simply apply
	  "memory:GLMemory" to all input caps to transform the output caps.
	  This is not precise and may cause problem. For example, if the
	  input caps include:
	  video/x-raw(memory:DMABuf), width=(int)1920, height=(int)1080, \
	  interlace-mode=(string)progressive, multiview-mode=(string)mono, \
	  framerate=(fraction)30/1, drm-format=(string)NV12:0x0100000000000002
	  it will be changed as
	  video/x-raw(memory:GLMemory), width=(int)1920, height=(int)1080, \
	  interlace-mode=(string)progressive, multiview-mode=(string)mono, \
	  framerate=(fraction)30/1, drm-format=(string)NV12:0x0100000000000002
	  For GLMemory kind caps, no drm-format should appear.
	  So we should let it only transforms which it can recognize.
	  We also should recognize the system memory caps in _accept() early, if
	  the input is not system memory, we just return early.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3524>

2023-05-21 17:23:39 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: change the accept function to import dmabuf with modifier
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3524>

2023-05-19 22:44:52 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: enable drm kind caps in glupload plugin for DMA buf
	  Most of the time, the RGB kind formats are OpenGL native supported
	  format which has only one plane. They can be imported at one shot
	  using no matter DIRECT or INDIRECT mode.
	  While YUV kind formats which have multi planes have two ways to import.
	  They can be DIRECT imported, which requires GL_OES_EGL_image_external
	  extension. The output format should be RGBA and TARGET should be set
	  as OES after imported. The other way, they can be INDIRECT imported,
	  which makes each plane as a texture. In this mode, the imported textures
	  have different fourcc from the original format. For example, the NV12
	  format can be imported as a R8 texture for the first plane and RG88
	  texture for the second plane. The output TARGET should be sets as 2D
	  in this mode.
	  When converting sink caps to src caps, we first filter the feature of
	  "video/x-raw(memory:DMABuf)" and system memory. Then Based on the
	  external_only flag (INDIRECT mode does not care while DIRECT mode cares),
	  we transform the drm-format into the gst video format.
	  When converting src caps into sink caps, we first filter the correct
	  TARGET(INDIRECT mode contains 2D only while DIRECT mode contains 2D,
	  OES or both of them) gstructure. Then Based on the include_external flag
	  (INDIRECT mode always true while DIRECT mode depends on TARGET), we
	  transform the gst video format into drm-format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3524>

2023-06-01 18:34:31 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Add a helper function of _filter_caps_with_features()
	  We sometimes need to filter some special feature for the next step.
	  This helper function can help us to filter out un-needed features
	  in a caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3524>

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

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: add a helper function to convert drm formats into gst formats
	  Co-authored-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3524>

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

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: add a helper function to convert gst formats into drm formats
	  Co-authored-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3524>

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

	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	* gst-libs/gst/gl/egl/gstglcontext_egl.h:
	  gl: add a method to check whether DMA modifier is supported in EGL
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3524>

2023-08-01 15:14:29 +0100  Philippe Normand <philn@igalia.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Ensure the slot is unlinked before linking to decoder
	  When switching from a raw stream to an encoded stream we need to make sure the
	  slot is unlinked, there is code in place for this but it wasn't triggered
	  because the slot being reconfigured wasn't advertised as linked beforehand.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5126>

2023-07-31 17:31:46 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	  glcolorconvert: Fix syntax for GLSL shaders
	  Shader compilation was failing on macOS:
	  gstglslstage.c:519:_compile_shader:<glslstage1> fragment shader compilation failed:
	  ERROR: 0:10: 'input_swizzle' : syntax error: Array size must appear after variable name
	  Co-authored-by: Matthew Waters <matthew@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5123>

2023-07-20 20:58:15 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	  glcolorconvert: expose the swizzle glsl functions
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5109>

2023-07-20 20:56:34 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglcolorconvert.h:
	  glcolorconvert: expose the YUV->RGB glsl function
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5109>

2023-07-20 20:54:06 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	* gst-libs/gst/gl/gstglformat.c:
	* gst-libs/gst/gl/gstglformat.h:
	  gl: expose calculating swizzle indices to/from RGBA/YUVA
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5109>

2023-07-20 20:50:26 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglformat.c:
	* gst-libs/gst/gl/gstglformat.h:
	  gl/format: add helper for returning the number of components in a GL format
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5109>

2023-07-07 17:32:48 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/gstglcolorconvert.c:
	* tests/check/libs/gstglcolorconvert.c:
	  gl/colorconvert: use swizzle indices instead of chars
	  Allows using a uniform to control which value goes where and not rewrite
	  the shader for every format combination.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5109>

2023-07-27 17:52:18 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/gl/eagl/gstglcontext_eagl.m:
	* gst-libs/gst/gl/eagl/gstglwindow_eagl.m:
	  gl/eagl: ignore OpenGLES deprecation on ios
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5111>

2023-07-26 23:49:05 +0800  He Junyan <junyan.he@intel.com>

	* tests/check/libs/video.c:
	  test: video: Fix the caps comparing typo for video drm test case
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5107>

2023-07-26 23:47:42 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/video/video-info-dma.c:
	  video: dma: let gst_video_info_dma_drm_to_caps() return caps with DMABuf feature
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5107>

2023-07-25 21:36:19 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/video/video-format.h:
	  video: Add GST_VIDEO_FORMATS_STR to declare all video formats as a string
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5094>

2023-07-21 00:47:32 +0900  Seungha Yang <seungha@centricular.com>

	* tests/check/elements/compositor.c:
	  tests: compositor: Fix race in buffer unref
	  Don't assume that compositor will output only single buffer
	  for single input buffer. If buffer's running time is not completly
	  aligned to output buffer running time or duration, compositor
	  can generate multiple buffers. If that happens, two threads,
	  one is aggregator output thread and main thread were trying
	  to modify buffer in this test. Clear the buffer after
	  shutting down pipeline to avoid the race.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2836
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5081>

2023-07-21 00:46:55 +0900  Seungha Yang <seungha@centricular.com>

	* tests/check/elements/compositor.c:
	  tests: compositor: Remove whitespace
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5081>

2023-07-19 20:25:37 +0300  Roman Lebedev <lebedev.ri@gmail.com>

	* tests/check/elements/volume.c:
	  volume: print actual produced values, not bytes
	  `map.data` is a pointer to a byte array,
	  we need to first cast it to the pointer to the expected element type,
	  otherwise we will get not what we are expecting.
	  I have stumbled into this in https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5063#note_2007447
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5075>

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

2023-07-10 17:44:40 +0800  He Junyan <junyan.he@intel.com>

	* tests/check/elements/videoconvert.c:
	* tests/check/elements/videoscale.c:
	* tests/check/libs/video.c:
	* tests/interactive/benchmark-video-conversion.c:
	  test: Update all video related tests because of adding DMA_DRM format
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4981>

2023-04-19 12:46:10 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/video/video-info-dma.h:
	  video: add GST_VIDEO_DMA_DRM_CAPS_MAKE
	  It is requried this macro because it doesn't define format field, neither
	  drm-format which is suppossed to be generated in run-time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4981>

2023-07-10 18:30:36 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/video/video-info-dma.c:
	  video: dma: Set DMA caps' format field to DMA_DRM
	  The current way of dma caps uses the drm-format to replace the orginal
	  format field. The absence of format field means it can accept all formats.
	  It causes problems when clipping with other old DMA or video/x-raw(ANY)
	  caps, the result will contain both format field and drm-format field,
	  which is not valid DMA caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4981>

2023-07-10 18:21:27 +0800  He Junyan <junyan.he@intel.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:
	  video: Add new GST_VIDEO_FORMAT_DMA_DRM video format
	  This GST_VIDEO_FORMAT_DMA_DRM is introduced for DMABuf kind feature
	  usage. It represent the DMA DRM kind memory. And like the ENCODED
	  format, it should not be interpreted and mapped as normal video format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4981>

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

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

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

2023-07-18 11:39:34 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3-parse.c:
	* gst/playback/gstdecodebin3.c:
	  decodebin3: Rename and refactor function
	  It was doing a bit more than it did initially, update the name accordingly.
	  Refactor slightly for visibility
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5052>

2023-07-18 11:36:27 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Remove dead code
	  Was never used since initial commit
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5052>

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

2023-07-13 17:34:26 +0800  Hou Qi <qi.hou@nxp.com>

	* gst-libs/gst/riff/riff-media.c:
	  riff: add more h265 fourcc formats
	  Regards hevc/HEVC/hev1/HEV1 fourcc as video/x-h265 format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5031>

2023-07-07 21:49:35 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst-libs/gst/video/video-converter.c:
	  base/video-converter: downgrade log level
	  We don't need to know about routine operation of video conversion
	  at GST_DEBUG=5 level.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4993>

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

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

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

	* tests/check/meson.build:
	  meson: Always use forward slashes in defines with paths
	  Fixes the following build failure on MSYS2:
	  ```
	  ../subprojects/gstreamer/tests/check/elements/filesrc.c: In function 'test_seeking':
	  ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: error: incomplete universal character name \U
	  107 |   g_object_set (G_OBJECT (src), "location", TESTFILE, NULL);
	  |                                                     ^
	  ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\A'
	  ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\g'
	  ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\s'
	  ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\g'
	  ../subprojects/gstreamer/tests/check/elements/filesrc.c:107:53: warning: unknown escape sequence: '\c'
	  ```
	  Due to: `-DTESTFILE=\"C:\\Users\\Administrator\[...]`
	  https://gitlab.freedesktop.org/nirbheek/gstreamer/-/jobs/45317733
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5018>

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

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

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

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

2023-07-10 14:44:58 +0200  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/audio/gstdsd.c:
	* gst-libs/gst/audio/gstdsd.h:
	* gst-libs/gst/audio/gstdsdformat.c:
	  dsd: Fix documentation parameters
	  There were some inconsistencies between documentation and function signatures
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5002>

2023-07-10 18:48:53 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/video/gstvideosink.c:
	  Revert "base: videosink: Avoid positing message on the bus before being constructed"
	  This reverts commit 893e4ed0ddfefd8e9f6664f70ef08eec4027c3f9.
	  This caused regressions in existing elements which override/set things
	  like QoS and such in their own init functions. If the base class does
	  this in ::constructed() now it will override the subclass settings
	  again with its own, which can have unintended side-effects.
	  Case in point is gdkpixbufsink which disabled QoS there, and this
	  patch would reliably make the unit test fail in valgrind because
	  now frames are dropped because of QoS (when QoS should really be
	  disabled).
	  Fixes #2794
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5006>

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

	* gst-libs/gst/video/gstvideosink.c:
	  base: videosink: Avoid positing message on the bus before being constructed
	  `gst_base_sink_set_processing_deadline` can post messages 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/4975>

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

2023-07-05 19:55:17 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/video/video-format.h:
	  video: Move NV12_10LE40_4L4 before the BE variant on LE platforms
	  This keeps the sorting rules for the format list intact.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4974>

2023-07-05 16:29:16 +1000  Matthew Waters <matthew@centricular.com>

	* gst/videorate/gstvideorate.c:
	* tests/check/elements/videorate.c:
	  videorate: properly handle variable framerate input and drop-only=true
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4969>

2023-07-05 09:26:46 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstdsd.c:
	  audio: Extend guards in functions to also cover negative/unknown out of bounds DSD formats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4966>

2023-07-05 09:23:36 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstdsdformat.h:
	  audio: Change value of GST_DSD_FORMAT_UNKNOWN to 0
	  GObject and calloc() etc are initializing memory to 0, so using 0 as the
	  unknown variant makes it more likely that mistakingly zero-initialized
	  memory does not end up with a wrong DSD format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4966>

2023-07-04 17:34:21 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/audio/gstdsdformat.h:
	  audio: Make GST_DSD_FORMAT_UNKNOWN -1 instead of 0xffffffff
	  0xffffffff is mapped to 2**32 - 1 but GLib enums are signed ints so this
	  value is out of range and causes problems with bindings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4966>

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

2023-07-03 16:02:40 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Refuse sub uri in gapless mode
	  This is too problematic to handle properly right now.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2550 and
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2605
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4958>

2023-07-03 10:02:53 +0800  Hou Qi <qi.hou@nxp.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: fix memory leak when remove candidate decoder
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4955>

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

2023-07-01 00:41:13 +1000  Jan Schmidt <jan@centricular.com>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: Release priv->lock before pushing segment
	  Don't hold the private appsrc lock while pushing out a segment
	  event, which may block indefinitely.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4951>

2023-06-26 23:09:45 +0200  Jonas Kvinge <jonas@jkvinge.net>

	* gst-libs/gst/pbutils/gstdiscoverer.c:
	  discoverer: Only call handle_current_async if still processing
	  When gst_element_set_state is called in _setup_locked and errors, the
	  callback is already processed before we reach handle_current_async, and
	  the timer is started even though it's finished processing, which results
	  in a NULL pointer crash later in async_timeout_cb.
	  To fix this, we check that it's still processing before calling
	  handle_current_async.
	  Fixes #1683
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4936>

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

	* gst/playback/gsturidecodebin.c:
	  uridecodebin: Handle non dynamic sources with several source pads
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4881>

2023-06-26 11:53:47 +0200  Alicia Boya García <aboya@igalia.com>

	* tests/validate/meson.build:
	  validate tests: include debugutilsbad to be able to use testsrcbin
	  Fixes test: validate.uridecodebin.expose_raw_pad_caps
	  testsrcbin (currently part of debugutilsbad) is an useful element for
	  validate tests.
	  validate.uridecodebin.expose_raw_pad_caps makes use of it.
	  Unfortunately, because validate tests with GStreamer only run with
	  whitelisted plugins and `debugutilsbad` wasn't in the whitelist, the
	  test was failing and being auto-skipped.
	  This patch adds debugutilsbad to the whitelists used by validate tests
	  in subprojects with a validate/meson.build.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4931>

2023-05-31 11:42:28 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst/videoconvertscale/gstvideoconvert.c:
	* gst/videoconvertscale/gstvideoconvertscale.c:
	* gst/videoconvertscale/gstvideoconvertscale.h:
	* gst/videoconvertscale/gstvideoscale.c:
	  videoconvertscale: Remove the restriction on ANY memory
	  Our pad templates already expose ANY feature and the code supports that
	  case even if only for the passthrough, we should not disable that feature.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4733>

2023-06-18 16:16:59 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/video/video-info-dma.c:
	* gst-libs/gst/video/video-info-dma.h:
	  video-info-dma: add gst_video_info_dma_drm_to_video_info()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4883>

2023-02-05 18:00:30 +0100  Carlos Rafael Giani <crg7475@mailbox.org>

	* docs/plugins/gst_plugins_cache.json:
	* ext/alsa/gstalsa.c:
	* ext/alsa/gstalsasink.c:
	  alsa: Add support for DSD audio
	  Code is partially based on the DSD of Robert Tiemann <rtie@gmx.de>:
	  https://gitlab.freedesktop.org/rtiemann/gstreamer/-/tree/dsd
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3901>

2023-02-05 18:05:15 +0100  Carlos Rafael Giani <crg7475@mailbox.org>

	* gst-libs/gst/audio/gstaudiosink.c:
	  audiosink: Add support for DSD data
	  Code is partially based on the DSD of Robert Tiemann <rtie@gmx.de>:
	  https://gitlab.freedesktop.org/rtiemann/gstreamer/-/tree/dsd
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3901>

2023-05-19 15:57:46 +0200  Carlos Rafael Giani <crg7475@mailbox.org>

	* gst-libs/gst/audio/gstaudioringbuffer.c:
	* gst-libs/gst/audio/gstaudioringbuffer.h:
	  audioringbuffer: Add support for DSD data
	  Code is partially based on the DSD of Robert Tiemann <rtie@gmx.de>:
	  https://gitlab.freedesktop.org/rtiemann/gstreamer/-/tree/dsd
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3901>

2022-10-18 12:09:46 +0200  Carlos Rafael Giani <crg7475@mailbox.org>

	* gst-libs/gst/audio/gstaudioringbuffer.h:
	  audioringbuffer: Introduce accessor macros
	  This follows the design ideas behind GstVideoInfo to provide an API
	  capable of hiding any underlying ABI compatibility mechanisms.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3901>

2022-10-17 10:00:07 +0200  Carlos Rafael Giani <crg7475@mailbox.org>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/audio/audio.h:
	* gst-libs/gst/audio/gstdsd.c:
	* gst-libs/gst/audio/gstdsd.h:
	* gst-libs/gst/audio/gstdsdformat.c:
	* gst-libs/gst/audio/gstdsdformat.h:
	* gst-libs/gst/audio/meson.build:
	* gst/dsd/gstdsdconvert.c:
	* gst/dsd/gstdsdconvert.h:
	* gst/dsd/meson.build:
	* gst/dsd/plugin.c:
	* gst/meson.build:
	* meson_options.txt:
	* tests/check/libs/dsd.c:
	* tests/check/meson.build:
	  dsd: Add code for DSD audio support
	  Related to:
	  https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/972
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3901>

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

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

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

2023-06-03 18:31:08 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	  gl: Add a print function to dump all EGL image drm format
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4877>

2023-06-15 10:41:26 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

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

2022-11-11 15:10:02 -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-info.c:
	* tests/check/elements/videoscale.c:
	* tests/check/libs/video.c:
	  video: Add NV12_10LE32_4L4 tiled format
	  This 10bit format is identical to NV12_4L4, but uses NV12_10LE40 format
	  internally. In show, the tiles is made af 4 rows of 5 bytes, which contains
	  4 fully packed 10bit values.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3447>

2022-11-21 14:55:42 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/video/video-format.c:
	  video: Fix tile info UV width
	  The width in pixel should consider a UV pair as 1 pixel, fix the metadata
	  accordingly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3447>

2023-05-19 20:44:33 +0200  Marek Vasut <marex@denx.de>

	* docs/plugins/gst_plugins_cache.json:
	* gst/videotestsrc/gstvideotestsrc.c:
	* gst/videotestsrc/gstvideotestsrc.h:
	* gst/videotestsrc/videotestsrc.c:
	* gst/videotestsrc/videotestsrc.h:
	  videotestsrc: Support video/x-bayer 10/12/14/16 bit depths
	  Add support for generation of 10/12/14/16 bit bayer test pattern.
	  The implementation is rather simplistic, just take the ARGB
	  input, generate 16-bit data out of it instead of 8-bit, shift
	  them as required by the output bitness, and apply endian swap.
	  Example usage:
	  ```
	  $ gst-launch-1.0 videotestsrc ! \
	  video/x-bayer,width=512,height=512,format=bggr12le ! \
	  bayer2rgb ! \
	  video/x-raw,format=RGBA64_LE ! \
	  videoconvert ! \
	  autovideosink
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4686>

2023-06-10 14:53:52 +0200  Marek Vasut <marex@denx.de>

	* gst/videotestsrc/videotestsrc.c:
	  videotestsrc: Simplify ARGB to Bayer conversion
	  Simplify the conversion to bayer pattern as suggested by Nicolas Dufresne.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4686>

2023-05-19 20:38:39 +0200  Marek Vasut <marex@denx.de>

	* gst/videotestsrc/gstvideotestsrc.c:
	  videotestsrc: Move video/x-bayer caps parsing in one place
	  Move all the video/x-bayer caps parsing into one place,
	  gst_video_test_src_parse_caps(), no functional change.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4686>

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

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

2022-03-31 14:59:01 +0200  Xabier Rodriguez Calvar <calvaris@igalia.com>

	* gst/playback/gstplaybin2.c:
	  playbin2: improve transference doc of get-*-pad actions
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2081>

2023-05-14 13:33:05 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/video/convertframe.c:
	  video: convertframe: Add a debug category
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4629>

2023-05-14 13:31:55 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/video/convertframe.c:
	  video: convertframe: Fix annotation of gst_video_convert_sample()
	  The returned sample is pulled from appsink which transfers its ownership.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4629>

2023-05-14 13:29:23 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/app/gstappsink.c:
	  appsink: Adjust annotations of pull- signals
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4629>

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

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

2023-06-06 21:41:25 +0900  Seungha Yang <seungha@centricular.com>

	* tests/check/elements/compositor.c:
	  tests: compositor: Add tests for data flow after EOS scenario
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4783>

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

2023-05-26 14:34:45 +0800  Hou Qi <qi.hou@nxp.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: filter error message and store latency message for candidate decoder
	  If the GST_MESSAGE_SRC of error message belongs to candidate decoders,
	  filter the error message and don't forward it as there might be a
	  following candidate decoder that can be used.
	  If the GST_MESSAGE_SRC of error message belongs to candidate decoders,
	  store the latency message and handle it after decoder is accepted.
	  This is to avoid the selection lock failure if decodebin3 needs to
	  handle latency message for candidate decoders when sending sticky event.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4677>

2023-05-29 13:24:40 +0800  Hou Qi <qi.hou@nxp.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: try candidate decoders to select the first one that works
	  Send sticky events to the new created decoder after it switches
	  to PAUSED state. It it fails, just skip this decoder and try the
	  next one until finding one that works. Otherwise remove this
	  failing stream after trying all decoders and no one can work.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4677>

2023-05-22 15:32:47 +0800  Hou Qi <qi.hou@nxp.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: send sticky event to decoder after setting it to PAUSED
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4677>

2023-05-22 15:08:36 +0800  Hou Qi <qi.hou@nxp.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: add function remove_decoder_link()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4677>

2023-05-22 14:57:23 +0800  Hou Qi <qi.hou@nxp.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: copy sticky event
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4677>

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

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

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

2023-03-14 11:49:57 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* tools/meson.build:
	  tools: add bad/ges/omx tools to gst_tools
	  In static mode, these tools must be built
	  after the gstreamer-full library to use
	  the symbol gst_init_static_plugins.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4128>

2023-03-07 14:05:54 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* tests/meson.build:
	* tools/meson.build:
	  gstreamer-full: add full static support
	  Allow a project to use gstreamer-full as a static library
	  and link to create a binary without dependencies.
	  Introduce the option 'gst-full-target-type' to
	  select the build type, dynamic(default) or static.
	  In gstreamer-full/static build configuration gstreamer (gst.c)
	  needs the symbol gst_init_static_plugins which is defined
	  in gstreamer-full.
	  All the tests and examples are linking with gstreamer but the
	  symbol gst_init_static_plugins is only defined in the gstreamer-full
	  library. gstreamer-full can not be built first as it needs to know what plugins
	  will be built.
	  One option would be to build all the examples and tests after
	  gstreamer-full as the tools.
	  Disable tools build in subprojects too as it will be built at the end of
	  build process.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4128>

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

2023-05-31 13:39:59 +1000  Matthew Waters <matthew@centricular.com>

	* tests/check/pipelines/gl-launch-lines.c:
	  gl/tests: fix unused-but-set warning if built with gles2-only
	  ../tests/check/pipelines/gl-launch-lines.c:314:12: error: variable 'have_gldifferencematte'
	  set but not used [-Werror,-Wunused-but-set-variable]
	  gboolean have_gldifferencematte;
	  ^
	  1 error generated.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4741>

2023-04-17 20:16:02 +0200  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	* gst-libs/gst/gl/egl/gsteglimage.h:
	  gl: EGL image methods to import dmabufs with modifiers
	  This patch adds gst_egl_image_from_dmabuf_direct_target_with_dma_drm() and
	  add gst_egl_image_from_dmabuf_with_dma_drm() functions
	  New function gst_egl_image_from_dmabuf_direct_target_with_dma_drm(), where
	  gst_egl_image_from_dmabuf_direct_target() is a specialization of the first.
	  And gst_egl_image_from_dmabuf() is a specialization of new function
	  gst_egl_image_from_dmabuf_with_dma_drm()
	  Co-authored-by: Victor Jaquez <vjaquez@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4680>

2023-04-17 19:34:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	* gst-libs/gst/gl/egl/gsteglimage_private.h:
	  gl: add gst_egl_image_check_dmabuf_direct_with_dma_drm()
	  It internally uses gst_gl_context_egl_get_dma_formats() instead of fetching
	  modifiers by itself.
	  Thus gst_egl_image_check_dmabuf_direct() is a decorator of this new function.
	  Co-authored-by: He Junyan <junyan.he@intel.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4680>

2023-05-26 10:41:54 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/video/video-info-dma.c:
	* gst-libs/gst/video/video-info-dma.h:
	* tests/check/libs/video.c:
	  video-info-dma: add gst_video_info_dma_drm_from_video_info()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4680>

2023-05-03 17:46:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/gl/egl/gsteglimage.c:
	  gl: replace _drm_direct_fourcc_from_info()
	  .. with gst_video_dma_drm_fourcc_from_format()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4680>

2023-04-17 18:05:23 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/gl/egl/gstglcontext_egl.c:
	* gst-libs/gst/gl/egl/gstglcontext_egl.h:
	  gl: add a method to get DMA formats and modifiers
	  By calling the internal function gst_gl_context_egl_fetch_dma_formats() the an
	  array of structures holding a DMA fourcc format and its modifiers (another array of
	  structure holing modifier and if it's external only) will be stored.
	  Users would call gst_gl_context_egl_get_format_modifiers() to get the array of
	  modifiers of a specific DMA fourcc format.
	  Co-authored-by: He Junyan <junyan.he@intel.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4680>

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

2023-05-25 14:48:11 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/gl/gstglupload.c:
	  glupload: Fix a memory leak point in gst_egl_image_cache_unref()
	  The image cache itself should be freed when ref_count is 0.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4723>

2023-05-24 16:39:54 +0200  Edward Hervey <edward@centricular.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: Handle changes in stream type
	  While decodebin3 could handle changes in inputs (ex: changing codecs), there was
	  still one limitation which was when changing between sources which had
	  non-intersecting stream types (ex: switching from a video-only source to a
	  audio-only source). While the decoder *could* change to the proper codec ... it
	  would carry on using a `DecodebinOutputStream` associated to that stream
	  type (and therefore with pads with the wrong name).
	  In order to handle this:
	  * We notify the `MultiQueueSlot` of the change in `GstStreamType` if it already
	  had an associated inputstream (ex: the one associated with the static sink
	  pad)
	  * We detect such changes on the output of multiqueue as soon as
	  possible (i.e. when we get the GST_EVENT_STREAM_START for the new stream type)
	  by discarding the associated output.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1669
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4703>

2023-03-08 09:20:24 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Also re-use decodebin3 static sink pad
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4703>

2023-05-10 08:42:15 +0200  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: Only use subframes internal values in subframe mode
	  This clarifies the usage of it, and fixes issues with reverse playback.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4694>

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

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: Remove unused internal fields
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2552
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4694>

2023-05-07 09:27:16 +0200  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: refactor and document finish_frame some more
	  * Move the in-flight iteration and handling code into the main block
	  * Document the intent a bit more
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4694>

2023-05-05 14:38:56 +0200  Edward Hervey <edward@centricular.com>

	* gst-libs/gst/video/gstvideodecoder.c:
	  videodecoder: Refactor post-decode PTS/DTS recovery code
	  The code was a bit hard to follow. Use clear/explicity variable names and
	  comment a bit more on what is going on.
	  Also fold the double list iteration into a single one
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4694>

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

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

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

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: notify when 'current-(sub)uri' properties are updated
	  Assume both uri and suburi are changed when the main item changes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4543>

2023-03-03 15:06:37 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/encoding/gstencodebasebin.c:
	  encodebin: Plug a parser before timestamper
	  Timestamper might not support all stream formats so we need to make sure
	  some element is able to convert between those formats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4122>

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

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

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

	* gst-libs/gst/sdp/gstsdpmessage.c:
	* gst-libs/gst/sdp/gstsdpmessage.h:
	* tests/check/libs/sdp.c:
	  sdp: Add API to remove media from a SDP message
	  Based on initial patch by Stefano Buora.
	  https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/579
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4670>

2023-05-19 15:50:11 +0200  Ruben Gonzalez <rgonzalez@fluendo.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/gl/gstglcolorscale.c:
	* ext/gl/gstglstereosplit.c:
	* ext/gl/gstgltransformation.c:
	* ext/gl/gstglviewconvert.c:
	  doc: Fix newline char between authors
	  Found running `gst-inspect-1.0 -a |& grep -v ":" | grep @`
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4682>

2023-05-18 16:08:03 +0800  Haihua Hu <jared.hu@nxp.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: avoid identity, sinkpad, parsebin leakage when reset input
	  when reset_input, need remove identity/parsebin from decodebin3
	  when release_pad, need call free or reset input if collection
	  didn't change
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4664>

2023-05-18 16:55:27 +1000  Matthew Waters <matthew@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/gl/gstglbasemixer.c:
	* gst-libs/gst/gl/gstglbasemixer.h:
	* gst-libs/gst/gl/gstglmixer.c:
	* gst-libs/gst/gl/gstglmixer.h:
	  gl: update docs for mixer move
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4608>

2023-05-11 17:41:24 +1000  Matthew Waters <matthew@centricular.com>

	* ext/gl/gstglmosaic.c:
	* ext/gl/gstglvideomixer.c:
	* gst-libs/gst/gl/gstglmixer.c:
	* gst-libs/gst/gl/gstglmixer.h:
	  glmixer: don't add rgba templates by default
	  Subclasses may want to override the pad template with different formats
	  or with a different pad subclass.
	  The original beahviour is still available by calling
	  gst_gl_mixer_class_add_rgba_pad_templates() in _class_init() of the
	  subclass.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4608>

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

	* ext/gl/gstglmosaic.c:
	* ext/gl/gstglvideomixer.c:
	* gst-libs/gst/gl/gstglmixer.c:
	* gst-libs/gst/gl/gstglmixer.h:
	  glmixer: remove set_caps() vfunc
	  All of its implementors can be moved to gl_start/stop() from
	  GstGLBaseMixer instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4608>

2023-05-08 17:50:23 +1000  Matthew Waters <matthew@centricular.com>

	* ext/gl/gstglmosaic.c:
	* gst-libs/gst/gl/gstglmixer.c:
	* gst-libs/gst/gl/gstglmixer.h:
	  glmixer: remove reset vfunc
	  This functionality is covered by GstGLBaseMixer's gl_stop() vfunc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4608>

2023-05-08 13:46:34 +1000  Matthew Waters <matthew@centricular.com>

	* ext/gl/gstglmosaic.c:
	* ext/gl/gstglstereomix.c:
	* ext/gl/gstglstereomix.h:
	* ext/gl/gstglvideomixer.c:
	* gst-libs/gst/gl/gl.h:
	* gst-libs/gst/gl/gstglbasemixer.c:
	* gst-libs/gst/gl/gstglbasemixer.h:
	* gst-libs/gst/gl/gstglmixer.c:
	* gst-libs/gst/gl/gstglmixer.h:
	  gl/mixer: make fbo instance field private and provide accessor function
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4608>

2023-05-08 13:40:01 +1000  Matthew Waters <matthew@centricular.com>

	* ext/gl/gstglmosaic.c:
	* ext/gl/gstglmosaic.h:
	* ext/gl/gstglstereomix.h:
	* ext/gl/gstglvideomixer.h:
	* ext/gl/meson.build:
	* gst-libs/gst/gl/gstglbasemixer.c:
	* gst-libs/gst/gl/gstglbasemixer.h:
	* gst-libs/gst/gl/gstglmixer.c:
	* gst-libs/gst/gl/gstglmixer.h:
	* gst-libs/gst/gl/meson.build:
	  gl: move gl(base)mixer to library
	  For use by applications/libraries outside of the opengl plugin.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4608>

2023-05-17 22:58:46 +0200  Ruben Gonzalez <rgonzalez@fluendo.com>

	* README.md:
	  README.md: fix current version
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4662>

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

2021-06-22 12:28:03 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* ext/theora/gsttheoradec.c:
	* tests/check/elements/theoradec.c:
	* tests/check/meson.build:
	* tests/files/theora.ogg:
	  theoradec: make sure the selected pool accepts the new config
	  If gst_buffer_pool_set_config() fails then the pool will use its old
	  config. This may include different width or height when
	  pic_width/pic_height != frame_width/frame_height.
	  As a result, the assertions in theora_handle_image() will fail.
	  So check the result of gst_buffer_pool_set_config() and only use the pool
	  if it succeeds. Otherwise let the parrent decide_allocation() create a new
	  pool.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4600>

2021-06-23 12:11:28 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* ext/theora/gsttheoradec.c:
	  theoradec: add another assert to check the buffer size
	  If the buffer has no video meta then the meta is created from the local
	  data. In this case, the other asserts don't actually check anything. So add
	  another one to ensure that the buffer is actually large enough.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4600>

2021-06-22 12:20:05 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* ext/theora/gsttheoradec.c:
	  theoradec: remove unused codec state variable
	  The last user of this state was removed in 9a541157cf1c "theoradec: Fix
	  decoding in the presence of GstVideoCropMeta".
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4600>

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

2023-05-12 15:22:41 +0800  Yinhang Liu <yinhang.liu@intel.com>

	* gst-libs/gst/video/video-info-dma.c:
	  video: video-info-dma: Fix return value
	  The return value of gst_video_info_dma_drm_new_from_caps is a pointer type,
	  and should not return a boolean type. Fix this issue.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4612>

2023-05-11 20:01:45 +0200  Piotr Brzeziński <piotr@centricular.com>

	* gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
	  macos: Set activation policy in osxvideosink and glimagesink
	  Upon creating a window, glimagesink and osxvideosink now set the policy to
	  NSApplicationActivationPolicyRegular, which lets us show an icon in the Dock
	  for convenience and appear in the top menu bar like other apps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4573>

2023-05-10 22:35:27 +0200  Piotr Brzeziński <piotr@centricular.com>

	* gst-libs/gst/gl/cocoa/gstgldisplay_cocoa.m:
	  macos: Remove old NSApp workaround related code
	  This is no longer needed since the introduction of `gst_macos_main()` in 1.22.
	  Before that existed, we had a patch for GLib in Cerbero, which did work but made it
	  impossible to update GLib at all. The code being removed was a fail-safe in case of
	  running without said patch being applied. It's no longer needed, since for macOS
	  we just wrap our GStreamer with an NSApplication using `gst_macos_main()`.
	  Warnings will be displayed if no NSApp/NSRunLoop is found wherever needed,
	  pointing the user towards using the new API.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4366>

2023-05-08 11:59:03 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/pbutils/gstdiscoverer-types.c:
	  pbutils: discoverer: Mark gst_discoverer_stream_info_get_stream_id() as nullable
	  It can return NULL in certain situations.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4572>

2023-04-27 03:50:44 +1000  Jan Schmidt <jan@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/gl/gstglmixerbin.c:
	* ext/gl/gstglmixerbin.h:
	* ext/gl/gstglvideomixer.c:
	  glvideomixer: Implement force-live and min-upstream-latency properties
	  Proxy the force-live and min-upstream-latency propertyies to the internal
	  glvideomixerelement at construction time. force-live has to be set
	  during construction of the glvideomixerelement, so that has to be
	  deferred until the _constructed() call. Make sure that all other
	  existing proxied properties will still get set once the element
	  is created.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4494>

2023-04-21 17:56:06 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/pbutils/gstdiscoverer.c:
	  discover: Avoid double freee when creating info from cache file
	  Passing ownership to the function as the created info is made owner.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911>

2023-04-21 17:53:34 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/pbutils/gstdiscoverer.c:
	  discoverer: Add serializing unknown stream type support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911>

2023-02-07 16:59:59 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/pbutils/gstdiscoverer.c:
	* gst-libs/gst/pbutils/gstdiscoverer.h:
	  discoverer: Add a signal to retrieve serialized GstDiscovererInfo
	  This allows user to serialize the GstDiscovererInfo in other places
	  than the default folder, like a database when running web services for
	  examples.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911>

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

2023-03-23 15:58:45 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/pbutils/descriptions.c:
	  pbutils: add video/x-ivf to descriptions
	  Add missing description for video/x-ivf spotted
	  with gst-discoverer-1.0
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4248>

2023-04-20 17:08:31 +0800  Hou Qi <qi.hou@nxp.com>

	* gst/playback/gstdecodebin3.c:
	  decodebin3: fix segment fault when print decoder log
	  Segment fault happens when cannot find decoder but try to print
	  decoder name. Need to check the decoder.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4461>

2023-03-19 15:35:29 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/meson.build:
	  doc: Avoid shelling out to hotdoc to generate plugins config files
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4479>

2023-04-04 22:03:18 +0300  Jordan Petridis <jordan@centricular.com>

	* gst-libs/gst/video/video-frame.c:
	  build: appease clang warning
	  Clang complains about these variables being (possibly) unitialized, even
	  when they are assigned to NULL or proper value inside the macro.
	  Might as well initialize them to avoid the warning.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4281>

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

	* gst-libs/gst/allocators/meson.build:
	* gst-libs/gst/app/meson.build:
	* gst-libs/gst/audio/meson.build:
	* gst-libs/gst/gl/meson.build:
	* gst-libs/gst/pbutils/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:
	  gir: Checkout all .gir files and check that they are updated on the CI
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3010>

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

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

2023-04-18 15:28:30 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/gl/meson.build:
	  meson: Add a wrap file for libgudev
	  And allow fallback to it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4447>

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

2023-04-13 01:11:51 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/videoconvertscale/gstvideoconvertscale.c:
	  docs: mark GstVideoConvertScale as plugin API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4408>

2023-04-13 00:54:41 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/gl/gstglsinkbin.c:
	  docs: mark GstGLSinkBin as plugin API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4408>

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

2022-11-22 19:57:55 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/sdp/gstsdpmessage.c:
	* tests/check/libs/sdp.c:
	  sdpmessage: Don't set "source-filter" to caps
	  Multiple "source-filter" can exist, and it requires special handling
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3485>

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

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

2023-04-11 11:48:09 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/gl/gstglbasesrc.c:
	  glbasesrc: Reverse order of error/debug messages
	  Addressing follow-up review from Tim in !4222, the first string is meant to be
	  shown to the user and should be translatable. The second one is more suited for
	  debugging purposes and should not be translated.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4389>

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

2023-04-06 14:19:28 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/app/gstappsink.c:
	* gst-libs/gst/app/gstappsink.h:
	  appsink: Use a class handler callback instead of vfunc for `propose-allocation`
	  There would otherwise be no padding left in the class struct anymore and
	  we might need it for something else in the future.
	  A class handler callback can be overridden by subclasses via
	  `g_signal_override_class_handler()` and chained up via
	  `g_signal_chain_from_overridden_handler()`.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2422
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4356>

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

	* gst-libs/gst/allocators/gstdrmdumb.c:
	  allocators: drm-dumb: Annotate allocator instance parameters with the correct type
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4360>

2023-04-06 15:41:27 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/allocators/gstdrmdumb.c:
	  allocators: drm-dumb: Annotate device-path as a filename
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4358>

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

2023-03-31 15:36:53 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst-libs/gst/app/gstappsrc.c:
	* tests/check/elements/appsrc.c:
	  appsrc: properly handle events received before sending the segment
	  The first serialized events that can be send on a src pad are a CAPS and then a
	  SEGMENT event.
	  When handling events from user in appsrc, we used to send a segment
	  automatically if the SEGMENT has not been sent yet.
	  This breaks if the CAPS event was not send either as we were now sending
	  a SEGMENT before the CAPS.
	  Fix this by delaying such events until the CAPS has been configured.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4297>

2023-04-04 14:05:17 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* tests/check/elements/appsrc.c:
	  tests: appsrc: test_appsrc_send_custom_event: check that event was actually received
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4297>

2023-03-31 11:35:11 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst-libs/gst/app/gstappsrc.c:
	  appsrc: log when popping caps and buffer (list) from queue
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4297>

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

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

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

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

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

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

2023-02-23 09:58:54 +0000  Hugo Svirak <hugosvirak@gmail.com>

	* gst/videorate/gstvideorate.c:
	  videorate: Fix incorrect drop value when drop_only is true
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4052>

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

2023-03-16 14:38:56 +0800  Shengqi Yu <shengqi.yu@mediatek.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/app/gstappsink.c:
	* gst-libs/gst/app/gstappsink.h:
	* tests/check/elements/appsink.c:
	  appsink: add propose_allocation support
	  Adding propose_allocation is to meet the requirement of Application to
	  request buffers. Application sometimes need to create buffer pool
	  and request buffers to maintain buffer management itself, and Gstreamer plugin
	  import Application's buffers to use. So, add propose_allocation in
	  appsink like waylandsink and kmssink etc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4185>

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

2023-03-22 12:33:27 +0100  Tobias Rapp <t.rapp@noa-archive.com>

	* gst-libs/gst/pbutils/descriptions.c:
	* gst-libs/gst/riff/riff-media.c:
	* tests/check/libs/pbutils.c:
	  gst-plugins-base: Add FourCC and type description for FFVHuff video
	  The FFVHuff video codec is a FFmpeg-specific variant of the lossless
	  HuffYUV codec with increased coverage of supported pixel formats and bit
	  depths.
	  Fixes #2389.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4250>

2023-03-15 19:36:27 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/opus/gstopusdec.c:
	  opusdec: Add support for decoding >8 channels
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4180>

2023-03-15 19:31:47 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/opus/gstopusenc.c:
	  opusenc: Use downstream channel configuration when using channel mapping family 255
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4180>

2023-03-15 19:30:53 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/opus/gstopusenc.c:
	  opusenc: Add support for encoding >8 channels and unknown/unpositioned layouts
	  This was kind of implemented before but missing a few pieces to actually
	  work correctly.
	  These configurations are mapped to channel mapping family 255.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4180>

2023-03-23 07:39:48 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Remove play items that were never connected
	  This is a follow-up of the previous commit that enabled support for redirection.
	  The problem is that the urisourcebin that emitted the error redirection never
	  produced any pads, and therefore was never linked to decodebin3. This resulted
	  in the code waiting for that (output) item to finally switch over ... which will
	  never happen.
	  The fix is done by removing it early if it was never connected to decodebin3.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4252>

2022-12-07 14:30:23 +0000  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/gl/win32/gstglwindow_win32.c:
	  vulkan: gl: change symbols to static
	  Change window_proc and subclass_proc to static to avoid symbols
	  duplication.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4246>

2023-03-22 10:58:59 +0100  Edward Hervey <edward@centricular.com>

	* gst/playback/gstplaybin3.c:
	* gst/playback/gsturidecodebin3.c:
	  uridecodebin3: Handle redirection errors
	  This is done by doing an immediate switch to the redirection URI if compatible.
	  Fixes #1562
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4242>

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

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

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

	* ext/theora/gsttheoraenc.c:
	  plugins: Fix wrong enum usage
	  gcc 13 now detects conflicting enum usages. Fix the various cases where it was wrong
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4225>

2023-03-19 11:13:46 +0000  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/gl/gstglbasesrc.c:
	  glbasesrc: Reword error message
	  The initial glbasesrc implementation was based on a refactoring of gltestsrc,
	  but one error message wasn't updated accordingly and remained specific to the
	  gltestsrc implementation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4222>

2023-03-19 13:00:38 +0100  Piotr Brzeziński <piotr@centricular.com>

	* meson.build:
	  allocators: Only build DRM allocator on Linux
	  This was causing issues when building the monorepo on macOS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4208>

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

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

2023-03-16 15:04:51 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/video/video-info-dma.c:
	  video: remove spurious gst_caps_make_writable()
	  In gst_video_info_dma_drm_to_caps() the caps are newly created, so there's no
	  need for make it writable. In gst_video_info_dma_drm_from_caps() a copy of the
	  caps is done, which implies a gst_caps_make_writable().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4195>

2023-03-15 18:51:58 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ext/theora/gsttheoraenc.c:
	* gst-libs/gst/allocators/gstdrmdumb.c:
	* gst-libs/gst/audio/audio-channel-mixer.c:
	* gst-libs/gst/audio/gstaudiodecoder.c:
	* gst-libs/gst/fft/kiss_fft_f32.c:
	* gst-libs/gst/fft/kiss_fft_f64.c:
	* gst-libs/gst/fft/kiss_fft_s16.c:
	* gst-libs/gst/fft/kiss_fft_s32.c:
	* gst-libs/gst/fft/kiss_fftr_f32.c:
	* gst-libs/gst/fft/kiss_fftr_f64.c:
	* gst-libs/gst/fft/kiss_fftr_s16.c:
	* gst-libs/gst/fft/kiss_fftr_s32.c:
	* gst-libs/gst/gl/gstglfilter.c:
	* gst-libs/gst/gl/wayland/gstgldisplay_wayland.c:
	* gst-libs/gst/pbutils/missing-plugins.c:
	* gst-libs/gst/riff/riff-media.c:
	* gst-libs/gst/rtsp/gstrtspurl.c:
	* gst-libs/gst/tag/gsttagdemux.c:
	* gst-libs/gst/tag/id3v2.c:
	* gst-libs/gst/tag/mklicensestables.c:
	* gst-libs/gst/video/video-multiview.c:
	* gst-libs/gst/video/video-overlay-composition.c:
	* gst-libs/gst/video/video-scaler.c:
	* gst-libs/gst/video/videoorientation.c:
	* gst/encoding/gstencodebasebin.c:
	* gst/playback/gstplaybackutils.c:
	* gst/playback/gstplaysink.c:
	* gst/playback/gstplaysinkconvertbin.c:
	* gst/playback/gstsubtitleoverlay.c:
	* gst/subparse/gstsubparse.c:
	* gst/subparse/gstsubparseelement.c:
	* gst/typefind/gsttypefindfunctions.c:
	* tests/check/elements/audioconvert.c:
	* tests/check/elements/opus.c:
	* tests/check/elements/videotestsrc.c:
	* tests/check/libs/gstglmemory.c:
	* tests/check/libs/tag.c:
	* tests/examples/gl/gtk/3dvideo/mviewwidget.c:
	  gst-plugins-base: re-indent with GNU indent 2.2.12
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4182>

2023-02-08 16:50:10 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/allocators/allocators.h:
	* gst-libs/gst/allocators/gstdrmdumb.c:
	* gst-libs/gst/allocators/gstdrmdumb.h:
	* gst-libs/gst/allocators/meson.build:
	* meson.build:
	* meson_options.txt:
	  allocators: Add a DRM Dumb Allocator
	  This allow allocating memory from any DRM driver that supports this
	  method. It additionally allow exporting DMABuf. This allocator depends
	  on libdrm and will be stubbed if the dependency is missing. This is derived
	  from kmssink dumb allocator.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3801>

2023-03-10 12:09:53 +0100  Carlos Falgueras García <cfalgueras@fluendo.com>

	* ext/gl/gstgluploadelement.h:
	  gluploadelement: Delete unused types
	  `*GstGLUploadElementPrivate` is not defined or used anywhere.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4145>

2023-03-10 17:09:29 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* tests/check/libs/video.c:
	  tests: add tests for GstVideoInfoDmaDrm
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4043>

2022-09-15 16:19:37 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/video/meson.build:
	* gst-libs/gst/video/video-info-dma.c:
	* gst-libs/gst/video/video-info-dma.h:
	* gst-libs/gst/video/video.h:
	  video: add dma format and info helper functions
	  From the dmabuf.md[1], "drm-format" field in caps will replace the
	  traditional "format" field, so it needs to import some new helper
	  functions to support this.
	  1. https://gstreamer.freedesktop.org/documentation/additional/design/dmabuf.html
	  Co-authored-by: Yinhang Liu <yinhang.liu@intel.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4043>

2023-01-27 17:39:51 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/pango/gsttimeoverlay.c:
	* ext/pango/gsttimeoverlay.h:
	  timeoverlay: add buffer-count mode
	  This mode would allow to display the buffer
	  number received by the timeoverlay element.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3827>

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

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

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

2023-02-25 20:40:42 +0900  Seungha Yang <seungha@centricular.com>

	* tests/examples/overlay/win32-videooverlay.c:
	  examples: win32-videooverlay: Fix for window freezing
	  Read and flush console buffer from the console thread immediately,
	  instead of main thread. Otherwise (if main thread is busy)
	  the console thread will keep adding idle source and then main thread
	  will be unresponsive.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4067>

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

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

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

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

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

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

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

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

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

2023-01-30 07:59:34 +0100  Philipp Zabel <p.zabel@pengutronix.de>

	* gst-libs/gst/gl/gstglupload.c:
	  gleglimage: cache EGL images per DmabufUpload
	  Do not store cached EGL images in GstMemory QData. Instead, use a
	  per-DmabufUpload GHashTable to store cache entries with a weak
	  reference to the GstMemory.
	  This allows two glupload elements on separate tee branches to have
	  their own EGL image cache. For this pipeline:
	  gst-launch-1.0 v4l2src ! tee name=t \
	  t. ! queue ! glupload ! fakesink
	  t. ! queue ! glupload ! fakesink
	  this gets rid of the occasional critical error message:
	  GStreamer-CRITICAL **: 08:26:33.194: gst_mini_object_unref: assertion 'GST_MINI_OBJECT_REFCOUNT_VALUE (mini_object) > 0' failed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3880>

2023-02-06 16:16:14 +0100  Anders Hellerup Madsen <ahem@github.com>

	* ext/gl/gstglstereosplit.c:
	  glstereosplit: use gst_display_ensure_context
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3843>

2023-02-06 16:15:46 +0100  Anders Hellerup Madsen <ahem@github.com>

	* gst-libs/gst/gl/gstglbasefilter.c:
	  glbasefilter: use gst_display_ensure_context
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3843>

2023-02-06 16:15:06 +0100  Anders Hellerup Madsen <ahem@github.com>

	* ext/gl/gstglbasemixer.c:
	  glbasemixer: use gst_display_ensure_context
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3843>

2023-02-06 16:14:34 +0100  Anders Hellerup Madsen <ahem@github.com>

	* gst-libs/gst/gl/gstglbasesrc.c:
	  glbasesrc: use gst_display_ensure_context
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3843>

2023-02-06 16:14:07 +0100  Anders Hellerup Madsen <ahem@github.com>

	* gst-libs/gst/gl/gstgldisplay.c:
	* gst-libs/gst/gl/gstgldisplay.h:
	  gldisplay: Add gst_gl_display_ensure_context
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/439
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3843>

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

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

2023-01-20 08:20:12 -0300  Georges Basile Stavracas Neto <georges.stavracas@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/gl/gstglvideomixer.c:
	  glvideomixer: Add xalign and yalign properties
	  With the addition of the 'keep-aspect-ratio' sizing policy, content
	  that doesn't fit the target size is downscaled according to its own
	  aspect ratio to fit that target size, and centered.
	  Centering might not always be the desired behaviour, however;
	  consumers of this API might want to align the resulting picture to
	  the left or to the right.
	  To account for any of these cases, add two new properties to the
	  glvideomixer pad: xalign, and yalign. They operate on normalized
	  coordinates (0.0 for start, 1.0 for end), and default to 0.5 which
	  centers content.
	  <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3762>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3762>

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

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

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

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

2023-01-19 20:32:29 -0300  Georges Basile Stavracas Neto <georges.stavracas@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/gl/gstglvideomixer.c:
	* ext/gl/gstglvideomixer.h:
	  glvideomixer: Add 'sizing-policy' pad property
	  The sizing policy allows selecting between the current behavior,
	  which deforms the texture to fill the width and height of the
	  pad; and a new 'keep-aspect-ratio' sizing policy, which fits the
	  texture within the rectangle respecting its original aspect ratio.
	  The reason for this is that this allows avoiding extra elements
	  in the pipeline, and reduces the number of buffer passing through
	  the pipeline.
	  Most of this code is a direct port of the sizing policy handling
	  of the compositor element, except it is adapted to operate on GL
	  texture coordinates through the projection matrix.
	  <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3760>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3760>

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

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

2023-01-24 09:28:18 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/encoding/gstencodebasebin.c:
	* gst/encoding/gstencodebasebin.h:
	  encodebin: Add timestamper elements when available
	  Timestamper elements are made to ensure stream timestamp are clean and
	  ready to be used by muxers, we should make use of them to cleanup
	  streams before muxing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3779>

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

	* gst-libs/gst/gl/gbm/gstgl_gbm_utils.c:
	* gst-libs/gst/gl/gstglcontext.c:
	* gst-libs/gst/gl/gstgloverlaycompositor.c:
	* gst-libs/gst/gl/gstglupload.c:
	* gst-libs/gst/gl/gstglwindow.c:
	  libs: gl: drop use of GSlice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>

2023-01-08 17:10:57 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/video/convertframe.c:
	* gst-libs/gst/video/gstvideodecoder.c:
	* gst-libs/gst/video/gstvideoencoder.c:
	* gst-libs/gst/video/gstvideoutils.c:
	* gst-libs/gst/video/video-chroma.c:
	* gst-libs/gst/video/video-converter.c:
	* gst-libs/gst/video/video-dither.c:
	* gst-libs/gst/video/video-info.c:
	* gst-libs/gst/video/video-overlay-composition.c:
	* gst-libs/gst/video/video-scaler.c:
	  libs: video: drop use of GSlice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>

2023-01-08 17:05:23 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/tag/gstexiftag.c:
	* gst-libs/gst/tag/gstxmptag.c:
	* gst-libs/gst/tag/xmpwriter.c:
	  tag: drop use of GSlice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>

2023-01-08 17:02:27 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/sdp/gstmikey.c:
	  libs: sdp: drop use of GSlice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>

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

	* gst-libs/gst/pbutils/gstdiscoverer.c:
	  libs: pbutils: drop use of GSlice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>

2023-01-08 16:59:02 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst-libs/gst/audio/audio-buffer.c:
	* 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-quantize.c:
	* gst-libs/gst/audio/audio-resampler.c:
	* gst-libs/gst/audio/gstaudiometa.c:
	* gst-libs/gst/audio/gstaudioringbuffer.c:
	  libs: audio: drop use of GSlice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>

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

	* gst-libs/gst/allocators/gstfdmemory.c:
	  fdmemory: drop use of GSlice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>

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

	* tests/check/libs/rtp.c:
	  tests: rtp: drop use of GSlice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>

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

	* sys/ximage/ximagepool.c:
	* sys/xvimage/xvcontext.c:
	* sys/xvimage/xvimageallocator.c:
	  ximage, xvimage: drop use of GSlice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>

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

	* gst/typefind/gsttypefindfunctionsdata.c:
	* gst/typefind/gsttypefindfunctionsriff.c:
	* gst/typefind/gsttypefindfunctionsstartwith.c:
	  typefindfunctions: drop use of GSlice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>

2023-01-08 15:59:55 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/encoding/gstencodebasebin.c:
	  encodebin: drop use of GSlice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>

2023-01-08 15:57:42 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/playback/gstdecodebin2.c:
	* gst/playback/gstparsebin.c:
	* gst/playback/gstplaybin2.c:
	* gst/playback/gstplaybin3.c:
	* gst/playback/gststreamsynchronizer.c:
	* gst/playback/gsturidecodebin.c:
	* gst/playback/gsturidecodebin3.c:
	  playback: drop use of GSlice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>

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

	* ext/ogg/gstoggdemux.c:
	* ext/ogg/gstoggparse.c:
	  oggdemux: drop use of GSlice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695>

2023-01-23 23:04:53 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.22.0 ===

