=== release 1.24.5 ===

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

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

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

	* gst/dtmf/gstrtpdtmfsrc.c:
	  rtpdtmfsrc: minor logging clean-up
	  Only serialise event structure for debug logging purposes
	  if logging is actually enabled.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7062>

2024-06-19 01:55:57 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/dtmf/gstrtpdtmfsrc.c:
	* tests/check/elements/dtmf.c:
	  rtpdtmfsrc: fix leak when shutting down mid-event
	  .. and update rtpdtmfdepay unit test to trigger
	  the potential leak more reliably (without the fix).
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3633
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7062>

2024-06-14 16:50:12 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/elements/dtmf.c:
	  rtpdtmfdepay: add unit test for caps fixation issue with downstream audioconvert
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7048>

2024-06-14 16:20:31 +0100  Tim-Philipp Müller <tim@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/dtmf/gstrtpdtmfdepay.c:
	* tests/check/elements/dtmf.c:
	  rtpdtmfdepay: fix caps negotiation with audioconvert
	  Specify "layout" field in src template to make sure it's
	  set and gets fixated properly if the downstream element
	  supports both interleaved and non-interleaved caps.
	  Fixes
	  gst_pad_set_caps: assertion 'caps != NULL && gst_caps_is_fixed (caps)' failed
	  critical with e.g.
	  gst-launch-1.0 rtpdtmfsrc ! rtpdtmfdepay ! audioconvert ! fakesink
	  Not that the layout really matters in our case since we always
	  output mono anyway, but non-interleaved requires adding AudioMeta,
	  so this is the easiest fix.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7048>

2024-06-13 18:23:46 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: fix invalid seqnum assertions
	  Upon fatal errors the loop function will first post an error message
	  then push out an EOS event.
	  An application may react immediately to the error message by setting the
	  state of the pipeline to NULL, meaning by the time we push out the EOS
	  event PAUSED_TO_READY may have reset the seek seqnum to -1.
	  While this is harmless, the assertion when setting an invalid seqnum
	  isn't tidy, fix this by simply not resetting to INVALID as it serves no
	  practical purpose and the next READY_TO_PAUSED will select a new seqnum
	  anyway.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7034>

2024-06-11 19:03:21 +0000  Jakub Vaněk <linuxtardis@gmail.com>

	* sys/v4l2/gstv4l2src.c:
	  v4l2src: Interpret V4L2 report of sync loss as video signal loss
	  Certain V4L2 drivers can report that a video receiver is seeing
	  some signal, but that it is unable to synchronize to it. IOW: the driver
	  can sometimes report V4L2_IN_ST_NO_SYNC and not report V4L2_IN_ST_NO_SIGNAL.
	  In particular, I've seen the tc358743 (HDMI-to-CSI2 converter) driver
	  sometimes report this when deployed to a fleet of embedded Raspberry Pis.
	  The relevant kernel code is in [1]. The video output is not practically
	  usable when V4L2_IN_ST_NO_SYNC is reported (only visually corrupted frames,
	  sometimes with random "snow", are received). I assume that this happens when
	  either the HDMI cable is poorly plugged in or damaged or when a CSI2 FFC
	  cable is used and is damaged.
	  The change in this commit is useful for detecting this working-but-not-really
	  condition in application code. Applications already listening for the "Signal lost"
	  message will gain the ability to handle this condition.
	  There seem to be more V4L2 error flags like this, see [2]. However, I do not
	  have practical experience with them and adding only V4L2_IN_ST_NO_SYNC seems
	  like a safer option.
	  [1]: https://github.com/raspberrypi/linux/blob/be8498ee21aa/drivers/media/i2c/tc358743.c#L1534
	  [2]: https://www.kernel.org/doc/html/v6.6/userspace-api/media/v4l/vidioc-enuminput.html
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7027>

2024-06-04 15:30:37 +0000  Corentin Damman <c.damman@intopix.com>

	* ext/qt6/gstqsg6material.cc:
	  gstqsg6material: fix RGB format support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6997>

2024-05-27 14:14:24 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Only update from the Content-Base header in the initial OPTION / DESCRIBE response
	  Some servers send a new content base in the SETUP response, which is
	  just the non-aggregate control URL of the individual streams.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3563
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6982>

2024-05-26 14:03:11 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Handle the case of `*` as session-wide control URL from the SDP
	  Just like the comment above says this is supposed to indicate that the
	  same URL should be used as for the connection so far. If encountering
	  this case simply do nothing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6982>

2024-05-26 14:02:12 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Also handle `rtsps://` and similar URLs as absolute in other places
	  Previously a direct comparison with `rtsp://` was performed, which
	  didn't catch cases like `rtsps://`.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3563
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6982>

2024-05-26 13:00:02 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Don't try the SETUP workaround for broken servers with absolute control URIs
	  Previously only control URIs that started with "rtsp://" were ignored
	  but it makes more sense to ignore all absolute URIs.
	  gst_uri_is_valid() conveniently checks for exactly that.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3563
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6982>

2024-05-28 13:04:20 +0200  Edward Hervey <bilboed@bilboed.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2: Minor refactoring of starting segment check
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6961>

2024-04-15 08:47:12 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2: Be more tolerant when matching segments with PDT
	  Some servers might not provide 100% matching PDT when doing updates, or accross
	  variants. This would cause the code matching segments using PDT to fail if the
	  segment PDT was 1 microsecond (or whatever small value) before the candidate
	  segment. And would pick the (wrong) following segment as the matching one.
	  In order to be more tolerant when matching, we instead check whether the
	  candidate segment is within the first segment of the segment we are trying to
	  match.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6961>

2024-04-12 15:53:08 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux-stream.c:
	  hlsdemux2: Fix failure to find a replacement segment on resync
	  If we end up with a segment with an internal time that varies from the supposed
	  one, this could be for two reasons:
	  * We guess-timated the wrong segment to go to when advancing or switching
	  variants. In that case we try to find the actual segment to go to (just before
	  this change).
	  * There was a complete playlist change (for whatever reason) and we can't find a
	  replacement. In that case we want to carry on playback from this position but
	  need to remember that we moved (by setting the stream to DISCONT, and
	  resetting the new mapping).
	  Fixes playback on several broken stream
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6961>

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

	* ext/adaptivedemux2/hls/gsthlsdemux-stream.c:
	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	* ext/adaptivedemux2/hls/gsthlsdemux.h:
	  hlsdemux2: Refactor update of GstHLSTimeMap values
	  This was also missing transferring the PDT if present
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6961>

2024-04-12 15:48:34 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2: Fix parsing of EXT-X-DISCONTINUITY-SEQUENCE:0
	  Since the default value of `m3u8->discont_sequence` (before parsing of the
	  playlist data) was 0 .. we would never properly detect the presence of that
	  field if it was present with a value of 0.
	  This would later on cause havoc in playlist synchronization where we would
	  assume it didn't have a discontinuity sequence specified (whereas it did, and it
	  was 0).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6961>

2024-04-12 15:45:16 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux-stream.c:
	  hlsdemux2: Increase tolerance for discontinuity detection
	  A lot of streams will do a poor job of estimating proper duration of fragments
	  in the playlist, but over several fragments have it correct.
	  Instead of constantly trying to realign the estimated stream time, allow for a
	  more realistic tolerance of 3-4 video frames
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6961>

2024-04-11 16:37:36 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux-stream.c:
	  hlsdemux2: Ensure a discont will be set when resetting for lost sync
	  This is to ensures we inform the demuxer/parsers that what follows is not contiguous
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6961>

2024-04-11 15:30:27 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux-stream.c:
	* ext/adaptivedemux2/hls/gsthlsdemux-stream.h:
	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	* ext/adaptivedemux2/hls/m3u8.c:
	* ext/adaptivedemux2/hls/m3u8.h:
	  hlsdemux2: Fix handling of variant switching and playlist updates
	  When updating playlists, we want to know whether the updated playlist is
	  continuous with the previous one. That is : if we advance, will the next
	  fragment need to have the DISCONT buffer set on it or not.
	  If that happens (because we switched variants, or the playlist all of a sudden
	  changed) we remember that there is a pending discont for the next fragment. That
	  will be used and resetted the next time we get the fragment information.
	  Previously this was only partially done. And it was racy because it was set
	  directly on `GstAdaptiveDemux2Stream->discont` when a playlist was updated,
	  instead of when the next fragment was prepared.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6961>

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

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	  adaptivedemux2: Only set DISCONT on beginning of fragments
	  This avoids accidentally setting it in the middle of a fragment, which could
	  cause havoc in demuxer/parsers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6961>

2024-04-08 16:13:13 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2: Fix getting starting segment on live playlists
	  When dealing with live streams, the function was assuming that all segments of
	  the playlist had valid stream_time. But that isn't TRUE, for example in the case
	  of failing to synchronize playlists.
	  Fixes losing sync due to not being able to match playlist on updates
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6961>

2024-05-13 11:08:15 +0300  Sergey Krivohatskiy <s.krivohatskiy@gmail.com>

	* gst/audioparsers/gstflacparse.c:
	  flacparse: fix buffer overflow in gst_flac_parse_frame_is_valid
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6960>

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-good.doap:
	* meson.build:
	  Release 1.24.4

2024-05-21 17:49:33 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/gtk/gstgtkbasesink.c:
	  gtk: Fail initialization of the sink if GTK4 is already initialized in the same process
	  Initializing GTK3 and GTK4 in the same process does not work and is not
	  supported.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6905>

2024-05-21 17:49:42 +0200  Piotr Brzeziński <piotr@centricular.com>

	* sys/osxaudio/gstosxcoreaudio.c:
	* sys/osxaudio/gstosxcoreaudio.h:
	* sys/osxaudio/gstosxcoreaudiocommon.h:
	  osxaudio: Avoid using private APIs on iOS
	  Turns out AudioConvertHostTimeToNanos and AudioGetCurrentHostTime are macOS-only APIs, which prevents apps using
	  GStreamer on iOS from being accepted into App Store.
	  This commit replaces those functions with a manual version of what they do - mach_absolute_time() for the current time,
	  and data from mach_timebase_info() at the beginning to convert host timestamps to nanoseconds.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6899>

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

	* gst/level/gstlevel.c:
	  level: Don't post a message on EOS without a valid audio info
	  If EOS is received before caps, e.g. because of an error, then rate and
	  number of channels would be 0 and some divisions by zero would happen.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6828>

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

	* tests/check/elements/qtdemux.c:
	  qtdemux: Use `G_GUINT64_CONSTANT` when creating test caps
	  Otherwise this fails on 32 bit platforms.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3521
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6806>

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-good.doap:
	* meson.build:
	  Release 1.24.3

2024-04-22 10:40:13 -0400  William Wedler <william.wedler@videoray.com>

	* ext/qt/qtitem.cc:
	  fix: qmlglsink: video content resizes to new item size
	  Mark geometry dirty when the item rectangle changes in the
	  QtGLVideoItem::updatePaintNode method. This allows changes in the bounding
	  rectangle to be applied to the scene graph geometry node.
	  Fixes #3493
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6759>

2024-04-22 10:35:18 -0400  William Wedler <william.wedler@videoray.com>

	* ext/qt6/qt6glitem.cc:
	  fix: qml6glsink: video content resizes to new item size
	  Mark geometry dirty when the item rectangle changes in the
	  QtGLVideoItem::updatePaintNode method. This allows changes in the bounding
	  rectangle to be applied to the scene graph geometry node.
	  Fixes #3493
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6759>

2024-02-19 21:49:21 +0800  Tim Blechmann <tim@klingt.org>

	* sys/v4l2/v4l2_calls.c:
	  v4l2: silence valgrind warning
	  Valgrind complains about uninitialized memory used in an ioctl
	  Syscall param ioctl(VKI_V4L2_G_TUNER).reserved points to uninitialised byte(s)
	  at 0x719294F: ioctl (ioctl.c:36)
	  by 0x3126A817: gst_v4l2_fill_lists (v4l2_calls.c:185)
	  by 0x3126A817: gst_v4l2_open (v4l2_calls.c:589)
	  by 0x3123F1C2: gst_v4l2_device_provider_probe_device (gstv4l2deviceprovider.c:122)
	  by 0x3123F648: gst_v4l2_device_provider_device_from_udev (gstv4l2deviceprovider.c:301)
	  by 0x3123F998: provider_thread (gstv4l2deviceprovider.c:395)
	  by 0x796FA50: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7200.4)
	  by 0x710CAC2: start_thread (pthread_create.c:442)
	  by 0x719DA03: clone (clone.S:100)
	  Address 0x44008a34 is on thread 11's stack
	  in frame #1, created by gst_v4l2_open (v4l2_calls.c:524)
	  Uninitialised value was created by a stack allocation
	  at 0x3126A024: gst_v4l2_open (v4l2_calls.c:524)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6761>

2024-04-26 09:45:22 +0800  Tim Blechmann <tim@klingt.org>

	* ext/soup/gstsouphttpsrc.c:
	  soup: fix thread name
	  thread names should be below 16char, otherwise they won't be shown on
	  linux.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6739>

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

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Answer GST_QUERY_CAPS
	  If we have a generic caps, we can answer the query.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6716>

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

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Refactor output slot creation
	  Set as much information as possible on the slot (including the associated
	  track) *before* the associated source pad is added to the element.
	  We need this so that incoming event/queries can be replied to if they are
	  received when adding the pad
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6716>

2024-04-05 17:30:01 +0200  Philipp Zabel <p.zabel@pengutronix.de>

	* sys/v4l2/gstv4l2allocator.c:
	  v4l2bufferpool: Ensure freshly created buffers are not marked as queued
	  Otherwise, if we run in to the copy case, this can cause these
	  groups to stay around with queued flag set, but never actually
	  queued, until gst_v4l2_allocator_flush() is called, which then
	  erroneously frees the associated memories, causing the release
	  function to decrement the allocator refcount where it was never
	  incremented, resulting in early allocator disposal, and either
	  deadlock or use after free.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6685>

2024-04-12 17:17:53 +0800  Qian Hu (胡骞) <qian.hu@mediatek.com>

	* docs/gst_plugins_cache.json:
	* sys/v4l2/gstv4l2object.c:
	  v4l2: add multiplane y42b(yuv422m)
	  for some jpg file, mediatek v4l2 jpeg decoder
	  hardware produce multi plane YUV 4:2:2 data
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6657>

2024-04-09 11:29:46 +0900  Hou Qi <qi.hou@nxp.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	  v4l2bufferpool: queue back the buffer flagged LAST but empty
	  Some decoder drivers need to wait enough capture buffers before
	  starting to decode. But the dequeued buffer flag LAST but empty
	  has no chance to queue back to driver, which makes decode hang
	  after seek. So need to queue back such kind of buffer to driver.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6649>

2024-04-05 14:09:18 +0200  Philipp Zabel <p.zabel@pengutronix.de>

	* sys/v4l2/gstv4l2bufferpool.c:
	  v4l2: bufferpool: Drop writable check on output pool process
	  Output buffers don't have to be writable. Accepting read-only buffers
	  from the V4L2 buffer pool allows upstream elements to write directly
	  into the V4L2 buffers without triggering a CPU copy into a new buffer
	  from the same V4L2 buffer pool every time.
	  Tested with the vivid output device:
	  GST_DEBUG=GST_PERFORMANCE:7 gst-launch-1.0 videotestsrc ! v4l2sink device=/dev/video5
	  With this change, gst_v4l2_buffer_pool_dqbuf() must be allowed to not
	  resize read-only memories of output buffers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6648>

2024-04-13 10:57:43 +0100  Philippe Normand <philn@igalia.com>

	* ext/vpx/gstvpxcompat.h:
	* ext/vpx/gstvpxdec.c:
	  vpxdec: Include vpx error details in errors and warnings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6636>

2024-04-13 10:56:29 +0100  Philippe Normand <philn@igalia.com>

	* ext/vpx/gstvp9enc.c:
	  vp9enc: Include vpx error details in errors and warnings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6636>

2024-04-13 10:55:55 +0100  Philippe Normand <philn@igalia.com>

	* ext/vpx/gstvpxcompat.h:
	* ext/vpx/gstvpxenc.c:
	  vpxenc: Rename GST_VPX_WARN to GST_VPX_ENC_WARN
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6636>

2024-04-12 16:57:00 +0800  Qian Hu (胡骞) <qian.hu@mediatek.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: fix wrong full_range offset when parsing colr box
	  use colr_data[18] >> 7 to get full range information, instead
	  of colr_data[17] >> 7
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6634>

2024-04-11 10:10:19 -0400  William Wedler <william.wedler@videoray.com>

	* ext/qt6/qt6glitem.cc:
	  fix: qml6glsink: Notify that the returned QSGNode node has changes
	  Sets the QSGNode::DirtyMaterial bit when a new buffer is used for the material's texture
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3469
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6633>

2024-04-07 19:39:58 +0900  Jimmy Ohn <yongjin.ohn@lge.com>

	* ext/pulse/pulsedeviceprovider.c:
	  pulsedeviceprovider: Add is_default_device_name function and missing lock
	  Add is_default_device_name function to simplify compare device type
	  name and fix the missing lock when accessing default_sink_name and
	  default_source_name.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6599>

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

2024-04-08 13:04:31 +0100  Philippe Normand <philn@igalia.com>

	* ext/vpx/gstvpxenc.c:
	  vpxenc: Include vpx error details in errors and warnings
	  The vpx_codec_t err_detail string usually provides additional context about the
	  error, so include it in GStreamer warnings and errors, when it's not NULL.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6584>

2024-04-08 19:53:06 +0200  Jochen Henneberg <jochen@centricular.com>

	  qt6: Fixes for dummy texture
	  * RED_OR_ALPHA8 will map value to alpha for OpenGL, use R8 to avoid
	  2nd shader
	  * Determine texel size for proper texture memory preparation
	  * QByteArray::fromRawData() does shallow copy and thus leads to use of
	  corrupted memory
	  * Make sure RGBA dummy texture is fully opaque
	  * QRhiTexture::create() must be called to allocate texture resources
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6581>

2024-04-06 02:28:44 +0200  Jochen Henneberg <jochen@centricular.com>

	* ext/qt/gstqsgmaterial.cc:
	* ext/qt/gstqsgmaterial.h:
	  qt: Fixup for dummy textures
	  * Initialize dummy texture Ids
	  * Ensure YUV->RGB matrix set for dummy textures
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6581>

2024-04-04 13:21:44 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Don't re-use a variable for a completely different purpose temporarily
	  During RTP-Info synchronization, clock_base was temporarily switched
	  from the actual clock-base to the base RTP time and then back some lines
	  later.
	  Instead directly work with the base RTP time. The comment about using a
	  signed variable for convenience doesn't make any sense because all
	  calculations done with the value are unsigned.
	  Similarly, rtp_clock_base was overridden with the rtp_delta when
	  calculating it, which was fine because it is not used anymore
	  afterwards. Instead, introduce a new variable `rtp_delta` to make this
	  calculation clearer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6575>

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

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Convert clock-base to extended RTP timestamp correctly
	  It's not in the same period as the current RTP base time but always in
	  the very first period. This avoids using it again at a much later time.
	  The code in question is only triggered with rtcp-sync=rtp-info.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6575>

2024-04-04 13:11:54 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: Use an extended RTP timestamp for the clock-base
	  It is compared to other extended RTP timestamps all over rtpjitterbuffer
	  and since 4df3da3bab8 the initial extended RTP timestamp is not equal
	  anymore to the plain RTP time.
	  Continue passing a non-extended RTP timestamp via the `sync` signal for
	  backwards compatibility. It will always be a timestamp inside the first
	  extended timestamp period anyway.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6575>

2024-03-26 13:33:56 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtphdrext-ntp.c:
	  rtphdrext-ntp: Fix typo of the RFC number in the element metadata
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3417
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6537>

2024-03-28 09:46:08 +0100  Robert Guziolowski <robert.guziolowski@gmail.com>

	* ext/qt6/gstqsg6material.cc:
	  qml6glsink: fix destruction of underlying texture
	  One should not directly delete the QRhiTexture instance.
	  Instead it should be marked as to be deleted once QRhi::endFrame()
	  is called (see: https://doc.qt.io/qt-6/qrhiresource.html#deleteLater )
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3443
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6506>

2024-04-02 21:30:50 +1100  Jan Schmidt <jan@centricular.com>

	* gst/rtpmanager/rtpjitterbuffer.c:
	  rtpjitterbuffer: Don't use estimated_dts to do default skew adjustment
	  When the buffer DTS is estimated based on arrival time at the
	  jitterbuffer (rather than provided on the incoming buffer itself),
	  it shouldn't be used for skew adjustment. The typical case is
	  packets being deinterleaved from a tunnelled TCP/HTTP RTSP stream,
	  and the arrival times at the jitter buffer are not well enough
	  correlated to usefully do skew adjustments.
	  This restores the original intended behaviour for the 'estimated dts'
	  path, that was broken years ago during other jitterbuffer refactoring.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6561>

2024-04-06 12:26:39 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/flac/meson.build:
	  flac: Add wrap file and add fallback for it to the flac plugin
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6560>

2024-02-28 11:28:23 +0800  Tim Blechmann <tim@klingt.org>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: enforce a pixel aspect ratio of 1/1 if no data are available
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6559>

2024-04-05 14:21:38 +0200  Philipp Zabel <p.zabel@pengutronix.de>

	* sys/v4l2/gstv4l2allocator.c:
	  v4l2: allocator: Fix unref log/trace on memory release
	  Use gst_object_unref() instead of g_object_unref() in
	  gst_v4l2_allocator_release(), so refcounting log and
	  tracer get to know about this unref.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6556>

2024-03-29 11:14:54 +0900  Elliot Chen <elliot.chen@nxp.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: fix error in calculating padding bottom for tile format
	  This is a regression while porting to arbitrary tile dimensions
	  introduced in !3424.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6554>

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

	* gst/audioparsers/gstwavpackparse.c:
	  wavpackparse: Use an unsigned integer for the block size calculations
	  It's never negative.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6541>

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

	* gst/audioparsers/gstwavpackparse.c:
	  wavpackparse: Fix potential integer overflow on ID_ODD_SIZE blocks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6541>

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

	* gst/audioparsers/gstwavpackparse.c:
	* gst/audioparsers/gstwavpackparse.h:
	  wavpackparse: Explicitly handle ID_WVX_NEW_BITSTREAM
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6541>

2024-03-28 19:49:46 +0000  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/elements/rtpred.c:
	  tests: rtpred: fix out-of-bound writes
	  Don't write more data to the buffer than we allocated
	  space for.
	  Fixes #3312
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6478>

2024-03-27 15:21:56 +0900  Haihua Hu <jared.hu@nxp.com>

	* sys/v4l2/gstv4l2src.c:
	  v4l2src: need maintain the caps order in caps compare when fixate
	  if the calculated "distance" of caps A and B from the preference are
	  equal, need to keep the original order instead of swap them
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6473>

2024-03-26 23:53:30 +1100  Jan Schmidt <jan@centricular.com>

	* gst/rtp/gstrtpmp4adepay.c:
	  rtpmp4adepay: Set duration on outgoing buffers
	  If we can calculate timestamps for buffers, then set the duration
	  on outgoing buffers based on the number of samples depayloaded.
	  This can fix the muxing to mp4, where otherwise the last packet
	  in a muxed file will have 0 duration in the mp4 file.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6456>

2024-03-21 18:07:42 +0900  Hou Qi <qi.hou@nxp.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: Also set max_width/max_height if enum framesize fail
	  Some driver doesn't implement enum_framesize. The maximum supported
	  size can be got by trying format with a very large size. Also need
	  to set max_width/max_height for this case, otherwise default encoded
	  buffer size 256kB is too small.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6430>

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

2024-03-18 15:07:28 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux-playlist-loader.c:
	* ext/adaptivedemux2/hls/gsthlsdemux-preloader.c:
	* ext/adaptivedemux2/hls/gsthlsdemux-stream.c:
	* ext/adaptivedemux2/hls/gsthlsdemux-util.c:
	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	* ext/adaptivedemux2/hls/m3u8.c:
	  adaptivedemux2: Don't use g_str_equal on potentially NULL strings
	  It is only meant to be used as a callback. The fallback macro uses strcmp which
	  doesn't handle NULL strings gracefully. Instead use g_strcmp0
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6410>

2024-03-18 15:02:29 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Avoid NULL pointer usage
	  The pending/current variant are both NULL when the demuxer is resetted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6410>

2024-03-18 15:00:02 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemuxutils.c:
	  adaptivedemux2: Handle context going away
	  This issue can happen when the scheduler loop was stopped (and context went
	  away). We no longer want to push/pop main context threads.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6410>

2024-03-18 14:57:43 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux-playlist-loader.c:
	  hlsdemux2: Improve detection of playlist updates
	  In the case we are not updating an existing playlist, we only want to reset the
	  download error count if the URI we are downloading was not the previous one we
	  were trying to load
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6410>

2024-03-13 13:39:21 +0100  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: remove 'deprecated' flag from the 'push-backchannel-sample' signal
	  It seems that it was added by accident when copying from push-backchannel-buffer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6363>

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

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123audiodec: Correctly handle the case of clipping all decoded samples
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3365
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6357>

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

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fix wrapping temporary memory in buffers
	  That memory can disappear at any moment, doesn't cost much to just copy those few bytes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6339>

2024-01-31 00:32:22 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Don't invoke close when stopping if we've started cleanup
	  When we're doing a state change from PLAYING to NULL, first we invoke
	  gst_rtspsrc_loop_send_cmd_and_wait (..., CMD_CLOSE, ...) during
	  PAUSED_TO_READY which will schedule a TEARDOWN to happen async on the
	  task thread.
	  The task thread will call gst_rtspsrc_close(), which will send the
	  TEARDOWN and once it's complete, it will call gst_rtspsrc_cleanup()
	  without taking any locks, which frees src->streams.
	  At the same time however, the state change in the app thread will
	  progress further and in READY_TO_NULL it will call gst_rtspsrc_stop()
	  which calls gst_rtspsrc_close() a second time, which accesses
	  src->streams (without a lock again), which leads to simultaneous
	  access of src->streams, and a segfault.
	  So the state change and the cleanup are racing, but they almost always
	  complete sequentially. Either the cleanup sets src->streams to NULL or
	  _stop() completes first. Very rarely, _stop() can start while
	  src->streams is being freed in a for loop. That causes the segfault.
	  This is unlocked access is unfixable with more locking, it just leads
	  to deadlocks. This pattern has been observed in rtspsrc a lot: state
	  changes and cleanup in the element are unfixably racy, and that
	  foundational issue is being addressed separately via a rewrite.
	  The bandage fix here is to prevent gst_rtspsrc_stop() from accessing
	  src->streams after it has already been freed by setting src->state to
	  INVALID.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6330>

2024-03-07 16:17:41 +0100  Michael Tretter <m.tretter@pengutronix.de>

	* meson_options.txt:
	  meson: Fix description in qt options
	  The qt-x11 description contains a copy/paste error from the qt-wayland option.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6313>

2024-02-16 18:11:07 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/rtp/gstrtpgstpay.c:
	  rtpgstpay: flush on EOS
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6298>

2023-08-11 13:06:24 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtp/gstrtpgstpay.c:
	* gst/rtp/gstrtpgstpay.h:
	  rtpgstpay: Delay pushing of event packets until the next buffer
	  And also re-timestamp them with the current buffer's PTS.
	  Not doing so keeps the timestamps of event packets as
	  GST_CLOCK_TIME_NONE or the timestamp of the previous buffer, both of
	  which are bogus.
	  Making sure that (especially) the first packet has a valid timestamp
	  allows putting e.g. the NTP timestamp RTP header extension on it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6298>

2024-02-26 19:17:27 -0600  Elizabeth Figura <zfigura@codeweavers.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Do not set channel-mask to zero
	  Leave it uninitialized, so that the downstream decoder will initialize it appropriately. Setting it to zero is wrong.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6296>

2024-03-01 02:44:57 +1100  Jan Schmidt <jan@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Parse Speed/Scale before Range in responses
	  Parse the speed and scale in the server's response
	  *before* the range, so that the range start/stop
	  are swapped (or not swapped) correctly based
	  on the server's actual chosen values. Otherwise,
	  the old rate from the segment is used - what the
	  last seek asked for, but not necessarily what
	  the server chooses.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6295>

2024-02-29 12:06:25 +1100  Jan Schmidt <jan@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Handle queries and events with no manager
	  When doing direct output with no session manager, we still
	  want to respond to queries and events from downstream, so
	  install the handlers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6295>

2024-02-29 11:14:47 +1100  Jan Schmidt <jan@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: return NO_PREROLL on PLAYING->PAUSED too
	  When transitioning back to PAUSED and rtspsrc is live, return
	  NO_PREROLL so the pipeline knows to skip preroll here too.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6295>

2024-02-24 11:07:26 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Consider 503 Service Not Available when handling broken control urls
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6267>

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-good.doap:
	* meson.build:
	  Release 1.24.0

2024-02-27 14:22:58 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Increase rank to PRIMARY for autoplug purposes
	  This affects autoplug by gst_element_make_from_uri() in, for example,
	  uridecodebin. The element should've already been PRIMARY rank, but it
	  was NONE because gst_element_make_from_uri() doesn't ignore NONE rank
	  elements when searching for element factories, unlike decodebin.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/502
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6226>

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

2024-02-22 20:35:28 +0900  Seungha Yang <seungha@centricular.com>

	* ext/jpeg/gstjpegdec.c:
	  jpegdec: Fix progressive/interlaced detection
	  If input height and parsed one are identical, do not consider it as interlaced
	  Fixing below pipeline:
	  gst-launch-1.0 videotestsrc ! video/x-raw,format=I420,width=640,height=10 \
	  ! jpegenc ! jpegparse ! jpegdec ! videoconvert ! autovideosink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6181>

2024-02-26 23:14:54 +0900  Seungha Yang <seungha@centricular.com>

	* ext/jpeg/gstjpegdec.c:
	  jpegdec: Remove trailing white space
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6181>

=== release 1.23.90 ===

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

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

2024-02-23 11:45:50 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/soup/meson.build:
	* meson_options.txt:
	  soup: Re-add soup-lookup-dep option
	  It's still useful on Linux since it ensures that the tests are going
	  to be built, since they use the same dep lookup as the plugin now.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6197>

2024-02-21 19:13:45 +1100  Matthew Waters <matthew@centricular.com>

	* tests/examples/qt/qmlsink-multisink/main.cpp:
	  examples/qmlsinnk-multisink: allow running with leaks tracer
	  Include a gst_deinit() after the qml engine has been destroyed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6160>

2024-02-21 19:11:59 +1100  Matthew Waters <matthew@centricular.com>

	* tests/examples/qt/qmlsink-multisink/videoitem/videoitem.cpp:
	  examples/qml: fix some leaks in the multisink example
	  A GstPad was being leaked and possibly the qmlglsink element depending
	  on if Qt runs the scenegraph thread again when destroying the example
	  video item.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6160>

2024-02-21 19:09:20 +1100  Matthew Waters <matthew@centricular.com>

	* ext/qt/qtitem.cc:
	* ext/qt6/qt6glitem.cc:
	  qml, qml6: Fix leak of QSGMaterial/Geometry (and therefore a possible GstBuffer)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6160>

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

	* ext/qt6/gstqsg6material.cc:
	  qml6: fix a leak of the wrapped QSGTextures
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6160>

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

	* gst/rtpmanager/gstrtphdrext-clientaudiolevel.c:
	  rtphdrext-clientaudiolevel: Fix typo in documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6175>

2024-02-21 13:45:47 +0100  Arnaud Vrac <avrac@freebox.fr>

	* ext/adaptivedemux2/meson.build:
	  adaptivedemux2: fix build with recent meson
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6168>

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

	* docs/gst_plugins_cache.json:
	* gst/rtp/gstrtppassthroughpay.c:
	  rtppassthroughpay: fix critical in gst-inspect
	  gst_segment_to_running_time() will fail noisily
	  if the segment has not been initialised yet.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6151>

2024-02-21 02:30:11 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemuxelement.c:
	* ext/adaptivedemux2/meson.build:
	* ext/soup/gstsoupelement.c:
	* ext/soup/gstsouphttpsrc.c:
	* ext/soup/gstsouploader.c:
	* ext/soup/gstsouploader.h:
	* ext/soup/gstsouputils.h:
	* ext/soup/meson.build:
	* meson_options.txt:
	* tests/check/meson.build:
	  soup: Link to libsoup in all cases on non-Linux
	  We have unsolvable issues on macOS because of this, and the feature
	  was added specifically for issues that occur on Linux distros since
	  they ship both libsoup 2.4 and 3.0.
	  Everyone else should just pick one and use it, since you cannot mix
	  the two in a single process anyway.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1171
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6156>

2024-02-17 23:33:26 +1100  Jan Schmidt <jan@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Reset combined flows after a seek before restarting
	  After a flushing seek, rtspsrc doesn't reset the last_ret value for
	  streams, so might immediately shut down again when it resumes pushing
	  buffers to pads due to a cached `GST_FLOW_FLUSHING` result
	  Prevent a stored flushing value from immediately stopping
	  playback again by resetting pad flows before (re)starting
	  playback.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6137>

2023-11-29 17:43:30 +0200  Maksym Khomenko <maksym.khomenko@skelia.partners>

