=== release 1.26.0 ===

2025-03-11 20:14:44 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* README.md:
	* RELEASE:
	* gst-plugins-good.doap:
	* meson.build:
	  Release 1.26.0

2025-03-05 19:03:42 +0900  Hou Qi <qi.hou@nxp.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: object: Not consider GRAY as RGB
	  This is to fix colorimetry mismatch between v4l2object and video-info
	  when format is GRAY.
	  Fixes #4270
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8590>

2025-03-05 14:08:50 +0000  Devon Sookhoo <devonsookhoo14@gmail.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: InterleaveType enum
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8578>

2025-03-04 10:14:23 -0700  dukesook <devonsookhoo14@gmail.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: component to format lookup table
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8578>

2025-02-28 15:41:23 +0100  Jakub Adam <jakub.adam@collabora.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: wake waiting streams upon completed manifest downlaod
	  Fixes race when a live stream finishes playing all segments from a
	  dynamic manifest and waits for its update. If the manifest meanwhile
	  changes from dynamic to static and this update is received
	  asynchronously, periodic calls of gst_adaptive_demux_manifest_update_cb
	  will stop. As a result the blocked stream won't get notified about the
	  updated manifest and will remain stuck indefinitely.
	  Also removed the wake-up code from gst_adaptive_demux_manifest_update_cb
	  where it remained as a relic from previous implementation when manifest
	  updates were synchronous.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8587>

2025-03-04 15:01:24 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/meson.build:
	  meson: Replace disabler dependencies with not-found dependencies
	  If a plugin gets disabled due to a `disabler()` dependency, the plugin
	  docs build itself will get disabled because `all_plugins_paths` will
	  become a disabler.
	  This was actually happening with opencv on systems that don't have
	  opencv available, and could happen with libsoup too if the build files
	  change in the future.
	  Let's avoid wasting hours of debugging for people. A not-found
	  dependency has the same effect.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8582>

2025-02-26 05:46:58 +0100  Jochen Henneberg <jochen@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Ignore non-zero values for UV/XY in transformation matrix
	  But write an info message about that. The values have been ignored
	  before !8127 as well.
	  Fixes #4252
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8559>

2025-02-24 14:20:33 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/multifile/gstsplitmuxsink.c:
	  splitmuxsink: Also increment fragment IDs when no filename is configured on the sink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8544>

2024-12-12 08:48:04 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/gst_plugins_cache.json:
	* ext/adaptivedemux2/gstadaptivedemux-private.h:
	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/gstadaptivedemux.h:
	* ext/adaptivedemux2/hls/gsthlsdemux-playlist-loader.c:
	  adaptivedemux: Add 'backoff' logic for HTTP request
	  So that the user can configure waits between retries
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>

2024-12-11 22:00:56 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/gst_plugins_cache.json:
	* ext/adaptivedemux2/gstadaptivedemux-private.h:
	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/gstadaptivedemux.h:
	* ext/adaptivedemux2/hls/gsthlsdemux-playlist-loader.c:
	  adaptivedemux2: Expose a `max-retries` property
	  So the user can configure what is the maximum number of time HTTP requests can
	  be performed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>

2024-12-11 17:44:20 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/gst_plugins_cache.json:
	* ext/soup/gstsouphttpsrc.c:
	* ext/soup/gstsouphttpsrc.h:
	  souphttpsrc: Add the notion of "retry-backoff"
	  So that the user can force waits between retries
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>

2024-12-11 07:46:09 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ext/soup/gstsouphttpsrc.c:
	  souphttpsrc: Retry on SERVICE_UNAVAILABLE and INTERNAL_SERVER_ERROR
	  Those might be temporary issue, for example s3 returns SERVICE_UNAVAILABLE high
	  load, but afterward a few tries the request will work, and it has been observed
	  that internal server error sometimes "fix themselves"  so it makes sense to
	  also retry requests, in case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>

2024-12-10 23:54:07 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	  adaptivedemux2: Increment retry counter to stop after MAX_ERROR_COUNT
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>

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

	* ext/adaptivedemux2/dash/gstdashdemux.c:
	  dashdemux2: Do not set empty string 'track_id'
	  This is not needed and generates g_warning like:
	  ```
	  Trying to set empty string on taglist field 'container-specific-track-id'. Please file a bug.
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8128>

2025-02-19 19:25:52 +0900  Elliot Chen <elliot.chen@nxp.com>

	* gst/audiofx/gstscaletempo.c:
	  scaletempo: scaletempo: clip the timestamp or duration of gap event if needed
	  For some cases, maybe the timestamp of gap event is smaller than
	  segment start value or larger than segment stop value in playback.
	  And the timestamp plus duration may exceed segment boundary. Need
	  check and clip the timestamp or duration before recalculating.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8517>

2025-02-23 23:52:57 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.25.90

=== release 1.25.90 ===

2025-02-23 23:44:10 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2025-02-23 16:56:05 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/hr.po:
	* po/lv.po:
	* po/pt_BR.po:
	* po/zh_TW.po:
	  gst-plugins-good: update translations

2025-02-19 11:54:48 -0500  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/rtp/gstrtph264depay.c:
	  rtph264depay: Improve properties doc to be the same as rtph265depay
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8343>

2025-02-19 11:47:50 -0500  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/rtp/gstrtph264depay.c:
	* gst/rtp/gstrtph264depay.h:
	  rtph264depay: Improve request keyframe logic
	  We cannot rely only on the DISCONT flag when deciding whether we need to
	  request a new key frame or not because it might be that the packet that just
	  came in with the DISCONT flag is actually the start of a keyframe.
	  This patch improves the logic to be the same as rtph265depay, by only requesting
	  a key frame if the packet with the DISCONT flag is not the first one of a FU; or
	  if its the first one, only request it when we could drop packets due to a
	  missing key frame.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8343>

2025-01-22 12:54:45 -0500  Julian Bouzas <julian.bouzas@collabora.com>

	* docs/gst_plugins_cache.json:
	  docs: update plugins cache with new rtph265depay properties
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8343>

2025-01-22 12:44:51 -0500  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/rtp/gstrtph265depay.c:
	* gst/rtp/gstrtph265depay.h:
	  rtph265depay: Add request-keyframe property
	  Similar to the H264 depayloader, this property will request a new keyframe
	  when packet loss is detected.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8343>

2025-01-22 12:41:35 -0500  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/rtp/gstrtph265depay.c:
	* gst/rtp/gstrtph265depay.h:
	  rtph265depay: Add wait-for-keyframe property
	  Similar to the H264 depayloader, this property will wait for the next keyframe
	  by dropping RTP packets if there is a missing packet.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8343>

2025-02-18 16:46:15 +1100  Matthew Waters <matthew@centricular.com>

	* ext/qt/gstqtglutility.cc:
	* ext/qt6/gstqt6glutility.cc:
	  qt/6: mark GstGLDisplayEGLs that would be created as foreign
	  Otherwise, GStreamer may preemptively call eglTerminate() before Qt has
	  finished using the EGLDisplay.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8504>

2025-02-18 14:04:09 +1100  Jan Schmidt <jan@centricular.com>

	* tests/examples/rtsp/test-onvif.c:
	  test-onvif: Re-add mulawenc
	  Accidentally lost mulawenc from the rtppcmupay case
	  in the previous commit !8378
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8503>

2025-02-15 14:07:52 +1100  Brad Hards <bradh@frogmouth.net>

	* gst/isomp4/qtdemux.c:
	  qtdemux: look up uncompressed component type
	  This fix handles the case where the order of components in the cmpd box
	  does not correspond to the order used for a specific track. That
	  is the case where the uncC component_index values are something
	  other than 0, 1, 2, 3.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8483>

2025-01-31 14:40:27 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/multifile/gstsplitmuxsink.c:
	  splitmuxsink: Be less strict about queueing negative durations
	  In case of temporary backwards timestamps durations can become negative. Instead
	  of erroring out, simply clip the durations and warn.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8390>

2024-10-23 14:21:22 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/isomp4/fourcc.h:
	* gst/isomp4/qtdemux.c:
	  qtdemux: add mappings for Hap video codec
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3596
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7717>

2024-11-05 12:52:08 +0100  François Laignel <francois@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: add RFC7273 active status to stats
	  Checking whether rtpjitterbuffer actually timestamps the buffers according to
	  the RFC7273 clock definition and rtpjitterbuffer configuration required looking
	  at the DEBUG logs.
	  This commit adds an entry in the rtpjitterbuffer stats to indicate if
	  conditions are met for RFC7273 to be active.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7829>

2025-02-11 21:43:05 +1100  Brad Hards <bradh@frogmouth.net>

	* gst/isomp4/qtdemux.c:
	  qtdemux: fix version 1 profile handling, add diagnostics
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8456>

2025-02-12 11:54:02 +1100  Brad Hards <bradh@frogmouth.net>

	* gst/isomp4/qtdemux.c:
	  qtdemux: support uncompressed mono with component interleave
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8464>

2025-02-11 12:15:26 +0100  Jochen Henneberg <jochen@centricular.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: object: Make sure dmabuf_tmpl isn't used uninitialized
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8457>

2025-02-11 10:17:34 +0100  Ognyan Tonchev <ognyan@axis.com>

	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtpsource.c:
	* tests/check/elements/rtpsession.c:
	  rtpmanager: skip RTPSources if last_rtime is not set yet
	  Fixes previous commit (which worked in GStreamer 1.22 but not in
	  1.24 and newer). Sorry for the noise, should have tested on
	  master before pusshing it :(
	  Fixes: #3918
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8455>

2025-02-11 11:52:05 +0700  sergey radionov <rsatom@gmail.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	  v4l2: bufferpool: update buffer state after group release
	  This fixes the state that lead to a flood of "newly allocated buffer
	  %u is not free" warnings.
	  Fixes #1185 #3184 #4037
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8454>

2025-02-11 11:05:50 +0700  sergey radionov <rsatom@gmail.com>

	* sys/v4l2/gstv4l2allocator.c:
	  v4l2: allocator: added group pointer to "group-released" signal
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8454>

2025-02-11 11:03:18 +0700  sergey radionov <rsatom@gmail.com>

	* sys/v4l2/gstv4l2allocator.c:
	* sys/v4l2/gstv4l2allocator.h:
	  v4l2: allocator: G_TYPE defined for GstV4l2MemoryGroup
	  This is needed to pass the GstV4l2MemoryGroup structure through
	  a glib signal.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8454>

2025-02-07 18:53:11 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* docs/gst_plugins_cache.json:
	* gst/isomp4/atoms.c:
	* gst/isomp4/atoms.h:
	* gst/isomp4/gstqtmux.c:
	* gst/isomp4/gstqtmuxmap.c:
	  qtmux: add support for VVC/H.266 video
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8436>

2025-02-10 11:31:48 +0900  Hou Qi <qi.hou@nxp.com>

	* docs/gst_plugins_cache.json:
	* sys/v4l2/gstv4l2object.c:
	  v4l2: Add BGR10A2_LE support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8154>

2025-02-08 16:32:31 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* docs/gst_plugins_cache.json:
	* gst/matroska/matroska-mux.c:
	  matroskamux: add support for VVC/H.266 video
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8441>

2025-02-08 16:19:58 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* gst/matroska/matroska-demux.c:
	  matroskademux: add support for VVC/H.266 video
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8441>

2025-02-08 16:19:22 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* gst/matroska/matroska-ids.h:
	  matroska: add V_MPEGI/ISO/VVC id
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8441>

2025-02-06 11:34:06 +0100  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst/autodetect/gstautodetect.c:
	  autodetect: cleanup no-op check for "constructed" implementation
	  It's always implemented by GObject.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>

2025-02-06 11:28:51 +0100  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst/videofilter/gstvideoflip.c:
	  videoflip: fix chaining up GObject's constructed virtual method
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>

2023-07-22 01:14:52 +0200  Carlos Bentzen <cadubentzen@gmail.com>

	* gst/isomp4/fourcc.h:
	* gst/isomp4/qtdemux.c:
	* gst/isomp4/qtdemux_types.c:
	  qtdemux: add support for VVC/H.266
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5088>

2025-02-09 17:47:32 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.25.50

=== release 1.25.50 ===

2025-02-09 17:35:17 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2025-02-04 00:01:01 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/adaptivedemux2/meson.build:
	* ext/meson.build:
	* ext/soup/meson.build:
	  soup: Ensure that libsoup RPATHs are added with Homebrew too
	  With the old method of adding build RPATHs, only the libsoup as
	  a subproject was supported. However, it's possible to use Homebrew for
	  libsoup too by adding libsoup as a dependency to the target (even
	  though we don't link to it).
	  Apple ld will not add a LC_LOAD_DYLIB entry for a library unless there
	  are symbols that need it because meson passes `-dead_strip_dylibs`, so
	  we can do this without issue.
	  As a bonus, this ensures the correct build RPATHs in all cases.
	  Additionally, we still need to explicitly add an LC_RPATH for the
	  installed case.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4027
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8403>

2024-11-26 11:17:17 -0700  dukesook <devonsookhoo14@gmail.com>

	* gst/isomp4/fourcc.h:
	* gst/isomp4/qtdemux.c:
	* gst/isomp4/qtdemux.h:
	  qtdemux: Demux Uncompressed MP4
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7985>

2025-02-06 17:13:16 +0000  Philippe Normand <philn@igalia.com>

	* gst/rtpmanager/gstrtpsession.c:
	  rtpsession: Fix heap-use-after-free of twcc_packets structure
	  This is a regression introduced by 90d99c7b52d9dc82a220cca1355f1dca3d57a838.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8427>

2025-01-29 20:42:55 +1100  Jan Schmidt <jan@centricular.com>

	* tests/examples/rtsp/test-onvif.c:
	  test-onvif example: Add support for AAC backchannel
	  Detect upstream backchannel codec and support AAC in MPEG4-GENERIC
	  encapsulation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>

2025-02-03 14:00:23 +0100  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/gst_plugins_cache.json:
	* sys/v4l2/gstv4l2object.c:
	  v4l2: object: Use libgstvideo DMA DRM mapping
	  Complete the mapping by pulling GST/DRM mapping from libgstvideo. This removes
	  the duplication.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8404>

2025-01-25 04:29:54 +0100  Robert Mader <robert.mader@collabora.com>

	* gst/matroska/matroska-demux.c:
	  matroskademux: Implement rotation tag support
	  Similar to qtdemux.
	  Tested against other Gst elements and MPV. Note that the later
	  apparently does not show correct results for flipped values.
	  In particular the Yaw value seems to get ignored by many clients.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8319>

2025-01-20 00:37:58 +0100  Robert Mader <robert.mader@collabora.com>

	* gst/matroska/matroska-mux.c:
	  matroskamux: Implement rotation tag support
	  Similar to qtmux, but for mkv and webm containers.
	  Tested against other Gst elements and MPV. Note that the later
	  apparently does not show correct results for flipped values.
	  In particular the Yaw value seems to get ignored by many clients.
	  Can be tested with:
	  ```
	  gst-launch-1.0 \
	  videotestsrc num-buffers=90 ! \
	  taginject tags="image-orientation=rotate-270" ! \
	  capsfilter caps=video/x-raw,width=640,height=480,max-framerate=30/1 ! \
	  videoconvert ! \
	  queue ! \
	  vp8enc ! \
	  queue ! \
	  webmmux ! \
	  filesink location=./test.webm
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8319>

2025-01-20 00:35:03 +0100  Robert Mader <robert.mader@collabora.com>

	* gst/matroska/matroska-ids.h:
	  matroska: Add projection IDs
	  These will allow us to support rotate methods with matroska v4 and
	  the corresponding webm.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8319>

2025-02-02 16:09:06 +0100  Tomas Granath <tomas.granath@outlook.com>

	* gst/matroska/matroska-demux.c:
	  matroskademux: Mark streams as EOS when outside the requested segment
	  Ensure that streams with no (more) data are marked as EOS when
	  advancing past the requested segment. Without this change the
	  EOS would be postponed to the end of the file in that case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8395>

2024-06-11 17:46:11 +0200  Ruben Gonzalez <rgonzalez@fluendo.com>

	* meson.build:
	  meson: use nls option to ENABLE_NLS
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7017>

2023-09-29 18:10:09 +0200  Tim-Philipp Müller <tim@centricular.com>

	* scripts/update-orc-dist-files.py:
	  scripts: update update-orc-dist-files.py scripts for new gst-indent
	  And fix python indentation with autopep8
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>

2025-01-30 15:48:03 +1100  Jan Schmidt <jan@centricular.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2vidoedec: Fix caps negotiation in non-DRM case
	  Append acquired_caps to the filter_caps being built,
	  instead of a 2nd copy of acquired_drm_caps.
	  Fix a regression introduced in
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633
	  when downstream doesn't support DRM output.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8385>

2025-01-27 16:38:38 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/osxaudio/gstosxcoreaudio.c:
	  osxaudio: Always expose max amount of channels with no positions
	  For outputs with a high number of channels, macOS has a bug where
	  initially CoreAudio will report incorrect positions for all channels,
	  but after you run Audio MIDI Setup and configure the speaker layout
	  there, macOS will always report those few as positioned, with no option
	  to revert that (other than deleting some internal files).
	  In such scenario our code would just ignore all the unpositioned
	  channels. Since you can only position max. 16 channels in macOS, if you
	  had more on your output device, those would be unusable.
	  This commit makes sure that in addition to the usual positioned layout
	  (if there is one), we will expose caps for a no-positions layout that
	  always has the maximum amount of channels available.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8311>

2025-01-16 17:27:50 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/osxaudio/gstosxcoreaudio.c:
	  osxaudio: Work around invalid channel positions from CoreAudio
	  By default, for devices with larger amounts of outputs, CoreAudio can
	  provide invalid channel labels/positions, simply by starting at 0 and
	  incrementing forward. For example, values 19 through 32 are not valid
	  according to the CoreAudioBaseTypes.h header, but if your device has >19
	  output channels, you will find CoreAudio using those values.
	  This is most likely a bug in CoreAudio, since in that case it should use
	  unpositioned labels (e.g. _Discrete_X) instead.
	  This commit aims to work around this by overriding all channels to be
	  unpositioned if the case above is detected.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8311>

2025-01-19 18:49:57 +0100  Robert Mader <robert.mader@collabora.com>

	* gst/isomp4/gstqtmux.c:
	  qtmux: Implement rotation tag support
	  Mirroring the demux element and isomp4mux from gst-plugins-rs.
	  Tested against other Gst elements and MPV. Note that the later
	  apparently does not show correct results for flipped values.
	  Can be tested with:
	  ```
	  gst-launch-1.0 \
	  videotestsrc num-buffers=90 ! \
	  taginject tags="image-orientation=rotate-90" ! \
	  capsfilter caps=video/x-raw,width=640,height=480,max-framerate=30/1 ! \
	  videoconvert ! \
	  queue ! \
	  openh264enc ! \
	  queue ! \
	  h264parse ! \
	  mp4mux ! \
	  filesink location=./test.mp4
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8371>

2025-01-28 15:08:03 +0100  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst/isomp4/gstqtmux.c:
	  qtmux: fix critical warnings on negotiation error
	  This pipeline fails to negotiate on my PC:
	  gst-launch-1.0 v4l2src ! h264parse ! qtmux ! filesink location=t.mp4
	  When it happens some critical glib warnings are emitted:
	  -------------------------------
	  GStreamer-CRITICAL **: 15:09:03.485: gst_mini_object_copy: assertion 'mini_object != NULL' failed
	  GStreamer-CRITICAL **: 15:09:03.485: gst_mini_object_unref: assertion 'mini_object != NULL' failed
	  GStreamer-CRITICAL **: 15:09:03.485: gst_caps_get_structure: assertion 'GST_IS_CAPS (caps)' failed
	  GStreamer-CRITICAL **: 15:09:03.485: gst_structure_set_value: assertion 'structure != NULL' failed
	  GStreamer-CRITICAL **: 15:09:03.485: gst_mini_object_unref: assertion 'mini_object != NULL' failed
	  --------------------------------
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8374>

2025-01-26 13:16:51 +1100  Brad Hards <bradh@frogmouth.net>

	* gst/debugutils/gsttaginject.c:
	  taginject: typo fix in usage example
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8362>

2025-01-21 18:29:47 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/matroska/matroska-demux.c:
	* gst/matroska/matroska-demux.h:
	  matroskademux: Add support to seek with stop in push mode
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8340>

2025-01-15 17:36:00 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/meson.build:
	  docs: generate hotdoc configs for libraries with our helper script
	  With this patch, configure time is identical no matter whether doc is
	  enabled or not.
	  The configuration files also now contain explicitly-listed sources with
	  no wildcards.
	  For the four libraries where hotdoc needs to use clang to generate the
	  documentation (as opposed to the rest of the libraries where hotdoc uses
	  the gir), the script will call pkg-config to determine the appropriate
	  C flags.
	  This means a side effect of this patch is that pkg-config files are now
	  generated for the gstadaptivedemux and gstopencv libraries.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8312>

2025-01-17 16:51:22 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* meson.build:
	  meson: bump minimum version to 1.4 in every subprojects
	  36c01d05797ad9c7778939c54870f979bdcbba1f bumped to 1.4 for gst-devtools
	  and the root project, but we usually keep those in sync everywhere.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8312>

2025-01-14 16:29:28 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/audiofx/gstscaletempo.c:
	* gst/audiofx/gstscaletempo.h:
	  scaletempo: expose alternative mode, fit-down
	  In fit-down mode only 1.0 rates are supported, and the element will fit
	  audio data in buffers to their advertised duration.
	  This is useful in speech synthesis cases, where elements such as
	  awspolly will generate audio data from text, and assign the duration of the
	  input text buffers to their output buffers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8149>

2025-01-14 15:00:43 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.25.1

=== release 1.25.1 ===

2025-01-14 14:52:48 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2025-01-13 18:10:31 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/meson.build:
	* ext/aalib/meson.build:
	* ext/adaptivedemux2/hls/meson.build:
	* ext/adaptivedemux2/meson.build:
	* ext/amrnb/meson.build:
	* ext/amrwbdec/meson.build:
	* ext/cairo/meson.build:
	* ext/dv/meson.build:
	* ext/flac/meson.build:
	* ext/gdk_pixbuf/meson.build:
	* ext/gtk/meson.build:
	* ext/jack/meson.build:
	* ext/jpeg/meson.build:
	* ext/lame/meson.build:
	* ext/libcaca/meson.build:
	* ext/libpng/meson.build:
	* ext/mpg123/meson.build:
	* ext/pulse/meson.build:
	* ext/qt/meson.build:
	* ext/qt6/meson.build:
	* ext/raw1394/meson.build:
	* ext/shout2/meson.build:
	* ext/soup/meson.build:
	* ext/speex/meson.build:
	* ext/taglib/meson.build:
	* ext/twolame/meson.build:
	* ext/vpx/meson.build:
	* ext/wavpack/meson.build:
	* gst/alpha/meson.build:
	* gst/apetag/meson.build:
	* gst/audiofx/meson.build:
	* gst/audioparsers/meson.build:
	* gst/auparse/meson.build:
	* gst/autodetect/meson.build:
	* gst/avi/meson.build:
	* gst/cutter/meson.build:
	* gst/debugutils/meson.build:
	* gst/deinterlace/meson.build:
	* gst/dtmf/meson.build:
	* gst/effectv/meson.build:
	* gst/equalizer/meson.build:
	* gst/flv/meson.build:
	* gst/flx/meson.build:
	* gst/goom/meson.build:
	* gst/goom2k1/meson.build:
	* gst/icydemux/meson.build:
	* gst/id3demux/meson.build:
	* gst/imagefreeze/meson.build:
	* gst/interleave/meson.build:
	* gst/isomp4/meson.build:
	* gst/law/meson.build:
	* gst/level/meson.build:
	* gst/matroska/meson.build:
	* gst/meson.build:
	* gst/monoscope/meson.build:
	* gst/multifile/meson.build:
	* gst/multipart/meson.build:
	* gst/replaygain/meson.build:
	* gst/rtp/meson.build:
	* gst/rtpmanager/meson.build:
	* gst/rtsp/meson.build:
	* gst/shapewipe/meson.build:
	* gst/smpte/meson.build:
	* gst/spectrum/meson.build:
	* gst/udp/meson.build:
	* gst/videobox/meson.build:
	* gst/videocrop/meson.build:
	* gst/videofilter/meson.build:
	* gst/videomixer/meson.build:
	* gst/wavenc/meson.build:
	* gst/wavparse/meson.build:
	* gst/xingmux/meson.build:
	* gst/y4m/meson.build:
	* meson.build:
	* sys/directsound/meson.build:
	* sys/oss/meson.build:
	* sys/oss4/meson.build:
	* sys/osxaudio/meson.build:
	* sys/osxvideo/meson.build:
	* sys/rpicamsrc/meson.build:
	* sys/v4l2/meson.build:
	* sys/waveform/meson.build:
	* sys/ximage/meson.build:
	  docs: port plugins to explicit sources
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8273>

2025-01-04 10:06:46 +0100  Edward Hervey <edward@centricular.com>

	* meson.build:
	  good: Enable extra warning flags
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>

2025-01-04 10:06:15 +0100  Edward Hervey <edward@centricular.com>

	* gst/multifile/gstsplitmuxsink.c:
	  splitmuxsink: Fix GST_(S)TIME_{ARGS|FORMAT} usage
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>

2025-01-04 10:05:54 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstisoff.c:
	* ext/qt/gstqtsink.cc:
	* ext/qt/gstqtsrc.cc:
	* ext/qt6/gstqml6glsink.cc:
	* ext/qt6/gstqml6glsrc.cc:
	* ext/wavpack/gstwavpackcommon.c:
	* gst/audioparsers/gstwavpackparse.c:
	* gst/avi/gstavidemux.c:
	* gst/debugutils/gstpushfilesrc.c:
	* gst/deinterlace/gstdeinterlace.c:
	* gst/goom/goom_core.c:
	* gst/interleave/interleave.c:
	* gst/isomp4/gstisoff.c:
	* gst/isomp4/qtdemux.c:
	* gst/matroska/matroska-demux.c:
	* gst/matroska/matroska-parse.c:
	* gst/rtpmanager/gstrtprtxqueue.c:
	* gst/rtsp/gstrtspsrc.c:
	* gst/wavparse/gstwavparse.c:
	  good: Clearly specify fallthrough in switch/case
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>

2025-01-04 10:02:20 +0100  Edward Hervey <edward@centricular.com>

	* gst/matroska/matroska-demux.c:
	* gst/matroska/matroska-parse.c:
	  matroska: Reorder switch/case for parsing
	  Just makes it clearer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>

2025-01-04 10:01:40 +0100  Edward Hervey <edward@centricular.com>

	* gst/isomp4/gstqtmux.c:
	  qtmux: Fix GST_STIME_ARGS usage
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>

2025-01-04 10:00:59 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	  adaptivedemux2: Fix CLAMP usage
	  It's a positive value
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>

2025-01-04 10:00:07 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux-util.c:
	  adaptivedemux2: Remove useless ABS
	  Just compare the difference (in the right order)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>

2025-01-04 10:03:42 +0100  Edward Hervey <edward@centricular.com>

	* gst/multifile/gstsplitmuxsink.c:
	  splitmuxsink: Fix wrong usage of GstClockTime vs GstClockTimeDiff
	  This could potentially have caused issues (because of the rest of the code using
	  checks for signed invalid values on a unsigned value)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8286>

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

	* gst/multifile/gstsplitmuxsrc.c:
	  splitmuxsrc: Add missing break
	  This would cause the reconfigure path to be called
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8286>

2025-01-04 09:59:55 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Add missing break
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8286>

2025-01-04 09:59:34 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux-track.c:
	* ext/adaptivedemux2/hls/gsthlsdemux-stream.c:
	* ext/adaptivedemux2/hls/gsthlsdemux-util.c:
	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	* ext/adaptivedemux2/hls/m3u8.c:
	  adaptivedemux2: Fix usage of GstClockTime vs GstClockTimeDiff
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8286>

2025-01-07 09:31:26 +0100  Edward Hervey <edward@centricular.com>

	* gst/multifile/gstsplitmuxsrc.c:
	  splitmuxsrc: Ensure only a single stream-start event is pushed
	  Since we are simulating a single output, we want to ensure only a single
	  stream-start is pushed downstream. We do *not* want to send a (potentially) new
	  stream start event after flushing (like after seeks).
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4146
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8252>

2025-01-09 17:12:54 +0000  Will Miller <will.miller@pexip.com>

	* gst/rtp/gstrtpvp9pay.c:
	* tests/check/elements/rtpvp9.c:
	  rtpvp9pay: fix profile parsing
	  Incorrect parsing of these bits meant that we were incorrectly parsing
	  the VP9 uncompressed bitstream header for some profiles, as the header
	  is of variable length and format depending on the profile. Amongst
	  various unintended effects, this caused the width and height from the SS
	  to be incorrectly parsed and set in the caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8275>

2018-10-16 12:42:22 +0100  Alex Ashley <bugzilla@ashley-family.net>

	* tests/check/elements/dash_mpd.c:
	  dashdemux2: mpdparser: add test for ISO8601 durations that overflow
	  See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/82
	  and https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2576
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8209>

2024-11-08 12:06:28 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/osxaudio/gstosxaudiosrc.c:
	* sys/osxaudio/gstosxcoreaudio.h:
	  osxaudiosrc: Work around timestamps on iOS not starting from 0
	  On macOS, you always get your own 'timeline' for the AudioUnit session, so timestamps start from 0.
	  On iOS however, AudioUnit seems to give you a 'shared' timeline so timestamps start at a later, non-0 point in time.
	  Simply offsetting seems to do the trick.
	  This was causing osxaudiosrc to not output any sound on iOS.
	  Regressed in 2df9283d3f2ea06af5ebd6db03a6d545cac52f19
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7856>

2024-11-08 12:02:23 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/osxaudio/gstosxcoreaudiocommon.c:
	  osxaudiosrc: Fix render callback removal when pausing/stopping
	  At least on iOS, the 'input' callback kept being called after going to PAUSED.
	  Specifying the right type (like in gst_core_audio_io_proc_start()) fixes that.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7856>

2024-11-08 11:57:49 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/osxaudio/gstosxcoreaudiocommon.c:
	  osxaudio: Fix AudioOutputUnitStart() deadlock on iOS >=17
	  At some point in iOS 17, this call started waiting for the first render callback (io_proc) to finish.
	  In our case, that callback also takes the ringbuf object lock by calling gst_audio_ring_buffer_set_timestamp(),
	  which results in a deadlock.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7856>

2024-11-08 11:54:27 +0100  Piotr Brzeziński <piotr@centricular.com>

	* meson.build:
	* sys/osxaudio/gstiosaudiosession.h:
	* sys/osxaudio/gstiosaudiosession.m:
	* sys/osxaudio/gstosxaudiosink.c:
	* sys/osxaudio/gstosxaudiosink.h:
	* sys/osxaudio/gstosxaudiosrc.c:
	* sys/osxaudio/gstosxaudiosrc.h:
	* sys/osxaudio/gstosxcoreaudio.c:
	* sys/osxaudio/gstosxcoreaudio.h:
	* sys/osxaudio/gstosxcoreaudioremoteio.c:
	* sys/osxaudio/meson.build:
	  osxaudio: Automatically set up AVAudioSession on iOS
	  A correctly configured AVAudioSession is needed on iOS to:
	  - allow the application to capture microphone audio (in some cases)
	  - avoid playback being silenced in silent mode
	  Without this, initializing AudioUnit for capture can fail on iOS >=17 (from my testing).
	  Since AVAudioSession has a lot of settings, in most cases its setup should be handled by the user/app.
	  However, just to have a basic default scenario covered, let's configure the bare minimum ourselves,
	  and allow anyone to disable that behaviour by setting configure-session=false on src/sink.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7856>

2025-01-06 20:30:51 +0800  Dean Zhang (张安迪) <dean.zhang@mediatek.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: release decode only frame in input list
	  For some frames with decode-only flag, the v4l2 decoder will not
	  put them in output list. The corresponding decode-only frames will
	  be still kept in input list, which may cause potential performance
	  issue when the input list is full. So release the decode-only frames
	  according to the decode-only flag after they are processed by decoder
	  driver.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8153>

2024-12-31 11:49:21 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-mux.c:
	* tests/check/elements/matroskamux.c:
	  matroskamux: Consider audio buffers as keyframes when writing out simpleblocks
	  Otherwise mpv complains and considers the file broken.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4142
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8225>

2024-12-31 11:42:04 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-mux.c:
	  matroskamux: Fix audio-only stream conditions
	  The num_a_streams and related counters are used for pad numbers and don't give
	  the absolute number of streams in this run of the muxer.
	  Also, consider the output audio-only if there are more than 1 audio stream too.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4142
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8225>

2024-12-17 20:08:24 +0100  Christian Meissl <meissl.christian@gmail.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: fix accumulated base offset in segment seeks
	  analog to fix for matroska-demux
	  commit f3c126d07c8a85e76bf5abdfa7f140bbf20545ea
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8240>

2024-12-17 21:23:34 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/fourcc.h:
	* gst/isomp4/qtdemux.c:
	* gst/isomp4/qtdemux.h:
	* gst/isomp4/qtdemux_types.c:
	  qtdemux: Add support for ISO/IEC 23003-5 raw PCM audio
	  And also support the ISO/IEC 14496-12 chnl channel layout box as required
	  by ISO/IEC 23003-5.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8171>

2025-01-02 12:24:03 +0100  Jochen Henneberg <jochen@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Undef helper macros after use
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8127>

2024-12-18 08:44:30 +0100  Jochen Henneberg <jochen@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Validate matrix before doing simplified multiply
	  The matrix multiplication makes some assumption about the element
	  values to simplify the math with fixpoint values. If this is allowed
	  for the given matrices is now checked first.
	  Then the debug output for matrix and a comment have been fixed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8127>

2024-12-17 10:48:45 +0100  Jochen Henneberg <jochen@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fixup for orientation matrix parsing
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8127>

2024-12-10 21:34:48 +0100  Jochen Henneberg <jochen@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Use mvhd transform matrix and support for flipping
	  The mvhd matrix is now combined with the tkhd matrix. The combined
	  matrix is then checked if it matches one of the standard values for
	  GST_TAG_IMAGE_ORIENTATION.
	  This check now includes matrices with flipping.
	  Fixes #4064
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8127>

2024-12-09 14:26:03 +0100  Albert Sjolund <alberts@axis.com>

	* gst/rtpmanager/gstrtpsession.c:
	  rtpsession: send twcc struct in both directions
	  As there are signals around rtpsession in both directions,
	  send twcc data both upstream and downstream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7940>

2024-12-25 16:22:23 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/elements/aacparse.c:
	  aacparse: add test to make sure output caps are set also on reuse
	  See https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/350
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8214>

2024-12-18 11:43:16 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/gst_plugins_cache.json:
	* gst/videofilter/gstvideoflip.c:
	  videoflip: Add support for Y444_16XX
	  Necessary code already existed, it was just a matter of advertising it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8177>

2024-12-21 14:39:58 +0100  Robert Mader <robert.mader@collabora.com>

	* docs/gst_plugins_cache.json:
	* sys/v4l2/gstv4l2object.c:
	  v4l2: object: Add P010 format
	  For 10bit content. Tested with HEVC on a Pixel3a (qcom).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8194>

2024-12-19 17:01:28 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/multifile/gstsplitmuxsrc.c:
	  splitmuxsrc: Post messages when a fragment is started
	  This allows the application to keep track which fragment is currently active.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8184>

2024-12-18 13:18:32 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/meson.build:
	  doc: Handle gst_dep.get_variable('libexecdir') failure
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8178>

2024-12-18 12:27:30 -0300  Thibault Saunier <tsaunier@igalia.com>

	* docs/meson.build:
	  doc: Allow updating the plugins cache for all modules even if hotdoc is not present
	  This was possible for some modules but not all, for no good reason.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8178>

2024-12-18 15:15:22 +0100  Carlos Falgueras García <cfalgueras@fluendo.com>

	* gst/rtp/gstrtph264pay.c:
	* gst/rtp/gstrtph265pay.c:
	  rtph26xpay: Fix the default framerate
	  Use 0/1 instead of 0/0 as the default framerate for rtph26{4,5}pay.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8176>

2024-12-18 16:21:47 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/gst_plugins_cache.json:
	  doc: v4l2: Update documentation cache for DMA_DRM
	  The template caps now exposes DMA_DRM formats.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>

2024-12-18 15:30:24 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: object: Adjust DMABuf negotiation base on io-mode
	  If the io-mode is forced by user to MMAP, USERPTR or RW, don't try and
	  negotiated DMABuf caps feature. This would otherwise fail later.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>

2024-12-18 15:13:17 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	* sys/v4l2/gstv4l2bufferpool.h:
	  v4l2: pool: Adjust pool behaviour when DMA_DRM is used
	  We disable the copy threshold and always add GstVideoMeta.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>

2024-08-22 16:08:03 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2transform.c:
	* sys/v4l2/gstv4l2videodec.c:
	* sys/v4l2/gstv4l2videoenc.c:
	  v4l2: Add support for setting memory:DMABuf caps
	  This is the final step to allow negotiation of this caps features. Limiting the
	  features based on the io-mode shall come next.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>

2024-08-20 15:20:02 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: object: Implement probing memory:DMABuf caps feature
	  This is the caps obtained trough caps query. We now have both system and
	  DMAbuf varaint, while maintaining support for meta:Interlaced feature.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>

2024-08-15 14:28:51 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	  v4l2: object: Add memory:DMABuf caps feature to template caps
	  In this patch, we introduce memory:DMABuf caps feature into V4L2
	  elements template caps. This is required to allow caps query,
	  allocation query and set_format to use it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>

2024-08-15 09:54:26 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: Directly map V4L2 formats to DRM formats
	  As in the long term not all V4L2 formats will have a libgstvideo
	  implementation, add a dedicated DRM fourcc map. This will be used
	  to enable memory:DMABuf caps features.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>

2024-08-15 09:53:06 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/ext/drm_fourcc.h:
	  v4l2: Include a copy of drm_fourcc.h
	  This one has been imported from libdrm 2.4.122.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633>

2024-12-09 15:12:57 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/osxaudio/gstosxaudiosink.c:
	* sys/osxaudio/gstosxaudiosrc.c:
	  vtenc, osxaudio: Fix missing since markers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>

2024-12-09 15:18:55 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* docs/gst_plugins_cache.json:
	* sys/osxaudio/gstatenc.c:
	  atenc: Add missing since markers and mark plugin API
	  Also update the plugin docs cache.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>

2024-12-05 00:32:37 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	  docs: Update macOS plugin docs again
	  Contains the following updates:
	  * New properties on avfvideosrc: screen-crop-*
	  * H265 and H265 Alpha support in vtdec and vtenc (VideoToolbox)
	  * ProRes support in vtenc
	  * New properties on vtenc elements: rate-control, data-rate-limits,
	  max-frame-delay
	  * New plugin atenc (AudioToolbox) with support for encoding AAC
	  * Plugin move: atdec moved from -bad to -good
	  * New property on osxaudio elements: unique-id
	  * OS X -> macOS
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8120>

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

	* gst/rtp/gstrtppassthroughpay.c:
	  rtppassthroughpay: ensure buffer is writable before mapping writable
	  It is entirely possible that the incoming buffer into _chain() is not writable
	  and will result in a critical when trying to map().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8131>

2024-12-04 16:10:46 +0000  Philippe Normand <philn@igalia.com>

	* gst/rtpmanager/gstrtpsession.c:
	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtpsession.h:
	  rtpsession: Fix twcc stats structure leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8073>

2024-12-04 16:52:55 +0800  Qian Hu <Qian.Hu@mediatek.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: move height setting outside of per-plane loop
	  In the V4L2 format, the height parameter
	  is an attribute of the entire image, not of an individual plane.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8088>

2024-12-04 16:42:49 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/multifile/gstsplitmuxpartreader.c:
	  splitmuxsrc: Calculate the end offset of a fragment once known
	  If a new fragment is added with a valid duration but no offset then the start
	  offset is set later based on the end offset of the previous fragment. At that
	  point the end offset of this fragment can also be calculated and not doing so
	  would give the next fragment the same start offset.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8069>

2024-12-04 17:13:12 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audioparsers/gstflacparse.c:
	* gst/audioparsers/gstflacparse.h:
	  flacparse: Improve header validity checks
	  Allow sample rate, number of channels and bps to change and in that case update
	  the caps accordingly.
	  Also move (non-fatal) validity checks and storing of the header values outside
	  the actual parsing once we actually know that a valid frame is available.
	  And also don't warn on the last frame with fixed block size blocking strategy
	  that the block size has changed: the last frame is allowed to be smaller.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3281
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8075>

2024-09-27 00:31:36 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Add size check for parsing SMI / SEQH atom
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-244
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3853
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059>

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

	* gst/isomp4/qtdemux.c:
	  qtdemux: Check for invalid atom length when extracting Closed Caption data
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-243
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3849
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059>

2024-09-27 10:39:30 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Actually handle errors returns from various functions instead of ignoring them
	  Ignoring them might cause the element to continue as if all is fine despite the
	  internal state being inconsistent. This can lead to all kinds of follow-up
	  issues, including memory safety issues.
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-245
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3847
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059>

2024-09-27 10:38:50 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Make sure there are enough offsets to read when parsing samples
	  While this specific case is also caught when initializing co_chunk, the error
	  is ignored in various places and calling into the function would lead to out of
	  bounds reads if the error message doesn't cause the pipeline to be shut down
	  fast enough.
	  To avoid this, no matter what, make sure enough offsets are available when
	  parsing them. While this is potentially slower, the same is already done in the
	  non-chunks_are_samples case.
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-245
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3847
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059>

2024-09-27 09:47:50 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fix error handling when parsing cenc sample groups fails
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-238, GHSL-2024-239, GHSL-2024-240
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3846
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059>

2024-09-27 00:12:57 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fix length checks and offsets in stsd entry parsing
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-242
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3845
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059>

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

	* gst/isomp4/qtdemux.c:
	  qtdemux: Make sure enough data is available before reading wave header node
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-236
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3843
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059>

2024-09-26 09:20:28 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Make sure only an even number of bytes is processed when handling CEA608 data
	  An odd number of bytes would lead to out of bound reads and writes, and doesn't
	  make any sense as CEA608 comes in byte pairs.
	  Strip off any leftover bytes and assume everything before that is valid.
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-195
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3841
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059>

2024-09-27 15:50:54 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Check sizes of stsc/stco/stts before trying to merge entries
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-246
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3854
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059>

2024-09-26 18:41:39 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux_dump.c:
	  qtdemux: Don't iterate over all trun entries if none of the flags are set
	  Nothing would be printed anyway.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059>

2024-09-26 18:40:56 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fix debug output during trun parsing
	  Various integers are unsigned so print them as such. Also print the actual
	  allocation size if allocation fails, not only parts of it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059>

2024-09-26 18:39:37 +0300  Antonio Morales <antonio-morales@github.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fix integer overflow when allocating the samples table for fragmented MP4
	  This can lead to out of bounds writes and NULL pointer dereferences.
	  Fixes GHSL-2024-094, GHSL-2024-237, GHSL-2024-241
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3839
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8059>

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

	* gst/matroska/matroska-demux.c:
	  matroskademux: Put a copy of the codec data into the A_MS/ACM caps
	  The original codec data buffer is owned by matroskademux and does not
	  necessarily live as long as the caps.
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-280
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3894
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8057>

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

	* gst/matroska/matroska-ids.c:
	  matroskademux: Skip over zero-sized Xiph stream headers
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-251
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3867
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8057>

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

	* gst/matroska/matroska-demux.c:
	  matroskademux: Skip over laces directly when postprocessing the frame fails
	  Otherwise NULL buffers might be handled afterwards.
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-249
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3865
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8057>

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

	* gst/matroska/matroska-demux.c:
	  matroskademux: Don't take data out of an empty adapter when processing WavPack frames
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-249
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3865
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8057>

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

	* gst/matroska/matroska-demux.c:
	  matroskademux: Check for big enough WavPack codec private data before accessing it
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-250
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3866
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8057>

2024-09-30 16:33:39 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-demux.c:
	  matroskademux: Fix off-by-one when parsing multi-channel WavPack
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8057>

2024-09-30 16:32:48 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-demux.c:
	  matroskademux: Only unmap GstMapInfo in WavPack header extraction error paths if previously mapped
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-197
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3863
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8057>

2024-10-04 14:04:03 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/avi/gstavisubtitle.c:
	  avisubtitle: Fix size checks and avoid overflows when checking sizes
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-262
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3890
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8043>

2024-10-04 13:51:00 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/wavparse/gstwavparse.c:
	  wavparse: Check size before reading ds64 chunk
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-261
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3889
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042>

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

	* gst/wavparse/gstwavparse.c:
	  wavparse: Fix clipping of size to the file size
	  The size does not include the 8 bytes tag and length, so an additional 8 bytes
	  must be removed here. 8 bytes are always available at this point because
	  otherwise the parsing of the tag and length right above would've failed.
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-260
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3888
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042>

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

	* gst/wavparse/gstwavparse.c:
	  wavparse: Check that at least 32 bytes are available before parsing smpl chunks
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-259
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3887
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042>

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

	* gst/wavparse/gstwavparse.c:
	  wavparse: Check that at least 4 bytes are available before parsing cue chunks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042>

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

	* gst/wavparse/gstwavparse.c:
	  wavparse: Fix parsing of acid chunk
	  Simply casting the bytes to a struct can lead to crashes because of unaligned
	  reads, and is also missing the endianness swapping that is necessary on big
	  endian architectures.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042>

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

	* gst/wavparse/gstwavparse.c:
	  wavparse: Make sure enough data for the tag list tag is available before parsing
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-258
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3886
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042>

2024-10-04 13:00:57 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/wavparse/gstwavparse.c:
	  wavparse: Check for short reads when parsing headers in pull mode
	  And also return the actual flow return to the caller instead of always returning
	  GST_FLOW_ERROR.
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-258, GHSL-2024-260
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3886
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3888
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8042>

2024-10-02 14:44:21 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/gdk_pixbuf/gstgdkpixbufdec.c:
	  gdkpixbufdec: Check if initializing the video info actually succeeded
	  Otherwise a 0-byte buffer would be allocated, which gives NULL memory when
	  mapped.
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-118
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3876
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8041>

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

	* ext/jpeg/gstjpegdec.c:
	  jpegdec: Directly error out on negotiation failures
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-247
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3862
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8040>

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

	* gst/isomp4/qtdemux.c:
	  qtdemux: Avoid integer overflow when parsing Theora extension
	  Thanks to Antonio Morales for finding and reporting the issue.
	  Fixes GHSL-2024-166
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3851
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8032>

2024-11-29 13:41:54 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/level/gstlevel.c:
	  level: Fix integer overflow when filling LevelMeta
	  The level in GstAudioLevelMeta is represented as a signed 8bit value from 0 to
	  127 (with 127 meaning silence). When converting from double, make sure to clip
	  the value, this also prevent integer overflow in the conversion. This fixes an
	  issue where a lower then -127db is reported and random level with near silent
	  streams (due to integer overflow).
	  Fixes #4068
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8012>

2024-12-01 11:40:14 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/flv/gstflvmux.c:
	  flvmux: Fix off-by-one in month/day-of-the-week array
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4074
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8017>

2024-11-28 22:26:17 -0500  Olivier Crête <olivier.crete@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2src: Handle framerate not being a range
	  The framerate can be a range or a fraction, one now needs to handle both
	  cases. If it's not a range, then the framerate needs to be exactly the same.
	  Also avoid leaking the GstStructure
	  Fixes a regression introduced by https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7850
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8000>

2024-11-29 12:16:48 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Update version of tcp-timestamp property to 1.24.10
	  It was backported to 1.24.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8005>

2024-11-28 12:56:33 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/shout2/gstshout2.c:
	  shout2send: Unref event at the end of the event function
	  The function takes ownership of it and should get rid of it at the end.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7992>

2024-11-22 19:37:27 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	* gst/rtsp/gstrtspsrc.h:
	  rtspsrc: Use a flow combiner at the source pads instead of custom logic
	  Most importantly, this ensures that UDP streams still continue to run even if
	  they are not linked for a while. With decodebin3 the pads will all be unlinked
	  unless selected, and selecting a stream at a later time would otherwise switch
	  to a stream with a stopped udpsrc.
	  Apart from that this also ensures that actual errors from handling RTP packets
	  between udpsrc and the source pads are not silently ignored but considered
	  errors like they would be for TCP/interleaved.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7946>

2024-11-22 19:36:46 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Don't set pad event/query function twice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7946>

2024-11-27 12:16:37 +0100  Jonas Rebmann <jre@pengutronix.de>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: fix freeze race condition
	  This fixes a possible deadlock between gst_v4l2_video_dec_change_state
	  and gst_v4l2_video_dec_loop on the buffer pool.
	  When stopping capture, the flushing state of the v4l2 capture buffer
	  pool gets reverted in the processing loop after it was set via
	  gst_v4l2_object_unlock (self->v4l2capture) (in
	  gst_v4l2_video_dec_change_state). As a result, gst_v4l2_video_dec_loop
	  does not return and consequently, gst_pad_stop_task gets stuck waiting
	  for the GST_PAD_STREAM_LOCK. To circumvent this, skip acquiring the
	  buffer pool if stopping capture.
	  Suggested-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7958>

2024-11-22 18:59:53 +1100  Matthew Waters <matthew@centricular.com>

	* ext/qt/gstqsgmaterial.cc:
	* ext/qt6/gstqsg6material.cc:
	  qt(6)/material: ensure that we always update the context in setBuffer()
	  Scenario is that there are two (or more) GstGLContext's wrapping Qt's GL
	  context from either multiple qml(6)glsink or qml(6)glsrc elements.  Call flow is this:
	  1. material 1 setBuffer()
	  2. material 1 bind()
	  3. material 2 setBuffer()
	  4. material 2 bind()
	  If the call to setBuffer() reuses the same buffer as previous call, then the
	  qt context is not updated in the material.  If however the previously used qt
	  context by the material had been deactivated or freed, then bind() would fail
	  and could result in a critical like so:
	  gst_gl_context_thread_add: assertion 'context->priv->active_thread == g_thread_self ()' failed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7970>

2024-11-21 15:45:24 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/qt/meson.build:
	* ext/qt6/meson.build:
	  meson: Use new has_tools kwarg to avoid unnecessary lrelease dependency
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7937>

2024-11-26 10:51:12 +0000  Philippe Normand <philn@igalia.com>

	* ext/meson.build:
	  meson: Check for libsoup only if required
	  LibSoup is needed for the soup and adaptivedemux2 plugins, so there is no need
	  to do the lookup if none of those plugins is enabled.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7964>

2024-11-25 15:47:22 +0100  Tomáš Polomský <1155369-polomsky@users.noreply.gitlab.freedesktop.org>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: Fixed incorrect maximum value for int range
	  There are objects where maximum is not multiplication of the step,
	  e.g. there was a combination where max was 65535 with step 2.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7953>

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

	* gst/multifile/gstsplitmuxpartreader.c:
	* gst/multifile/gstsplitmuxpartreader.h:
	  splitmuxsrc: Convert part reader to a bin with a non-async bus
	  A pipeline always has an async bus, which involves allocating an fd pair. As
	  splitmuxsrc only uses the bus' sync handler, this is not required and can easily
	  cause splitmuxsrc to exceed the fd limit for no good reason.
	  The other features of GstPipeline are also not needed here, e.g. clock selection.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7952>

2024-11-21 00:07:31 +0100  Diego Nieto <diego.nieto.m@outlook.com>

	* gst/rtpmanager/rtpsource.c:
	  rtpsource: include config.h header to avoid g_memdup2 link issue
	  Without adding the header a link issue related g_memdup2 might happen.
	  In versions below 2.67.4 that symbol is manually introduced in the
	  meson config files.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7933>

2024-02-01 14:53:57 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ext/adaptivedemux2/hls/gsthlsdemux-stream.c:
	  hlsdemux2: Handle needing more data when draining segment
	  Some streams in the wild have empty segments at the beginning and
	  hlsdemux2 use to stall forever while we can handle it by processing
	  the following ones. The gap handling mechanism in adaptivedemux2
	  works properly and pushes the required gaps.
	  Update validate medias so the hls stream is present.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6034>

2024-08-29 16:39:14 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/qt6/gstqml6glsrc.cc:
	* ext/qt6/qt6glwindow.cc:
	* ext/qt6/qt6glwindow.h:
	  qmlgl6src: Use downstream pool when available
	  This make use of the pool that has been negotiated with downstream in the
	  decide_allocation function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7904>

2024-11-19 11:54:12 +0100  Marek Olejnik <molejnik@fluendo.com>

	* docs/gst_plugins_cache.json:
	* gst/debugutils/gstnavigationtest.c:
	  navigationtest: Fix plugin description
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7922>

2024-07-19 19:44:57 +0800  Qian Hu (胡骞) <qian.hu@mediatek.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: pass buffer align info for upstream
	  if downstream v4l2 output has large alignment requirement
	  this patch will pass align info for upstream element
	  and decide allocation will use these info to meet alignment
	  requirement.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7201>

2024-11-13 17:02:33 +1100  Matthew Waters <matthew@centricular.com>

	* gst/rtp/gstrtph264pay.c:
	* gst/rtp/gstrtph265pay.c:
	  rtph26xpay: silence some maybe-unitialized warnings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875>

2024-11-13 16:56:57 +1100  Matthew Waters <matthew@centricular.com>

	* ext/soup/gstsouphttpsrc.c:
	  souphttpsrc: silence some maybe-uninitialized warnings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875>

2024-11-13 16:56:22 +1100  Matthew Waters <matthew@centricular.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: silennce some maybe-uninitialized warnings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7875>

2024-11-15 11:44:17 +0100  Albert Sjolund <alberts@axis.com>

	* gst/rtpmanager/gstrtphdrext-twcc.c:
	  rtpmanager: don't map READWRITE in twcc header ext
	  There is no need to map the buffer as writable, as there is
	  only a read performed on the mapped buffer. This is in line
	  with other header extensions, as no other extensions maps
	  it as readwrite.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7895>

2024-11-15 11:46:14 -0300  Thibault Saunier <tsaunier@igalia.com>

	* meson.build:
	  meson: Bump minimum version to 1.3
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4025
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7899>

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

	* gst/matroska/matroska-mux.c:
	  matroskamux: Simplify timestamp comparison logic in find_best_pad()
	  If a buffer has no timestamp it is immediately muxed so we can directly break
	  the loop and simplify comparisons in the other cases.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7872>

2024-11-12 11:36:38 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-mux.c:
	  matroskamux: Don't time out in live mode if no timestamped next buffer is available
	  The muxer can only advance the time if it has a timestamped buffer that can be
	  output, otherwise it will just busy-wait and use up a lot of CPU.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7872>

2024-10-28 14:21:40 +0000  Philippe Normand <philn@igalia.com>

	* gst/matroska/matroska-mux.c:
	  matroskamux: Delay stream-header until all sink pads have caps
	  If we don't wait, an incomplete header might be generated due to a race between
	  the _aggregate thread and the sink pad setcaps.
	  Fixes #3929
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7872>

2024-11-06 13:51:46 +0000  Marianna Smidth Buschle <msb@qtec.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: Fixed framerate negotiation
	  We had a problem with negotiation of the framerate.
	  Gstreamer was querying the FRAMEINTERVALS based on the max frame size
	  instead of the desired frame size.
	  This was resulting in non-negotiated errors when trying to run with a
	  smaller frame size and fps higher than the max for the max image size.
	  Fx the max framerate for 1024x1024 RGB on CMOSIS4000 is 28.292
	  While for 1024x100 RGB it is 280.867
	  But Gstreamer would allow any framerates bigger than 28.292 no matter
	  the frame size used...
	  I have fixed it by 1st changing the CAPS query to use the minimum frame
	  size instead of maximum.
	  This however has the downside of allowing gstreamer to negotiate
	  framerates that are too high if the image size is bigger than the
	  minimum.
	  This is not a huge problem since our driver just CLAMPS the fps value to
	  the max then.
	  However gstreamer was not being properly notified of this change, and
	  would therefore report a wrong fps in the CAPS structure.
	  Note that the fps would be correct inside the buffer info.
	  Since gstreamer was reading the fps back after setting it.
	  It was just not being "propagated" to the CAPS structure.
	  I have also added a WARNING to this point so we can see if the fps that
	  gstreamer tries to apply was accepted or not.
	  And the next part of the fix was to add a framerate check after the
	  frame size has been established.
	  I did this inside the fixate_caps function of the v4l2src, which was
	  calling the TRY_FMT in order to check if the format was correct.
	  So I just added a check for the ENUM_FRAMEINTERVALS in there.
	  And now we get the non-negotiated again if the fps is too high for the
	  selected frame size.
	  Also added a couple of warnings so it is easy to see that this was the
	  cause.
	  See:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3037
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7850>

2020-09-21 16:48:38 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/flv/gstflvmux.c:
	  flvmux: Mux timestampless buffers immediately
	  Instead of leaving them queued indefinitely, or until we're timing out
	  and it's the only buffer queued.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7871>

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

	* gst/flv/gstflvmux.c:
	  flvmux: Don't time out in live mode if no timestamped next buffer is available
	  But also don't wait for a buffer on both pads, which might take forever in case
	  of gaps in one of the streams.
	  The muxer can only advance the time if it has a timestamped buffer that can be
	  output, otherwise it will just busy-wait and use up a lot of CPU.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7871>

2024-11-13 15:49:57 +0100  Robert Rosengren <robertr@axis.com>

	* gst/udp/gstudpsrc.c:
	  udpsrc: protect cancellable from unlock/unlock_stop race
	  Protect cancellable from simultaneous unlock and unlock_stop calls from
	  basesrc class.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7885>

2024-11-11 16:43:29 +0800  Dean Zhang (张安迪) <dean.zhang@mediatek.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Add support for m1v fourcc when subtype is vide
	  Some special videos with mlv fourcc can't be recognized by
	  qtdemux when the subtype of the video is vide instead of
	  m1v, and will cause negotiation error in subsequent plugin.
	  So make the handle in qtdemux_video_caps. It might be better
	  than nothing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7855>

2024-11-04 10:49:25 +0100  Stefan Riedmüller <s.riedmueller@phytec.de>

	* docs/gst_plugins_cache.json:
	* sys/v4l2/gstv4l2object.c:
	  v4l2object: Remove little endian marker on 8 bit bayer format names
	  There is no point in having an endian marker on 8 bit bayer format names since
	  it is just one byte. Thus remove it.
	  This also fixes an incompatibility with plugins bad where there is no endian
	  marker on 8 bit bayer format names as well.
	  Fixes: #3729
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7826>

2024-05-29 06:33:50 +0200  Jonas K Danielsson <jonas.danielsson@spiideo.com>

	* gst/udp/gstudpsrc.c:
	  udpsrc: Disable allocated port reuse for unicast
	  The `reuse` property end up setting the SO_REUSEADDR socket option for
	  the UDP socket. This setting have surprising effects.
	  On Linux systems the man page (`socket(7)`) states:
	  ```
	  SO_REUSEADDR
	  Indicates that the rules used in validating addresses supplied
	  in a bind(2) call should allow reuse of local addresses. For
	  AF_INET sockets this means that a socket may bind, except when
	  there is an active listening socket bound to the address.
	  ```
	  But since UDP does not listen this ends up meaning that when an
	  ephemeral port is allocated (setting the `port` to `0`) the kernel is
	  free to reuse any other UDP port that has `SO_REUSEADDR` set.
	  Tests checking the likelyhood of port conflict when using multiple
	  `udpsrc` shows port conflicts starting to occur after ~100-300 udpsrc
	  with port allocation enabled. See issue #3411 for more details.
	  Changing the default value of a property is not a small thing we risk
	  breaking application that rely on the current default value. But since
	  the effects of having `reuse` default `TRUE` on can also have damaging
	  and hard-to-debug consequences, it might be worth to consider.
	  Having `SO_REUSEADDR` enabled for multicast, might have some use cases
	  but for unicast, with dynamic port allocation, it does not make sense.
	  When not using an multicast address we will disable port reuse if the
	  `port` property is set to 0 (=allocate) and warn the user that we did
	  so.
	  Closes #3411
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7841>

2024-11-05 11:49:32 +0000  Philippe Normand <philn@igalia.com>

	* gst/rtpmanager/gstrtpfunnel.c:
	* tests/check/elements/rtpfunnel.c:
	  rtpfunnel: Ensure segment events are forwarded after flushs
	  gst_rtp_funnel_forward_segment() returns early when the current_pad is set.
	  Without clearing current_pad a critical warning would be emitted when
	  attempting to chain a buffer following a flush.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7830>

2024-10-24 18:25:36 -0300  L. E. Segovia <amy@centricular.com>

	* ext/mpg123/gstmpg123audiodec.c:
	* ext/mpg123/gstmpg123audiodec.h:
	  mpg123audiodec: Fix dependence on off_t breaking Meson wrap-based builds
	  Using the mpg123_*_64 functions requires API level 48 i.e. mpg123 >= 1.32.
	  The mpg123_*64 functions are available before then, but still depend on
	  off_t (and as such introduce the bug in builds against distro provided
	  mpg123).
	  See https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1568#note_2624024
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7732>

2024-11-03 17:30:40 +0000  Tim-Philipp Müller <tim@centricular.com>

	* docs/meson.build:
	  meson: bail out earlier in docs subdir if docs are disabled
	  The gst_dep.get_variable('libexecdir') may fail in some scenarios
	  (e.g. building a module alone inside an uninstalled devenv) and
	  it shouldn't really be reached in the first place if docs are
	  disabled via options.
	  Also to avoid confusing meson messages when cross-compiling or
	  doing a static build.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7818>

2024-11-03 17:36:46 +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/ky.po:
	* po/lt.po:
	* po/lv.po:
	* po/mt.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:
	* po/zh_HK.po:
	* po/zh_TW.po:
	  gst-plugins-good: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7819>

2024-10-31 17:46:40 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtp/gstrtph264depay.c:
	* gst/rtp/gstrtph265depay.c:
	  rtph264depay, rtph265depay: various parameter-set string handling fixes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7804>

2024-06-13 09:59:24 +0200  Andreas Wittmann <andreas.wittmann@zeiss.com>

	* docs/gst_plugins_cache.json:
	* ext/qt/gstqtoverlay.cc:
	* ext/qt/gstqtoverlay.h:
	* ext/qt/qtglrenderer.cc:
	* ext/qt/qtglrenderer.h:
	  qmlgloverlay: make depth buffer optional
	  allow dropping depth/stencil buffer for
	  qmlgloverlay element. Shows considerable
	  drop in memory bandwidth consumption of
	  the element on windows platforms.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7677>

2024-10-29 17:39:02 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/flv/gstflvmux.c:
	  flvmux: Consider timestamps before segment start to map to segment start
	  Instead of mapping them to running time 0, which is wrong if e.g. the segment
	  base is not equal to 0.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7780>

2024-10-29 15:30:59 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/flv/gstflvmux.c:
	  flvmux: Use first running time on the initial header instead of 0
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7780>

2024-10-29 16:43:33 +0000  Tim-Philipp Müller <tim@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtp/gstrtppassthroughpay.c:
	  rtppassthrough: fix rtp-stats message compatibility with GstRTPBasePayload
	  "clock-rate" and "pt" are G_TYPE_UINT in the base class, so let's
	  keep them like that here too, since the entire purposes of the
	  passthrough element is to fake being a payloader. The types in the
	  message don't have to be consistent with the types in the caps.
	  Reverts part of commit a6fa53b7 of !7526
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7552#note_2576653
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7783>

2024-08-08 12:28:11 +0000  Johan Sternerup <johast@axis.com>

	* gst/rtpmanager/rtptwcc.c:
	* tests/check/elements/rtpsession.c:
	  twcc: Handle wrapping of reference time
	  Previously the wrapping of the 24-bit reference time was not handled
	  correctly when transforming it into GstClockTime. Given the unit of 64ms
	  the span that could be represented by 24 bits is 12 days and depending
	  on the start value we could get a wrapping problem anytime within this
	  time frame. This turned out to be particularly problematic for the GCC
	  algorithm in gst-plugins-rs which tried to evict old packages based on
	  the "oldest" timestamp, which due to wrapping problems could be in the
	  future. Thus, the container managing the packets could grow without
	  limits for a long time thereby creating both CPU and memory problems.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7527>

2024-10-25 12:02:54 +0200  Ognyan Tonchev <ognyan@axis.com>

	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtpsource.c:
	  rtpmanager: skip RTPSources which are not ready in the RTCP generation
	  If a stream has an 'irregular' frame rate (e.g. metadata) RTCP SR
	  may be generated way too early, before the RTPSource has received
	  the first packet after Latency was configured in the pipeline.
	  We skip such RTPSources in the RTCP generation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7740>

2024-10-22 12:50:36 -0600  Guillermo E. Martinez <guillermo.martinez.quezada@continental.com>

	* gst/udp/gstudpsrc.c:
	  udp: Update documentation for `timeout' property
	  This patch is meant to update the time units description of `timeout' property
	  for the `udpsrc` element from milliseconds to nanoseconds according to the
	  implementation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7748>

2024-06-28 14:24:54 +0200  Edward Hervey <edward@centricular.com>

	* docs/gst_plugins_cache.json:
	  plugins_cache: Update for fedora 40 build
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>

2024-10-21 11:50:23 +0200  Carlos Falgueras García <cfalgueras@fluendo.com>

	* docs/gst_plugins_cache.json:
	  video: Add GRAY10_LE16 support
	  This adds a 10-bit variant of grayscale packed into 16 bits little-endian
	  words. The MSB 6 bits are padding and should be ignored. This format is
	  used by Fraunhofer VVC encoder and decoder libraries.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7706>

2024-10-23 20:50:31 +0200  François Laignel <francois@centricular.com>

	  rtspsrc: client-managed MIKEY KeyMgmt
	  Some servers (e.g. Axis cameras) expect the client to propose the encryption
	  key(s) to be used for SRTP / SRTCP. This is required to allow re-keying so
	  as to evade cryptanalysis. Note that the behaviour is not specified by the
	  RFCs. By setting the 'client-managed-mikey-mode' property to 'true', rtspsrc
	  acts as follows:
	  * For a secured profile (RTP/SAVP or RTP/SAVPF), any media in the SDP
	  returned by the server for which a MIKEY key management applies is
	  elligible for client managed mode. The MIKEY from the server is then
	  ignored.
	  * rtspsrc sends a SETUP with a MIKEY payload proposed by the user. The
	  payload is formed by calling the 'request-rtp-key' signal for each
	  elligible stream. During initialisation, 'request-rtcp-key' is also
	  called as usual. The keys returned by both signals should be the same
	  for a single stream, but the mechanism allows a different approach.
	  * The user can start re-keying of a stream by calling SET_PARAMETER.
	  The convenience signal 'set-mikey-parameter' can be used to build a
	  'KeyMgmt' parameter with a MIKEY payload.
	  * After the server accepts the new parameter, the user can call
	  'remove-key' and prepare for the new key(s) to be served by signals
	  'request-rtp-key' & 'request-rtcp-key'.
	  * The signals 'soft-limit' & 'hard-limit' are called when a key
	  reaches the limits of its utilisation.
	  This commit adds support for:
	  * client-managed MIKEY mode to srtpsrc.
	  * Master Key Index (MKI) parsing and encoding to GstMIKEYMessage.
	  * re-keying using the signals 'set-mikey-parameter' & 'remove-key' and
	  then by serving the new key via 'request-rtp-key' & 'request-rtcp-key'.
	  * 'soft-limit' & 'hard-limit' signals, similar to those provided by srtpdec.
	  See also:
	  * https://www.rfc-editor.org/rfc/rfc3830
	  * https://www.rfc-editor.org/rfc/rfc4567
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7587>

2024-10-10 02:07:38 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/adaptivedemux2/meson.build:
	* ext/meson.build:
	* ext/soup/gstsouploader.c:
	* ext/soup/meson.build:
	  soup: Re-enable libsoup dlopen on macOS
	  Move from GModule to libdl for loading libraries on all platforms.
	  This is necessary due to a macOS bug where dyld uses the incorrect
	  @loader_path value for RPATH entries, and fails to find libsoup.
	  More details here: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1171#note_2290789
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3792
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7635>

2024-09-24 18:23:45 +0200  Marek Vasut <marex@denx.de>

	* docs/gst_plugins_cache.json:
	* ext/qt/gstqsgmaterial.cc:
	* ext/qt/gstqtsink.cc:
	  qt: Added support for RGB16/BGR16 input format to qmlglsink
	  This allows input format to be 16-bit RGB565/BGR565, which is
	  generated by various V4L2 devices. This format can be useful
	  on hardware which is constrained by memory bandwidth.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7567>

2024-10-14 12:35:33 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/imagefreeze/gstimagefreeze.c:
	  imagefreeze: Add support for JPEG / PNG
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7660>

2024-10-03 12:48:31 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: fix parsing of matrix with 180 rotation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7607>

2024-10-04 05:55:54 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/lame/meson.build:
	  lame: Disable tools when using the fallback subproject
	  This saves time when building, since we don't use the tools.
	  Particularly on macOS, due to a macOS bug, Meson picks up an invalid
	  ncurses-config binary and incorrectly detects the presence of ncurses,
	  causing a build failure. This is fixed in the latest meson:
	  https://github.com/mesonbuild/meson/pull/13715
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7611>

2024-09-03 11:30:18 +1000  Jan Schmidt <jan@centricular.com>

	* gst/rtpmanager/rtpsession.c:
	  rtpsession: Fix a typo in docstring comment
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7424>

2024-08-29 20:39:51 +1000  Jan Schmidt <jan@centricular.com>

	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtpsource.c:
	* gst/rtpmanager/rtpsource.h:
	* tests/check/elements/rtpsession.c:
	  rtpmanager: save the report block statistics in each RTPSource
	  Move RB info from receiver reports into the internal source that the RR
	  are about, and deprecate (but retain) the old mapping where each
	  external source has only a single RB entry in the rtp statistics.
	  The old method is broken if a remote peer uses a single ssrc to send
	  receiver reports for more than one of our internal sources, other
	  as multiple RB in a single packet, or alternate RB in different reports.
	  In each case only the most recent entry was kept, overwriting data for
	  other internal sources.
	  In multicast scenarios each internal source may receive multiple
	  receiver reports from different peers. To support that, all received
	  RR's are now stored into a hash table indexed by the sender's SSRC,
	  and all RRs are placed into an array when generating statistics, so
	  that the information from all peers is retrievable.
	  The current deficient behaviour (adding RB info into non-internal RTPSources) is
	  deprecated but kept in order to be backward compatible, and retained
	  that way in the generated statistics structure.
	  Refs
	  [1] https://tools.ietf.org/html/rfc3550#section-6.4.1
	  Based on a patch by Fede Claramonte <fclaramonte@twilio.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7424>

2024-05-12 18:59:24 -0400  valadaptive <valadaptive@protonmail.com>

	* gst/isomp4/fourcc.h:
	* gst/isomp4/qtdemux.c:
	  qtdemux: Add support for Lagarith fourcc tag
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6831>

2024-09-13 10:55:03 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-mux.c:
	* gst/matroska/matroska-mux.h:
	  matroskamux: Add support for latency timeouts in live pipelines
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7510>

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

	* docs/gst_plugins_cache.json:
	* gst/matroska/ebml-write.c:
	* gst/matroska/ebml-write.h:
	* gst/matroska/matroska-mux.c:
	* gst/matroska/matroska-mux.h:
	* gst/matroska/webm-mux.c:
	* tests/check/elements/matroskamux.c:
	  matroskamux: Port to GstAggregator
	  Co-authored-by: Tim-Philipp Müller <tim@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7510>

2024-09-26 09:15:34 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Check fourcc of a second CEA608 atom instead of assuming it's cdt2
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7575>

2024-09-03 12:16:19 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/qt6/gstqml6glmixer.cc:
	* ext/qt6/qt6glwindow.cc:
	* gst/deinterlace/gstdeinterlace.c:
	* sys/v4l2/gstv4l2object.c:
	* tests/check/elements/videocrop.c:
	  common: Use more efficient versions of GstCapsFeatures API where possible
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>

2024-08-29 20:09:52 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/hls/m3u8.c:
	* ext/pulse/pulseutil.c:
	* ext/soup/gstsouphttpsrc.c:
	* gst/debugutils/gstcapssetter.c:
	* gst/isomp4/gstqtmux.c:
	* gst/matroska/matroska-mux.c:
	* gst/multifile/gstsplitmuxsink.c:
	* gst/rtpmanager/gstrtpptdemux.c:
	* gst/rtpmanager/gstrtprtxreceive.c:
	* gst/rtpmanager/gstrtprtxsend.c:
	* gst/rtpmanager/rtpsource.c:
	* gst/rtsp/gstrtspsrc.c:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/v4l2_calls.c:
	* tests/examples/rtsp/test-onvif.c:
	  common: Stop using GQuark-based GstStructure field name API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>

2024-08-09 10:41:57 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemuxutils.c:
	  common: Stop using GQuark-based GstStructure name API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432>

2024-09-24 09:50:34 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Skip zero-sized boxes instead of stopping to look at further boxes
	  A zero-sized box is not really a problem and can be skipped to look at any
	  possibly following ones.
	  BMD ATEM devices specifically write a zero-sized bmdc box in the sample
	  description, followed by the avcC box in case of h264. Previously the avcC box
	  would simply not be read at all and the file would be unplayable.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7564>

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

	* docs/gst_plugins_cache.json:
	  doc: good: Update documentation cache
	  video4linux2 plugin now maps RGB15 which his didn't before.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540>

2024-09-18 13:14:32 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: Fix a gvalue leak on error
	  In case we failed enumerating the supported interlacing mode, we leaked the
	  gvalue.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540>

2024-09-17 14:27:46 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	* sys/v4l2/gstv4l2videoenc.c:
	  v4l2: dec/enc: Flag leaked caps
	  We never free class held template caps, so flag the one that wasn't already
	  flagged.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540>

2024-08-15 16:54:25 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: object: Fix condition check to emit error
	  The check was reversed, so we could only emit a pipeline error
	  if there was no element associated with the object.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540>

2024-09-17 13:28:45 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: Always tell capture queue that we want to set the CSC
	  Not all drivers supports it, but in general we want to try and match the
	  negotiated caps, so lets always try to set the CSC.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540>

2024-08-15 16:01:03 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: object: Fix support for format:Interlaced in caps probe
	  This notably follow the way we order the template and keeps the
	  format:Interlaced caps at the end. This change also fixes
	  an early skip check, that would skip if a driver only supports
	  alternate interlacing for a specific format. It also fixes
	  a bug where only the last resolution of a discrete frame size
	  was allowed to use format:Interlaced. Finally, similar to template
	  caps code, simplify the caps for earch featurs, making the debug output
	  manageable and (marginally) improve negotiation speed.
	  This change will make it easier to introduce memory:DMABuf.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540>

2024-08-15 13:07:31 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2.c:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	  v4l2: Move M2M template caps probe into v4l2object
	  This allow reusing the code that produces output and capture devices
	  templates. This fixes the lack of Interlaced caps feature for M2M
	  devices such as decoder, encoder or converters.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540>

2024-08-14 15:26:58 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: object: Remove over indentation
	  This is a style fix, no functional changes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540>

2024-08-14 15:21:44 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: object: Map GST/V4L2 formats in a C array
	  This makes it easier to add new format in the future without
	  forgetting to update one of the numerous switch case. This
	  will also help mapping DRM formats.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540>

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

	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	  v4l2object: Expose convertion from v4l2 fourcc to GstVideoFormat
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540>

2024-08-14 09:52:54 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: Change dimensions format desc field to flag
	  The boolean naming wasn't obvious, and having this as a flag makes
	  the structure a little more compact.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7540>

2024-08-13 15:07:07 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/qt6/qt6glwindow.cc:
	* ext/qt6/qt6glwindow.h:
	  qml6glsrc: Reduce capture delay
	  In qml6glsrc, we capture the application by copying the back buffer into
	  our own FBO. The afterRendering() signal is too soon as from the apitrace, the
	  application has been rendered into a QT internal buffer, to be used as a cache
	  for refresh.
	  Use afterFrameEnd() signal instead. This works with no delay on GLES. With GL
	  it seems to reduce from 2 to 1 frame delay (this may be platform specific). A
	  different recording technique would need to be used to completely remove this
	  delay.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7351>

2024-09-18 12:34:39 +0200  Piotr Brzeziński <piotr@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtp/gstrtppassthroughpay.c:
	* gst/rtp/gstrtppassthroughpay.h:
	  rtppassthroughpay: Fix reading clock-rate and payload type from caps
	  They were using wrong types - while uint is correct technically, for compatibility reasons caps have them as signed int.
	  Values are now correctly read + added simple guards just to be sure.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7526>

2024-09-16 12:27:05 +0200  Piotr Brzeziński <piotr@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtp/gstrtppassthroughpay.c:
	* gst/rtp/gstrtppassthroughpay.h:
	  rtppassthroughpay: Add ability to regenerate RTP timestamps
	  Timestamps are untouched by default, but the new mode can now be enabled to replace RTP timestamps
	  with ones generated from the buffer PTS. Making it an enum in case different modes are needed in the future.
	  That allows for a rtpjitterbuffer to do proper drift compensation, so that the stream coming out of gst-rtsp-server
	  is not drifting compared to the pipeline clock and also not compared to the RTCP NTP times.
	  Most of the code is borrowed from rtpbasepayload, as it's exactly its behaviour which I wanted to bring here.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7526>

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

	* gst/flv/gstflvmux.c:
	  flvmux: Use gst_aggregator_update_segment() instead of randomly pushing a segment event
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7542>

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

2024-02-12 13:52:06 +0800  Tim Blechmann <tim@klingt.org>

	* sys/v4l2/gstv4l2deviceprovider.c:
	  v4l: fix thread name
	  Linux thread names are limited to 15 chars. providing long thread names
	  causes the thread name not to be applied at all
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6094>

2024-09-12 16:44:23 +0200  Michael Tretter <m.tretter@pengutronix.de>

	* sys/v4l2/gstv4l2videoenc.c:
	  v4l2videoenc: demote per frame message to LOG
	  The "Handling frame" message with the frame number is printed on every buffer.
	  Therefore, it should have log level LOG instead of DEBUG.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7543>

2024-09-12 16:31:50 +0200  Michael Tretter <m.tretter@pengutronix.de>

	* sys/v4l2/gstv4l2videoenc.c:
	* sys/v4l2/gstv4l2videoenc.h:
	  v4l2videoenc: remove unnecessary processing variable and dead code
	  "processing" is only set to FALSE and never set to TRUE. Therefore, the code
	  that depends on processing to be TRUE is never executed.
	  Remove the dead code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7543>

2024-08-13 16:38:37 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2videoenc.c:
	  v4l2: encoder: Add dynamic framerate support
	  This is not trully supported in V4L2, but we can emulate this similar to
	  what other elements do. In this patch we ensure that 0/1 is supported by
	  encoders (caps query),and uses a default of 30fps whenever we need to
	  set a framerate into the driver.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7352>

2024-09-11 13:23:35 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-mux.c:
	  matroskamux: Include end padding in the block duration for Opus streams
	  It has to be included in the block duration but in GStreamer we're not
	  including it in the buffer duration, so it has to be added again here.
	  Not including it in the block duration can lead to fatal errors when playing
	  back with Firefox if there are more padding samples than actual samples, e.g.
	  > D/MediaDemuxer WebMDemuxer[7f6a0808b900] ::GetNextPacket: Padding frames larger
	  > than packet size, flagging the packet for error (padding: {13500000,1000000000},
	  > duration: {6000,1000000}, already processed: false)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7502>

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

	* ext/adaptivedemux2/gstadaptivedemux.c:
	* gst/deinterlace/gstdeinterlace.c:
	* gst/monoscope/gstmonoscope.c:
	* gst/shapewipe/gstshapewipe.c:
	* gst/videomixer/videomixer2.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/7459>

2024-09-11 08:28:39 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/multifile/gstsplitmuxsink.c:
	  splitmuxsink: Override LATENCY query to pretend to downstream that we're not live
	  splitmuxsink can't possibly know how much latency it will introduce as it always
	  keeps one GOP around before outputting something. This breaks the latency
	  configuration of the pipeline and we're better off just pretending that
	  everything downstream of the sinkpads is not live.
	  Especially muxers that are based on aggregator and time out on the latency
	  deadline can easily misbehave otherwise as the deadline will be exceeded usually.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7499>

2024-09-09 13:49:58 +0200  Wim Taymans <wtaymans@redhat.com>

	* ext/jack/gstjackaudiosrc.c:
	  jackaudiosrc: actually use the queried ports from JACK
	  When no ports are given, gst_jack_get_ports() is called to get all the
	  (physical) output ports but then the result is ignored, triggering the
	  "No physical output ports found..." error.
	  Instead, move the queried ports to the variable we're going to use
	  later.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7474>

2024-09-09 11:23:53 -0400  Randy Li (ayaka) <ayaka@soulik.info>

	* sys/v4l2/gstv4l2bufferpool.c:
	  v4l2bufferpool: actually queue back the empty buffer flagged LAST
	  The buffer would fail at gst_v4l2_is_buffer_valid() before,
	  since it has a reference on it, it is not writable.
	  Fixes: 105d232fdec1 ("v4l2bufferpool: queue back the buffer flagged LAST but empty")
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7479>

2024-09-02 17:45:30 +0900  Hou Qi <qi.hou@nxp.com>

	* sys/v4l2/gstv4l2videoenc.c:
	  v4l2videoenc: unref buffer pool after usage properly
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7435>

2024-08-29 12:10:23 -0400  Thibault Saunier <tsaunier@igalia.com>

	* sys/osxaudio/gstosxaudiosink.c:
	* sys/osxaudio/gstosxaudiosrc.c:
	  osxaudio: Avoid dangling pointer on shutdown
	  When tearing down the elements we were still referring to the ringbuffer unique_id
	  as our property while it was already freed, leading to potential segfaults when
	  accessing the property.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7426>

2024-08-23 20:01:32 +1000  Matthew Waters <matthew@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtpfunnel.c:
	* tests/check/elements/rtpfunnel.c:
	  rtpfunnel: also fallback to pad default handling for unknown ssrcs
	  If two (or more) rtpfunnel elements are cascaded, then only one will
	  realistically have information on the particular ssrc that is in use for a
	  particular input stream.  As such, any key unit requests may never reach the
	  corresponding encoder.
	  This has been discovered by combining simulcast and BUNDLE with webrtcbin.
	  simulcast uses one rtpfunnel, and BUNDLE uses another rtpfunnel.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7405>

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

	* gst-libs/gst/glib-compat-private.h:
	* gst/interleave/interleave.c:
	* gst/interleave/meson.build:
	  gst-plugins-good: 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/7384>

2024-07-26 11:12:25 +1000  Matthew Waters <matthew@centricular.com>

	* tests/examples/qt/qmloverlay/overlay.py:
	  tests/examples/qmlglveray.py: fix formatting for commit lint
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7244>

2024-07-26 11:12:03 +1000  Matthew Waters <matthew@centricular.com>

	* tests/examples/qt/qmloverlay/overlay.py:
	  tests/examples/qmloverlay.py: add license and copyright headers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7244>

2024-07-26 11:10:20 +1000  Matthew Waters <matthew@centricular.com>

	* tests/examples/qt/qmlsink-multisink/main.cpp:
	* tests/examples/qt/qmlsink-multisink/main.qml:
	* tests/examples/qt/qmlsink-multisink/videoitem/VideoItem.qml:
	* tests/examples/qt/qmlsink-multisink/videoitem/videoitem.cpp:
	* tests/examples/qt/qmlsink-multisink/videoitem/videoitem.h:
	  tests/examples/qml-multisink: add license and copyright headers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7244>

2024-07-26 11:06:30 +1000  Matthew Waters <matthew@centricular.com>

	* tests/examples/qt/qmlsrc/main.cpp:
	* tests/examples/qt/qmlsrc/main.qml:
	  tests/examples/qmlglsrc: add copytright and licenses headers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7244>

2024-07-26 11:09:44 +1000  Matthew Waters <matthew@centricular.com>

	* tests/examples/qt/qmloverlay/main.cpp:
	* tests/examples/qt/qmloverlay/main.qml:
	* tests/examples/qt/qmloverlay/overlay.qml:
	* tests/examples/qt/qmloverlay/overlay2.qml:
	* tests/examples/qt/qmlsink-dynamically-added/main.cpp:
	* tests/examples/qt/qmlsink-dynamically-added/main.qml:
	* tests/examples/qt/qmlsink/main.cpp:
	* tests/examples/qt/qmlsink/main.qml:
	  tests/examples/qmlglsink/overlay: add copyright and licenses headers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7244>

2024-07-26 10:54:28 +1000  Matthew Waters <matthew@centricular.com>

	* tests/examples/qt6/qmlmixer/main.cpp:
	* tests/examples/qt6/qmlmixer/main.qml:
	* tests/examples/qt6/qmloverlay/main.cpp:
	* tests/examples/qt6/qmloverlay/main.qml:
	* tests/examples/qt6/qmlsink/main.cpp:
	* tests/examples/qt6/qmlsink/main.qml:
	* tests/examples/qt6/qmlsrc/main.cpp:
	* tests/examples/qt6/qmlsrc/main.qml:
	  tests/examples/qml6: Add license and copyright information
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7244>

2024-08-14 13:50:37 +0200  Edward Hervey <edward@centricular.com>

	* ext/qt6/gstqsg6material.h:
	  qt6: Remove unused field
	  ```
	  In file included from ../subprojects/gst-plugins-good/ext/qt6/gstqsg6material.cc:31:
	  ../subprojects/gst-plugins-good/ext/qt6/gstqsg6material.h:69:17: error: private
	  field 'mem_' is not used [-Werror,-Wunused-private-field]
	  69 |     GstMemory * mem_;
	  |                 ^
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7414>

2024-07-26 08:18:21 +0200  Edward Hervey <edward@centricular.com>

	* ext/qt6/gstqsg6material.cc:
	* ext/qt6/gstqsg6material.h:
	* ext/qt6/gstqt6glutility.cc:
	* ext/qt6/gstqt6glutility.h:
	* ext/qt6/qt6glitem.cc:
	* ext/qt6/qt6glrenderer.cc:
	* ext/qt6/qt6glrenderer.h:
	  qt6: Rename symbols to avoid conflict in static builds
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7414>

2024-08-19 21:05:43 +1000  Jan Schmidt <jan@centricular.com>

	* docs/gst_plugins_cache.json:
	* ext/qt/gstqsgmaterial.cc:
	* ext/qt/gstqsgmaterial.h:
	* ext/qt/gstqtsink.cc:
	* ext/qt/qtitem.cc:
	  qmlglsink: Add support for external-oes textures
	  Support was added to qml6glsink in MR !7319
	  Backport similar support to the Qt5 element so it
	  can also support direct DMABuf import from hardware
	  decoders.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7393>

2024-07-22 19:28:13 +0800  Qian Hu (胡骞) <qian.hu@mediatek.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: handle unsupported hlg colorimetry gracefully
	  This patch addresses the issue where GStreamer would throw an error when
	  attempting to use bt2100-hlg colorimetry with V4L2, which is not
	  supported by the current V4L2 kernel. When bt2100-hlg colorimetry is set
	  from caps, the check for transfer (GST_VIDEO_TRANSFER_ARIB_STD_B67) is
	  bypassed.
	  The main improvement is to avoid checking the transfer value in
	  gst_v4l2_video_colorimetry_matches when it is
	  GST_VIDEO_TRANSFER_ARIB_STD_B67. This is because the transfer value in
	  the cinfo parameter comes from gst_v4l2_object_get_colorspace, which
	  converts the transfer to another value, causing a mismatch.
	  Since the kernel does not support GST_VIDEO_TRANSFER_ARIB_STD_B67,
	  gst_v4l2_object_get_colorspace cannot map it correctly from V4L2 to
	  GStreamer. Therefore, we ignore this check to prevent errors.
	  changes:
	  - Added a condition in gst_v4l2_video_colorimetry_matches to bypass the
	  transfer check when the transfer is GST_VIDEO_TRANSFER_ARIB_STD_B67.
	  - Ensured that the pipeline does not throw errors due to unsupported
	  bt2100-hlg colorimetry in V4L2.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7212>

2024-08-15 19:00:53 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxsink.c:
	  splitmuxsink: Update tracked running time before first fragment-opened
	  Before sending the first fragment-opened message on the bus, update
	  the output_fragment_info structure so that the sent message correctly
	  reports the initial running time.
	  Fixes #3725
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7361>

2024-08-07 15:56:08 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/qt6/qt6glwindow.cc:
	  qt6glwindow: Fallback to GL_RGB on CopyTexImage2D error
	  With GLES 2.0 we are forced to use CopyTextImage2D which requires
	  passing an internal format. With QT6 eglfs, we need to pass GL_RGB
	  instead, probably because of how the texture has been created. As its
	  hard to guess, simply fallback to GL_RGB on failure. This fixes usage
	  or qml6glsrc with eglfs backend, without loosing support for
	  semi-transparent window on other platforms.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7321>

2024-08-01 11:21:09 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/qt6/qt6glwindow.cc:
	  qmlgl6src: Fix crash when use-default-fbo is false
	  When that property is set to its default qmlgl6src element simply crash
	  as it will call gst_video_frame_unmap() twice.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7290>

2024-07-03 16:03:47 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtsp/gstrtspsrc.c:
	* gst/rtsp/gstrtspsrc.h:
	  rtspsrc: expose property for forcing usage of non-compliant URLs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7133>

2024-08-12 22:34:17 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/osxaudio/meson.build:
	  meson: Use required: kwarg in osxaudio to fix FIXME
	  This wasn't used because this feature didn't exist years ago when this
	  build file was written.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7340>

2024-08-12 22:33:42 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/osxaudio/gstosxcoreaudio.c:
	* sys/osxaudio/gstosxcoreaudiocommon.c:
	* sys/osxaudio/gstosxcoreaudiocommon.h:
	  osxaudio: Fix build on iOS
	  These device-provider functions are only valid on macOS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7340>

2024-08-12 22:23:29 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/osxaudio/gstosxaudiodeviceprovider.c:
	  osxaudio: Remove unused function
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7340>

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

	* sys/osxaudio/gstosxaudiodeviceprovider.c:
	* sys/osxaudio/gstosxaudioringbuffer.c:
	* sys/osxaudio/gstosxaudiosink.c:
	* sys/osxaudio/gstosxaudiosink.h:
	* sys/osxaudio/gstosxaudiosrc.c:
	* sys/osxaudio/gstosxaudiosrc.h:
	* sys/osxaudio/gstosxcoreaudio.c:
	* sys/osxaudio/gstosxcoreaudio.h:
	* sys/osxaudio/gstosxcoreaudiocommon.c:
	* sys/osxaudio/gstosxcoreaudiocommon.h:
	  osxaudio: Implement unique-id property on elements
	  The actual value is stored on GstCoreAudio now, which involved a lot
	  of moving code around due to the strange layering in the plugin.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5274>

2023-09-04 02:43:19 +1000  Jan Schmidt <jan@centricular.com>

	* sys/osxaudio/gstosxaudiodeviceprovider.c:
	* sys/osxaudio/gstosxcoreaudio.h:
	* sys/osxaudio/gstosxcoreaudiohal.c:
	* sys/osxaudio/gstosxcoreaudioremoteio.c:
	  osxaudio: Add some device provider properties
	  Add is-default and unique-id properties to the device provider.
	  unique-id is particularly useful for recognising the device again
	  as it's stable for a device across reboots and replugs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5274>

2024-07-22 16:38:07 +0200  Michael Tretter <m.tretter@pengutronix.de>

	* ext/qt6/RGBA_gles.frag:
	* ext/qt6/gstqml6glsink.cc:
	* ext/qt6/gstqsg6material.cc:
	* ext/qt6/meson.build:
	* ext/qt6/qsb-wrapper.py:
	* ext/qt6/resources.qrc:
	  qml6glsink: add support for texture-target external-oes
	  In order to use oes-external, the qml6glsink needs a fragment shader that uses
	  the samplerExternalOES.
	  The qsb tool is not able to handle shaders that contain samplerExternalOES since
	  this feature is not supported by all target shading languages. The qsb tool is
	  able to replace a shader in the qsb file to handle this use case. Use it to
	  generate a shader variant that uses samplerExternalOES for OpenGL ES and select
	  that variant if the qml6glsink negotiated texture target oes-external.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7319>

2024-07-24 10:58:30 +0200  Michael Tretter <m.tretter@pengutronix.de>

	* ext/qt6/gstqsg6material.cc:
	* ext/qt6/gstqsg6material.h:
	  gstqsg6material: pass the texture-target from caps to shader
	  The Material has to select the correct Shader depending on the negotiated
	  texture target.
	  Pass the texture target from the caps to the shader creation as it is already
	  done for the pixel format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7319>

2024-07-22 18:08:10 +0200  Michael Tretter <m.tretter@pengutronix.de>

	* ext/qt6/gstqsg6material.cc:
	  gstqsg6material: create OESExternal RhiTexture if necessary
	  The RhiTexture must be created with the OESExternal flag, if the gl_mem is a
	  OESExternal buffer. Otherwise, Qt will create a Texture 2D texture and ignore
	  the previously negotiated texture target.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7319>

2024-07-24 09:55:59 +0200  Michael Tretter <m.tretter@pengutronix.de>

	* ext/qt6/gstqsg6material.cc:
	  gstqsg6material: print loaded fragment shader to log
	  This is useful for checking that the qml6glsink selected the correct fragment
	  shader for the expected texture format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7319>

2024-08-01 12:15:17 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/qt6/qt6glwindow.cc:
	  qt6glwindow: Only use GL_READ_FRAMEBUFFER when we do blits
	  This fbo target is not always supported, and should only be used
	  along with the frame buffer blit extension.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7291>

2024-07-12 11:09:14 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxpartreader.c:
	* gst/multifile/gstsplitmuxpartreader.h:
	  splitmuxsrc: Don't create part reader elements initially
	  Only create the part reader elements internally the first time
	  the part is activated. Saves some startup time when preloading
	  a large number of fragments
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-07-12 11:07:47 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxsrc.c:
	  splitmuxsrc: Drop lock when unpreparing parts
	  Parts may emit bus messages that want to take the splitmuxsrc
	  lock and prevent the downward state change. Avoid a deadlock
	  after a part sends an error message by taking a ref and
	  dropping the lock around the unprepare call
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-07-12 10:44:51 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxsrc.c:
	  splitmuxsrc: Make sure to re-take lock
	  In the error path when activating a part fails, make
	  sure to re-take the splitmuxsrc lock before returning
	  to the caller.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-06-21 11:53:19 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxsink.c:
	* gst/multifile/gstsplitmuxsink.h:
	* gst/multifile/gstsplitmuxsrc.c:
	* tests/check/elements/splitmuxsink.c:
	  splitmuxsink: Fix race in unit tests. Add fragment-id to messages
	  Publish fragment-id in the messages that splitmuxsink and splitmuxsrc
	  send, so when they are received out of order (due to async finalization,
	  for example), they can still be identified / ordered correctly.
	  Fix a race in the splitmuxsink unit test where messages might be
	  received out of order
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-05-16 03:37:51 +1000  Jan Schmidt <jan@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/multifile/gstsplitmuxsrc.c:
	  splitmuxsrc: Document new properties and signals
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-05-15 18:45:15 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxpartreader.c:
	* gst/multifile/gstsplitmuxpartreader.h:
	* gst/multifile/gstsplitmuxsrc.c:
	* gst/multifile/gstsplitmuxsrc.h:
	* gst/multifile/test-splitmuxpartreader.c:
	  splitmuxsrc: Add num-lookahead property
	  Add a `num-lookahead` property that will 'prepare' a number of
	  fragments in advance of the playhead if they have been deactivated
	  or closed by a limited number of `num-open-fragments`. It can help
	  to avoid any play stalls reading the indexes or headers of the next
	  file from high-latency media or on resource limited machines.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-05-16 01:26:51 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxpartreader.c:
	* gst/multifile/gstsplitmuxpartreader.h:
	* gst/multifile/gstsplitmuxsrc.c:
	  splitmuxsrc: Rename some internal terminology
	  A part reader can be 'loaded' (prepared, but not currently outputting anything)
	  or 'playing' (actively being used to output data)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-05-10 23:25:51 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxsrc.c:
	* gst/multifile/gstsplitmuxsrc.h:
	* tests/examples/splitmux/meson.build:
	* tests/examples/splitmux/splitmux-record-and-play-live.c:
	  splitmuxsrc: Allow adding fragments during playback
	  Trigger measurement / inclusion of new fragments into
	  the playback timeline if they are added after the
	  element is already running.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-04-30 00:33:35 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxsink.c:
	* gst/multifile/gstsplitmuxsink.h:
	* tests/check/elements/splitmuxsink.c:
	* tests/check/elements/splitmuxsrc.c:
	* tests/examples/splitmux/meson.build:
	* tests/examples/splitmux/splitmuxsink-fragment-info.c:
	  splitmuxsink: Add fragment offset and duration to message
	  Publish the playback offset for and duration into the
	  splitmuxsink-fragment-closed bus message as each fragment
	  finishes.
	  These can be passed to splitmuxsrc via the 'add-fragment'
	  signal to avoid splitmuxsrc measuring all files on startup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-04-30 00:33:35 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxsink.c:
	  splitmuxsink: Fix a race in fragment switching with async handling
	  Only do output/muxer operations at the output side of splitmuxsink
	  to avoid races if fragments are small, by moving the RUNNING_TIME
	  qdata setting.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-04-30 00:33:35 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxsink.c:
	* gst/multifile/gstsplitmuxsink.h:
	  splitmuxsink: Refactor command queue buffer
	  Make the command struct a bit clearer by giving it an explicit
	  enum cmd_type instead of just a boolean to differentiate a
	  finish-fragment command from a release-gop command
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-05-10 01:00:08 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxsrc.c:
	  splitmuxsrc: Default to only keeping 100 files open
	  Add a reasonably large default for the number of simulataneous
	  files to open, that won't affect users that split recordings into
	  a few large files, but will help prevent fd exhaustion for users
	  that make recordings with lots of small fragments
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-05-10 00:48:11 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxpartreader.c:
	* gst/multifile/gstsplitmuxpartreader.h:
	  splitmuxsrc: Keep streams aligned during adjustments
	  When calculating the timestamp offset to apply to
	  media streams in a fragment, ensure that all fragments
	  are offset "together" to preserve alignment in cases
	  where there might gaps in a recording at a fragment boundary.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-05-03 23:41:03 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxpartreader.c:
	* gst/multifile/gstsplitmuxpartreader.h:
	* gst/multifile/gstsplitmuxsrc.c:
	* gst/multifile/gstsplitmuxsrc.h:
	* gst/multifile/test-splitmuxpartreader.c:
	* tests/examples/meson.build:
	* tests/examples/splitmux/meson.build:
	* tests/examples/splitmux/splitmuxsrc-add-fragment.c:
	* tests/examples/splitmux/splitmuxsrc-extract.c:
	  splitmuxsrc: Add add-fragment signal and examples
	  Add a signal that allows adding fragments with a specific offset
	  and duration directly to splitmuxsrc's list. By providing the
	  fragment's offset on the playback timeline and duration directly,
	  splitmuxsrc doesn't need to measure the fragment making for faster
	  startup times.
	  Add a bus message that's published when fragments are measured,
	  reporting the offset and duration, so they can be cached by an
	  application and used on future invocations.
	  Add examples for handling the bus message and using the 'add-fragment'
	  signal.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-04-30 00:33:35 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxpartreader.c:
	* gst/multifile/gstsplitmuxpartreader.h:
	* gst/multifile/gstsplitmuxsrc.c:
	* gst/multifile/gstsplitmuxsrc.h:
	  splitmuxsrc: Add num-open-fragments property
	  Add a property to limit the number of parts splitmux will open
	  simultaneously. Modify the part handling to support deactivating
	  and reactivating the demuxing for each part.
	  The default is '0', to preserve the existing behaviour of opening
	  all parts at the beginning.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-04-30 00:33:35 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxpartreader.c:
	  splitmuxsrc: Report minimum timestamp for each media stream
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7053>

2024-07-31 09:06:21 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/qt6/qt6glwindow.cc:
	  qt6: glwindow: Don't leak previously rendered buffer
	  If the consumer reads the buffers too slowily, simply unref the
	  previously rendered buffer instead of leaking it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7286>

2024-07-29 09:07:40 +0800  Shengqi Yu <shengqi.yu@mediatek.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: append non colorimetry structure to probed caps
	  If the stream has a special colorimetry that is not in the colorimetry
	  list, it will cause negotiation to fail. We should allow passing any
	  colorimetry, so add an extra structure without the colorimetry field.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7029>

2023-02-13 16:49:40 +0800  Hou Qi <qi.hou@nxp.com>

	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	  v4l2: Fix colorimetry mismatch for encoded format with RGB color-matrix
	  video-info supports encoded format to have RGB color-matrix, while
	  v4l2object just leave the v4l2 matrix to default when mapping
	  GST_VIDEO_COLOR_MATRIX_RGB. It causes gst matrix changed to be
	  GST_VIDEO_COLOR_MATRIX_BT601 when mapping v4l2 colorimetry.
	  So add support for encoded format with RGB color-matrix in v4l2object.
	  Note that for M2M encoders, we should in theory assume that that we can
	  transfer this value from OUTPUT to CAPTURE queues, though its only true
	  if the drivers does not do CSC. For now, we don't support any RGB
	  codecs, but leaving a note for the future.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3952>

2024-07-29 14:39:06 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: SRGB colorspace is documented limited-range
	  Split JPEG and SRGB so that we can follow the specified difference. The
	  SRGB definition in V4L2 does not follow the standard, and is document
	  so. This is also why JPEG colorspace exists.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3952>

2024-07-29 11:40:01 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: Fix size of plane_size array calculation
	  Due to missing parenthesys, only the first element of the array was
	  being cleared. As it is a staticly sized array in the object, this
	  code could also be simplified.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3952>

2024-07-29 11:37:29 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: Fix translation of quantization
	  The V4L2_MAP_QUANTIZATION macro has been fixed to something a lot saner,
	  fix our replica accordingly. The new macro now simply set the quantization
	  to full range is the pixel formats is RGB based, or if the JPEG
	  colorspace is used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3952>

2024-07-26 16:38:31 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	  adaptivedemux: Fail cleanly if parsebin is not installed
	  Detect a failure to construct a parsebin and error out
	  cleanly instead of trying to operate on a null pointer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6969>

2024-05-30 00:32:30 +0300  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	  adaptivedemux2: Post a bus error when failing to start download
	  If a download completely fails to start, due to malformed URI or so,
	  post a bus error instead of just stalling out with no indication
	  why.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6969>

2024-05-30 00:31:38 +0300  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/downloadhelper.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Implement file:// URI handling
	  Add the ability to play HLS and DASH from local files
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6969>

2024-05-29 16:35:37 +0300  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsng: Check caps are not null after parsing HLS CODECS tag
	  If the mime codec wasn't recognised, caps will be NULL and cause
	  a critical
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6969>

2024-07-23 15:32:22 +0200  Loïc Yhuel <loic.yhuel@softathome.com>

	* meson.build:
	  meson: fix SIZEOF_OFF_T when cross-compiling with Meson >= 1.3.0
	  https://mesonbuild.com/Release-notes-for-1-3-0.html#clarify-of-implicitlyincluded-headers-in-clike-compiler-checks
	  With only stddef.h, off_t is not defined, so when cross-compiling SIZEOF_OFF_T is -1.
	  We now use sys/types.h which should define off_t.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7217>

2024-07-07 10:14:40 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/debugutils/gsttaginject.c:
	* gst/debugutils/gsttaginject.h:
	  taginject: Modify existing tag events of the selected scope
	  Not doing so would mean that tags would be overidden by any tag events sent by
	  upstream. Also only send a tag event directly if upstream never sent one.
	  By default use GST_TAG_MERGE_REPLACE to override tags that exist in both the
	  upstream event and this element with the ones from this element, but provide a
	  new "merge-mode" property to adjust the behaviour.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7145>

2024-07-07 19:31:14 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/debugutils/gsttaginject.c:
	  taginject: Add getters for the properties
	  There's no reason why they should be write-only.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7145>

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

	* gst/debugutils/gsttaginject.c:
	  taginject: Use proper GType macro for the GstTagScope enum
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7145>

2024-07-03 16:08:40 +0300  Tihran Katolikian <katolikian@outlook.com>

	* ext/qt6/gstqsg6material.cc:
	  qt6: explicitly specify path to QtGui private headers when including qrhi_p.h
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7131>

2024-06-12 23:25:52 +1000  Matthew Waters <matthew@centricular.com>

	* ext/qt/gstqsgmaterial.cc:
	  qml/glsink: also support GLES2 needing shader 'precision' directives
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3616
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7024>

2024-07-01 10:00:42 +0800  Shengqi Yu <shengqi.yu@mediatek.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: use v4l2 reported width for padded_width when complex video formats
	  Stride means bytes per line, and padded_width means pixels. Here,
	  padded_width shoule be pix width reported by v4l2 instead of stride.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7076>

2020-04-08 10:40:42 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* meson.build:
	* meson_options.txt:
	  build: Add missing common options that are yielding in subprojects
	  - Align `glib_debug`, `glib_assert` and `glib_checks` options with GLib,
	  otherwise glib subproject won't inherit their value. Previous names
	  and values are preserved using Meson's deprecation mechanism.
	  - Add `extra-checks` and `benchmarks` options in the main project so it
	  can be inherited in GStreamer subprojects.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1165>

2024-06-02 11:40:04 +0300  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  adaptivedemux: Fix handling closed caption streams
	  Fix a typo "CLOSED_CAPTION" -> "CLOSED-CAPTION" and
	  a broken if statement that always bailed out for
	  closed captions
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6985>

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

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

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

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

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

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

2024-06-07 15:26:00 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-private.h:
	* ext/adaptivedemux2/gstadaptivedemux-track.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Don't send FLUSH_{START|STOP} when losing sync
	  The initial goal was to support the case where we are paused watching a live
	  stream, and when we resume we can no longer resume from the previously
	  downloaded position. In that case we internally do a flushing seek back to the
	  "current live head position". This was also extended since to be able to
	  handle (utterly broken) servers when we can't really figure out where we are
	  anymore and therefore trigger that lost sync so we can try to get back on our
	  feet.
	  This does fix the issue... but results in spurious FLUSH_{START|STOP} events
	  being sent downstream. While that's fine for regular playback scenarios, it's a
	  bit of a wild scenario since a lot of pipelines/applications don't expect such
	  events when it wasn't triggered by downstream/application.
	  Fixes #3605
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7005>

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

	* gst/flv/gstflvmux.c:
	  flvmux: Use GDateTime instead of gmtime()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6872>

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

2023-02-07 17:07:55 +0800  Chun-wei Fan <fanc999@yahoo.com.tw>

	* ext/gtk/gtkgstglwidget.c:
	* ext/gtk/meson.build:
	  GTK plugin: Support OpenGL/WGL on Windows
	  This attempts to implement the gtkglsink element on Windows using WGL,
	  as there were some more gotchas that are along the way, since we need to
	  juggle with libepoxy along the way, meaning that we need a recent
	  GTK+-3.24.x for this to work properly, i.e. the upcoming GTK+-3.24.43.
	  Since we are essentially using an overlay compositor only during
	  rendering, move its initialization and destruction into the
	  gtk_gst_gl_widget_render() function, so that things are safer as we are
	  doing things across threads between gstreamer (gst-gl) and GTK, as GL
	  operations, as above, have more gotchas on Windows.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4289>

2024-06-01 15:15:18 +0300  Piotr Brzeziński <piotr@centricular.com>

	* sys/osxaudio/gstosxaudiodeviceprovider.c:
	  macos: Listen for audio devices being added/removed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6981>

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

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

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

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

2024-01-08 20:06:24 +0900  Seungha Yang <seungha@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Handle keyunit trick mode in case of push mode too
	  Skip non-keyframe video frames if trickmode-keyunit flag is set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5900>

2024-05-14 19:14:13 +0900  Seungha Yang <seungha@centricular.com>

	* gst/isomp4/atoms.c:
	  qtmux: Handle time information value > UINT32_MAX
	  If any duration in timescale is larger than UINT32_MAX, use version 1
	  atom, otherwise file header will be constructed with truncated values.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6843>

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

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

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

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

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

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

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

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

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

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

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

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpbin: Regularly emit the sync signal
	  Even if no new synchronization information is available.
	  This is necessary because the timestamp offset logic in rtpbin depends
	  on the base RTP time that is determined by the jitterbuffer, but this
	  changes all the time (especially in mode=slave) and the timestamp
	  offsets have to be updated accordingly. Doing so is especially important
	  if they're only determined by the RTP-Info, which never changes from the
	  very beginning.
	  The interval can be configured via the new min-sync-interval property.
	  Synchronization happens at least that often, but at most as often as the
	  old sync-interval property allows.
	  Both intervals are now based on the monotonic system clock.
	  Additionally, clean up synchronization code a bit, only emit either
	  inband NTP or RTCP SR synchronization at the same time, based on which
	  one has the more recent time information, and only emit RTP-Info
	  synchronization if it wasn't provided previously at the same time as the
	  NTP-based synchronization information.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6543>

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

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	* gst/rtsp/gstrtspsrc.c:
	  rtpjitterbuffer: Set max-rtcp-rtp-sync-time to -1 (disabled)
	  There is generally no requirement to ignore RTCP SR if the RTP time of
	  the SR differs a lot from the last received RTP packet. The mapping
	  between RTP and NTP time stays valid until there was a stream reset, in
	  which case we wouldn't use that information anyway.
	  When using rtcp-sync-send-time=false the default of 1s difference can
	  easily be exceeded, e.g. if encoding of the stream after capture adds
	  more than 1s of latency.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6543>

2024-04-17 17:31:28 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpbin: Allow synchronizing against RTP-Info without having received any RTCP
	  Previously the information was provided from rtpjitterbuffer to rtpbin
	  only once the first RTCP SR was received, which is not necessary at all
	  as all required information is available from the caps already.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1162
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6543>

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

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpbin.h:
	  rtpbin: Add new never/ntp RTCP sync modes
	  Never is useful for some RTSP servers that report plain garbage both via
	  RTCP SR and RTP-Info, for example.
	  NTP is useful if synchronization should only ever happen based on RTCP
	  SR or NTP-64 RTP header extension.
	  Also slightly change the behaviour of always/initial to take RTP-Info
	  based synchronization into account too. It's supposed to give the same
	  values as the RTCP SR and is available earlier, so will generally cause
	  fewer synchronization glitches if it's made use of.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6543>

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

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Handle switches between RTP-Info and NTP-based stream association better
	  Instead of switching on the very first stream, require that all streams
	  have switched before switching to the different synchronization
	  mechanism.
	  Without this there will be a noticeable gap during the switch. E.g. when
	  going from RTP-Info to NTP-based association, first the first stream
	  only would get an offset, then the first two, ... then all of them.
	  Depending on the order of streams this will cause a lot of changes in
	  ts-offset during the transition.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6543>

2024-04-17 17:10:03 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpbin: Pass NPT start from rtpjitterbuffer to rtpbin
	  And use it to detect synchronization changes (e.g. seeks) more reliably
	  when doing RTP-Info based synchronization.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6543>

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

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Clean up stream association state
	  Use fewer magic numbers and keep track of the different synchronization
	  mechanisms separately. Also keep track of more state to detect more
	  situations when resynchronization should happen.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6543>

2024-04-17 16:50:30 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Constify function parameters and use correct types
	  Previously these parameters were randomly changed in the body of the
	  function to avoid having to declare a new variable, which made the code
	  very hard to follow. By marking them as const this won't be possible
	  anymore in the future.
	  Also the RTP clock-base (RTP time from RTSP RTP-Info) is an unsigned
	  64 bit integer as it's an extended RTP timestamp.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6543>

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

	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpbin.h:
	  rtpbin: Untangle NTP-based and RTP-Info based stream association
	  Both were entangled previously and very hard to follow what happens
	  under which conditions. Now as a very first step the code decides which
	  of the two cases it is going to apply, and then proceeds accordingly.
	  This also avoids calculating completely invalid values along the way and
	  even printing them int the debug output.
	  Also improve debug output in various places.
	  This shouldn't cause any behaviour changes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6543>

2024-04-17 13:33:41 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Remove unused variable / function parameter
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6543>

2024-04-17 13:30:42 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Handle ntp-sync=true before everything else
	  This simplifies the code as it's a much simpler case than the normal
	  inter-stream synchronization, and interleaving it with that only
	  reduces readability of the code.
	  Also improve some debug output in this code path.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6543>

2024-04-17 13:29:08 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Add some documentation to gst_rtp_bin_associate()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6543>

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

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Don't do any timestamp offsetting in rfc7273-sync=true mode
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1160
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6543>

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

2024-05-23 14:29:49 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/level/gstlevel.c:
	  level: fix old "message" property doc chunk
	  In the online documentation the new post-messages
	  property would show up as deprecated refering to
	  itself.
	  Fixes #3561
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6911>

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

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

2024-05-21 10:45:24 +0200  Diego Nieto <diego.nieto.m@outlook.com>

	* tests/examples/rtsp/test-onvif.c:
	  rtsp-server: Remove unused define in backchannel test
	  The caps match with the ones used in test-onvif-backchannel,
	  but they are actually not used here.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6885>

2024-05-18 01:24:44 +1000  Jan Schmidt <jan@centricular.com>

	* gst/rtp/gstrtpmp4gdepay.c:
	  rtpmp4gdepay: Set duration on outgoing buffers
	  If we have constant duration buffers, set the duration on
	  outgoing buffers, like rtpmp4adepay does. This fixes
	  problems with (for example) muxers like mp4mux not writing
	  the duration of the final sample into the index.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6878>

2024-05-13 14:58:50 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/wavparse/gstwavparse.c:
	  wavparse: reset when receiving STREAM_START
	  We need to reset the internal state to be able to parse a new stream.
	  When doing so keep seek event and do not destroy the adapter.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6840>

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

	* ext/pulse/pulsesink.c:
	  audioringbuffer: Avoid overflows of segment done counter
	  This counter is incremented once for every segment, meaning it would
	  e.g. overflow after 24 days when using 1ms segments. Once that happens,
	  completely wrong positions are reported and invalid memory is handed out
	  for writing/reading the next segments.
	  As the affected variables are unfortunately part of the public API of
	  the struct, a second set of variables is added together with accessor
	  functions and both variables are kept in sync for backwards
	  compatibility.
	  All existing users of the two variables are moved to the new ones but
	  external code might still run into the overflow.
	  This also slightly breaks API as external code updating the variables
	  will have no effect anymore but the only known user of this is
	  pulsesink.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6740>

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

2024-04-18 17:07:25 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-track.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/gstadaptivedemux.h:
	* ext/mpg123/gstmpg123audiodec.c:
	* ext/mpg123/gstmpg123audiodec.h:
	* gst/multifile/gstsplitmuxsink.c:
	* gst/multifile/gstsplitmuxsink.h:
	* sys/osxaudio/gstatenc.c:
	* sys/osxaudio/gstatenc.h:
	  gst: Move GstQueueArray as GstVecDeque to core
	  And change lengths and indices from guint to gsize for a more correct type.
	  Also deprecate GstQueueArray and implement it in terms of GstVecDeque.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6779>

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

2024-04-27 00:37:52 +0900  Seungha Yang <seungha@centricular.com>

	* docs/gst_plugins_cache.json:
	  video: Add Y216 and Y416 formats
	  The same memory layout as Y212 and Y412 formats, respectively
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6745>

2024-04-11 01:49:40 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/rtp/gstrtph264depay.c:
	  rtph264depay: fix FU-B handling
	  Skip extra 16-bit DON in FU-B header.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/806
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6607>

2024-04-11 01:27:28 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/rtp/gstrtph264depay.c:
	  rtph264depay: minor refactoring of FU handling code
	  Make code easier to follow, and prepare for next commit.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6607>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2024-04-11 07:15:51 +0200  Jochen Henneberg <jochen@centricular.com>

	* docs/gst_plugins_cache.json:
	* ext/qt6/gstplugin.cc:
	* ext/qt6/gstqml6glmixer.cc:
	* ext/qt6/gstqml6gloverlay.cc:
	* ext/qt6/gstqml6glsink.cc:
	* ext/qt6/gstqml6glsrc.cc:
	* ext/qt6/qt6glitem.cc:
	  qt6: Let plugin documentation show up
	  * Added qml6 to plugin cache
	  * Added 'since' markers
	  * Moved plugin to plugins-good where it really is
	  * Fixed section comments
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6603>

2024-04-11 07:14:39 +0200  Jochen Henneberg <jochen@centricular.com>

	* docs/meson.build:
	* ext/qt/gstplugin.cc:
	* ext/qt/gstqtoverlay.cc:
	* ext/qt/gstqtsink.cc:
	* ext/qt/gstqtsrc.cc:
	* ext/qt/qtitem.cc:
	  qt: Let plugin documentation show up
	  * Enabled cc file parsing from hotdoc
	  * Moved package to plugins-good where it really is
	  * Fixed section comments
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6603>

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

	* ext/qt6/YUV_BIPLANAR.frag:
	* ext/qt6/gstqml6glsink.cc:
	* ext/qt6/gstqsg6material.cc:
	* ext/qt6/meson.build:
	* ext/qt6/resources.qrc:
	  qt6: Added support for NV12 input format to qml6glsink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6582>

2024-04-03 21:16:46 +0200  Jochen Henneberg <jochen@centricular.com>

	* docs/gst_plugins_cache.json:
	* ext/qt/gstqsgmaterial.cc:
	* ext/qt/gstqtsink.cc:
	  qt: Added support for NV12 input format to qmlglsink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6582>

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

2024-04-01 12:01:58 -0400  Arun Raghavan <arun@asymptotic.io>

	* ext/pulse/pulsesink.c:
	* ext/pulse/pulsesink.h:
	  pulsesink: Re-enable emission of stream status messages
	  This was disabled almost 10 years ago because we were missing libpulse API to
	  avoid a deadlock. That was fixed quite a long time ago, so let's enable this
	  again. The defer counter becomes an atomic, as we no longer have a threaded
	  mainloop lock protecting it.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3444
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6500>

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

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

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

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

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

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

2024-04-03 15:01:52 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtsp/gstrtspsrc.c:
	* gst/rtsp/gstrtspsrc.h:
	  rtspsrc: Optionally timestamp RTP packets with their receive times in TCP/HTTP mode
	  Until https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6509
	  this was accidentally done inside rtpjitterbuffer for many years, and
	  doing so potentially solves problems on some streams while introducing
	  problems on others.
	  Make this configurable on rtspsrc and default to not set timestamps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6529>

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

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

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

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

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

2024-03-20 13:57:56 -0500  Elizabeth Figura <zfigura@codeweavers.com>

	* sys/osxaudio/gstatdec.c:
	* sys/osxaudio/gstatdec.h:
	  atdec: Handle channel counts greater than 2
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6157>

2024-02-20 13:20:12 -0600  Elizabeth Figura <zfigura@codeweavers.com>

	* sys/osxaudio/gstatdec.c:
	  atdec: Use gst_audio_decoder_set_output_caps() directly
	  The code currently sets the same caps in two different ways, and neither of them correctly handle the channel mask.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6157>

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

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

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

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

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

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

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

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

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

2024-03-20 08:44:31 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/downloadhelper.c:
	  adaptivedemux2: Add libsoup tracing debug
	  Provides more information for debugging
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6409>

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

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

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

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

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

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

2024-02-28 19:25:52 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/osxaudio/gstatenc.c:
	* sys/osxaudio/gstatenc.h:
	* sys/osxaudio/gstosxaudio.c:
	* sys/osxaudio/gstosxcoreaudiocommon.h:
	* sys/osxaudio/meson.build:
	  macos: Add Apple AAC encoder (atenc)
	  Adds the `atenc` element capable of encoding AAC-LC audio, using the AudioToolbox framework.
	  It's able to encode up to 7.1 channel configurations.
	  Comes with basic knobs for rate control (bitrate for CBR, quality for VBR).
	  Support for more profiles (LD, HE-AAC) should be simple, but is not included here because of bugs
	  with parsing of the AudioSpecificConfig.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6254>

2024-02-26 14:57:32 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/osxaudio/gstatdec.c:
	* sys/osxaudio/gstatdec.h:
	* sys/osxaudio/gstosxaudio.c:
	* sys/osxaudio/meson.build:
	  macos: Move atdec from applemedia (-bad) to osxaudio (-good)
	  osxaudio has a few helper methods potentially useful in atdec (or future atenc), like GStreamer -> CoreAudio
	  channel mapping. Doesn't make sense to duplicate them in applemedia, and atdec is the only audio-oriented
	  element there anyway.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6223>

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

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

2024-03-07 17:36:33 +0100  François Laignel <francois@centricular.com>

	* gst/rtpmanager/gstrtpptdemux.c:
	  webrtc: add all SSRC attributes getting CAPS for a PT
	  The transport stream only returned the CAPS for the first matching PT entry
	  from the `ptmap`. Other SSRC with the same PT where not included. For a stream
	  which bundled multiple audio streams for instance, only the first SSRC was
	  knowed to the SSRC demux and downstream elements.
	  This commit adds all the `ssrc-` attributes from the matching PT entries.
	  The RTP jitter buffer can now find the CNAME corresponding its SSRC even if it
	  was not the first to be registered for a particular PT.
	  The RTP PT demux removes `ssrc-*` attributes cooresponding to other SSRCs
	  before pushing SSRC specific CAPS to downstream elements.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6119>

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

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

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

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

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

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

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

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

2024-03-05 12:58:57 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.24.0 ===

