=== 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
