meson: Generate ChangeLog files for release tarballs on dist
[platform/upstream/gstreamer.git] / subprojects / gst-plugins-good / ChangeLog
index f997cc9..5bef7bc 100644 (file)
+=== release 1.21.2 ===
+
+2022-11-07 23:53:59 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * NEWS:
+       * RELEASE:
+       * docs/gst_plugins_cache.json:
+       * gst-plugins-good.doap:
+       * meson.build:
+         Release 1.21.2
+
+2022-11-07 23:53:57 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.21.2
+
+2020-09-02 10:49:40 +0100  Justin Chadwell <me@jedevc.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: use unsigned int types to store result of QT_UINT32
+         In a few cases throughout qtdemux, the results of QT_UINT32 were being
+         stored in a signed integer, which could cause subtle bugs in the case of
+         an integer overflow, even allowing the the result to equal a negative
+         number!
+         This patch prevents this by simply storing the results of this function
+         call properly in an unsigned integer type. Additionally, we fix up the
+         length checking with stsd parsing to prevent cases of child atoms
+         exceeding their parent atom sizes.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3344>
+
+2022-11-04 17:48:01 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ext/qt/gstqtglutility.cc:
+         qt: initialize GError properly in gst_qt_get_gl_wrapcontext()
+         Spotted by Claus Stovgaard.
+         Fixes #1545
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3327>
+
+2022-11-04 11:10:52 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: Add durations to raw audio buffers from the raw audio adapter in prefill mode
+         This ensures that a duration can also be calculated and stored for the
+         last buffer at EOS.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3321>
+
+2022-11-04 10:49:31 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: Release object lock before posting an error message
+         GST_ELEMENT_ERROR() also takes the object lock and this would then
+         deadlock.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3321>
+
+2022-11-03 14:08:57 +0100  Edward Hervey <edward@centricular.com>
+
+       * gst/multifile/gstimagesequencesrc.c:
+         imagesequencesrc; Fix leaks
+         * The path was leaked
+         * The custom buffer was never freed
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>
+
+2022-11-03 14:08:02 +0100  Edward Hervey <edward@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Fix cenc-related leaks
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>
+
+2022-11-03 14:06:58 +0100  Edward Hervey <edward@centricular.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+         deinterlace: Don't leak metas
+         There is no correlation between the frame being NULL and the metas not being
+         present.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>
+
+2022-10-31 16:08:23 +0100  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-period.c:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+         adaptivedemux2: Fix collection leaks
+         * The collection on the period was never unreffed
+         * The collection in the message handler was never unreffed
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>
+
+2022-11-05 03:23:43 +1100  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/mss/gstmssdemux.c:
+         mssdemux2: Update for adaptivedemux2 refactoring
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-11-03 01:48:08 +1100  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/dash/gstdashdemux.c:
+       * ext/adaptivedemux2/gstadaptivedemux-private.h:
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+       * ext/adaptivedemux2/gstadaptivedemux-stream.h:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+       * ext/adaptivedemux2/gstadaptivedemux.h:
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         adaptivedemux2: Move stream_seek() to the Stream class
+         Move the last stream specific vfunc from the demux
+         class to the stream class.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-08-21 04:31:53 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/dash/gstdashdemux.c:
+       * ext/adaptivedemux2/gstadaptivedemux-private.h:
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+       * ext/adaptivedemux2/gstadaptivedemux-stream.h:
+       * ext/adaptivedemux2/gstadaptivedemux-types.h:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+       * ext/adaptivedemux2/gstadaptivedemux.h:
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         adaptivedemux2: Refactor stream methods into the stream
+         Unlike the legacy elements, GstAdaptiveDemuxStream is a GObject now,
+         so a bunch of things that were actually stream methods on the
+         parent demux object can directly become stream methods now.
+         Move the stream class out to a header of its own.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-06-07 14:36:24 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.c:
+       * ext/adaptivedemux2/hls/m3u8.h:
+         hlsdemux2/m3u8: Implement EXT-X-GAP parsing
+         Read the EXT-X-GAP tag and set is_gap on the segment.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-06-07 14:13:39 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.c:
+         hlsdemux2/m3u8: Refactor parsing for readability
+         Small readability improvements in the parsing code
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-14 06:21:41 +1100  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/downloadrequest.c:
+       * ext/adaptivedemux2/downloadrequest.h:
+         adaptivedemux2/downloadhelper: Remove return val for download_request_add_buffer()
+         The function can't actually fail, and the only caller
+         was ignoring the result anyway, so remove the return value.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-14 06:20:06 +1100  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/downloadhelper.c:
+         adaptivedemux2/downloadhelper: Add debug output of response headers
+         Dump the HTTP response headers at TRACE level
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-14 06:19:11 +1100  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/downloadhelper.c:
+         adaptivedemux2/downloadhelper: Don't mark transfer as complete/error if cancelled.
+         If the state of the download request was reset to UNSENT,
+         it was cancelled. Don't update the state to COMPLETE or ERRORED
+         in on_read_ready().
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-14 06:17:00 +1100  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/downloadhelper.c:
+         adaptivedemux2/downloadhelper: Ignore spurious read failure
+         Sometimes g_input_stream_read_all_finish() can return
+         0 bytes, but still succeed (return TRUE) and have more
+         data available later. Only finish the transfer
+         if it returns 0 bytes *and* FALSE with no error.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-14 06:15:45 +1100  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/downloadhelper.c:
+       * ext/adaptivedemux2/downloadrequest.c:
+       * ext/adaptivedemux2/downloadrequest.h:
+         adaptivedemux2/downloadhelper: Fix function name
+         Fix a typo in the name of function download_request_despatch_progress()
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-12 02:14:32 +1100  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-private.h:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+         adaptivedemux2: Remove scheduler_lock mutex
+         Remove the old unused scheduler_lock
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-11 03:20:11 +1100  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+         adaptivedemux2: Hold tracks lock accessing input_period
+         The input_period is protected by the TRACKS_LOCK,
+         so make sure to hold that when accessing it.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-08-16 23:01:46 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+       * ext/adaptivedemux2/gstadaptivedemux.h:
+         adaptivedemux2: Add state checks and clean up obsolete variables
+         The cancelled flag was only set in the stream finalize()
+         method, after all activity on the stream has stopped anyway.
+         Replace uses of cancelled with checks on the stream state.
+         Remove the replaced flag, which was checked but never set
+         to TRUE anywhere any more.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>
+
+2022-10-30 20:28:25 +0900  Seungha Yang <seungha@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * ext/vpx/gstvp9dec.c:
+       * ext/vpx/gstvp9enc.c:
+       * ext/vpx/gstvpxenc.c:
+         vpx: Complete high bitdepth vp9 en/decoding support
+         Adding 12bits variant formats to en/decoder, and high bitdepth
+         4:4:4 (except for GBR) encoding support
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3298>
+
+2022-10-30 20:03:10 +0900  Seungha Yang <seungha@centricular.com>
+
+       * ext/vpx/gstvp9dec.c:
+       * ext/vpx/gstvp9enc.c:
+       * ext/vpx/gstvpxcompat.h:
+       * ext/vpx/gstvpxdec.h:
+       * ext/vpx/gstvpxenc.h:
+         vpx: Define formats for compatibility
+         ifdef for enum values never work. Instead, define new enum type
+         and use it
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3298>
+
+2022-10-27 23:57:58 +1100  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.c:
+         hlsdemux2: m3u8: Use PDT to offset stream time when aligning playlist
+         When matching segments across playlists with Program-Date-Times,
+         use the difference in segment PDTs to adjust the stream time
+         that's being transferred. This can fix cases where the
+         segment boundaries don't align across different streams
+         and the first download gets thrown away once the PTS
+         is seen and found not to match.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3309>
+
+2022-11-01 02:17:46 +1100  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+       * ext/adaptivedemux2/hls/gsthlsdemux.h:
+         hlsdemux2: Download new header when it changes
+         Check whether the init file / MAP data for a segment
+         is different to the current data and trigger an
+         update if so. Previously, the header would only
+         be checked in HLS after switching bitrate or
+         after a seek / first download.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3307>
+
+2022-11-01 01:41:35 +1100  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.c:
+       * ext/adaptivedemux2/hls/m3u8.h:
+         m3u8: Expose GstM3U8InitFile methods
+         Exposure ref/unref methods for the GstM3U8InitFile type,
+         and add a gst_m3u8_init_file_equal() comparison method.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3307>
+
+2022-10-21 17:24:41 +0200  Edward Hervey <edward@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+       * ext/adaptivedemux2/gstadaptivedemux.h:
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+       * ext/adaptivedemux2/hls/m3u8.c:
+       * ext/adaptivedemux2/hls/m3u8.h:
+         adaptivedemux2: Improve minimum buffering threshold
+         Previously the minimum buffering threshold was hardcoded to a specific
+         value (10s). This is suboptimal this an actual value will depend on the actual
+         stream being played.
+         This commit sets the low watermark threshold in time to 0, which is an automatic
+         mode. Subclasses can provide a stream `recommended_buffering_threshold` when
+         update_stream_info() is called.
+         Currently implemented for HLS, where we recommended 1.5 average segment
+         duration. This will result in buffering being at 100% when the 2nd segment has
+         been downloaded (minus a bit already being consumed downstream)
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3240>
+
+2022-10-28 18:57:44 +0530  Sanchayan Maity <sanchayan@asymptotic.io>
+
+       * gst/wavparse/gstwavparse.c:
+         wavparse: Speed up type finding for DTS
+         In order to figure out if the "raw" audio contained within the wav
+         container is actually DTS, right now we call the typefinder helper
+         which runs all typefinders.
+         Speed up this type finding process by specifying the extension.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3294>
+
+2022-10-25 13:30:15 +1100  Matthew Waters <matthew@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/isomp4/gstqtmuxmap.c:
+         mp4mux: enable muxing VP9 streams
+         As specified in https://www.webmproject.org/vp9/mp4/
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3260>
+
+2022-10-25 13:28:26 +1100  Matthew Waters <matthew@centricular.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 writing vpcC box for VP9
+         Increases compatibility for VP9 in .mov in at least VLC.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3260>
+
+2022-10-04 18:21:15 -0300  Thibault Saunier <tsaunier@igalia.com>
+
+       * ext/adaptivedemux2/dash/gstdashdemux.c:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+         dashdemux2: Fix the way we determine current_position after seeks
+         Without that the current_position was off after seeks, potentially
+         leading to not properly push a last fragment when a `.stop` time was
+         set.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159>
+
+2022-09-20 15:32:52 -0300  Thibault Saunier <tsaunier@igalia.com>
+
+       * ext/adaptivedemux2/dash/gstmpdclient.c:
+         dash: Fix computing `repeat_index` when seeking in stream with a start !=0 on the first fragment
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159>
+
+2022-09-22 11:20:55 -0300  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/matroska/matroska-demux.c:
+         matroskademux: Let upstream handle seeking/duration query in time if possible
+         So proper response are given for dash streams
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159>
+
+2022-09-21 15:01:39 -0300  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-demux.h:
+         matroskademux: Start support for upstream segments in TIME format
+         So we can use matroskademux for dash webm dash streams.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159>
+
+2022-01-24 16:49:52 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * sys/ximage/gstximagesrc.c:
+         ximagesrc: grab the server while capturing screen image
+         Makes sure screen resolution doesn't change in the middle of the
+         process.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1562>
+
+2021-12-17 14:57:57 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * sys/ximage/gstximagesrc.c:
+       * sys/ximage/gstximagesrc.h:
+         ximagesrc: change video resolution when X11 screen gets resized
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1562>
+
+2022-10-23 20:32:35 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/meson.build:
+       * gst/xingmux/gstxingmux.c:
+       * gst/xingmux/gstxingmux.h:
+       * gst/xingmux/meson.build:
+       * gst/xingmux/plugin.c:
+       * meson_options.txt:
+       * tests/check/elements/xingmux.c:
+       * tests/check/elements/xingmux_testdata.h:
+       * tests/check/meson.build:
+         xingmux: move from gst-plugins-ugly to gst-plugins-good
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/415
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3251>
+
+2022-10-21 16:23:08 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Only EOS on timeout if all streams are timed out/EOS
+         Otherwise a stream that is just temporarily inactive might time out and
+         then can never become active again because the EOS event was sent
+         already.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3238>
+
+2022-10-18 16:51:39 +1100  Matthew Waters <matthew@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtp/gstrtpulpfecdec.c:
+       * gst/rtp/gstrtpulpfecdec.h:
+         rtpulpfecdec: add property for passthrough
+         Support for enabling and disabling decoding of FEC data decoding on
+         packet loss events and unconditional seqnum rewriting of packets.
+         See
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/581
+         for background.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3212>
+
+2022-10-14 01:23:04 +0000  Devin Anderson <danderson@microsoft.com>
+
+       * gst/wavparse/gstwavparse.c:
+         wavparse: Avoid occasional crash due to referencing freed buffer.
+         We've seen occasional crashes in the `wavparse` module associated with
+         referencing a buffer in `gst_wavparse_chain` that's already been freed.  The
+         reference is stolen when the buffer is transferred to the adapter with
+         `gst_adapter_push` and, IIUC, assuming the source doesn't hold a reference to
+         the buffer, the buffer could be freed during interaction with the adapter in
+         `gst_wavparse_stream_headers`.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3179>
+
+2022-10-13 11:21:42 -0400  Julian Bouzas <julian.bouzas@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+         riff: Mark jpeg as parsed
+         This is needed so that autoplugging works with avidemux and JPEG decoders that
+         need parsed sink caps (eg rockchip 'mppjpegdec' decoder). It also works fine
+         with 'jpegdec' decoder regardless.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3175>
+
+2022-10-13 00:20:45 +0000  Devin Anderson <danderson@microsoft.com>
+
+       * gst/wavparse/gstwavparse.c:
+       * tests/check/elements/wavparse.c:
+       * tests/files/corruptheadertestsrc.wav:
+         wavparse: Fix crash that occurs in push mode when header chunks are corrupted in certain ways.
+         In the case that a test is provided for, the size of the `fmt ` chunk is
+         changed from 16 bytes to 18 bytes (bytes 17 - 20 below):
+         ```
+         $ hexdump -C corruptheadertestsrc.wav
+         00000000  52 49 46 46 e4 fd 00 00  57 41 56 45 66 6d 74 20  |RIFF....WAVEfmt |
+         00000010  12 00 00 00 01 00 01 00  80 3e 00 00 00 7d 00 00  |.........>...}..|
+         00000020  02 00 10 00 64 61 74 61                           |....data|
+         00000028
+         ```
+         (Note that the original file is much larger.  This was the smallest sub-file
+         I could find that would generate the crash.)
+         Note that, while the same issue doesn't cause a crash in pull mode, there's a
+         different issue in that the file is processed successfully as if it was a .wav
+         file with zero samples.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3173>
+
+2022-10-11 15:00:37 +0200  Edward Hervey <edward@centricular.com>
+
+       * sys/oss4/oss4-sink.c:
+       * sys/oss4/oss4-source.c:
+         oss4: Fix debug category initialization
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1456
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3158>
+
+2022-10-08 01:03:13 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/multifile/gstsplitmuxpartreader.c:
+         splitmuxsrc: don't queue data on unlinked pads
+         Once a pad has returned NOT_LINKED, the part reader shouldn't let its
+         corresponding data queue run full and eventually (after 20 seconds)
+         stall playback.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3145>
+
+2022-10-03 20:28:47 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtpsession.h:
+       * gst/rtpmanager/rtpsource.c:
+       * gst/rtpmanager/rtpsource.h:
+         rtpsource: Don't do probation for RTX sources
+         Disable probation for RTX sources as packets will arrive very
+         irregularly and waiting for a second packet usually exceeds the deadline
+         of the retransmission.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/181
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>
+
+2022-10-03 19:58:38 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * tests/examples/rtp/client-rtpaux.c:
+         rtp: examples: client-rtpaux: Provide correct caps by payload type and RTX pt map by session
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>
+
+2019-01-25 17:04:50 -0500  George Kiagiadakis <george.kiagiadakis@collabora.com>
+
+       * tests/check/elements/rtpsession.c:
+         tests/check/rtpsession: extend test_internal_sources_timeout
+         to verify that rtx SSRCs do not BYE after timeout
+         See https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/360
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>
+
+2022-10-03 19:12:55 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtpsource.c:
+       * gst/rtpmanager/rtpsource.h:
+         rtpsession: Remember the corresponding media SSRC for RTX sources
+         This allows timing out the RTX source and sending BYE for it when the
+         actual media source belonging to it is timed out.
+         This change only applies to sending sources from this session.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/360
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>
+
+2022-10-03 19:20:14 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtpsource.c:
+       * gst/rtpmanager/rtpsource.h:
+         rtpsource: Rename rtp_source_update_caps to rtp_source_update_send_caps
+         To make it clear that this is only used for sending RTP sources.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>
+
+2022-10-03 13:48:36 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpsession.c:
+         rtpsession: Rename gst_rtp_session_sink_setcaps to gst_rtp_session_setcaps_recv_rtp
+         to make it clearer that this is for setting receiver caps and to make it
+         more consistent with gst_rtp_session_setcaps_send_rtp.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>
+
+2022-10-06 15:02:22 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Retry SETUP with non-compliant URL resolution on "Bad Request" and "Not found"
+         Various RTSP servers/cameras assume base and control URL to be simply
+         appended instead of being resolved according to the relative URL
+         resolution algorithm as mandated by the RTSP specification.
+         To work around this, try using such a non-compliant control URL if the
+         server didn't like the URL used in the first SETUP request.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1447
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/922
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3127>
+
+2022-10-04 03:57:31 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * meson.build:
+         Back to development
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3115>
+
+=== release 1.21.1 ===
+
+2022-10-04 01:14:01 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+       * NEWS:
+       * RELEASE:
+       * docs/gst_plugins_cache.json:
+       * gst-plugins-good.doap:
+       * meson.build:
+         Release 1.21.1
+
+2022-10-04 01:13:59 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.21.1
+
+2022-07-27 11:19:50 +0200  Edward Hervey <edward@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Don't stop task when resetting
+         This is a regression that was introduced in
+         cca2f555d14b5751f7f9d466b66127544dad5138 (yes, 9 years ago).
+         The only place where a demuxer streaming thread should be stopped is when the
+         sinkpad is deactivated from pull mode (i.e. PAUSED->READY).
+         Attempting to stop the task in this function would cause this to happen when a
+         FLUSH_STOP or STREAM_START event is received... which can cause deadlocks.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3109>
+
+2022-09-30 18:57:01 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/multifile/gstsplitmuxpartreader.c:
+         splitmuxsrc: don't consider unlinked pads when deactivating part
+         If splitmuxsrc exposes multiple pads, but only one is linked, part pads
+         will never see an EOS event. This shouldn't prevent the part from being
+         eventually deactivated.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3099>
+
+2022-03-01 16:30:10 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Fix usage of IPv6 connections in SETUP
+         If the SETUP request returns an IPv6 server address in the Transport
+         field, we would generate an incorrect URI, and multiudpsink would fail
+         to initialize:
+         ```
+         rtspsrc gstrtspsrc.c:9780:dump_key_value:<source>    key: 'Transport', value: 'RTP/AVP;unicast;source=fe80::dc27:25ff:fe5e:bd13:8080;client_port=62696-62697;server_port=4000-4001'
+         ...
+         rtspsrc gstrtspsrc.c:4595:gst_rtspsrc_stream_configure_udp_sinks:<source> configure RTP UDP sink for fe80::dc27:25ff:fe5e:bd13:8080:4000
+         ...
+         multiudpsink gstmultiudpsink.c:1229:gst_multiudpsink_configure_client:<udpsink0> error: Invalid address family (got 23)
+         ```
+         We can't look at stream->is_ipv6 because we can't rely on the server
+         returning the right value there. In the issue reported about this,
+         server reported itself as `KuP RTSP Server/0.1`, and the SDP was:
+         ```
+         c=IN IP4
+         m=video 54608 RTP/AVP 96
+         a=rtpmap:96 H264/90000
+         ```
+         So we need to parse the string value and figure out the family
+         ourselves.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1058
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1819>
+
+2022-09-27 13:56:54 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: guard against timestamp calculation overflow in gap event loop
+         Could possibly cause an endless loop.
+         Fixes #1400.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3084>
+
+2022-09-27 00:08:41 +1000  Jan Schmidt <jan@centricular.com>
+
+       * tests/check/elements/dash_mpd.c:
+         dashdemux2: fix mpd unit test expectations
+         Update unit test for some mpd cases that were reporting
+         timestamps including the period start time, while
+         dashdemux2 expects that it needs to add the period
+         start time itself.
+         Fix the tests to not expect the period start time
+         to be included.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3025>
+
+2022-08-23 23:12:44 +0900  Junsoo Park <junsoo81.park@lge.com>
+
+       * ext/adaptivedemux2/dash/gstmpdclient.c:
+         dashdemux2: Set timestamp relative to period start
+         These values will be referred to as timestamp relative to period start
+         so need to subtract period start time from the values.
+         Fixes a problem with determining the start position when playing Live content
+         with SegmentTimeline, presentationTimeOffset and a non-0 period start time.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3025>
+
+2022-09-22 19:02:10 +0200  Jakub Adam <jakub.adam@collabora.com>
+
+       * ext/vpx/gstvp9dec.c:
+       * ext/vpx/gstvp9enc.c:
+         vp9: check if libvpx supports high bit depth
+         Detect at runtime if libvpx is compiled with --enable-vp9-highbitdepth
+         and enable 10bit video formats in element caps accordingly.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3067>
+
+2022-09-21 19:19:45 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * meson.build:
+         meson: Use implicit builtin dirs in pkgconfig generation
+         Starting with Meson 0.62, meson automatically populates the variables
+         list in the pkgconfig file if you reference builtin directories in the
+         pkgconfig file (whether via a custom pkgconfig variable or elsewhere).
+         We need this, because ${prefix}/libexec is a hard-coded value which is
+         incorrect on, for example, Debian.
+         Bump requirement to 0.62, and remove version compares that retained
+         support for older Meson versions.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061>
+
+2022-09-21 00:26:38 +0900  Seungha Yang <seungha@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemuxutils.c:
+         adaptivedemux2: Always wake up loop thread on unpause
+         Otherwise loop thread will sleep forever because
+         GstAdaptiveDemuxLoop.paused flag update is not signalled
+         when loop was marked as stopped already from other thread.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3057>
+
+2022-09-16 02:01:58 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-period.c:
+       * ext/adaptivedemux2/gstadaptivedemux-private.h:
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+       * ext/adaptivedemux2/gstadaptivedemux-track.c:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+       * ext/adaptivedemux2/gstadaptivedemux.h:
+         adaptivedemux2: Rework input download wakeups
+         Change the way streams are woken up to download more data.
+         Instead of checking the level on tracks that are being
+         output as data is dequeued, calculate a 'wakeup time'
+         at which it should download more data, and wake up
+         the stream when the global output position crosses
+         that threshold.
+         For efficiency, compute the earliest wakeup time
+         for all streams and store it on the period, so the
+         output loop can quickly check only a single value
+         to decide if something needs waking up.
+         Does the same buffering as the previous method,
+         but ensures that as we approach the end of
+         one period, the next period continues incrementally
+         downloading data so that it is fully buffered when
+         the period starts.
+         Fixes issues with multi-period VOD content where
+         download of the second period resumes only after
+         the first period is completely drained.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3055>
+
+2022-09-15 09:04:10 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         hlsdemux2: Handle negative time mappings
+         Some servers can return playlists with "old" media playlists and different
+         Discont Sequence.
+         In those cases, the segment stream times would be negative when creating a new
+         time mapping. In order to properly handle such scenarios, shift the values to
+         stored accordingly to end up with non-negative reference stream time.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3054>
+
+2022-09-19 20:48:01 +0300  Mart Raudsepp <mart@leio.tech>
+
+       * ext/shout2/meson.build:
+         shout: fix minimum requirement to libshout >= 2.4.3
+         commit e64c6f0b93ced added usage of the SHOUT_USAGE_UNKNOWN symbol, but this
+         became available in the Icecast-libshout 2.4.3 release, not 2.4.2
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3048>
+
+2022-08-31 11:13:06 +0800  Elliot Chen <elliot.chen@nxp.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: add cap negotiation fail check in the capture configuration change
+         The capture configuration change may cause negotiation fail.
+         Need to check it to avoid enter the endless loop.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2960>
+
+2022-08-29 10:17:45 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * docs/meson.build:
+         doc: Do not build plugins to build the doc
+         It is not actually necessary
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2954>
+
+2022-09-15 12:14:56 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/check/meson.build:
+         tests: add a few more orc tests
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3029>
+
+2022-09-14 10:15:41 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.c:
+         hlsdemux2: Fix crash on live playlist with single entry
+         If there is a single entry, we would end up computing a minimum distance of 0,
+         and would therefore read entries from after the segment array
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3024>
+
+2021-03-24 14:20:18 -0500  Zebediah Figura <z.figura12@gmail.com>
+
+       * meson.build:
+         meson: Build with -Wl,-z,nodelete to prevent unloading of dynamic libraries and plugins
+         GLib made the unfortunate decision to prevent libgobject from ever being
+         unloaded, which means that now any library which registers a static type
+         can't ever be unloaded either (and any library that depends on those,
+         ad nauseam).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/778>
+
+2022-09-13 00:56:53 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+         adaptivedemux2: Always check bitrate in live
+         When advancing fragment in live, it's normal to return
+         GST_FLOW_EOS when playing at the live edge of the available
+         fragments. In that case, we still want to adjust bitrate
+         dynamically.
+         Fixes issue with dashdemux2 where the current bitrate of
+         each adaptation set is changed to the lowest one when
+         updating the mpd for a live stream.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3020>
+
+2022-09-12 14:18:47 -0400  Matt Crane <matt@standard.ai>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Fix calculation of reference timestamp metadata
+         Add support for RTCP SRs that contain RTP timestamps later than the
+         current timestamps in the RTP stream packet buffers.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3019>
+
+2022-09-08 17:06:26 +0000  Filip Hanes <filip@hanes.tech>
+
+       * docs/gst_plugins_cache.json:
+       * ext/libpng/gstpngenc.c:
+         pngenc: lower minimum width and height to 1x1
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3003>
+
+2022-08-30 11:45:05 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/dash/gstxmlhelper.c:
+       * tests/check/elements/dash_mpd.c:
+         dashdemux2: Remove bogus limitation checks for duration fields
+         Just like for the seconds field, there are no limitations on the hours and
+         minutes fields. The specification for xml schema duration fields doesn't forbid
+         specifying durations with only (huge) minutes or hours values.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2951>
+
+2022-08-21 03:37:40 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/dash/gstdashdemux.c:
+       * ext/adaptivedemux2/dash/gstdashdemux.h:
+       * ext/adaptivedemux2/dash/gstmpdclient.c:
+       * ext/adaptivedemux2/dash/gstmpdclient.h:
+         dashdemux2: Preserve current representation on live manifest updates
+         When updating a manifest during live playback, preserve the current
+         representation for each stream.
+         During update_fragment_info, if the current representation changed
+         because it couldn't be matched, trigger a caps change and new
+         header download.
+         This reverts commit e0e1db212fd0df2239583b9099fc4361adeded05
+         and reapplies "dashdemux: Fix issue when manifest update sets slow start
+         without passing necessary header & caps changes downstream" with
+         changes.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2920>
+
+2022-09-02 17:21:43 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: Add test for crash caused by removing timers twice
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2973>
+
+2022-09-02 12:20:58 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Make it more explicit that update_rtx_timers() takes ownership of the passed in timer
+         It is not valid anymore afterwards and must not be used, otherwise an
+         already freed pointer might be used.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2973>
+
+2022-09-02 12:20:30 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Don't shadow variable
+         While this didn't cause any problems in this context it is simply
+         confusing.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2973>
+
+2022-09-02 12:19:26 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Change RTX timer availability checks to assertions
+         It's impossible to end up in the corresponding code without a timer for
+         RTX packets because otherwise it would be an unsolicited RTX packet and
+         we would've already returned early.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2973>
+
+2022-09-02 12:17:39 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Only unschedule timers for late packets if they're not RTX packets and only once
+         Timers for RTX packets are dealt with later in update_rtx_timers(), and
+         timers for non-RTX packets would potentially also be unscheduled a
+         second time from there so avoid that.
+         Also don't shadow the timer variable from the outer scope but instead
+         make use of it directly.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2973>
+
+2022-07-05 16:15:19 +0200  Patricia Muscalu <patricia@axis.com>
+
+       * gst/rtp/gstrtph265pay.c:
+       * gst/rtp/gstrtph265pay.h:
+       * tests/check/elements/rtph265.c:
+         rtph265: keep delta unit flag
+         Without this patch all buffers that pass the payloader
+         are marked as non-delta-unit buffers.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2969>
+
+2022-09-01 15:11:31 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * ext/aalib/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/libpng/meson.build:
+       * ext/mpg123/meson.build:
+       * ext/pulse/meson.build:
+       * ext/qt/meson.build:
+       * ext/shout2/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/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/y4m/meson.build:
+       * meson.build:
+       * sys/directsound/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:
+         meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
+         Removing some copy pasted code
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
+
+2022-09-01 11:51:48 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * docs/meson.build:
+         meson: Namespace the plugins_doc_dep/libraries variables
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
+
+2022-08-31 18:44:14 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * meson.build:
+         meson: Rename plugins list and make them "dependency" objects
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
+
+2022-08-18 17:08:51 +0300  Raul Tambre <raul@tambre.ee>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: remove lost timer for out of order packets
+         When receiving old packets remove the running lost timer if present.
+         This fixes incorrect reporting of a lost packet even if it arrived in time.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2922>
+
+2022-08-26 18:42:44 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtp/gstrtpvp8depay.c:
+         rtpvp8depay: If configured to wait for keyframes after packet loss, also do that if incomplete frames are detected
+         This can happen if the data inside the packets is incomplete without the
+         seqnums being discontinuous because of ULPFEC being used.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2947>
+
+2022-05-31 15:18:03 +0200  Stéphane Cerveau <scerveau@collabora.com>
+
+       * docs/meson.build:
+       * meson.build:
+         docs: disable in static build
+         Following gst-plugins-base, disable docs if static_build
+         in:
+         - gstreamer
+         - gst-plugins-good
+         - gst-plugins-ugly
+         - gst-libav
+         - gstreamer-vaapi
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2529>
+
+2022-08-24 17:30:34 +0800  Jianhui Dai <jianhui.j.dai@intel.com>
+
+       * sys/v4l2/gstv4l2allocator.c:
+         v4l2allocator: Fix invalid imported dmabuf fd
+         Fix a typo that set userptr to dmabuf fd. It leads to failure of
+         dmabuf-import io-mode.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2935>
+
+2022-07-22 13:41:17 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         playback: add onvif metadata caps to raw caps
+         + remove encoding from x-onvif-metadata caps output by qtdemux
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2889>
+
+2022-08-23 10:28:30 +0000  zhiyuan.liu <zhiyuan.liu@seraphic-corp.com>
+
+       * gst/isomp4/gstisoff.c:
+         isoff: Fix earliest pts field parse issue
+         earliest pts will be covered by first_offset field on version 0 case.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2927>
+
+2022-08-18 16:36:45 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * ext/adaptivedemux2/downloadhelper.c:
+         adaptivedemux2: Fix download helper with libsoup 3.0.x
+         libsoup 3.0.x dispatches using a single source attached when the session
+         is created, so we need to create the session with the same context that
+         our download thread is later using.
+         2.74 or 3.1 will dispatch a response using the context which sent the
+         request. However, for any context other than the one that created the
+         session, this will also create and destroy sources, so there's still
+         some slight performance benefit.
+         Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1384
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2913>
+
+2022-08-18 09:48:15 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+         adaptivedemux2: Implement send_event() vfunc
+         Handle select-streams and seek events in an element
+         level send_event() vfunc, so they can be received
+         before any source pads are created.
+         This allows preferred streams to be selected before
+         segment downloading starts.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2912>
+
+2022-08-17 09:11:52 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsrc.c:
+         splitmuxsrc: Stop pad task before cleanup
+         When stopping the element, make sure the pad task
+         is stopped before destroying the part readers.
+         Closes a race where the pad task might access
+         a freed pointer.
+         Also add a guard against this sort of thing
+         by holding a ref to the reader in the pad loop.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2901>
+
+2022-08-12 20:20:43 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Avoid crash on reconfiguring.
+         When reconfiguring a stream that never created
+         an output pad, don't access a NULL GstPad pointer.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2869>
+
+2022-08-16 19:01:19 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Set parsed=true on ONVIF Timed Metadata caps
+         Inside MP4 the metadata must be properly parsed into frames and in
+         order.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2897>
+
+2022-08-15 14:30:50 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         v4l2bufferpool: Fix debug trace
+         The tracing of the buffer pointer was done on the secondary pointer, which
+         does not match with other traces of the same buffer. This made the trace
+         confusing and less useful.
+         Fixes #1379
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2893>
+
+2022-08-12 21:57:25 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+         adaptivedemux2: Fix for period switching in live streams
+         When playing live, it's possible that one stream reaches
+         the end of the available playback window and goes to sleep
+         waiting for a manifest update, and the manifest update
+         introduces a new period. In that case, the sleeping
+         stream needs to wake up and go 'properly' EOS before we
+         can advance the input to the new period.
+         Accordingly, make sure that a stream's last_ret value
+         is not marked as EOS if it's just sleeping waiting for a live
+         manifest update.
+         Also fix the output loop to go back and re-check if it's
+         time to switch to the next period after dequeuing and
+         discarding an EOS event.
+         https://livesim.dashif.org/livesim/periods_20/testpic_2s/Manifest.mpd
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2895>
+
+2022-08-11 09:34:58 +0900  Hosang Lee <hosang10.lee@lge.com>
+
+       * ext/adaptivedemux2/mss/gstmssdemux.c:
+         mssdemux2: Use gsturi structure to form fragment urls
+         Utilize gsturi to form fragment url paths.
+         A token query may contain the string "manifest" and this would lead
+         to improper url creations.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2859>
+
+2022-08-12 13:20:01 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Consider the actual control base URI also in case the connection URI contains a query string
+         That is, get rid of unnecessary and wrong special-casing.
+         This could always use gst_rtsp_url_get_request_uri_with_control() but as
+         we only have the control base URI as string it is easier to just call
+         gst_uri_join_strings().
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2868>
+
+2022-08-11 18:37:18 +0300  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 reference timestamp meta with UTC times based on the ONVIF Export File Format CorrectStartTime box to outgoing buffers
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2525>
+
+2022-08-11 05:17:05 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         hlsdemux2: Fix reference leak of variant stream
+         When switching back to the previous variant stream
+         in gst_hls_demux_change_playlist(), fix a couple of
+         paths that would leak a reference to the previous
+         variant.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>
+
+2022-08-11 05:07:10 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         hlsdemux2: Don't leak the datetime in time map structs
+         Add a function to clean up GstHLSTimeMap structs
+         and free the ref on the optional associated GDateTime
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>
+
+2022-08-11 05:03:10 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         hlsdemux2: Fix typefind leak and invalid memory access
+         When typefinding aggregates incoming data to a pending
+         typefind buffer and then succeeds in typefinding, it
+         leaks the aggregated buffer, and leaves the caller
+         accessing an unreffed buffer.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>
+
+2022-08-11 05:36:15 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.c:
+         hlsdemux2: m3u8: Fix memory leaks on parsing
+         Fix memory leaks when parsing of an m3u8 file is
+         incomplete, with EXTINF or EXT-X-PROGRAM-DATE-TIME
+         directives, but no segment url.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>
+
+2022-08-11 00:59:50 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.c:
+         hlsdemux2: m3u8: Fix memory leak
+         Clear the GValue holding intermediate GstStructure field
+         data.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>
+
+2022-08-11 01:01:07 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemuxutils.c:
+         adaptivedemux2: Fix uninitialised memory usage in debug
+         Fix printing uninitialised memory by clearing the
+         GstAdaptiveDemuxClock structure when allocating.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>
+
+2022-08-12 02:20:40 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+         rtpst2022-1-fecenc: Drain column packets on EOS
+         Otherwise we won't send the protection packets for the last few
+         packets when a stream ends.
+         Also send EOS on the FEC src row pad immediately, and on the FEC src
+         column pad after draining is complete. This makes it so that the FEC
+         src pads on rtpbin behave the same way as the RTCP src pads on rtpbin
+         when EOS is received on the send_rtp_sink pad.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2863>
+
+2022-08-11 08:48:08 +0200  Edward Hervey <edward@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Don't use invalid values from failed trex parsing
+         If parsing the fragment default values (`trex` atom) failed, don't try to
+         compute a bogus sample_description_id value.
+         Fixes #1369
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2860>
+
+2022-08-09 09:42:23 +0200  Piotr Brzeziński <piotr@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/videofilter/gstvideoflip.c:
+         videoflip: Add support for 10/12bit planar formats
+         Implements support for I420, I422 and Y444 in 10/12 bit LE/BE variants.
+         I422 is handled separately from the rest, as it needs to consider
+         the endianness of the current format during most transforms.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2788>
+
+2022-08-04 18:09:52 +0800  Haihua Hu <jared.hu@nxp.com>
+
+       * gst/alpha/gstalpha.c:
+         alpha: fix stride issue when out buffer has padding on right
+         if outbuf has padding on right, need jump to next line use stride,
+         otherwise downstream element will show a wrong picture when use the
+         same stride
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2842>
+
+2022-08-09 00:12:58 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         hlsdemux2: Requeue header buffer when restarting fragment
+         When returning GST_ADAPTIVE_DEMUX_FLOW_RESTART_FRAGMENT
+         for the first segment data, we might need to requeue the
+         header.
+         This was leading to occasional prerolling stalls on
+         HLS live streams with renditions.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2849>
+
+2022-08-07 20:56:49 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         hlsdemux2: Fix buffer leak when resynching
+         Unref the buffer in gst_hls_demux_handle_buffer() when
+         returning GST_ADAPTIVE_DEMUX_FLOW_LOST_SYNC
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2849>
+
+2022-08-04 23:54:27 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemuxutils.c:
+         adaptivedemux2: Fix a small race on shutdown
+         Make sure gst_adaptive_demux_loop_cancel_call()
+         never tries to operate on an invalidated main context. Make
+         sure to clear the main context pointer while holding the lock,
+         and to check it in gst_adaptive_demux_loop_cancel_call()
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2847>
+
+2022-07-22 03:32:39 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+         adaptivedemux2-stream: Silence a compiler warning
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-28 04:17:26 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-private.h:
+         adaptivedemux2: Move internal FLOW_SWITCH return value.
+         Move the internal-only FLOW_SWITCH custom return value
+         to GST_FLOW_CUSTOM_SUCCESS+2 to avoid collision with
+         GST_ADAPTIVE_DEMUX_FLOW_LOST_SYNC
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-20 10:57:41 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux.h:
+         adaptivedemux2: Modify custom sync loss flow return
+         Make it a custom sucess and not an error
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-12 10:44:51 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.c:
+         hlsdemux2: Always check DSN if required
+         We don't want to consider the candidate as being before the playlist if the DSN
+         don't match
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-11 10:31:42 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         adaptivedemux2/hlsdemux2: Handle loss of sync when dowloading.
+         Media playlist updates and fragment downloads happen in an interleaved
+         fashion. When a media playlist update fails *while* a segment is being
+         downloaded, this means we lost synchronization.
+         Properly propagate and handle this
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-08 10:48:05 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         hlsdemux2: Fix initial playlist setup.
+         There is now only a single case where we setup the initial playlist to 0, which
+         is for the very first variant stream.
+         Rendition streams will have the initial playlist "synchronized" against the
+         variant stream media playlist.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-08 10:44:51 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         hlsdemux2: Handle loss of synchronization in live
+         Loss of synchronization happens when the updated media playlist has no
+         relationship to the previous ones. This could happen because of network issues,
+         server issues, etc...
+         When this happens, we take no chance and "reset" ourselves so that we can "seek
+         back to live" against the new updated playlists.
+         Since this happens at the "media playlist update" level, make sure the custom
+         flow return is propagated up.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-08 10:40:33 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+         adaptivedemux2: Handle synchronously to lost sync
+         We are already in the main scheduler thread, therefore we can do the "seek back
+         to live" directly. This also avoids other pending actions to take place.
+         Also handle the loss of sync when doing manifest updates.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-06 11:44:57 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         hlsdemux2: Prune time maps when possible
+         Add a new method to prune unused time mappings (i.e. which aren't used by any
+         current media playlist).
+         Do that when doing flushing seeks. Could be used in other places later too.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-06-13 15:26:22 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.c:
+         hlsdemux2: Allow DSN mismatches when re-syncing playlists
+         Some providers provide completely incompatible DSN across bitrates/renditions,
+         but do keep MSN consistent.
+         If we fail to synchronize playlist with DSN, retry without the DSN taken into
+         account.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
+
+2022-07-12 01:58:30 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+         adaptivedemux2: Fixes for period switching in the output loop
+         Close some race conditions in switching to the next period,
+         by ensuring the tracks are completely drained first and by
+         not outputting EOS events to the output source pad
+         if there is another period pending.
+         Fixes Manifest_MultiPeriod_1080p.mpd some more.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>
+
+2022-07-12 01:55:54 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+         adaptivedemux2: stream: Set period has_next_period flag before EOS
+         Before sending EOS, update the period's has_next_period
+         flag and/or create the next period. This closes a race
+         where the output loop might receive the EOS event
+         and either push it downstream (causing premature EOS),
+         or receive it and try and switch to the next period
+         before that period is completely set up.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>
+
+2022-07-12 01:24:31 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+       * ext/adaptivedemux2/gstadaptivedemux.h:
+         adaptivedemux2: period: Rename 'closed' flag to 'has_next_period'
+         The flag is used to tell the output loop that a
+         next period is present, since the output loop
+         can't call the gst_adaptive_demux_has_next_period()
+         method.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>
+
+2022-07-01 02:07:05 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+         adaptivedemux2: Recheck for a pending track on drain
+         When a track is completely drained and EOS, but
+         there's a pending track on the slot loop again
+         to switch to that track.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>
+
+2022-07-01 02:05:36 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-period.c:
+         adaptivedemux2: Check stream selected instead of state
+         When combining stream flows, ignore streams that
+         are not selected, instead of checking whether
+         the stream state has changed yet.
+         Fixes another issue with dashdemux2 where it fails to
+         change to the next period when playing content with
+         several video, audio and text streams, as with
+         Manifest_MultiPeriod_1080p.mpd when seeking to 730
+         just before the end of the first period.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>
+
+2022-05-25 18:40:30 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtsp+rtmp: Forward warning added to tls-validation-flags to our users
+         With the 2.72 release, glib-networking developers have decided that
+         TLS certificate validation cannot be implemented correctly by them, so
+         they've deprecated it.
+         In a nutshell: a cert can have several validation errors, but there
+         are no guarantees that the TLS backend will return all those errors,
+         and things are made even more complicated by the fact that the list of
+         errors might refer to certs that are added for backwards-compat and
+         won't actually be used by the TLS library.
+         Our best option is to ignore the deprecation and pass the warning onto
+         users so they can make an appropriate security decision regarding
+         this.
+         We can't deprecate the tls-validation-flags property because it is
+         very useful when connecting to RTSP cameras that will never get
+         updates to fix certificate errors.
+         Relevant upstream merge requests / issues:
+         https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2214
+         https://gitlab.gnome.org/GNOME/glib-networking/-/issues/179
+         https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/193
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2494>
+
+2022-07-22 14:51:11 +0200  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+       * gst/videobox/gstvideobox.c:
+         videobox: avoid dropping caps fields for passthrough caps transform
+         Fixes potential negotiation failure in case downstream element
+         is a bit picky regarding the fields in question.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2786>
+
+2022-07-27 15:44:09 +0200  Adrian Fiergolski <adrian.fiergolski@fastree3d.com>
+
+       * gst/videofilter/gstvideoflip.c:
+         videoflip: Fix caps negotiation when method is selected
+         The caps negotiation should respect the selected method to the test pipeline below works properly.
+         gst-launch-1.0 videotestsrc ! video/x-raw,width=320,height=600 ! videoflip method=clockwise ! video/x-raw,width=600,height=320 ! fakesink
+         Signed-off-by: Adrian Fiergolski <adrian.fiergolski@fastree3d.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2803>
+
+2022-07-24 23:44:10 -0400  fduncanh <fduncanh@gmail.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object.c: add support for Apple's full-range bt709 colorspace variant
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2793>
+
+2022-07-08 18:22:58 +0800  Elliot Chen <elliot.chen@nxp.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         v4l2: fix the critical log when unreference the buffer with no data
+         In the trick mode, driver may queue a valid buffer follow by an
+         empty buffer which has no valid data to indicate EOS.For the empty
+         buffer whose memory is multi-plane, need to resize it before
+         unreference it.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2731>
+
+2022-07-15 13:22:14 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/qt/qtglrenderer.cc:
+         qt: Fix another instance of Qt/GStreamer both defining `GLsync` differently
+         In file included from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/gstglfuncs.h:87,
+         from ../gst-plugins-good-1.20.3/ext/qt/qtglrenderer.cc:14:
+         ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/glprototypes/gstgl_compat.h:40:18: error: conflicting declaration 'typedef void* GLsync'
+         40 | typedef gpointer GLsync;
+         |                  ^~~~~~
+         In file included from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtGui/qopengl.h:127,
+         from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsggeometry.h:44,
+         from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsgnode.h:43,
+         from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsgrendererinterface.h:43,
+         from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qquickwindow.h:44,
+         from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/QQuickWindow:1,
+         from ../gst-plugins-good-1.20.3/ext/qt/qtglrenderer.cc:6:
+         ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtGui/qopengles2ext.h:24:26: note: previous declaration as 'typedef struct __GLsync* GLsync'
+         24 | typedef struct __GLsync *GLsync;
+         |                          ^~~~~~
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2763>
+
+2022-07-15 06:40:05 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * sys/osxaudio/gstosxaudiodeviceprovider.c:
+       * sys/osxaudio/gstosxcoreaudiohal.c:
+         osxaudio: Fix deprecation in macOS 12.0
+         kAudioObjectPropertyElementMaster has been renamed to
+         kAudioObjectPropertyElementMain
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2761>
+
+2022-07-12 21:19:35 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Fix memory leak
+         Fix a leak of the buffer info struct when reaching
+         EOS without data on the reference input.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2751>
+
+2022-06-24 13:32:34 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/rtpjitterbuffer.c:
+         rtpjitterbuffer: Fix calculation of RFC7273 RTP time period start
+         This has to be based directly on the current estimated clock time and
+         has to allow for negative period starts.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2655>
+
+2022-04-14 01:19:51 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * tests/check/elements/splitmuxsink.c:
+         splitmuxsink: Don't crash on EOS without buffer
+         Fix a case where upstream pushed EOS without buffers.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2174>
+
+2022-06-30 15:15:22 +0000  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/rtpmanager/gstrtprtxreceive.c:
+       * gst/rtpmanager/gstrtprtxsend.c:
+       * tests/check/elements/rtprtx.c:
+         rtprtx: Fix copying extension headers
+         There was a typo leading to reading memory from the buffer we were
+         writing to.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2696>
+
+2022-05-28 15:04:10 -0400  fduncanh <fduncanh@gmail.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: replace multiple decoder bug warnings with single one
+         Achieve this by dropping frames after a drain if the driver failed to so.
+         This works around RaspberryPi driver issue [1].
+         [1] https://github.com/raspberrypi/linux/issues/5059#issuecomment-
+         Fixes #1103
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2518>
+
+2022-06-25 19:23:11 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/check/elements/udpsink.c:
+         tests: udpsink: make test work in environments without IPv6
+         Part-fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/939
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2659>
+
+2022-05-28 16:47:42 -0400  fduncanh <fduncanh@gmail.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: replace multiple decoder bug warnings by a single warning (warning due to incorrectly dropped frames at initial caps adjustment)
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2517>
+
+2022-06-29 00:51:28 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-period.c:
+         adaptivedemux2: Ignore stopped stream flow state
+         When calculating the combined stream flow state
+         for a period, don't consider stopped streams.
+         Fixes switching to the next period in DASH streams
+         with multiple video/audio/subtitle streams.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2684>
+
+2022-06-29 01:25:41 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+         adaptivedemux2: Clean up stream parsebins on finalize
+         Remove the parsebin for a stream from the overall
+         bin when cleaning up the stream, to avoid
+         keeping around old ones when moving between periods
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>
+
+2022-06-24 02:54:22 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+       * ext/adaptivedemux2/gstadaptivedemuxutils.c:
+         adaptivedemux2: Fix memory leaks and use-after-free
+         Fix various small memory leaks, and an invalid
+         access to GstEvent after giving away the ref
+         via gst_pad_push_event()
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>
+
+2022-06-24 02:57:54 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux-util.c:
+         hlsdemux2: Fix potential segfault
+         Fix a potential segfault if we receive a ISO-FF stream
+         with moof before moov.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>
+
+2022-06-24 02:57:03 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+       * ext/adaptivedemux2/hls/m3u8.c:
+         hlsdemux2: Fix memory leaks
+         Clean up various memory leaks
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>
+
+2022-06-23 19:24:03 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         hlsdemux2: Free current_segment on finalize
+         Avoid a memory leak by making sure to release the
+         current segment on exit if non-NULL
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>
+
+2022-06-29 10:55:13 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * meson.build:
+         coding style: allow declarations after statement
+         See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/
+         and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2683>
+
+2022-06-22 03:35:03 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-track.c:
+         adaptivedemux2: track: Fix buffering time calc before output
+         Use the lowest track input time as the output
+         time when calculating track buffering levels
+         before anything has been dequeued.
+         Fixes multi-period DASH not advancing to the
+         next period in some cases.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2650>
+
+2022-06-22 03:34:19 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-period.c:
+       * ext/adaptivedemux2/gstadaptivedemux-track.c:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+       * ext/adaptivedemux2/gstadaptivedemux.h:
+         adaptivedemux2: track: Add period number to most debug statements
+         Store the period number the track belongs to, and
+         add it in various debug statements
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2650>
+
+2022-06-22 03:30:16 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+         adaptivedemux2: stream: Don't take TRACKS_LOCK when sending EOS event
+         The stream tracks list can't change while we're
+         iterating it from the scheduling thread,
+         and the event handler immediately takes the
+         tracks lock, causing a deadlock.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2650>
+
+2022-06-08 11:17:09 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         hlsdemux2: Improve media playlist updates
+         * When dealing with rendition streams, we attempt to synchronize the media
+         playlist against the variant stream. This helps with speeding up the correct
+         initial fragment search and avoids issues when streams at activated at a much
+         later time.
+         * Also add checks for variant stream existence before attempting to use them
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-06-08 11:16:15 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         hlsdemux2: Only seek on selected streams
+         When handling seeks, there is no need to seek on unselected streams. If they
+         later get activated they will be properly seek onto
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-06-08 09:33:22 +0200  Edward Hervey <edward@centricular.com>
+
+       * tests/check/elements/hlsdemux_m3u8.c:
+         tests: check: Update hlsdemux2 tests for playlist changes
+         We no longer do auto-magic fallbacks when synchronizing a disconnected
+         playlist. It is handled at a higher level.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-06-03 10:25:34 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.c:
+         hlsdemux2: Fix debug return statement
+         Due to latest commits res could have been NULL.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-06-02 09:46:22 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.c:
+         hlsdemux2: No longer re-add segments from before the playlist
+         When updating playlists, there is a possibility that the playlists don't
+         perfectly align, but the last entry of the previous playlist is *just* before
+         the first entry of the new playlist.
+         In those cases, we still can transfer the timing information from one playlist
+         to another, but we do not want to return that segment as being the matching one.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-06-01 15:45:23 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         hlsdemux2: Use variant stream as support for synchronizing playlists
+         When matching playlists, there is a possibility that rendition streams will not
+         have been updated in time (for example because that stream started later, or
+         playback was paused). This would cause several playback failures and seeking
+         failures.
+         In order to still fall back on our feet, attempt to synchronize that rendition
+         playlist against the current variant playlist. This will attempt to match the
+         stream time using SN/DNS/PDT/...
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-23 15:51:23 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+       * ext/adaptivedemux2/hls/m3u8.c:
+       * ext/adaptivedemux2/hls/m3u8.h:
+         hlsdemux2: Detect synchronization loss
+         If we have been updating too slowly and have gone out of the current live
+         window, inform the baseclass accordingly.
+         This is different from the case where we have been updating quicker than what
+         the server provides.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-23 15:48:16 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+         hlsdemux2: More improvement/fixes to position tracking
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-23 15:43:04 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-private.h:
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+       * ext/adaptivedemux2/gstadaptivedemux.h:
+         adaptivedemux2: Handle loss of synchronization
+         Add a new custom GstFlowReturn so that subclasses can notify that they have lost
+         live synchronization.
+         When that happens, do a flushing seek back to the live position
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-23 09:11:24 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+         adaptivedemux2: Fix SNAP seek handling
+         * Since only flushing seeks are allowed, the "current" position is always the
+         global output position (and not "some" stream current position).
+         * In terms of figuring out to which stream to "snap" to, we can send it to any
+         selected stream. Removes the requirement of this function to a specific output
+         pad.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-17 07:16:48 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+       * ext/adaptivedemux2/hls/gsthlsdemux.h:
+         hlsdemux2: Fix position tracking
+         Remove the "pending advance" hack and instead rely on the base stream current
+         position to track our position (instead of a potentially NULL "current
+         segment").
+         Also ensure the media playlists are always refreshed with valid stream time,
+         even if there is no current segment.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-17 07:11:17 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.c:
+       * ext/adaptivedemux2/hls/m3u8.h:
+         hlsdemux2: Add a new method to synchronize two media playlist
+         This allows transfering the stream time of the playlist to an updated
+         variant/rendition.
+         This allows updating that information without having a "current segment"
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-17 07:07:23 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+         adaptivedemux2: Initialize and use stream start/current position
+         The stream start and current position would be properly set when seeking or
+         activating a stream after playback started. But it would never be properly
+         initialized.
+         Set it to NONE initially to indicate to subclasses that no position has been
+         tracked yet. This will allow them to detect initial stream usage.
+         Futhermore, once the initial streams setup is done, make sure that it is set to
+         a valid initial value:
+         * The minimum stream time in live
+         * Or else the period start
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>
+
+2022-05-19 15:51:03 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: Fix activation of internal pool
+         If the driver does not support VIDIOC_CREATE_BUFS ioctl, the pool
+         configuration may get changed, which requires a validation. This would
+         fail to activate a pool in a case it shouldn't normally fail unless we
+         are out of memory.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2456>
+
+2022-06-28 01:29:06 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * ext/dv/meson.build:
+         dv, opusparse: fix duplicate symbols in static build
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1262
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2670>
+
+2022-06-25 19:50:10 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/check/meson.build:
+         tests: skip unit tests for dependency-less elements that have been disabled
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2660>
+
+2022-06-24 12:10:02 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/examples/jack/meson.build:
+         examples: don't try and build jack examples if jack was disabled
+         Fixes meson build ERROR: Unknown variable "libjack_dep".
+         Fixes #1301
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2656>
+
+2022-06-17 14:02:54 +0200  Marc Leeman <m.leeman@televic.com>
+
+       * gst/rtpmanager/rtpsession.c:
+         rtpsession: properly initialise favor-new property
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2625>
+
+2022-05-27 11:20:06 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux-util.c:
+         hlsdemux2: Look for mpegts synchronization point further
+         Some mpeg-ts streams have extra data at the beginning. While it's not ideal, we
+         should be able to cope with it.
+         Therefore increase the initial search window for at least 4 consecutive
+         synchronization points to 1kB.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2626>
+
+2022-05-18 10:23:15 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/matroska/matroska-demux.c:
+         matroskademux: Avoid integer-overflow resulting in heap corruption in WavPack header handling code
+         blocksize + WAVPACK4_HEADER_SIZE might overflow gsize, which then
+         results in allocating a very small buffer. Into that buffer blocksize
+         data is memcpy'd later which then causes out of bound writes and can
+         potentially lead to anything from crashes to remote code execution.
+         Thanks to Adam Doupe for analyzing and reporting the issue.
+         CVE: CVE-2022-1920
+         https://gstreamer.freedesktop.org/security/sa-2022-0004.html
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1226
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2612>
+
+2022-05-30 10:15:37 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Fix integer overflows in zlib decompression code
+         Various variables were of smaller types than needed and there were no
+         checks for any overflows when doing additions on the sizes. This is all
+         checked now.
+         In addition the size of the decompressed data is limited to 200MB now as
+         any larger sizes are likely pathological and we can avoid out of memory
+         situations in many cases like this.
+         Also fix a bug where the available output size on the next iteration in
+         the zlib decompression code was provided too large and could
+         potentially lead to out of bound writes.
+         Thanks to Adam Doupe for analyzing and reporting the issue.
+         CVE: tbd
+         https://gstreamer.freedesktop.org/security/sa-2022-0003.html
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1225
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2610>
+
+2022-05-18 11:24:37 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/matroska/matroska-read-common.c:
+         matroskademux: Fix integer overflows in zlib/bz2/etc decompression code
+         Various variables were of smaller types than needed and there were no
+         checks for any overflows when doing additions on the sizes. This is all
+         checked now.
+         In addition the size of the decompressed data is limited to 120MB now as
+         any larger sizes are likely pathological and we can avoid out of memory
+         situations in many cases like this.
+         Also fix a bug where the available output size on the next iteration in
+         the zlib/bz2 decompression code was provided too large and could
+         potentially lead to out of bound writes.
+         Thanks to Adam Doupe for analyzing and reporting the issue.
+         CVE: CVE-2022-1922, CVE-2022-1923, CVE-2022-1924, CVE-2022-1925
+         https://gstreamer.freedesktop.org/security/sa-2022-0002.html
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1225
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2610>
+
+2022-05-18 12:00:48 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/avi/gstavidemux.c:
+         avidemux: Fix integer overflow resulting in heap corruption in DIB buffer inversion code
+         Check that width*bpp/8 doesn't overflow a guint and also that
+         height*stride fits into the provided buffer without overflowing.
+         Thanks to Adam Doupe for analyzing and reporting the issue.
+         CVE: CVE-2022-1921
+         See https://gstreamer.freedesktop.org/security/sa-2022-0001.html
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1224
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2608>
+
+2022-05-19 04:16:25 +0000  Adam Doupe <adamdoupe@gmail.com>
+
+       * gst/smpte/gstmask.c:
+         smpte: Fix integer overflow with possible heap corruption in GstMask creation.
+         Check that width*height*sizeof(guint32) doesn't overflow when
+         allocated user_data for mask, potential for heap overwrite when
+         inverting.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1231
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2603>
+
+2022-06-14 23:03:26 +0200  Piotr Brzeziński <piotr@centricular.com>
+
+       * ext/adaptivedemux2/dash/gstmpd-prelude.h:
+       * ext/adaptivedemux2/dash/gstmpdhelper.h:
+       * ext/adaptivedemux2/dash/gstmpdnode.h:
+       * ext/adaptivedemux2/dash/gstmpdparser.h:
+       * ext/adaptivedemux2/dash/gstxmlhelper.h:
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+       * ext/adaptivedemux2/hls/gsthlselement.c:
+       * ext/adaptivedemux2/hls/gsthlselements.h:
+       * ext/adaptivedemux2/hls/m3u8.c:
+       * ext/adaptivedemux2/mss/gstmss-prelude.h:
+       * ext/adaptivedemux2/mss/gstmssdemux.c:
+       * ext/adaptivedemux2/mss/gstmssdemux.h:
+       * ext/adaptivedemux2/mss/gstmssfragmentparser.h:
+       * ext/adaptivedemux2/mss/gstmssmanifest.h:
+       * ext/soup/gstsouploader.c:
+       * ext/soup/gstsouploader.h:
+       * tests/check/elements/hlsdemux_m3u8.c:
+         adaptivedemux2: Prevent duplicate symbols on static builds
+         Uses prelude header files with #defines to rename DASH and MSS
+         symbols duplicated in their old standalone versions.
+         Also redefines soup-related functions when building it for
+         adaptivedemux2 to prevent symbol conflicts there.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2534>
+
+2022-05-12 02:51:00 +1000  Jan Schmidt <jan@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-track.c:
+       * ext/adaptivedemux2/gstadaptivedemux.h:
+         adaptivedemux2: Improve reverse playback buffering.
+         In reverse playback, store the lowest running time in each GOP
+         as the input_time for buffering purposes. That means we end up
+         storing at least a complete GOP before declaring buffering
+         100%
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2510>
+
+2022-04-08 23:06:09 +1000  Jan Schmidt <jan@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * ext/adaptivedemux2/gstadaptivedemux-private.h:
+       * ext/adaptivedemux2/gstadaptivedemux-track.c:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+         adaptivedemux2: reverse playback running times
+         Account for running time moving non-monotonically in
+         reverse playback by tracking the highest running time
+         seen at each point.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2510>
+
+2022-04-06 12:56:30 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.h:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+       * gst/udp/gstudpelement.c:
+       * meson.build:
+         Bump GLib requirement to >= 2.62
+         Can't require 2.64 yet because of
+         https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/323
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2568>
+
+2022-06-08 14:11:57 +0200  Marc Leeman <m.leeman@televic.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/udp/gstmultiudpsink.c:
+         fix trivial distination -> destination
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2573>
+
+2022-04-21 12:47:31 +0200  Ignacio Casal Quinteiro <qignacio@amazon.com>
+
+       * sys/osxaudio/gstosxcoreaudiohal.c:
+         osxaudio: remove usage of goto
+         It is easier to follow the code without the goto now
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>
+
+2022-03-30 12:59:46 +0200  Ignacio Casal Quinteiro <qignacio@amazon.com>
+
+       * sys/osxaudio/gstosxcoreaudiohal.c:
+         osxaudio: support hidden devices
+         macOS features hidden devices. These are devices that will
+         not be shown in the macOS UIs and that cannot be retrieved
+         without having the specific UID of the hidden device. There
+         are cases when you might want to have a hidden device, for example
+         when having a virtual speaker that forwards the data to a virtual
+         hidden input device from which you can then grab the audio.
+         The blackhole project supports these hidden devices and
+         this patch provides a way that if the device id is a hidden
+         device it will use it instead of check the hardware list of devices
+         to understand if the device is valid.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>
+
+2022-04-20 18:12:02 +0200  Ignacio Casal Quinteiro <qignacio@amazon.com>
+
+       * sys/osxaudio/gstosxcoreaudiohal.c:
+         osx: fix indent
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>
+
+2022-03-30 12:48:02 +0200  Ignacio Casal Quinteiro <qignacio@amazon.com>
+
+       * sys/osxaudio/gstosxcoreaudiohal.c:
+         osxaudio: iterate device only if needed
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>
+
+2022-03-30 09:59:59 +0200  Ignacio Casal Quinteiro <qignacio@amazon.com>
+
+       * sys/osxaudio/gstosxcoreaudiohal.c:
+         osxaudio: reduce scope of default device id variable
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>
+
+2022-06-07 17:31:43 +0200  Bastien Nocera <hadess@hadess.net>
+
+       * ext/gtk/gtkgstglwidget.c:
+         gtk: Fix double-free when OpenGL can't be initialised
+         gtk_gl_area_get_error() doesn't return a copy of the error, but just the
+         error. If initialising OpenGL fails, then GtkGstGLWidget will consume
+         the error, and cause GTK to try and display freed memory.
+         ==50914== Invalid read of size 8
+         ==50914==    at 0x4C4CB8A: gtk_gl_area_draw_error_screen (gtkglarea.c:663)
+         ==50914==    by 0x4C4CB8A: gtk_gl_area_draw (gtkglarea.c:687)
+         ==50914==    by 0x4E061CA: gtk_widget_draw_internal (gtkwidget.c:7084)
+         ==50914==    by 0x4BAEFB1: gtk_container_propagate_draw (gtkcontainer.c:3854)
+         ==50914==    by 0x4D4B6BF: gtk_stack_render (gtkstack.c:2207)
+         ==50914==    by 0x4BB4B03: gtk_css_custom_gadget_draw (gtkcsscustomgadget.c:159)
+         ==50914==    by 0x4BBA4C4: gtk_css_gadget_draw (gtkcssgadget.c:885)
+         ==50914==    by 0x4D4D780: gtk_stack_draw (gtkstack.c:2119)
+         ==50914==    by 0x4E061CA: gtk_widget_draw_internal (gtkwidget.c:7084)
+         ==50914==    by 0x4BAEFB1: gtk_container_propagate_draw (gtkcontainer.c:3854)
+         ==50914==    by 0x4BAF0C3: gtk_container_draw (gtkcontainer.c:3674)
+         ==50914==    by 0x4E061CA: gtk_widget_draw_internal (gtkwidget.c:7084)
+         ==50914==    by 0x4BAEFB1: gtk_container_propagate_draw (gtkcontainer.c:3854)
+         ==50914==  Address 0x187a0818 is 8 bytes inside a block of size 16 free'd
+         ==50914==    at 0x48480E4: free (vg_replace_malloc.c:872)
+         ==50914==    by 0x49A5B8C: g_free (gmem.c:218)
+         ==50914==    by 0x49C1013: g_slice_free1 (gslice.c:1183)
+         ==50914==    by 0x4990DE4: g_error_free (gerror.c:870)
+         ==50914==    by 0x4990FE9: g_clear_error (gerror.c:1052)
+         ==50914==    by 0x1A489780: _get_gl_context (gtkgstglwidget.c:540)
+         ==50914==    by 0x1A4863CB: gst_gtk_invoke_func (gstgtkutils.c:39)
+         ==50914==    by 0x49A3834: g_main_context_invoke_full (gmain.c:6137)
+         ==50914==    by 0x1A486450: gst_gtk_invoke_on_main (gstgtkutils.c:59)
+         ==50914==    by 0x1A48A29E: gtk_gst_gl_widget_init_winsys (gtkgstglwidget.c:632)
+         ==50914==    by 0x1A4887E7: gst_gtk_gl_sink_start (gstgtkglsink.c:267)
+         ==50914==    by 0x6579810: gst_base_sink_change_state (gstbasesink.c:5662)
+         ==50914==  Block was alloc'd at
+         ==50914==    at 0x484586F: malloc (vg_replace_malloc.c:381)
+         ==50914==    by 0x49A9278: g_malloc (gmem.c:125)
+         ==50914==    by 0x49C1BA5: g_slice_alloc (gslice.c:1072)
+         ==50914==    by 0x49C3BCC: g_slice_alloc0 (gslice.c:1098)
+         ==50914==    by 0x499096B: g_error_allocate (gerror.c:708)
+         ==50914==    by 0x4990AF1: UnknownInlinedFun (gerror.c:722)
+         ==50914==    by 0x4990AF1: g_error_copy (gerror.c:892)
+         ==50914==    by 0x4C4B9F9: gtk_gl_area_set_error (gtkglarea.c:1036)
+         ==50914==    by 0x4C4BAF7: gtk_gl_area_real_create_context (gtkglarea.c:346)
+         ==50914==    by 0x4B21B28: _gtk_marshal_OBJECT__VOIDv (gtkmarshalers.c:2730)
+         ==50914==    by 0x4920B78: UnknownInlinedFun (gclosure.c:893)
+         ==50914==    by 0x4920B78: g_signal_emit_valist (gsignal.c:3406)
+         ==50914==    by 0x4920CB2: g_signal_emit (gsignal.c:3553)
+         ==50914==    by 0x4C4B927: gtk_gl_area_realize (gtkglarea.c:308)
+         Reproduced by running:
+         MESA_GL_VERSION_OVERRIDE=2.7 totem
+         See https://gitlab.gnome.org/GNOME/totem/-/issues/522
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2565>
+
+2022-06-06 12:31:52 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/flv/gstflvdemux.c:
+       * gst/flv/gstflvdemux.h:
+         flvdemux: Make use of the streams API if used in a streams-aware bin
+         This allows adding audio/video streams after 6s.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2559>
+
+2022-06-03 18:35:54 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/audioparsers/gstaacparse.c:
+         aacparse: Avoid mismatch between src_caps and output_header_type
+         If our downstream caps didn't intersect, we attempted to convert between
+         raw and ADTS stream formats, if possible. If the caps still did not
+         intersect, we then used the modified `src_caps` but left the
+         `output_header_type` unmodified.
+         This caused a mismatch between caps and actual stream format.
+         Avoid this by first copying the `src_caps` to `convcaps` for the
+         additional intersection tests, replacing `src_caps` if we succeed.
+         While we're here, clean up the code a bit and remove the `codec_data`
+         field from outgoing ADTS caps.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2550>
+
+2022-06-04 10:27:09 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/flv/gstflvdemux.c:
+       * gst/flv/gstflvelement.c:
+         flvdemux: Actually make use of the debug category
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2552>
+
+2022-06-01 16:14:24 +0200  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/soup/gstsoup.c:
+       * ext/soup/gstsoupelement.c:
+       * ext/soup/gstsouploader.c:
+         soup: fix soup debug category
+         Use soup debug category in souploader
+         for soup plugin element load.
+         Inititalize properly soup utils category.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2535>
+
+2022-05-29 06:05:27 +0900  Seungha Yang <seungha@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.c:
+         hlsdemux2: Adjust debug log level
+         HLS manifest might not be represented by a single common caps
+         when different codecs are mixed in a playlist, but it
+         does not seem to be a critical issue we need to warn.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2516>
+
+2022-05-02 16:55:34 +0200  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/adaptivedemux2/dash/gstdashdemux.c:
+       * ext/adaptivedemux2/dash/gstdashdemux.h:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+       * ext/adaptivedemux2/gstadaptivedemuxelement.c:
+       * ext/adaptivedemux2/gstadaptivedemuxelements.h:
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+       * ext/adaptivedemux2/hls/gsthlsdemux.h:
+       * ext/adaptivedemux2/meson.build:
+       * ext/adaptivedemux2/mss/gstmssdemux.c:
+       * ext/adaptivedemux2/mss/gstmssdemux.h:
+       * ext/adaptivedemux2/plugin.c:
+         adaptivedemux2: fix plugin/element init
+         In case of per features registration such as the
+         customizable gstreamer-full library, each
+         element should check that the soup library can be loaded to
+         facilitate the element registration.
+         Initialize the debug categories properly
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2348>
+
+2022-05-29 20:27:38 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/rtpmanager/gstrtpptdemux.c:
+         rtpptdemux: Don't GST_FLOW_ERROR when ignoring invalid packets
+         https://bugzilla.gnome.org/show_bug.cgi?id=741398 changed
+         rtpptdemux in 2014 to not post a GST_ELEMENT_ERROR on the
+         bus when dropping an invalid (non-RTP) packet, but still
+         returned GST_FLOW_ERROR upstream - so the pipeline still
+         stops, but now without a useful bus error.
+         Return GST_FLOW_OK instead, so the pipeline keeps
+         running. Some old telephony equipment can send invalid
+         packets before the real RTP traffic starts.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2520>
+
+2022-05-28 16:46:04 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/jack/gstjackaudiosrc.c:
+         jack: Always use jack_free as specified by the docs
+         Fixes a crash on Windows due to a CRT mismatch. The JACK installation
+         still uses MSVCRT, and we the Universal CRT for both MinGW and MSVC.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2497>
+
+2022-05-26 01:21:43 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/jack/meson.build:
+         jack: Add support for detecting libjack on Windows
+         No source code changes were necessary to get the plugin working on
+         Windows with MSVC.
+         Run QJackCtl and audiotestsrc ! jackaudiosink just works.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2497>
+
+2022-05-24 16:07:13 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: Reset transfer in gst_v4l2_object_acquire_format()
+         get_colorspace() checks input caps transfer when mapping V4L2_XFER_FUNC_709
+         back to V4L2_COLORSPACE_BT2020 and GST_VIDEO_TRANSFER_BT2020_12. After
+         receiving source change event, decoder will G_FMT and S_FMT again. So need
+         to reset transfer when acquiring format to avoid using the old transfer.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2475>
+
+2022-05-25 13:00:58 +0200  Piotrek Brzeziński <piotr@centricular.com>
+
+       * gst/cutter/gstcutter.c:
+       * gst/cutter/gstcutter.h:
+         cutter: Include running/stream-time in messages
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2490>
+
+2022-05-03 11:34:15 +0200  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/soup/gstsoup.c:
+       * ext/soup/gstsoupelement.c:
+       * ext/soup/gstsoupelements.h:
+       * ext/soup/gstsouphttpclientsink.c:
+       * ext/soup/gstsouphttpsrc.c:
+         soup: Fix plugin/element init
+         In case of per features registration such as the
+         customizable gstreamer-full library, each
+         element should check that the soup library can be loaded to
+         facilitate the element registration.
+         Initialize the debug category properly
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2349>
+
+2022-05-23 21:24:40 -0400  Eli Schwartz <eschwartz@archlinux.org>
+
+       * meson.build:
+         meson: use better zlib dependency fallback
+         zlib is required, and if it isn't found it is checked several ways and
+         then forced via subproject(). This code was added in commit
+         b93e37592a3ccc0eaece1c8fef2d362b1e5fe685, to account for systems where
+         zlib doesn't have pkg-config files installed.
+         But Meson already does dependency fallback, and also, since 0.54.0, does
+         the in-between checks for find_library('z') and has_header('zlib.h') via
+         the "system" type dependency. Simplify dependency lookup by marking it
+         as required, which also makes sure that the console log doesn't
+         confusingly list "not found".
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2484>
+
+2022-05-19 16:33:47 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: Fix missing handling of resolution-change
+         The pool process function may poll and get the resolution-change event
+         whenever it is not possible to share our buffers. This typically happen
+         when downstream does not support GstVideoMeta.
+         Not handling this would cause the decoder thread to exit silently and the
+         pipeline to stall.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2457>
+
+2022-05-19 16:39:14 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: Downgrade to info resolution-change trace
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2457>
+
+2022-05-23 20:23:38 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * ext/shout2/gstshout2.c:
+       * ext/shout2/gstshout2.h:
+       * ext/shout2/meson.build:
+         shout2: fix compiler warnings and bump req to libshout >= 2.4.2
+         Fix compiler warnings with latest libshout version (2.4.6).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2473>
+
+2022-05-14 14:58:04 +0200  László Károlyi <laszlo@karolyi.hu>
+
+       * docs/gst_plugins_cache.json:
+       * ext/shout2/gstshout2.c:
+       * ext/shout2/gstshout2.h:
+         shout2send: Adding send-title-info and user-agent options
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2420>
+
+2022-05-19 11:47:57 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+       * gst/isomp4/qtdemux.h:
+         qtdemux: Add support for ONVIF XML Timed MetaData
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2453>
+
+2022-05-19 11:30:20 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/fourcc.h:
+       * gst/isomp4/qtdemux_dump.c:
+       * gst/isomp4/qtdemux_types.c:
+         qtdemux: Add parsing/dumping of nmhd / metx boxes
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2453>
+
+2022-05-19 11:06:31 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/fourcc.h:
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Parse styp box for informational purposes
+         And include some more details in the debug logs for the ftyp box too.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2453>
+
+2022-05-10 16:20:46 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: set default resolution if caps has no such information
+         Output may attemp to set the width and height to zero values if
+         caps has no such information, which will cause capture get invalid
+         dimensions. Then decoder reports negotiation failure.
+         So need to set default resolution if caps has no such information.
+         Real values can be set again until source change event is signaled.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2400>
+
+2022-05-17 05:21:19 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxpartreader.c:
+         splitmuxsrc: Re-queue sticky events after probing.
+         When processing the first event after probing the
+         file and being activated, requeue sticky events
+         as there's no requirement that demuxers send tag
+         and other events again after a seek - that's
+         why they're sticky.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2432>
+
+2022-05-16 14:14:46 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+         deinterlace: Clean up error handling in chain and _push_history
+         - Consistently unref the chained buffer at the end of the chain
+         function, if we're not handing it off to `gst_pad_push`. This avoids a
+         few buffer leaks in the error paths in `_chain` and `_push_history`.
+         - When mapping the video frame fails, return a flow error instead of
+         crashing.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2428>
+
+2022-05-16 14:40:41 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: When flushing, exit handle_mq_input quickly
+         If we just break the loop, we might run into the `gop != NULL` assert
+         that follows it. Rather, exit immediately with flushing flow.
+         Also use this flushing mechanism when we release a pad. This avoids
+         having an extra flag.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1030>
+
+2021-01-26 16:33:25 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Avoid deadlock on release, harder
+         Unlock after broadcasting and wait for the pad to be free before
+         relocking the muxer, giving the input probe a chance to react to our
+         broadcast.
+         Improves the fix from
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/838.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1030>
+
+2022-05-16 19:31:18 +0900  Shingo Kitagawa <shingogo@hotmail.co.jp>
+
+       * gst/wavparse/gstwavparse.c:
+         wavparse: fix typo in debug message
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2425>
+
+2022-05-13 01:42:21 +0000  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: Avoid holding lock GST_RTP_BIN_LOCK  when emitting pad-added
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2411>
+
+2022-05-12 17:11:38 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Don't use tfdt for parsing subsequent trun boxes
+         The timestamp in the tfdt refers to the first trun box and if there are
+         multiple trun boxes then the distance between the first timestamps will
+         grow.
+         At some point this distance reaches a threshold and triggers the
+         resetting of the first sample's timestamp of this trun box to be reset
+         to the tfdt.
+         This threshold is implemented for files where there is a jump in the
+         timeline between fragments and where this can be detected via a jump
+         between the end timestamp of the previous fragment and the tfdt of the
+         next. This behaviour is preserved.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2409>
+
+2022-05-11 16:20:42 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>
+
+       * ext/vpx/gstvpxenc.c:
+       * ext/vpx/gstvpxenc.h:
+         vpxenc: enforce strictly increasing pts
+         From vpx_codec_encode() documentation:
+         "The presentation time stamp (PTS) MUST be strictly increasing."
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2405>
+
+2022-05-11 15:37:44 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>
+
+       * ext/vpx/gstvpxenc.c:
+         vpxenc: conver input pts to running time
+         The input pts needs to be strictly increasing, see vpx_codec_encode() doc, so convert it to
+         running time as we don't want to reset the encoder for each segment.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2405>
+
+2022-05-11 15:18:42 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>
+
+       * ext/vpx/gstvpxenc.c:
+         vpxenc: fix crash if encoder produces unmatching ts
+         If for some reason the encoder produces frames with a pts higher than
+         the input one, we were dropping all the video encoder frames and ended
+         up crashing when trying to access the pts of a NULL pointer returned by
+         gst_video_encoder_get_oldest_frame().
+         I hit this scenario by feeding a decreasing timestamp to vp8enc which
+         seem to confuse the encoder.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2405>
+
+2022-04-28 09:19:57 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+       * sys/v4l2/gstv4l2videoenc.c:
+         v4l2videoenc: Setup crop rectangle if needed
+         Hantro H1 and Rockchip VEPU2 drivers will pad the width/height to a
+         multiple of 16. In order to obtain the right JPEG size, the image needs
+         to be cropped using the S_SELECTION API. This support is added as best
+         effort since older drivers may emulate this by looking at the capture
+         queue width/height.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2329>
+
+2022-05-05 20:36:04 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         mp4mux: Disable aggregator's default negotiation
+         mp4mux can't negotiate caps with upstream/downstream and always outputs
+         specific caps based on the input streams. This will always happen before
+         it produces the first buffers.
+         By having the default aggregator negotiation enabled the same caps
+         would be pushed twice in the beginning, and again every time a
+         reconfigure event is received.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2372>
+
+2022-05-05 20:24:57 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Disable aggregator's default negotiation
+         flvmux can't negotiate caps with upstream/downstream and always outputs
+         specific caps based on the input streams. This will always happen before
+         it produces the first buffers.
+         By having the default aggregator negotiation enabled the same caps
+         would be pushed twice in the beginning, and again every time a
+         reconfigure event is received.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2372>
+
+2022-05-03 17:27:32 +1000  Matthew Waters <matthew@centricular.com>
+
+       * gst/wavparse/gstwavparse.c:
+         wavparse: ensure that any pending segment is sent before an EOS event is sent
+         Specifically fixes seqnum handling when an aggregator-based element
+         (audiomixer et al) is downstream and a seek is performed that
+         immediately causes an EOS from wavparse.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2356>
+
+2022-04-29 23:33:47 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Free CNAME/SSRC mappings on finalize and PAUSED->READY
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2336>
+
+2022-04-29 23:13:15 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpmanager: Refactor RTCP packet loops to fix control flow
+         Mixing C loops with switch statements is a bad idea as break has a
+         different meaning in both. Breaking inside the switch statements wrongly
+         caused further loop iterations.
+         Instead use goto to get out of the loop and continue to do another loop
+         iteration, and never ever use break except for the end of a case.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2336>
+
+2022-04-28 00:58:30 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Initialize variables
+         Avoid use of uninitialized variable
+         Fixing MSVC warning
+         gstrtpjitterbuffer.c(4733) : warning C4700: uninitialized local variable 'have_sdes' used
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2315>
+
+2022-04-28 10:49:55 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/mss/gstmssdemux.c:
+         mssdemux2: Don't expose/use streams we can't handle yet
+         Avoids issues further down
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2319>
+
+2022-04-28 10:46:34 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/mss/gstmssdemux.c:
+       * ext/adaptivedemux2/mss/gstmssmanifest.c:
+       * ext/adaptivedemux2/mss/gstmssmanifest.h:
+         mssdemux2: Ensure stream/track uniqueness
+         If there is more than one track of the same type (say audio), we would end up
+         creating several stream/types with the same name.
+         Instead use the MSS stream name property to make them unique
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2319>
+
+2022-04-27 12:24:23 +0900  dongil.park <dongil.park@lge.com>
+
+       * gst/wavparse/gstwavparse.c:
+         wavparse: Unset DISCONT buffer flag for divided into multiple buffers in push mode
+         In push mode (streaming), if the received chunk buffer size from _chain is bigger
+         than output buffer size, the flags of the divided-buffers are propagated to the
+         DISCONT flag from first received chunk buffer. This unexpected buffers contained DISCONT
+         flags are abnormally transformed when changing the sampling rate by audioresample element.
+         So unset unnecessary DISCONT flag before pad_push().
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2305>
+
+2022-04-26 22:17:51 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: add the reference timestamp meta in more situations
+         Previously, we only added it when actually performing synchronization
+         based on the NTP time.
+         The information can be useful downstream in other situations too, and
+         we can compute a NTP time as soon as we get a sender report with the
+         relevant information.
+         Co-authored-by: Mathieu Duponchelle <mathieu@centricular.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2252>
+
+2022-04-20 17:35:29 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtp/gstrtpgstpay.c:
+       * gst/rtp/gstrtpgstpay.h:
+         rtpgstpay: Don't push packets before the first input buffer is received
+         It's not possible to create a valid RTP timestamp for them, which would
+         cause a potentially very big RTP timestamp discontinuity between those
+         first packets (created from initial events) and the packet based on the
+         first input buffer.
+         As a side-effect, also simplify the packet aggregation code a bit and
+         work with only a single level of buffer lists.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1157
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2250>
+
+2022-04-22 12:19:03 +0200  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/rtptwcc.c:
+         rtptwcc: don't map the buffer twice
+         ...and use the pt extracted rather than the one from RTPPacketInfo
+         when logging.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2271>
+
+2022-04-22 02:41:16 +0000  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/rtpmanager/rtpsession.c:
+         rtpsession: Emit "notify::stats" when we update stats from RR or SR
+         Sensibily optimizing caching the pspecs and using them directly
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2266>
+
+2022-04-23 01:57:53 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtp/gstrtpredenc.c:
+       * gst/rtp/gstrtpredenc.h:
+         rtpredenc: quieten warning about ignoring header extensions
+         Turn it into a FIXME, and only log once
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2279>
+
+2021-02-01 10:36:42 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/gstrtprtxsend.c:
+       * tests/check/elements/rtprtx.c:
+         rtprtxsend: mark RTX buffers with GST_RTP_BUFFER_FLAG_RETRANSMISSION
+         It is useful for elements downstream from rtxsend to know if the RTP
+         buffer they are dealing with is an RTX buffer or not.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2272>
+
+2022-04-19 18:40:31 -0400  Tristan Matthews <tmatth@videolan.org>
+
+       * docs/gst_plugins_cache.json:
+       * gst/isomp4/gstqtmux.c:
+         mp4mux: fix spelling
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2241>
+
+2022-01-21 14:21:18 +0100  Jonas Bonn <jonas@norrbonn.se>
+
+       * gst/udp/gstmultiudpsink.c:
+         multiudpsink: allow binding to IPv6 address
+         When the sink is configured to create sockets with an explicit bind
+         address, then the created socket gets set to the udp_socket field
+         irregardless of whether the bind address indicated that the socket
+         family should be IPv4 or IPv6.  When binding to an IPv6 address, this
+         results in the following error:
+         gstmultiudpsink.c:1285:gst_multiudpsink_configure_client:<rtcpsink>
+         error: Invalid address family (got 10)
+         This patch adds a check of the address family being bound to and sets
+         the created socket to used_socket or used_socket_v6, accordingly.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1551>
+
+2022-04-18 18:20:00 +0900  Camilo Celis Guzman <camilo@pexip.com>
+
+       * tests/check/elements/rtphdrextsdes.c:
+         rtphdrextsdes: fixup test trying to g_free a local variable
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2235>
+
+2022-04-21 11:47:55 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/m3u8.c:
+         hls/m3u8: Fix starting segment for live playlist
+         RFC 8216 6.3.3 "Playing the Media Playlist File" : states that for live media
+         playlists "the client SHOULD NOT choose a segment that starts less than three
+         target durations from the end of the Playlist file"
+         This is an off-by-one error. Since we are looking for the "index" of the
+         segment, we need to subtract 1 from the searched position.
+         Ex: For a playlist with 12 entries, we want to start playback on the 9th segment
+         ... which is at index 8.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2259>
+
+2022-04-20 14:50:35 +0200  Edward Hervey <edward@centricular.com>
+
+       * ext/adaptivedemux2/hls/gsthlsdemux-util.c:
+         hls: Relax webvtt checks
+         If no hour field is present (which is allowed), the remaining data can be less
+         than 15 character.
+         Fix time translation failures if the hour field wasn't present
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2248>
+
+2022-04-20 10:53:16 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpfunnel.c:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/rtpmanager/gstrtputils.c:
+       * gst/rtpmanager/gstrtputils.h:
+       * gst/rtpmanager/meson.build:
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtptwcc.c:
+         rtpmanager: Move some duplicated constant and helper function to a single place
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-18 16:22:50 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpbin/rtpjitterbuffer: Don't parse RTCP SRs twice unless needed
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-18 11:50:48 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Add property to throttle handling of RTCP SR / NTP-64 syncing
+         This proxies the "rtcp-sync-interval" property of rtpbin.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-11 19:14:43 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtpsession.h:
+         rtpsession: Handle RTCP-SR-REQ (RFC6051) RTCP feedback message
+         This causes an RTCP SR to be sent at the earliest possible time.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-11 19:25:43 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpbin/rtpjitterbuffer: Allow syncing to an SR without CNAME if the CNAME is already known
+         The RTCP SR packet might be without SDES in case of a reduced-size RTCP
+         packet. For syncing purposes the CNAME is needed but it might be known
+         already from an earlier RTCP packet or out of band, via the SDP for
+         example.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-07 18:59:07 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpbin/jitterbuffer: Use inband 64-bit NTP timestamps according to RFC6051 for faster synchronization
+         When signalled via the caps that the header extension is used, it will
+         be read and used in the same way as the RTP/NTP time mapping from RTCP
+         SRs.
+         If the CNAME of the stream's SSRC is provided out of band via e.g. the
+         SDP then this allows streams to be synchronized immediately on the first
+         packet instead of having to wait for the first RTCP SR to arrive.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/383
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-09 11:00:52 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpsession.c:
+         rtpsession: Only add send latency to the running time if it is actually known
+         Otherwise we can't know the running time yet if rtcp-sync-send-time is
+         set, and have to wait until the latency is known later.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-06 15:39:14 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtpsession.h:
+       * gst/rtpmanager/rtpstats.h:
+         rtpsession: Update 64-bit NTP header extensions with the actual NTP time in senders
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-04-05 20:05:57 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtphdrext-ntp.c:
+       * gst/rtpmanager/gstrtphdrext-ntp.h:
+       * gst/rtpmanager/gstrtpmanager.c:
+       * gst/rtpmanager/meson.build:
+         rtpmanager: Add header extension implementation for the 64-bit RFC6051 NTP header extension
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>
+
+2022-03-25 10:18:34 -0400  Xavier Claessens <xavier.claessens@collabora.com>
+
+       * meson.build:
+         Always define ENABLE_NLS
+         GLib guarantees libintl API is always available, provided by
+         proxy-libintl as last resort. GLib itself unconditionally define
+         ENABLE_NLS.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028>
+
+2022-03-25 10:20:24 -0400  Xavier Claessens <xavier.claessens@collabora.com>
+
+       * gst-libs/gst/gettext.h:
+       * gst-libs/gst/gst-i18n-plugin.h:
+         Delete unused i18n headers
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028>
+
+2022-03-25 09:59:23 -0400  Xavier Claessens <xavier.claessens@collabora.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+       * ext/adaptivedemux2/mss/gstmssdemux.c:
+       * ext/flac/gstflacdec.c:
+       * ext/flac/gstflacelement.c:
+       * ext/jack/gstjackaudiosink.c:
+       * ext/jack/gstjackaudiosrc.c:
+       * ext/jpeg/gstjpegdec.c:
+       * ext/lame/gstlamemp3enc.c:
+       * ext/lame/plugin.c:
+       * ext/libpng/gstpngdec.c:
+       * ext/pulse/gstpulseelement.c:
+       * ext/pulse/pulsesink.c:
+       * ext/shout2/gstshout2.c:
+       * ext/soup/gstsoup.c:
+       * ext/soup/gstsoupelement.c:
+       * ext/soup/gstsouphttpsrc.c:
+       * ext/twolame/gsttwolamemp2enc.c:
+       * ext/wavpack/gstwavpackelement.c:
+       * gst/apetag/gstapedemux.c:
+       * gst/avi/gstavidemux.c:
+       * gst/avi/gstavielement.c:
+       * gst/avi/gstavimux.c:
+       * gst/icydemux/gsticydemux.c:
+       * gst/id3demux/gstid3demux.c:
+       * gst/isomp4/gstisomp4element.c:
+       * gst/isomp4/isomp4-plugin.c:
+       * gst/isomp4/qtdemux.c:
+       * gst/multifile/gstsplitmuxsrc.c:
+       * gst/rtsp/gstrtspelement.c:
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/wavparse/gstwavparse.c:
+       * sys/oss/gstossaudio.c:
+       * sys/oss/gstossaudioelement.c:
+       * sys/oss/gstosshelper.c:
+       * sys/oss/gstosssink.c:
+       * sys/oss/gstosssrc.c:
+       * sys/oss4/oss4-audio.c:
+       * sys/oss4/oss4-sink.c:
+       * sys/oss4/oss4-source.c:
+       * sys/osxaudio/gstosxaudioringbuffer.c:
+       * sys/rpicamsrc/gstrpicamsrcdeviceprovider.c:
+       * sys/v4l2/gstv4l2.c:
+       * sys/v4l2/gstv4l2bufferpool.c:
+       * sys/v4l2/gstv4l2element.c:
+       * sys/v4l2/gstv4l2fwhtenc.c:
+       * sys/v4l2/gstv4l2h263enc.c:
+       * sys/v4l2/gstv4l2h264enc.c:
+       * sys/v4l2/gstv4l2h265enc.c:
+       * sys/v4l2/gstv4l2jpegenc.c:
+       * sys/v4l2/gstv4l2mpeg4enc.c:
+       * sys/v4l2/gstv4l2object.c:
+       * sys/v4l2/gstv4l2radio.c:
+       * sys/v4l2/gstv4l2sink.c:
+       * sys/v4l2/gstv4l2src.c:
+       * sys/v4l2/gstv4l2transform.c:
+       * sys/v4l2/gstv4l2videodec.c:
+       * sys/v4l2/gstv4l2videoenc.c:
+       * sys/v4l2/gstv4l2vp8enc.c:
+       * sys/v4l2/gstv4l2vp9enc.c:
+       * sys/v4l2/v4l2_calls.c:
+       * sys/ximage/gstximagesrc.c:
+         Replace gst-i18n-*.h with gi18n-lib.h
+         GLib guarantees libintl is always present, using proxy-libintl as
+         last resort. There is no need to mock gettex API any more.
+         This fix static build on Windows because G_INTL_STATIC_COMPILATION must
+         be defined before including libintl.h, and glib does it for us as part
+         as including glib.h.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028>
+
+2022-04-19 09:52:51 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/check/elements/dash_mpd.c:
+         tests: dash_mpd: fix linker issues with non-optimizing compilers
+         undefined reference to `download_request_take_buffer'
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2117#note_1344646
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2228>
+
+2021-11-12 20:13:10 +0100  Ruben Gonzalez <rgonzalez@fluendo.com>
+
+       * docs/gst_plugins_cache.json:
+         gst_plugin_load_file: force plugin reload if diff filename
+         If a file includes a new version of a plugin that exits in the
+         registry, the output of gst-inspect is incorrect. The output has the
+         correct version but incorrect filename, and element description.
+         This seems to have also fixed some documentation issues.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1344>
+
+2022-03-11 17:11:50 +0100  Edward Hervey <edward@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * docs/meson.build:
+       * ext/adaptivedemux2/dash/gstdash_debug.h:
+       * ext/adaptivedemux2/dash/gstdashdemux.c:
+       * ext/adaptivedemux2/dash/gstdashdemux.h:
+       * ext/adaptivedemux2/dash/gstmpdadaptationsetnode.c:
+       * ext/adaptivedemux2/dash/gstmpdadaptationsetnode.h:
+       * ext/adaptivedemux2/dash/gstmpdbaseurlnode.c:
+       * ext/adaptivedemux2/dash/gstmpdbaseurlnode.h:
+       * ext/adaptivedemux2/dash/gstmpdclient.c:
+       * ext/adaptivedemux2/dash/gstmpdclient.h:
+       * ext/adaptivedemux2/dash/gstmpdcontentcomponentnode.c:
+       * ext/adaptivedemux2/dash/gstmpdcontentcomponentnode.h:
+       * ext/adaptivedemux2/dash/gstmpddescriptortypenode.c:
+       * ext/adaptivedemux2/dash/gstmpddescriptortypenode.h:
+       * ext/adaptivedemux2/dash/gstmpdhelper.c:
+       * ext/adaptivedemux2/dash/gstmpdhelper.h:
+       * ext/adaptivedemux2/dash/gstmpdlocationnode.c:
+       * ext/adaptivedemux2/dash/gstmpdlocationnode.h:
+       * ext/adaptivedemux2/dash/gstmpdmetricsnode.c:
+       * ext/adaptivedemux2/dash/gstmpdmetricsnode.h:
+       * ext/adaptivedemux2/dash/gstmpdmetricsrangenode.c:
+       * ext/adaptivedemux2/dash/gstmpdmetricsrangenode.h:
+       * ext/adaptivedemux2/dash/gstmpdmultsegmentbasenode.c:
+       * ext/adaptivedemux2/dash/gstmpdmultsegmentbasenode.h:
+       * ext/adaptivedemux2/dash/gstmpdnode.c:
+       * ext/adaptivedemux2/dash/gstmpdnode.h:
+       * ext/adaptivedemux2/dash/gstmpdparser.c:
+       * ext/adaptivedemux2/dash/gstmpdparser.h:
+       * ext/adaptivedemux2/dash/gstmpdperiodnode.c:
+       * ext/adaptivedemux2/dash/gstmpdperiodnode.h:
+       * ext/adaptivedemux2/dash/gstmpdprograminformationnode.c:
+       * ext/adaptivedemux2/dash/gstmpdprograminformationnode.h:
+       * ext/adaptivedemux2/dash/gstmpdreportingnode.c:
+       * ext/adaptivedemux2/dash/gstmpdreportingnode.h:
+       * ext/adaptivedemux2/dash/gstmpdrepresentationbasenode.c:
+       * ext/adaptivedemux2/dash/gstmpdrepresentationbasenode.h:
+       * ext/adaptivedemux2/dash/gstmpdrepresentationnode.c:
+       * ext/adaptivedemux2/dash/gstmpdrepresentationnode.h:
+       * ext/adaptivedemux2/dash/gstmpdrootnode.c:
+       * ext/adaptivedemux2/dash/gstmpdrootnode.h:
+       * ext/adaptivedemux2/dash/gstmpdsegmentbasenode.c:
+       * ext/adaptivedemux2/dash/gstmpdsegmentbasenode.h:
+       * ext/adaptivedemux2/dash/gstmpdsegmentlistnode.c:
+       * ext/adaptivedemux2/dash/gstmpdsegmentlistnode.h:
+       * ext/adaptivedemux2/dash/gstmpdsegmenttemplatenode.c:
+       * ext/adaptivedemux2/dash/gstmpdsegmenttemplatenode.h:
+       * ext/adaptivedemux2/dash/gstmpdsegmenttimelinenode.c:
+       * ext/adaptivedemux2/dash/gstmpdsegmenttimelinenode.h:
+       * ext/adaptivedemux2/dash/gstmpdsegmenturlnode.c:
+       * ext/adaptivedemux2/dash/gstmpdsegmenturlnode.h:
+       * ext/adaptivedemux2/dash/gstmpdsnode.c:
+       * ext/adaptivedemux2/dash/gstmpdsnode.h:
+       * ext/adaptivedemux2/dash/gstmpdsubrepresentationnode.c:
+       * ext/adaptivedemux2/dash/gstmpdsubrepresentationnode.h:
+       * ext/adaptivedemux2/dash/gstmpdsubsetnode.c:
+       * ext/adaptivedemux2/dash/gstmpdsubsetnode.h:
+       * ext/adaptivedemux2/dash/gstmpdurltypenode.c:
+       * ext/adaptivedemux2/dash/gstmpdurltypenode.h:
+       * ext/adaptivedemux2/dash/gstmpdutctimingnode.c:
+       * ext/adaptivedemux2/dash/gstmpdutctimingnode.h:
+       * ext/adaptivedemux2/dash/gstxmlhelper.c:
+       * ext/adaptivedemux2/dash/gstxmlhelper.h:
+       * ext/adaptivedemux2/downloadhelper.c:
+       * ext/adaptivedemux2/downloadhelper.h:
+       * ext/adaptivedemux2/downloadrequest.c:
+       * ext/adaptivedemux2/downloadrequest.h:
+       * ext/adaptivedemux2/gstadaptivedemux-period.c:
+       * ext/adaptivedemux2/gstadaptivedemux-private.h:
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+       * ext/adaptivedemux2/gstadaptivedemux-track.c:
+       * ext/adaptivedemux2/gstadaptivedemux.c:
+       * ext/adaptivedemux2/gstadaptivedemux.h:
+       * ext/adaptivedemux2/gstadaptivedemuxutils.c:
+       * ext/adaptivedemux2/gstadaptivedemuxutils.h:
+       * ext/adaptivedemux2/gstisoff.c:
+       * ext/adaptivedemux2/gstisoff.h:
+       * ext/adaptivedemux2/hls/gsthlsdemux-util.c:
+       * ext/adaptivedemux2/hls/gsthlsdemux.c:
+       * ext/adaptivedemux2/hls/gsthlsdemux.h:
+       * ext/adaptivedemux2/hls/gsthlselement.c:
+       * ext/adaptivedemux2/hls/gsthlselements.h:
+       * ext/adaptivedemux2/hls/m3u8.c:
+       * ext/adaptivedemux2/hls/m3u8.h:
+       * ext/adaptivedemux2/hls/meson.build:
+       * ext/adaptivedemux2/meson.build:
+       * ext/adaptivedemux2/mss/gstmssdemux.c:
+       * ext/adaptivedemux2/mss/gstmssdemux.h:
+       * ext/adaptivedemux2/mss/gstmssfragmentparser.c:
+       * ext/adaptivedemux2/mss/gstmssfragmentparser.h:
+       * ext/adaptivedemux2/mss/gstmssmanifest.c:
+       * ext/adaptivedemux2/mss/gstmssmanifest.h:
+       * ext/adaptivedemux2/plugin.c:
+       * ext/meson.build:
+       * ext/soup/gstsouploader.c:
+       * ext/soup/gstsouploader.h:
+       * meson_options.txt:
+       * tests/check/elements/dash_mpd.c:
+       * tests/check/elements/hlsdemux_m3u8.c:
+       * tests/check/meson.build:
+         New HLS, DASH and MSS adaptive demuxer elements
+         This provides new HLS, DASH and MSS adaptive demuxer elements as a single plugin.
+         These elements offer many improvements over the legacy elements. They will only
+         work within a streams-aware context (`urisourcebin`, `uridecodebin3`,
+         `decodebin3`, `playbin3`, ...).
+         Stream selection and buffering is handled internally, this allows them to
+         directly manage the elementary streams and stream selection.
+         Authors:
+         * Edward Hervey <edward@centricular.com>
+         * Jan Schmidt <jan@centricular.com>
+         * Piotrek Brzeziński <piotr@centricular.com>
+         * Tim-Philipp Müller <tim@centricular.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2117>
+
+2022-04-15 09:53:19 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: copy colorimetry values to output_state caps
+         This is to avoid transcoding negotiation fail between v4l2h265dec
+         and v4l2h264enc caused by colorimetry mismatch.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2192>
+
+2022-04-14 20:10:46 +1000  Brad Hards <bradh@frogmouth.net>
+
+       * tests/interactive/equalizer-test.c:
+       * tests/interactive/gdkpixbufoverlay-test.c:
+       * tests/interactive/gdkpixbufsink-test.c:
+       * tests/interactive/meson.build:
+       * tests/interactive/test-accurate-seek.c:
+       * tests/interactive/test-oss4.c:
+       * tests/interactive/test-segment-seeks.c:
+       * tests/interactive/videobox-test.c:
+       * tests/interactive/videocrop-test.c:
+       * tests/interactive/videocrop2-test.c:
+       * tests/interactive/ximagesrc-test.c:
+       * tests/meson.build:
+         tests: rename 'icles' subdir to be more descriptive
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2178>
+
+2022-04-07 11:12:47 +1000  Havard Graff <havard.graff@gmail.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: fix leak of channel_mapping
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2179>
+
+2022-04-13 10:17:15 +0800  Ming Qian <ming.qian@nxp.com>
+
+       * docs/gst_plugins_cache.json:
+         doc: Update cache after NV12_8L128 and NV12_10BE_8L128 addition
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2158>
+
+2022-04-12 14:15:01 +0800  Ming Qian <ming.qian@nxp.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: Add NV12_8L128 in gst_v4l2_object_get_caps_info
+         It should be included in
+         <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2158>
+
+2022-04-12 10:35:26 +0800  Ming Qian <ming.qian@nxp.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: Add a missed break
+         Fix a typo that miss a break in the switch statement
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2158>
+
+2022-04-11 13:40:56 +0200  Robert Rosengren <robertr@axis.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: Fix division by zero when using ts-offset-smoothing-factor
+         avg_ts_offset may cause division by zero when calculating potential
+         overflow protection. This fix will avoid the division.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2151>
+
+2022-04-06 09:46:30 -0400  Tristan Matthews <tmatth@videolan.org>
+
+       * gst/rtp/gstrtpopusdepay.c:
+         rtpopusdepay: assume 2 channels if sprop-stereo is missing
+         Fixes #1064
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2125>
+
+2022-03-11 15:13:21 +0100  Matthias Fuchs <matthias1.fuchs@zeiss.com>
+
+       * ext/qt/gstqtsrc.cc:
+       * ext/qt/qtwindow.cc:
+       * ext/qt/qtwindow.h:
+         qmlglsrc: Fix deadlock when stopping
+         This fix makes sure that streaming thread stops waiting when the
+         qmlglsrc element transitions from playing to paused.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2115>
+
+2022-03-14 17:20:38 +0100  Matthias Fuchs <matthias1.fuchs@zeiss.com>
+
+       * ext/qt/qtwindow.cc:
+         qmlglsrc: Fix missing depth & stencil buffer
+         Qt Quick primitives which have some kind of alpha blending
+         (transparency, rounded corners) are z-sorted by Qt and rendered in the
+         correct order. For opaque primitives Qt relies on the OpenGL depth
+         buffer to correctly determine the visibility of stacked elements.
+         This change enables the depth buffer to make sure that opaque primitives
+         are correctly z-stacked.
+         https://doc.qt.io/qt-6/qtquick-visualcanvas-scenegraph-renderer.html#opaque-primitives
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2114>
+
+2022-04-06 10:14:19 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/rtpstats.h:
+         rtpstats: Remove non-existing twcc field docs from RTPPacketInfo and add missing field docs
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2121>
+
+2022-04-05 20:28:36 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/rtpsession.h:
+         rtpsession: Remove unused twcc fields from the struct
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2121>
+
+2022-03-30 11:06:02 -0400  Xavier Claessens <xavier.claessens@collabora.com>
+
+       * meson.build:
+         Use gmodule-no-export-2.0
+         We don't need `-Wl,--export-dynamic`, that's used only for executables
+         that needs to export an API to be used by plugins they load.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
+
+2022-03-25 15:00:20 -0400  Xavier Claessens <xavier.claessens@collabora.com>
+
+       * ext/qt/meson.build:
+       * ext/soup/meson.build:
+       * gst/imagefreeze/meson.build:
+       * gst/rtsp/meson.build:
+       * gst/shapewipe/meson.build:
+       * meson.build:
+       * tests/check/meson.build:
+         Remove glib and gobject dependencies everywhere
+         They are part of gst_dep already and we have to make sure to always have
+         gst_dep. The order in dependencies matters, because it is also the order
+         in which Meson will set -I args. We want gstreamer's config.h to take
+         precedence over glib's private config.h when it's a subproject.
+         While at it, remove useless fallback args for gmodule/gio dependencies,
+         only gstreamer core needs it.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>
+
+2022-03-31 23:41:41 +0200  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/debugutils/gstnavigationtest.c:
+         navigation: Rename parse_state to parse_modifier_state
+         `parse_state` sounds a bit weird and `parse_modifier_state` is clearer.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2087>
+
+2022-03-26 01:02:02 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/soup/meson.build:
+         meson: Add some messages when selecting libsoup
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2032>
+
+2022-03-26 00:59:12 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/soup/gstsouphttpsrc.c:
+         soup: Fix usage of symbols / defines that are gone in libsoup3
+         I am not sure about the SOUP_MESSAGE_OVERWRITE_CHUNKS change, but it
+         was definitely already broken when using libsoup-3.0 in a shared
+         build. souphttpsrc probably needs to be ported from SoupMessage to
+         SoupServerMessage when using libsoup-3.0.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1111
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2032>
+
+2022-03-26 00:56:04 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/soup/gstsouploader.c:
+       * ext/soup/gstsouploader.h:
+         soup: Fix pre-processor macros in souploader for libsoup-3.0
+         Some of the preprocessor conditionals in the loader were very broken
+         with libsoup-3.0 + --default-library=static
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1111
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2032>
+
+2022-03-28 18:12:03 +1100  Matthew Waters <matthew@centricular.com>
+
+       * sys/osxaudio/gstosxcoreaudio.c:
+         osxcoreaudio: fix unused-but-set warning
+         ../sys/osxaudio/gstosxcoreaudio.c:480:18: error: variable 'interleaved' set but not used [-Werror,-Wunused-but-set-variable]
+         gboolean sign, interleaved;
+         ^
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046>
+
+2022-03-28 10:10:45 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+         video-format: Move NV12_8L128 into the correct position in GST_VIDEO_FORMATS_ALL
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2045>
+
+2022-03-28 13:35:17 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/deinterlace/tvtime/tomsmocomp/SearchLoopTop.inc:
+         deinterlace: silence unused-but-set werror from imported code
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2042>
+
+2022-03-28 09:50:38 +1100  Matthew Waters <matthew@centricular.com>
+
+       * sys/osxvideo/osxvideosink.m:
+         osxvideosink: fix unused-but-set-variable warning
+         ../sys/osxvideo/osxvideosink.m:859:11: error: variable 'data' set but not used [-Werror,-Wunused-but-set-variable]
+         guint8 *data, *readp, *writep;
+         ^
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2040>
+
+2022-03-25 11:42:03 -0300  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/debugutils/gstnavigationtest.c:
+       * gst/debugutils/gstnavigationtest.h:
+         navigationtest: Add some support for modifiers
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010>
+
+2022-03-18 16:59:32 +0000  Thibault Saunier <tsaunier@igalia.com>
+
+       * ext/gtk/gtkgstbasewidget.c:
+       * ext/qt/qtitem.cc:
+         navigation: Add support for key Modifiers in all relevant events
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010>
+
+2021-11-17 17:27:13 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/rtpmanager/gstrtpptdemux.c:
+         rtpptdemux: fix leak of caps when ignoring a pt
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2025>
+
+2022-02-23 12:53:04 +0100  Vivienne Watermeier <vwatermeier@igalia.com>
+
+       * ext/qt/qtitem.cc:
+       * ext/qt/qtitem.h:
+         qt: Add touch event support
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>
+
+2022-02-21 20:16:06 +0100  Vivienne Watermeier <vwatermeier@igalia.com>
+
+       * ext/gtk/gtkgstbasewidget.c:
+         gtk: Add touch event support
+         Add a handler for touch events to gtkbasewidget.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>
+
+2022-02-02 15:46:57 +0100  Vivienne Watermeier <vwatermeier@igalia.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/debugutils/gstnavigationtest.c:
+       * gst/debugutils/gstnavigationtest.h:
+         navigationtest: Display touchscreen events, log all events
+         Represents touchscreen events as a trail of black squares, one for each
+         reported position. Additionally, this adds the `display-mouse` and
+         `display-touch` properties to toggle visibility of mouse/touchscreen
+         events, since touchscreens often emulate mouse events, as well as
+         logging for all received navigation events.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>
+
+2022-02-14 16:08:23 +0100  Vivienne Watermeier <vwatermeier@igalia.com>
+
+       * ext/gtk/gstgtkbasesink.c:
+       * ext/gtk/gtkgstbasewidget.c:
+       * ext/qt/gstqtsink.cc:
+       * ext/qt/qtitem.cc:
+       * ext/qt/qtitem.h:
+       * gst/debugutils/gstnavigationtest.c:
+       * gst/debugutils/gstnavseek.c:
+       * gst/videobox/gstvideobox.c:
+       * gst/videocrop/gstvideocrop.c:
+       * gst/videofilter/gstvideoflip.c:
+         all: Use new navigation interface and API
+         Use and implement the new navigation interface in all relevant sink elements,
+         and use API functions everywhere instead of directy accessing the event structure.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>
+
+2022-03-18 15:20:49 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/wavparse/gstwavparse.c:
+       * tests/check/elements/wavparse.c:
+         wavparse: handle query in any parse state
+         In order to create the stream_id, we need to
+         pass the query to the default query handler.
+         If the parse state is different from GST_WAVPARSE_DATA
+         the query should be passed to the default query
+         handler.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1987>
+
+2020-09-13 02:17:59 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Clean up aggregate's control flow
+         This unifies exits to go through a single out label. It mostly
+         simplifies how EOS is handled.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1035>
+
+2022-03-18 16:34:38 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+         doc: Update cache after NV12_8L128 addition
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379>
+
+2021-10-19 14:41:04 +0800  Ming Qian <ming.qian@nxp.com>
+
+       * sys/v4l2/ext/videodev2.h:
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: Add NV12_8L128 and NV12_10BE_8L128
+         These formats are used by i.MX 8QXP/8QM VPU.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379>
+
+2021-09-09 23:43:33 +1000  Matthew Waters <matthew@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtprtxreceive.c:
+       * gst/rtpmanager/gstrtprtxreceive.h:
+       * gst/rtpmanager/gstrtprtxsend.c:
+       * gst/rtpmanager/gstrtprtxsend.h:
+       * tests/check/elements/rtprtx.c:
+         rtpmanager/rtx: implement initial support for reading/writing rid extensions
+         Two RTP Header extensions are very relevant for rtprtxsend/receive.
+         1. "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id": will always be removed
+         2. "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id": will be written
+         instead of the "rtp-stream-id" header extension.
+         Currently it's only a simple replacement of one header extension for
+         another however a future change would only add the relevant extension
+         based on some heuristics (like, video frames only on one of the rtp key
+         frame buffers, or only until the rtx ssrc has been validated by the peer)
+         in order to reduce the required bandwidth.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759>
+
+2021-08-25 16:59:40 +1000  Matthew Waters <matthew@centricular.com>
+
+       * tests/check/elements/rtphdrextsdes.c:
+       * tests/check/meson.build:
+         test: add tests for sdes-based RTP header extensions
+         mid, stream id and repaired stream id.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759>
+
+2021-08-25 16:58:16 +1000  Matthew Waters <matthew@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtphdrext-repairedstreamid.c:
+       * gst/rtpmanager/gstrtphdrext-repairedstreamid.h:
+       * gst/rtpmanager/gstrtphdrext-streamid.c:
+       * gst/rtpmanager/gstrtphdrext-streamid.h:
+       * gst/rtpmanager/gstrtpmanager.c:
+       * gst/rtpmanager/meson.build:
+         rtpmanager: add support for RFC8852 (rid) RTP header extensions
+         Both for regular RID and for adding on a repaired (RTX) etc stream.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759>
+
+2021-08-25 16:38:44 +1000  Matthew Waters <matthew@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtphdrext-mid.c:
+       * gst/rtpmanager/gstrtphdrext-mid.h:
+       * gst/rtpmanager/gstrtpmanager.c:
+       * gst/rtpmanager/meson.build:
+         rtpmanager: add support for writing RFC8843 (BUNDLE mid) RTP header extension
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759>
+
+2022-03-18 19:33:00 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/videocrop/gstvideocrop-private.h:
+       * gst/videocrop/gstvideocrop.c:
+       * gst/videocrop/gstvideocrop.h:
+         videocrop: Add support for v210
+         Like UYVY and similar formats this is rounding down to the start of the
+         previous macro-pixel to not mix up the different components.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1988>
+
+2022-03-18 19:06:05 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/videocrop/gstvideocrop.c:
+         videocrop: Use GST_ROUND_DOWN_2 instead of re-defining a local version
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1988>
+
+2022-03-18 19:03:57 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/videocrop/gstvideocrop.c:
+       * gst/videocrop/gstvideocrop.h:
+         videocrop: Rename PACKED_COMPLEX to PACKED_YVYU
+         It's not handling any kind of complex packed format, only formats that
+         are like YVYU.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1988>
+
+2022-03-18 13:42:27 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * meson.build:
+         meson: Bump all meson requirements to 0.60
+         Lots of new warnings ever since
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977>
+
+2022-03-15 15:44:17 +0900  Sangchul Lee <sc11.lee@samsung.com>
+
+       * gst/rtpmanager/rtpjitterbuffer.c:
+         rtpjitterbuffer: Fix invalid memory access in rtp_jitter_buffer_pop()
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1973>
+
+2022-03-14 16:19:33 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: set frame duration according to framerate
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1953>
+
+2022-03-15 13:49:09 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/rtsp/gstrtspsrc.h:
+         rtspsrc: proxy new "add-reference-timestamp-meta" property from rtpjitterbuffer
+         When syncing to an RFC7273 clock this will add the original
+         reconstructed reference clock timestamp to buffers in form
+         of a GstReferenceTimestampMeta.
+         This is useful when we want to process or analyse data based
+         on the original timestamps untainted by any local adjustments,
+         for example reconstruct AES67 audio streams with sample accuracy.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1964>
+
+2022-03-15 11:56:28 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpbin.h:
+         rtpbin: proxy new "add-reference-timestamp-meta" property from rtpjitterbuffer
+         When syncing to an RFC7273 clock this will add the original
+         reconstructed reference clock timestamp to buffers in form
+         of a GstReferenceTimestampMeta.
+         This is useful when we want to process or analyse data based
+         on the original timestamps untainted by any local adjustments,
+         for example reconstruct AES67 audio streams with sample accuracy.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1964>
+
+2022-03-15 01:35:17 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/rtpjitterbuffer.c:
+       * gst/rtpmanager/rtpjitterbuffer.h:
+         rtpjitterbuffer: add "add-reference-timestamp-meta" property
+         When syncing to an RFC7273 clock this will add the original
+         reconstructed reference clock timestamp to buffers in form
+         of a GstReferenceTimestampMeta.
+         This is useful when we want to process or analyse data based
+         on the original timestamps untainted by any local adjustments,
+         for example reconstruct AES67 audio streams with sample accuracy.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1964>
+
+2022-03-15 09:49:59 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: safely retrun from video_dec_loop with stream unlock
+         This is to avoid decoder hang when doing trick play between
+         different resolutions.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1960>
+
+2022-03-14 13:59:37 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/rtpjitterbuffer.c:
+         rtpjitterbuffer: Improve accuracy of RFC7273 clock time calculations
+         Previously the result of the calculations included inaccuracies caused
+         by the NTP clock estimation, which caused the timestamps to jitter
+         +/- 1/clockrate.
+         By reorganizing the calculations it is possible to get rid of this
+         inaccuracy and calculate deterministic and exact packet timestamps based
+         on the actual NTP clock as long as the estimation is not off by more
+         than 2**31 clockrate units.
+         The only remaining inaccuracy that is introduced now is caused by the
+         conversion from the NTP clock to the pipeline clock.
+         Also split up debug output, demote many messages to the trace debug
+         level and output more intermediate results.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1955>
+
+2022-03-14 12:29:04 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtptwcc.c:
+         twcc: Add some logging to debug TWCC feedback
+         This should allow people to debug when TWCC feedback is not enabled
+         because they haven't set the extmap in the caps.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1952>
+
+2022-03-14 13:45:36 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtpmanager/gstrtpsession.c:
+         twcc: Note that packet-loss-pct can count reordering as loss
+         This is difficult to encounter in ordinary networks, but is
+         encountered when using tc-netem to add random delays to packets, and
+         also when your UDP stream is bonded over multiple links with varying
+         characteristics.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1952>
+
+2017-08-11 16:33:23 +0200  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/gstrtprtxsend.c:
+       * tests/check/elements/rtprtx.c:
+         rtprtxsend: don't require clock-rate in caps
+         For multiplexing, the rtpstreams you are multiplexing might not use
+         the same clock-rate.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1881>
+
+2016-11-04 11:47:20 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/gstrtprtxsend.c:
+       * tests/check/elements/rtprtx.c:
+         rtprtxsend: don't start the task unless we are doing rtx
+         The rtxsend element can do pass-through when not enabled (no pt-map set)
+         and in those cases there is no point in starting an additional task
+         that does absolutely nothing.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1880>
+
+2016-06-27 14:28:06 +0200  Havard Graff <havard.graff@gmail.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtprtxreceive.c:
+       * gst/rtpmanager/gstrtprtxreceive.h:
+         rtprtxreceive: add ssrc-map property
+         Mirroring the rtxsend, this allows the application to "pre-map" the
+         retransmission-ssrcs to the "real" ssrc, if this information is known.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1878>
+
+2019-09-08 15:54:08 +0200  Carlos Rafael Giani <crg7475@mailbox.org>
+
+       * ext/mpg123/gstmpg123audiodec.c:
+       * ext/mpg123/gstmpg123audiodec.h:
+       * gst/audioparsers/gstmpegaudioparse.c:
+       * tests/check/elements/mpg123audiodec.c:
+       * tests/files/sine-1009ms-1ch-32000hz-gapless-with-lame-tag.mp3:
+         mpg123: Add gapless playback support
+         Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1028>
+
+2019-09-07 19:15:42 +0200  Carlos Rafael Giani <crg7475@mailbox.org>
+
+       * gst/audioparsers/gstmpegaudioparse.c:
+       * gst/audioparsers/gstmpegaudioparse.h:
+       * tests/check/elements/mpegaudioparse.c:
+         mpegaudioparse: Support gapless playback
+         Gapless playback is handled by adjusting buffer timestamps & durations
+         and by adding GstAudioClippingMeta.
+         Support for "Frankenstein" streams (= poorly stitched together streams)
+         is also added, so that gapless playback support doesn't prevent those
+         from being properly played.
+         Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1028>
+
+2022-03-11 10:32:42 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/deinterlace/tvtime/scalerbob.c:
+         deinterlace: scalerbob: Reduce latency to 0
+         We only need the current field, just like `linear`.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1926>
+
+2022-03-12 17:13:48 +0200  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/deinterlace/yadif.c:
+         yadif: Fix CHECK macro for YUY2 format
+         Used to make comb artifacts for videotestsrc pattern=ball for YUY2
+         format only (not AYUV).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1938>
+
+2022-03-10 17:03:45 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+       * docs/gst_plugins_cache.json:
+         doc: New cropping parameters added to v4l2src
+         v4l2src add several new parameters to control cropping of
+         the captured video stream.  Update the doc cache to reflect
+         this.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1089>
+
+2021-10-15 18:33:50 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+       * tests/examples/v4l2/meson.build:
+       * tests/examples/v4l2/v4l2src-crop.c:
+         examples: v4l2: Add v4l2src crop example
+         Add a simple utility to illustrate how to set input cropping on v4l2src.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1089>
+
+2021-10-14 17:22:19 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+       * sys/v4l2/gstv4l2src.c:
+       * sys/v4l2/gstv4l2src.h:
+         v4l2src: Add support for cropping at capture source input
+         Add properties to control input cropping in the V4L2 device.
+         The input cropping is applied before composing the result to the
+         capture buffer.  By default the capture size will be set to the same
+         size as the crop region, but it can be scaled to a different output
+         frame size if supported by the V4L2 device.
+         If scaling is not supported, the cropped image will
+         be composed as is into the top-left corner of the capture buffer.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1089>
+
+2021-10-13 17:33:12 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+       * sys/v4l2/gstv4l2object.c:
+       * sys/v4l2/gstv4l2object.h:
+         v4l2object: Add function to get crop regions from device
+         Get the current crop bounding region from the V4L2 device so
+         that it can be provided to applications and used to validate
+         crop settings. Also make the default crop region available so
+         that it can be used to reset the crop when appropriate.
+         Uses the selection API when available with fallback to the crop
+         API for older kernels.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1089>
+
+2021-09-30 17:56:56 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+       * sys/v4l2/gstv4l2object.c:
+       * sys/v4l2/gstv4l2object.h:
+       * sys/v4l2/gstv4l2transform.c:
+         v4l2object: rename crop function to reflect its usage
+         The gst_v4l2_object_set_crop() is used for removing buffer
+         alignment padding. Give it a name that better reflects
+         that usage.  This helps to distinguish from cropping of the
+         input image (e.g. cropping at the image sensor on a captre
+         device), which can be  unrelated to the memory buffer padding,
+         especially if scaling is involved.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1089>
+
+2022-03-10 18:43:45 +0900  Sangchul Lee <sc11.lee@samsung.com>
+
+       * gst/rtp/gstrtpvp8depay.c:
+         rtpvp8depay: Fix crash when making 'GstRTPPacketLost' custom event
+         This patch fixes a seg.fault in gst_structure_new() with warnings as below.
+         GLib-GObject-WARNING **:
+         ../gobject/gtype.c:4330: type id '0' is invalid
+         GLib-GObject-WARNING **:
+         can't peek value table for type '<invalid>' which is not currently referenced
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1918>
+
+2022-03-04 18:58:56 +0100  Tomasz Andrzejak <andreiltd@gmail.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: allow FEC elements with Always pads
+         This patch enable picking up FEC decoder or enocder that have
+         static repair packets pad.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1860>
+
+2022-03-09 12:17:11 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/soup/gstsouploader.c:
+         soup: Load the runtime library, not the development library
+         libsoup-2.4.so / libsoup-3.0.so are symlinks installed by development
+         packages, they are not available at runtime.
+         Also eliminate G_MODULE_SUFFIX since it's not useful for us, and is
+         actually incorrect on macOS anyway.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1071
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1899>
+
+2019-07-10 17:21:01 +0200  Edward Hervey <edward@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Propagate stick events downstream when creating pads
+         If upstream provided a stream collection event before any pads were created,
+         make sure it's propagated downstream when pads are created.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1891>
+
+2021-02-01 16:07:08 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/gstrtprtxsend.c:
+         rtprtxsend: if no rtx is present, don't expose a rtx-ssrc in caps
+         The point here is that rtpsession will create a new rtpsource when
+         the field "rtx-ssrc" is present, and when not doing rtx, that means
+         a random ssrc will create a new rtpsource that will be included in RTCP
+         messages for the current session.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1882>
+
+2016-06-22 14:48:59 +0200  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/gstrtprtxsend.c:
+         rtprtxsend: don't process or warn if no map is set
+         This makes it more gentle when doing "pass-through"
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1879>
+
+2016-08-23 19:06:49 +0200  Mikhail Fludkov <misha@pexip.com>
+
+       * gst/rtpmanager/gstrtprtxreceive.c:
+       * tests/check/elements/rtprtx.c:
+         rtprtxreceive: fix crash when RTX payload has zero length
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1875>
+
+2016-06-26 22:25:46 +0200  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/gstrtprtxreceive.c:
+         rtprtxreceive: allow passthrough and non-rtp buffers
+         To avoid mapping rtp buffers when RTX is not in use, and to not
+         do a full error on receiving a non-rtp buffer, since you have no control
+         of what a rouge sender might send you.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1874>
+
+2021-02-08 21:40:19 +0100  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/gstrtprtxreceive.c:
+       * gst/rtpmanager/gstrtprtxreceive.h:
+       * gst/rtpmanager/gstrtprtxsend.c:
+       * gst/rtpmanager/gstrtprtxsend.h:
+         rtprtx: don't access type-system per buffer
+         When doing only a single stream of audio/video this hardly matters,
+         but when doing many at the same time, the fact that you have to get
+         a hold of the glib global type-system lock every time you process a buffer,
+         means that there is a limit to how many streams you can process in
+         parallel.
+         Luckily the fix is very simple, by doing a cast rather than a full
+         type-check.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1873>
+
+2020-02-10 14:37:30 +0100  Havard Graff <havard@pexip.com>
+
+       * tests/check/elements/rtprtx.c:
+         rtprtx: signed/unsigned and style fixes
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1872>
+
+2022-03-03 13:47:05 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         v4l2bufferpool: Fix race condition between qbuf and pool streamoff
+         There is a chance that pool->buffers[index] sets BUFFER_STATE_QUEUED, but
+         it has not been queued yet which makes pool->buffers[index] still NULL.
+         At this time, if pool_streamff release all buffers with BUFFER_STATE_QUEUED
+         state regardless of whether the buffer is NULL or not, it will cause segfault.
+         To fix this, also check buffer when streamoff release buffer.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1842>
+
+2022-03-03 14:22:10 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Add protection when unref GstFlvMuxPad
+         This is to avoid gst_object_unref: assertion 'object != NULL' failed.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1843>
+
+2022-03-04 14:57:30 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+         doc: AV1 demuxers now expose their alignment
+         Update the chache accordingly.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837>
+
+2022-03-02 16:31:24 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-mux.c:
+         matroska: Fix AV1 alignment to TU
+         Matroska stores AV1 in temporal unit, so that all OBU sharing the same
+         timestamp are put together. This was previously just assumed, which isn't
+         safe now that we have more alignments.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837>
+
+2022-03-02 16:24:38 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/isomp4/gstqtmuxmap.c:
+       * gst/isomp4/qtdemux.c:
+         isomp4: Fix AV1 default alignment
+         ISOMP4 store TU (temporal units) worth of AV1. Expose this in the
+         caps to reduce overhead in the parser, and in the muxer to avoid
+         storing frames split in the wrong way.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837>
+
+2022-02-07 17:51:39 -0500  Tristan Matthews <tmatth@videolan.org>
+
+       * gst/matroska/matroska-mux.c:
+         matroskamux: allow width+height caps changes for VP8/9
+         For VP8 and VP9, width+height changes are signalled inband.
+         Refs https://github.com/Kurento/bugtracker/issues/535 and
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047/diffs?commit
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1657>
+
+2022-02-07 16:41:40 -0500  Tristan Matthews <tmatth@videolan.org>
+
+       * gst/matroska/matroska-mux.c:
+         matroskamux: allow width + height changes for avc3|hev1
+         For avc3 and hev1, the intent was to allow more flexibility for caps changes
+         (see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047/diffs?commit_id=9bd8d608d5bae27ec5ff09e733f76ca32b17420c)
+         however width and resolution were previously omitted.
+         avc3 and hev1 specifically support changing stream-parameters on the fly, whereas avc1/hvc1 disallow in-band SPS.
+         This commit allows for changes to width and height for these which is in line with matroskamux's behaviour prior to 1.14.0.
+         Practically speaking, one use case where this is commonly seen is when capturing a WebRTC stream, as the browser will adapt the resolution live.
+         Suggested-by: Mathieu Duponchelle "<mathieu@centricular.com>"
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1657>
+
+2022-03-04 15:36:20 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+         deinterlace: Prevent race between _set_method and latency query
+         It's possible that the method is being manipulated while downstream
+         queries our latency, leading to crashes.
+         Prevent that from happening.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1854>
+
+2022-03-03 23:04:36 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/soup/gstsouploader.c:
+         soup: Fix static build with MSVC
+         ../ext/soup/gstsouploader.c(818): error C4098: '_soup_session_send_async': 'void' function returning a value
+         It's technically a false warning, but that's how MSVC works, so fix
+         it.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>
+
+2022-03-03 00:37:57 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/soup/meson.build:
+         soup: Fix pkgconfig generation and documentation
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>
+
+2022-03-02 23:22:39 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/soup/meson.build:
+         soup: Fix static build when default_library=both
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1007
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>
+
+2022-03-02 23:11:09 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/soup/meson.build:
+         soup: Don't error out in static build unless option is enabled
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>
+
+2022-02-27 15:45:01 +0100  Philippe Normand <philn@igalia.com>
+
+       * ext/soup/gstsouploader.c:
+         soup: Lookup libsoup dylib files on Apple platforms
+         Fixes #1007
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>
+
+2021-10-15 15:32:22 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2src: Reset the compose window to the default after setting format
+         When the size of V4L2 capture or output is changes with VIDIOC_S_FMT,
+         the device is only required to update the compisition window to fit
+         inside the new frame size.  This can result in captured data only being
+         updated on a portion of the frame after a resize.
+         Update the composition window to the default value determined by the
+         V4L2 device driver whenever the format is changed to make sure that
+         all image data is composed to its full size.
+         Fixes #765
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1806>
+
+2022-03-01 20:59:30 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroska-mux: Handle pixel-aspect-ratio caps field correctly when checking caps equality
+         Not having this field is equivalent with it being 1/1 so consider
+         it like that. The generic caps functions are not aware of these
+         semantics and would consider the caps different, causing a negotiation
+         failure when caps are changing from caps with to caps without or the
+         other way around.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1826>
+
+2022-03-01 20:56:43 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroska-mux: Handle multiview-mode/flags caps fields correctly when checking caps equality
+         Not having these fields is equivalent with them being mono/0 so consider
+         them like that. The generic caps functions are not aware of these
+         semantics and would consider the caps different, causing a negotiation
+         failure when caps are changing from caps with to caps without or the
+         other way around.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1826>
+
+2022-02-27 03:17:26 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroska-mux: If a stream has a TITLE tag, use it for the name.
+         If a title tag is pushed to a pad, store it as the Track name.
+         This means that players will use it as the human readable
+         description of the track, instead of something generic like 'Video'
+         or 'Subtitle'
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1798>
+
+2022-02-27 02:39:28 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-demux.h:
+         matroskademux: Don't parse Tracks element twice
+         If the tracks element was parsed from the SeekEntry, don't
+         parse it a second time and recreate tracks, as this
+         loses any tags that were read using the seek table.
+         If a genuinely new Tracks element is found, do read that
+         as it is needed for MSE support.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1798>
+
+2022-02-23 11:10:11 +0100  Sebastian Fricke <sebastian.fricke@collabora.com>
+
+       * README.md:
+         Maintain build instructions at a single location
+         Do not maintain similar build instructions within each gst-plugins-*
+         subproject and the subproject/gstreamer subproject. Use the build
+         instructions from the mono-repository and link to them via hyperlink.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1743>
+
+2022-03-01 00:12:56 +0200  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/deinterlace/x86/yadif.asm:
+         yadif.asm: Fix improper usage of LOAD macro
+         LOAD macro relies in m7 being zero for interleaving purposes. Using LOAD
+         on the m7 register makes it interleave with its new content instead of
+         with 0.
+         The effect of this bug was bobbing on some static lines that appeared
+         over fast-moving content.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1816>
+
+2022-03-01 00:12:33 +0200  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/deinterlace/x86/yadif.asm:
+         yadif.asm: Typo fixes in comments
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1816>
+
+2022-02-28 20:39:11 +0200  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/deinterlace/yadif.c:
+         yadif: Fix bug in C implementation of CHECK
+         It was different compared to the corresponding part in both ffmpeg and
+         the asm implementation. Fixing this makes videotestsrc pattern=spokes
+         not jump at all when not using the asm optimisations.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1816>
+
+2021-10-19 16:10:06 +0800  Ming Qian <ming.qian@nxp.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+       * sys/v4l2/gstv4l2videodec.h:
+         v4l2videodec : enable resolution change
+         The dynamic resolution changes when
+         the sequence starts when the decoder detects a coded frame with one or
+         more of the following parameters different from those previously
+         established (and reflected by corresponding queries):
+         1.coded resolution (OUTPUT width and height),
+         2.visible resolution (selection rectangles),
+         3.the minimum number of buffers needed for decoding,
+         4.bit-depth of the bitstream has been changed.
+         Although gstreamer parser has parsed the stream resolution.
+         but there are some case that we need to handle resolution change event.
+         1. bit-depth is different from the negotiated format.
+         2. the capture buffer count can meet the demand
+         3. there are some hardware limitations that the decoded resolution may
+         be larger than the display size. For example, the stream size is
+         1920x1080, but some vpu may decode it to 1920x1088.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1381>
+
+2021-10-26 10:03:42 +0800  Ming Qian <ming.qian@nxp.com>
+
+       * sys/v4l2/gstv4l2object.c:
+       * sys/v4l2/gstv4l2object.h:
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec : refactor the setup process of capture
+         v4l2videodec do some refactoring so that it can support
+         dynamic resolution change event.
+         1.wrap the setup process of capture as a function,
+         as decoder need setup the capture again when
+         dynamic resolution change event is received.
+         2.move the function "remove_padding"
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1381>
+
+2022-02-22 11:18:53 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtp/gstrtpac3pay.c:
+       * gst/rtp/gstrtpamrpay.c:
+       * gst/rtp/gstrtpdvpay.c:
+       * gst/rtp/gstrtpg723pay.c:
+       * gst/rtp/gstrtpg729pay.c:
+       * gst/rtp/gstrtpgstpay.c:
+       * gst/rtp/gstrtph261pay.c:
+       * gst/rtp/gstrtph263pay.c:
+       * gst/rtp/gstrtph263ppay.c:
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph265pay.c:
+       * gst/rtp/gstrtpj2kpay.c:
+       * gst/rtp/gstrtpjpegpay.c:
+       * gst/rtp/gstrtpklvpay.c:
+       * gst/rtp/gstrtpmp4apay.c:
+       * gst/rtp/gstrtpmp4gpay.c:
+       * gst/rtp/gstrtpmp4vpay.c:
+       * gst/rtp/gstrtpmpapay.c:
+       * gst/rtp/gstrtpmpvpay.c:
+       * gst/rtp/gstrtpreddec.c:
+       * gst/rtp/gstrtpvp8pay.c:
+       * gst/rtp/gstrtpvp9pay.c:
+       * gst/rtp/gstrtpvrawpay.c:
+       * gst/rtp/rtpulpfeccommon.c:
+       * tests/check/elements/rtpred.c:
+         rtp: In payloaders map the RTP marker flag to the corresponding buffer flag
+         This allows downstream of a payloader to know the RTP header's marker
+         flag without first having to map the buffer and parse the RTP header.
+         Especially inside RTP header extension implementations this can be
+         useful to decide which packet corresponds to e.g. the last packet of a
+         video frame.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1776>
+
+2021-12-06 12:49:18 -0500  Joseph Donofry <rubberduckie3554@gmail.com>
+
+       * sys/osxaudio/gstosxaudiodeviceprovider.c:
+         osxaudiosrc: Support a device as both input and output
+         osxaudiodeviceprovider now probes devices more than once to determine
+         if the device can function as both an input AND and output device.
+         Previously, if the device provider detected that a device had any output
+         capabilities, it was treated solely as an Audio/Sink.  This causes issues
+         that have both input and output capabilities (for example, USB interfaces
+         for professional audio have both input and output channels).  Such devices
+         are now listed as both an Audio/Sink as well as an Audio/Source.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1385>
+
+2022-02-24 20:28:23 +0530  Sanchayan Maity <sanchayan@asymptotic.io>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtp/gstrtpldacpay.c:
+       * gst/rtp/gstrtpldacpay.h:
+         rtp: ldac: Set frame count information in payload
+         The RTP payload seems to be required as it carries the frame count
+         information. Also, gst_rtp_base_payload_allocate_output_buffer had
+         the second argument incorrect.
+         Strangely some devices like Shanling MP4 and Sony XM3 would still
+         work without this while some like the Sony XM4 do not.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1797>
+
+2022-02-21 11:37:26 -0500  Xavier Claessens <xavier.claessens@collabora.com>
+
+       * ext/vpx/meson.build:
+       * gst/equalizer/meson.build:
+       * gst/isomp4/meson.build:
+         devenv: Add some missing GStreamer specific env variables
+         This should make "meson devenv" closer to what "gst-env.py" sets.
+         - GST_VALIDATE_SCENARIOS_PATH
+         - GST_VALIDATE_APPS_DIR
+         - GST_OMX_CONFIG_DIR
+         - GST_ENCODING_TARGET_PATH
+         - GST_PRESET_PATH
+         - GST_PLUGIN_SCANNER
+         - GST_PTP_HELPER
+         - _GI_OVERRIDES_PATH
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1768>
+
+2022-02-25 12:44:26 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/deinterlace/tvtime/greedyh.c:
+         deinterlace: greedyh: Stop adding 2 to cur_field_idx
+         Just a simplification.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>
+
+2022-02-24 17:36:40 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/deinterlace/tvtime/greedyh.c:
+         deinterlace: greedyh: Use _plane in _packed, fix planar formats
+         This greatly reduces code duplication. It also exposed the cause for
+         planar formats not being properly deinterlaced:
+         The planar path was missing the initial offset adjustment that the
+         packed path did to `L2` and `L2P` in the case of an even field, which
+         caused it to select the wrong weave lines every other field.
+         Add those offsets in `_plane`.
+         Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1047
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>
+
+2022-02-25 12:39:31 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/deinterlace/tvtime/greedyh.c:
+         deinterlace: greedyh: Rename _planar_plane to _plane
+         As well as `i` to `plane`.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>
+
+2022-02-25 12:36:17 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/deinterlace/tvtime/greedyh.c:
+         deinterlace: greedyh: Move code from _planar into _planar_plane
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>
+
+2022-02-25 12:30:21 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/deinterlace/tvtime/greedyh.c:
+         deinterlace: greedyh: Move _planar_plane upwards
+         In preparation of refactoring. No functional change.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>
+
+2022-02-22 10:13:28 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>
+
+       * gst/rtpmanager/rtpsource.c:
+         rtpsource: fix rtp_source_get_nack_deadlines doc
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1775>
+
+2022-02-21 13:27:06 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/rtp/gstrtpulpfecenc.c:
+         ulpfecenc: slightly safer dispose impl
+         Technically dispose can be called more than once (even if gstelement is
+         not actually set up to do that) so need to protect against that.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1761>
+
+2022-02-21 13:24:07 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/rtp/gstrtpulpfecenc.c:
+         ulpfecenc: fix unmatched free() call
+         One must always match a g_slice_new with a g_slice_free and a g_new with
+         a g_free.  This was not the case for the internal ctx struct.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1761>
+
+2021-11-09 17:37:24 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/rtp/gstrtpulpfecenc.c:
+         rtpulpfecenc: add some debug logging
+         Like, what configuration we are using or whether a fec packet is
+         generated.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1761>
+
+2022-02-18 15:23:13 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/matroska/matroska-demux.c:
+         matroska-demux: Emit a warning when no codec data found
+         It is bad if an mkv file does not have codec data for the ProRes
+         variant, so we should emit a warning. ffmpeg does the same thing.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1739>
+
+2022-02-20 15:20:07 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+         doc: Add NV12_16L32S into the cache
+         Autogenerated by CI
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>
+
+2022-01-26 10:06:50 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2transform.c:
+         v4l2transform: Handle caps changes
+         As this element is single threaded, we only need to stop the objects to
+         allow changing the format again. Fixes assertion notably on shutdown and
+         on some other situation where the format may be set twice without
+         actually activating the element.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>
+
+2022-01-26 09:55:09 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: Avoid crash on early failure
+         This happens while an external error lead to an early shutdown.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>
+
+2022-01-25 14:34:32 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         video4linux2: Add MM21 support
+         This enables mtk-vcodec and MDP driver from mainline Linux kernel.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>
+
+2022-01-25 14:08:47 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+       * sys/v4l2/gstv4l2object.c:
+       * sys/v4l2/gstv4l2object.h:
+         Port plugins to gst_video_format_info_extrapolate_stride()
+         This reduces code duplication and simplify addition of new
+         pixel formats into related plugins.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>
+
+2022-02-02 12:49:29 +0100  Rouven Czerwinski <rouven@czerwinskis.de>
+
+       * sys/v4l2/gstv4l2tuner.c:
+         gstv4l2tuner: return NULL if no norm set
+         If the video4linux device supports norms but has no norm set, norm is
+         returned as an uninitialized variable after the ioctl call, leading to
+         gst_v4l2_tuner_get_norm_by_std_id() returning a random norm from the
+         supported norms. Catch this case and instead return NULL to indicate
+         that no norm is setup.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1625>
+
+2022-01-14 23:42:27 -0600  Tim Mooney <Tim.Mooney@ndsu.edu>
+
+       * sys/v4l2/ext/types-compat.h:
+         v4l2: include <sys/ioccom.h> on Illumos
+         Needed for _IOR/_IORW
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1524>
+
+2022-02-17 17:36:22 +0100  Sebastian Wick <sebastian.wick@redhat.com>
+
+       * gst/matroska/matroska-demux.c:
+         matroska: default prores fourcc apcn
+         If there is no codec private data for prores it should default to Apple
+         ProRes 422 Standard Definition (apcn). Can be tested with
+         strobe_scientist.mkv from
+         https://developers.google.com/media/vp9/hdr-encoding
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1734>
+
+2021-11-16 17:35:25 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Do not send unnecessary GAP events
+         Each stream may have its own segment timeline
+         (i.g., different segment.start or segment.base)
+         depending on edit-list and composition-to-decode atom.
+         Make sure whether time position of a stream has been actually
+         far behind than that of current target stream.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1352>
+
+2021-10-01 20:27:28 +0900  Seungha Yang <seungha@centricular.com>
+
+       * meson.build:
+         meson: Do hard build error for some MSVC warnings
+         Handle various MSVC warnings as errors for development version.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1006>
+
+2021-04-08 12:18:09 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: Don't post an error message if pushing a sample failed with FLUSHING
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1711>
+
+2022-02-11 21:35:54 +0100  Heiko Becker <heirecka@exherbo.org>
+
+       * ext/lame/meson.build:
+         meson: Don't build lame plugin with -Dlame=disabled
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1686>
+
+2022-02-11 23:55:57 +0100  Marek Vasut <marex@denx.de>
+
+       * ext/jpeg/gstjpegdec.c:
+         jpegdec: Pull row_stride from GST_VIDEO_FRAME_PLANE_STRIDE()
+         The libjpeg-turbo internal state might not be correctly initialized for
+         the first frame in a stream, pull the frame stride from gstreamer frame
+         metadata instead, which is correct even for the first frame, and which
+         makes this code consistent with the surrounding lines.
+         Fixes: e6d83d8f96 ("jpegdec: Support libjpeg-turbo colorspace conversion")
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1687>
+
+2022-02-11 23:44:24 +0100  Marek Vasut <marex@denx.de>
+
+       * ext/jpeg/gstjpegdec.c:
+         jpegdec: Call gst_jpeg_turbo_parse_ext_fmt_convert() before jpeg_start_decompress()
+         It is imperative that the libjpeg-turbo state is properly initialized
+         before jpeg_start_decompress() is called. Make sure cinfo.out_color_space
+         and cinfo.raw_data_out are set to their final values matching their peer
+         caps before calling jpeg_start_decompress().
+         Fixes: e6d83d8f96 ("jpegdec: Support libjpeg-turbo colorspace conversion")
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1687>
+
+2022-02-11 23:44:20 +0100  Marek Vasut <marex@denx.de>
+
+       * ext/jpeg/gstjpegdec.c:
+         jpegdec: Factor out gst_jpeg_turbo_parse_ext_fmt_convert()
+         Pull out peer caps checking code into gst_jpeg_turbo_parse_ext_fmt_convert().
+         This code is used by libjpeg-turbo extras to determine whether peer is capable
+         of handling buffers into which libjpeg-turbo can directly decode data. This
+         kind of check must be performed before jpeg_start_decompress() is called in
+         gst_jpeg_dec_prepare_decode() as well as in gst_jpeg_dec_negotiate(), hence
+         the common code.
+         This commit does modify the code a little to make it easier to call from both
+         call sites without much duplication, hence the extra `if (*clrspc)` test.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1687>
+
+2022-02-11 23:29:27 +0100  Marek Vasut <marex@denx.de>
+
+       * ext/jpeg/gstjpegdec.c:
+         Revert "jpegdec: only allow conversions from RGB"
+         This reverts commit 2aa2477208c029b0e1b8232d69f4f99a3bf1d473.
+         The commit is completely wrong, libjpeg-turbo is perfectly capable
+         of decoding I420 (YUV) to RGB. The test case provided alongside the
+         aforementioned commit passes without this revert because it decodes
+         image of JCS_YCrCb color space, so the new `if (clrspc == JCS_RGB)`
+         condition is false on that image, and the libjpeg-turbo decoding
+         does not get used. The real bug is hidden by that commit.
+         The real problem is in the call order of gst_jpeg_dec_prepare_decode()
+         and gst_jpeg_dec_negotiate(). The gst_jpeg_dec_prepare_decode() calls
+         jpeg_start_decompress() which sets up internal state of the libjpeg,
+         however, neither cinfo.out_color_space nor cinfo.raw_data_out are
+         set correctly yet. Those two are set up in gst_jpeg_dec_negotiate()
+         which is called a bit later. Therefore, the real fix is the set up
+         cinfo.out_color_space and cinfo.raw_data_out before calling
+         jpeg_start_decompress(). This is however a separate patch.
+         Fixes: 2aa2477208 ("jpegdec: only allow conversions from RGB")
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1687>
+
+2022-02-01 14:28:24 +0100  Bastien Nocera <hadess@hadess.net>
+
+       * ext/gtk/gtkgstglwidget.c:
+         gtk: Fix rotation not being applied when paused
+         The video wouldn't be redrawn immediately when a rotation was applied
+         but the pipeline was paused, as no new buffers were scheduled to be
+         displayed.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1618>
+
+2022-02-01 14:26:02 +0100  Bastien Nocera <hadess@hadess.net>
+
+       * ext/gtk/gtkgstbasewidget.c:
+       * ext/gtk/gtkgstbasewidget.h:
+         gtk: Add a way to queue redrawing the base GTK widget
+         This will be used to request a redraw of the GTK widget should the
+         display be changed using properties not directly handled by the base GTK
+         widget, but by one of its descendants.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1618>
+
+2022-01-18 17:53:30 +0100  Robert Rosengren <robertr@axis.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: Safer ts-offset-smoothing-factor calculation
+         Protect the ts-offset-smoothing-factor calculation from overflow. Output
+         warning and fallback to ts-offset if it is detected.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1409>
+
+2021-11-23 09:03:28 +0100  Robert Rosengren <robertr@axis.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpbin.h:
+         rtpbin: add ts-offset-smoothing-factor property
+         Add property to set the TS offset smoothing factor and set default value
+         to not use it.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1409>
+
+2019-02-26 16:39:55 +0100  Danny Smith <dannys@axis.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: applied smoothing to jittery sender time-stamps
+         Applying a moving average filter to the timestamp offsets
+         for smoothing jittery and preventing aggressive skew handling.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1409>
+
+2018-05-29 16:24:02 +0200  Danny Smith <dannys@axis.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpbin.h:
+         rtpbin: added option for setting min_ts_offset in ntp-sync mode
+         Constantly updating the ts_offset results in audiable glitches
+         when streaming audio using ntp-sync=true. By requiring a minimum
+         offset before updating ts_offset this can be mitigated. Added a
+         parameter which can be used to set min_ts_offset in ntp-sync mode.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1409>
+
+2022-02-04 11:15:47 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * meson.build:
+         Back to development
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1635>
+
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+       * NEWS:
+       * README:
+       * RELEASE:
+       * docs/gst_plugins_cache.json:
+       * gst-plugins-good.doap:
+       * meson.build:
+         Release 1.20.0
+
+2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.0
+
+2022-02-01 05:07:04 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * docs/meson.build:
+       * sys/osxvideo/osxvideosink.m:
+         docs: Add objc and objcpp files to hotdoc gst_c_sources
+         Hotdoc should be able to extract and parse comments out of these. Just
+         need to be careful to only add the glob in directories that actually
+         contain *.m (objc) and *.mm (objcpp) files.
+         Also fix some doc comments and remove redundant ones.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1614>
+
+2022-01-30 19:06:29 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * sys/osxaudio/gstosxaudiosink.c:
+       * sys/osxaudio/gstosxaudiosrc.c:
+       * sys/osxvideo/osxvideosink.m:
+         docs: Rename "OS X" to "macOS" in some documentation
+         No one uses the term "Mac OS X" anymore, it's "macOS". "OS X" is even
+         worse, because people will usually start the search with "mac".
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1607>
+
+2022-01-30 03:56:14 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * sys/osxaudio/gstosxaudioelement.c:
+         osxaudio: Document GstOsxAudioElement interface
+         This is listed as a public interface implemented by osxaudio, so we
+         need to mark it as a plugin API so that it's listed in the
+         documentation correctly.
+         This is an ancient symbol, so add it to the symbol index too.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1601>
+
+2022-01-28 23:15:28 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+         applemedia: Document vtenc / vtdec elements
+         Also preserve-alpha property should only be exposed on the
+         vtenc_prores element since h264 does not support transparency.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/-/issues/94
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1601>
+
+2022-01-29 12:56:22 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/soup/gstsouputils.c:
+         soup: Don't store a strong reference to the logging object
+         Otherwise this causes a reference cycle between the session, the logger
+         and the logging object (i.e. the sink element or session wrapper).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1603>
+
+2022-01-29 12:55:30 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/soup/gstsouphttpsrc.c:
+         souphttpsrc: Always abort the session once its last user is gone
+         And wait until there are no pending GSources on the main context anymore
+         afterwards.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1603>
+
+2022-01-29 12:54:23 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/soup/gstsouphttpsrc.c:
+         souphttpsrc: Post context message after setting up the context from the source's thread
+         This simplifies the code and especially the locking a bit, and makes
+         sure we only export the session after it is fully set up.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1603>
+
+=== release 1.19.90 ===
+
+2022-01-28 14:28:35 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+       * NEWS:
+       * RELEASE:
+       * docs/gst_plugins_cache.json:
+       * gst-plugins-good.doap:
+       * meson.build:
+         Release 1.19.90
+
+2022-01-28 14:28:28 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.19.90
+
+2022-01-28 15:47:44 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/soup/gstsouphttpclientsink.c:
+         souphttpsink: Protect against spurious wakeups during startup
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1594>
+
+2022-01-28 15:33:04 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/soup/gstsouphttpclientsink.c:
+       * ext/soup/gstsouphttpsrc.c:
+       * ext/soup/gstsouputils.c:
+       * ext/soup/gstsouputils.h:
+         souphttpsrc: Don't use the source element after setup from the session thread
+         The source element might be gone already if the session is shared with
+         other source elements.
+         As a consequence, do all logging via the session object instead of using
+         the source element.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1594>
+
+2022-01-28 15:31:55 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/soup/gstsouphttpsrc.c:
+         souphttpsrc: Don't abort all pending operations on the session if shutting down a source with a shared session
+         Only do it for a non-shared session. Other sources would otherwise get
+         their requests cancelled unexpectedly.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1594>
+
+2022-01-28 15:31:25 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/soup/gstsouphttpsrc.c:
+         souphttpsrc: Don't set boolean to FALSE right after checking that it is FALSE
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1594>
+
+2022-01-28 15:30:56 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/soup/gstsouphttpsrc.c:
+         souphttpsrc: soup_session_new_with_options() can't fail with NULL
+         So don't check for it.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1594>
+
+2022-01-27 16:28:48 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/autodetect/gstautodetect.h:
+         autodetect: fix debug init category
+         Since the split of elements, the debug category
+         was default for autodetect.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1590>
+
+2022-01-21 16:09:30 +0100  Daniel Kolesa <dkolesa@igalia.com>
+
+       * ext/soup/gstsouphttpsrc.c:
+       * ext/soup/gstsouphttpsrc.h:
+       * ext/soup/gstsouploader.c:
+       * ext/soup/gstsouploader.h:
+         soup: move libsoup session into its own thread
+         Starting with libsoup3, there is no attempt to handle thread safety
+         inside the library, and it was never considered fully safe before
+         either. Therefore, move all session handling into its own thread.
+         The libsoup thread has its own context and main loop. When some
+         request is made or a response needs to be read, an idle source
+         is created to issue that; the gstreamer thread issuing that waits
+         for that to be complete. There is a per-src condition variable to
+         deal with that.
+         Since the thread/loop needs to be longer-lived than the soup
+         session itself, a wrapper object is provided to contain them. The
+         soup session only has a single reference, owned by the wrapper
+         object.
+         It is no longer possible to force an external session, since this
+         does not seem to be used anywhere within gstreamer and would be
+         tricky to implement; this is because one would not have to provide
+         just a session, but also the complete thread arrangement made in
+         the same way as the system currently does internally, in order to
+         be safe.
+         Messages are still built gstreamer-side. It is safe to do so until
+         the message is sent on the session. Headers are also processed on
+         the gstreamer side, which should likewise be safe.
+         All requests as well as reads on the libsoup thread are issued
+         asynchronously. That allows libsoup to schedule things with as
+         little blocking as possible, and means that concurrent access
+         to the session is possible, when sharing the session.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/947
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1555>
+
+2022-01-27 01:38:39 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * po/de.po:
+       * po/fr.po:
+       * po/ro.po:
+         gst-plugins-good: update translations
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1579>
+
+2022-01-26 11:22:31 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Fix critical while serializing timeout element message
+         The "cause" field wasn't registered as a GEnumValue, so do that.
+         Fixes this critical in gst_structure_to_string():
+         `gst_value_serialize: assertion 'G_IS_VALUE (value)' failed`
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1573>
+
+2022-01-24 10:45:33 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Warn when calculating the next fragment time in timecode mode fails
+         But only if timecode mode is enabled as it will fail all the time
+         otherwise.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1557>
+
+2022-01-25 15:05:47 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * tests/examples/qt/qmlsink-multisink/videoitem/videoitem.cpp:
+         qt: Retain compatibility with Qt 5.9
+         QSharedPointer.get() was added in Qt 5.11, and it does the same thing
+         as .data()
+         https://doc.qt.io/qt-5/qsharedpointer.html#get
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/867
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1565>
+
+2022-01-21 14:13:12 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/ext/types-compat.h:
+       * sys/v4l2/ext/v4l2-common.h:
+       * sys/v4l2/ext/v4l2-controls.h:
+       * sys/v4l2/ext/videodev2.h:
+         video4linux2: Sync kernel headers against 5.16.0
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/965>
+
+2022-01-17 11:44:47 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videdec: Fix race condition between drain and state changes
+         This is due to an unsafe usage of the pad task. We didn't ensure proper
+         ownership of the task. That race involved the task being released too early,
+         and was detected, luckily, by the glib mutex implementationt that
+         reported the mutex being disposed while being locked.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1478>
+
+2022-01-16 14:41:41 +0000  Philippe Normand <philn@igalia.com>
+
+       * ext/soup/gstsoup.c:
+       * ext/soup/gstsouploader.c:
+       * ext/soup/gstsouploader.h:
+       * ext/soup/gstsouputils.h:
+       * ext/soup/meson.build:
+         soup: Reintroduce compile-time libsoup dependency for static builds
+         On Android (especially) and for static builds in general it is safer to link
+         against libsoup and have the dynamic custom loading disabled. For those cases we
+         can safely assume the application will use either libsoup2 or libsoup3 and not
+         both.
+         Fixes #939
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1536>
+
+2022-01-16 14:40:11 +0000  Philippe Normand <philn@igalia.com>
+
+       * ext/soup/gstsoupelement.c:
+         soup: Initialize debug category before use
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1536>
+
+2022-01-16 14:39:42 +0000  Philippe Normand <philn@igalia.com>
+
+       * ext/soup/gstsouploader.c:
+         soup: Fix return types for a couple VTable functions
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1536>
+
+2022-01-14 19:53:29 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/cairo/meson.build:
+         meson: Build cairo subproject when unavailable on the system
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/952
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1523>
+
+2022-01-20 17:59:30 +0100  Aleksandar Topic <aleks@qtec.com>
+
+       * gst/imagefreeze/gstimagefreeze.c:
+         imagefreeze: Fix example launch line format issue
+         The currently shown example launch line will not run, because it
+         cannot handle png images.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1547>
+
+2021-05-07 18:22:06 +0200  Bastien Nocera <hadess@hadess.net>
+
+       * docs/gst_plugins_cache.json:
+       * ext/gtk/gstgtkbasesink.c:
+       * ext/gtk/gstgtkbasesink.h:
+       * ext/gtk/gtkgstbasewidget.c:
+       * ext/gtk/gtkgstbasewidget.h:
+         gtk: Add "video-aspect-ratio-override" property
+         Allow front-ends to override the pixel aspect ratio found inside the
+         video file itself, or most likely, missing from the video file.
+         This is a long-standing feature of totem.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137>
+
+2021-10-13 15:33:14 +0200  Bastien Nocera <hadess@hadess.net>
+
+       * ext/gtk/gtkgstbasewidget.c:
+         gtk: Remove _update_par() forward declaration
+         No functional changes.
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137/diffs#note_1102782
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137>
+
+2021-10-13 15:38:52 +0200  Bastien Nocera <hadess@hadess.net>
+
+       * ext/gtk/gtkgstbasewidget.c:
+         gtk: Mark properties as changeable in the PLAYING state
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137#note_1102789
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137>
+
+2021-05-11 11:28:57 +0200  Bastien Nocera <hadess@hadess.net>
+
+       * docs/gst_plugins_cache.json:
+       * ext/gtk/gstgtkbasesink.c:
+       * ext/gtk/gtkgstbasewidget.c:
+         gtk: Fix "pixel-aspect-ratio" property range
+         Fix the arguments passed to gst_param_spec_fraction in the incorrect
+         order.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137>
+
+2021-05-07 18:19:55 +0200  Bastien Nocera <hadess@hadess.net>
+
+       * ext/gtk/gstgtkbasesink.c:
+       * ext/gtk/gtkgstbasewidget.c:
+         gtk: Rename display pixel aspect ratio related constants
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137>
+
+2021-05-07 18:16:30 +0200  Bastien Nocera <hadess@hadess.net>
+
+       * ext/gtk/gtkgstbasewidget.c:
+         gtk: Make "pixel-aspect-ratio" changes immediate
+         Schedule a resize when the display's pixel aspect ratio has changed, if
+         one isn't already scheduled.
+         Closes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/883
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1137>
+
+2022-01-05 02:07:59 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * docs/meson.build:
+       * meson.build:
+         meson: Add explicit check: kwarg to all run_command() calls
+         This is required since Meson 0.61.0, and causes a warning to be
+         emitted otherwise:
+         https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c
+         https://github.com/mesonbuild/meson/issues/9300
+         This exposed a bunch of places where we had broken run_command()
+         calls, unnecessary run_command() calls, and places where check: true
+         should be used.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
+
+2021-12-30 16:31:33 +0000  Heinrich Kruger <heinrich.kruger@sohonet.com>
+
+       * gst/rtp/gstrtphdrext-colorspace.c:
+         rtp-hdrext-colorspace: Fix color range encoding
+         The color space RTP header extension encodes color range as specified in
+         https://www.webmproject.org/docs/container/#Range. In other words:
+         0: Unspecified,
+         1: Broadcast Range,
+         2: Full range,
+         3: Defined by matrix coefficients and transfer characteristic.
+         This does not match the values of GstVideoColorRange, so it is not
+         correct to just write the colorimetry.range value to the header
+         extension.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1482>
+
+2021-12-24 14:52:38 +0900  Jeongki Kim <jeongki.kim@jeongki.kim>
+
+       * gst/rtp/gstrtpg726depay.c:
+         rtpg726depay: fix endian conversion
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1469>
+
+2021-12-23 14:29:55 +0000  Corentin Damman <c.damman@intopix.com>
+
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: fix typo in tests
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1466>
+
+2021-12-20 09:28:50 +0000  Florian Zwoch <fzwoch@gmail.com>
+
+       * ext/aalib/gstaatv.c:
+         aatv: Fixes for rain-mode
+         Some rain-mode properties tried to read float from int value.
+         Initialize rain after setting rain-mode. Rain was non-functional if
+         width/height were left at default values.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1459>
+
+2021-12-07 23:48:39 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtp/gstrtpreddec.c:
+       * gst/rtp/gstrtpreddec.h:
+         reddec: implement support for the BUNDLE case
+         When multiple streams are bundled together, there may be more
+         than one red payload type to handle.
+         In addition, as the red decoder works by filling in gaps in
+         the seqnums, there needs to be one rtp_history queue per sequence
+         domain.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1429>
+
+2021-12-07 23:43:21 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: add new request-fec-decoder-full signal for BUNDLE
+         When multiple streams are bundled together, the application needs
+         to know about the payload type in order to instantiate the appropriate
+         FEC decoder.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1429>
+
+2021-12-03 02:52:06 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtp/gstrtpredenc.c:
+       * gst/rtp/gstrtpredenc.h:
+       * gst/rtp/gstrtpulpfecenc.c:
+       * gst/rtp/gstrtpulpfecenc.h:
+       * tests/check/elements/rtpred.c:
+         rtp/redenc|ulpfecenc: add support for TWCC
+         In redenc, when input buffers have a header for the TWCC extension,
+         we now add one to our wrapper buffers.
+         In ulpfecenc we add one in that case to our protection buffers.
+         This makes TWCC functional when UlpRed is used in webrtcbin.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1414>
+
+2021-12-02 13:32:33 +0000  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph264pay.h:
+         rtph264pay: Handle 'profile' field
+         In order to allow "level-asymmetry-allowed" we now handle a new
+         "profile" field, which as the same semantics as the "profile" field in
+         H.264 stream so that we can force payloaded stream to have the right
+         format when using the `gst_sdp_media_get_caps_from_media` to set caps
+         filter after the payloader. This allows a simple negotiation in standard
+         RTP negotiation based on SDPs (like webrtc) for that particular case,
+         closely respecting the specs.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1410>
+
+2021-12-10 16:08:27 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * sys/ximage/gstximagesrc.c:
+         ximagesrc: avoid blocking wait for X events
+         XNextEvent() blocks indefinitely in absence of X11 events, which can
+         prevent the pipeline from stopping.
+         This can cause problems when ximagesrc is used in "remote desktop"
+         scenarios and the GStreamer application itself, through which the user
+         is viewing and controlling the machine, is the only source of input
+         events.
+         Replace the call with non-blocking XCheckTypedEvent().
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1438>
+
+2021-12-10 17:36:30 +0100  Célestin Marot <marotcelestin@gmail.com>
+
+       * gst/multifile/gstmultifilesrc.c:
+         multifilesrc: fix caps leak
+         since `gst_caps_replace()` and `gst_pad_set_caps()` both ref the caps and neither of them takes the ownership of the caps -> it must be unreffed in `gst_multi_file_src_set_property()`
+         to test the leak (on Unix): `echo coucou > /tmp/file.txt && GST_TRACERS=leaks GST_DEBUG="GST_TRACER:7" gst-launch-1.0 multifilesrc location=/tmp/file.txt caps='txt' ! fakesink`
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1436>
+
+2021-12-06 15:37:06 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>
+
+       * ext/jpeg/gstjpegdec.c:
+         jpegdec: only allow conversions from RGB
+         libjpeg-turbo only supports converting from RGB to other RGB formats.
+         Fix runtime error when trying to convert from a YUV format for example.
+         Fix #916
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1421>
+
+2021-11-29 15:35:36 +0100  Wim Taymans <wtaymans@redhat.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: handle 0x0 sizes gracefully
+         Also ignore 0x0 sizes in the fallback case and assume the size can be
+         anything between 1x1 and MAXxMAX.
+         This fixes the case where a width=0, height=0 caps are created. Whith
+         this patch the caps will contain width=[1,MAX], height=[1,MAX].
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1396>
+
+2021-11-23 20:54:57 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtpmanager/gstrtpfunnel.c:
+       * tests/check/elements/rtpfunnel.c:
+         rtpfunnel: fix extmap handling on accept-caps
+         Follow-up on 97d83056b315c56834eaa6776ae4c6a0848b5ef9, only check
+         for intersection with the current srccaps when checking if a sinkpad
+         can accept caps.
+         I must have been lucky in my firefox testing then, and always entered
+         the code path with audio getting negotiated first, thus not failing
+         the is_subset check when srccaps had been negotiated as
+         application/x-rtp, and an accept-caps query was made for the video
+         caps with a defined extmap.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1384>
+
+2021-11-12 13:54:59 +0100  Jean Felder <jean.felder@gmail.com>
+
+       * ext/taglib/gstid3v2mux.cc:
+         id3v2mux: Map GST_TAG_MUSICBRAINZ_RELEASETRACKID
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1342>
+
+2021-11-12 13:51:56 +0100  Jean Felder <jean.felder@gmail.com>
+
+       * ext/taglib/gstid3v2mux.cc:
+         id3v2mux: Map GST_TAG_MUSICBRAINZ_RELEASEGROUPID
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1342>
+
+2021-11-18 16:27:17 +0000  Tobias Reineke <tobi@g3th.net>
+
+       * ext/shout2/gstshout2.c:
+         shout2: Add compatibility for libshout >= 2.4.2
+         In libshout >=2.4.2 shout_open() can return SHOUTERR_RETRY in addition
+         to SHOUTERR_BUSY.
+         The nonblocking example in libshout fixes the problem in a similar
+         way, as mentioned by the author in this issue:
+         https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2316
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/848
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1363>
+
+2021-11-15 14:39:14 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/qtitem.cc:
+         qmlglsink: fix another resize case
+         If qt asks us to redraw before we have both set a buffer and caps we
+         would attempt to use the new caps with the old buffer which could result
+         in bad things happening.
+         Only update caps from new_caps once the buffer has actually been set.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1346>
+
+2021-11-01 10:08:32 +0700  Trung Do <trung1.dothanh@toshiba.co.jp>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: Update fmt if padded height is greater than fmt height
+         If padded height is greater, buffer bytesused could be larger than plane length,
+         and cause VIDIOC_QBUF failure.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1355>
+
+2021-11-09 19:41:14 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtpmanager/gstrtpfunnel.c:
+       * tests/check/elements/rtpfunnel.c:
+         rtpfunnel: don't enforce twcc during upstream negotiation
+         A previous patch has caused rtpfunnel to output twcc-related
+         information downstream, however this leaked into upstream
+         negotiation (through funnel->srccaps), causing payloader to
+         negotiate twcc caps even when not prompted to do so by the user.
+         Fix this by only enforcing that upstream sends us application/x-rtp
+         caps as was the case originally.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1278>
+
+2021-10-30 01:18:18 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtpmanager/rtptwcc.c:
+         rtptwcc: complete bufferlist fix
+         When dealing with bufferlists, we need to store one "SentPacket"
+         structure per buffer, not one per buffer list!
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1278>
+
+2021-11-12 17:59:22 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Log cslg_shift that was determined
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-12 13:00:56 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Use a composition time offset of 0 for "no decode samples" for the time being
+         This needs codec-specific handling, but using 0 instead of G_MININT32 at
+         least gives somewhat reasonable behaviour.
+         See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/883
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-12 12:46:56 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Always check ctts for unreasonably large offsets
+         If this happens then ignore the whole ctts. Previously we only did this
+         if the PTS/DTS shift was determined from the ctts instead of the cslg.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-12 12:39:17 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux_dump.c:
+         qtdemux: Dump composition time offsets in trun as signed integers
+         Just like we do for ctts without regard of the version of the box.
+         Huge offsets are interpreted as negative offsets by qtdemux so this
+         works.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-12 11:36:31 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.h:
+         qtdemux: Add a comment why only positive cslg shifts are considered
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-02 18:38:39 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Only adjust segment.stop by cslg_shift if stop is not -1
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-02 18:29:53 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Handle negative composition offsets in the trun box the same way as for non-fragmented streams
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-02 17:43:17 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Parse ctts version
+         Negative composition time offsets are only allowed with version 1 of the
+         box, however we parse it as a signed value also for version 0 boxes as
+         unfortunately there are such files out there and it's unlikely to have
+         (valid) huge composition offsets.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-02 17:41:01 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+       * gst/isomp4/qtdemux.h:
+       * gst/isomp4/qtdemux_dump.c:
+         qtdemux: Add support for version 1 cslg boxes
+         They use 64 bit fields instead of 32 bit.
+         Also parse offset as a signed integer (in both versions) and clamp it to
+         a positive value as negative values don't really interest us here.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-11-02 17:54:46 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Don't free cslg data that we don't own on corrupt files
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1294>
+
+2021-05-07 10:44:15 +0200  Rafał Dzięgiel <rafostar.github@gmail.com>
+
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-read-common.c:
+         matroska: Ref index table when updating track info
+         Track index table array was being lost during track info update.
+         Ref it over to updated info, so it can be used for finding
+         nearest seek points.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1203>
+
+2021-11-12 11:28:23 +0100  Rafał Dzięgiel <rafostar.github@gmail.com>
+
+       * gst/matroska/ebml-read.c:
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-ids.c:
+       * gst/matroska/matroska-read-common.c:
+         matroska: Use g_array_unref everywhere
+         Instead of using g_array_free which is not thread safe use g_array_unref instead
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1203>
+
+2021-11-11 19:11:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ext/cairo/gstcairooverlay.c:
+       * gst/equalizer/gstiirequalizernbands.c:
+         docs: fix unnecessary ampersand, < and > escaping in code blocks
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1340>
+
+2021-11-12 03:17:44 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtpmanager/gstrtpst2022-1-fecdec.c:
+         st2022-1-fecdec: fix packet trimming
+         g_sequence_remove_range's end iter is exclusive, so if one
+         wants to remove that item as well, it should be called with
+         the next iter.
+         This could in theory fix an issue where:
+         * The sequence isn't entirely trimmed, with an old item lingering
+         * Following FEC packets are immediately discarded because they
+         arrived later than corresponding media packets, long enough for
+         seqnums to wrap around
+         * We now try to reconstruct a media packet with a completely obsolete
+         FEC packet, chaos ensues.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1341>
+
+2021-11-11 15:49:19 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/qtitem.cc:
+         qmlsink: support caps changes better
+         We need to hold onto the last buffer until the next buffer arrives.
+         Before, if a caps change comes we would remove the currently rendering
+         buffer.  if Qt asks use to render something, we would render the dummy
+         black texture.
+         Fixes a period of black output when upstream is e.g. changing resolution
+         as in hls adaptive bitrate scenarios.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1338>
+
+2021-09-27 16:52:22 +0100  James Cowgill <james.cowgill@blaize.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+       * sys/v4l2/gstv4l2bufferpool.h:
+         v4l2: Record buffer states in pool to fix dequeue race
+         The `gst_v4l2_buffer_pool_dqbuf` function contains this ominous comment:
+         /* get our GstBuffer with that index from the pool, if the buffer was
+         * outstanding we have a serious problem.
+         */
+         outbuf = pool->buffers[group->buffer.index];
+         Unfortunately it is common for buffers in _output_ buffer pools to be
+         both queued and outstanding at the same time. This can happen if the
+         upstream element keeps a reference to the buffer, or in an encoder
+         element itself when it keeps a reference to the input buffer for each
+         frame.
+         Since the current code doesn't handle this case properly we can end up
+         with crashes in other elements such as:
+         (gst-launch-1.0:32559): CRITICAL **: 17:33:35.740: gst_video_frame_map_id: assertion 'GST_IS_BUFFER (buffer)' failed
+         and:
+         (gst-launch-1.0:231): GStreamer-CRITICAL **: 00:16:20.882: write map requested on non-writable buffer
+         Both these crashes are caused by a race condition related to releasing
+         the same buffer twice from two different threads. If a buffer is queued
+         and outstanding this situation is possible:
+         **Thread 1**
+         - Calls `gst_buffer_unref` decrementing the reference count to zero.
+         - The core GstBufferPool object marks the buffer non-outstanding.
+         - Calls the V4L2 release buffer function.
+         - If the buffer is _not_ queued:
+         - Release it back to the free pool (containing non-queued buffers).
+         **Thread 2**
+         - Dequeues the queued output buffer.
+         - Marks the buffer as not queued.
+         - If the buffer is _not_ outstanding:
+         - Calls the V4L2 release buffer function.
+         - Release it back to the free pool (containing non-queued buffers).
+         If both of these threads run at exactly the same time there is a small
+         window where the buffer is marked both not outstanding and not queued
+         but before it has been released. In this case the buffer will be freed
+         twice causing the above crashes.
+         Unfortunately the variable recording whether a buffer is outstanding is
+         part of the core `GstBuffer` object and is managed by `GstBufferPool` so
+         it's not as straightforward as adding a mutex. Instead we can fix this
+         by additionally recording the buffer state in `GstV4l2BufferPool`, and
+         handle "internal" and "external" buffer release separately so we can
+         detect when a buffer becomes not outstanding.
+         In the new solution:
+         - The "external" buffer pool release and the "dqbuf" functions
+         atomically update the buffer state and determine if a buffer is still
+         queued or outstanding.
+         - Subsequent code and a new
+         `gst_v4l2_buffer_pool_complete_release_buffer` function can proceed to
+         release (or not) a buffer knowing that it's not racing with another
+         thread.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1010>
+
+2021-11-09 15:10:06 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: separate out the two fec decoder locations
+         The pipeline flow for receiving looks like this:
+         rtpsession ! rtpssrcdemux ! session_fec_decoder ! rtpjitterbuffer ! \
+         rtpptdemux ! stream_fec_decoder ! ...
+         There are two places where a fec decoder could be placed.
+         1. As requested from the 'request-fec-decoder' signal: after rtpptdemux
+         for each ssrc/pt produced
+         2. after rtpssrcdemux but before rtpjitterbuffer: added for the
+         rtpst2022-1-fecenc/dec elements,
+         However, there was some cross-contamination of the elements involved and
+         the request-fec-decoder signal was also being used to request the fec
+         decoder for the session_fec_decoder which would then be cached and
+         re-used for subsequent fec decoder requests.  This would cause the same
+         element to be attempted to be linked to multiple elements in different
+         places in the pipeline.  This would fail and cause all kinds of havoc
+         usually resulting in a not-linked error being returned upstream and an
+         error message being posted by the source.
+         Fix by not using the request-fec-decoder signal for requesting the
+         session_fec_decoder and instead solely rely on the added properties for
+         that case.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1300>
+
+2021-11-09 21:20:19 +0800  Zhao, Gang <gang.zhao.42@gmail.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Fix can not demux Opus track made by qtmux
+         Opus stream info is read from dOps box [1]. The offset of dOps box in Opus box is different in mp4a version 1 and 0 [2]. Calculate the offset of dOps box according to mp4a version.
+         [1] https://opus-codec.org/docs/opus_in_isobmff.html
+         [2] subprojects/gst-plugins-good/gst/isomp4/atoms.c:sample_entry_mp4a_copy_data:2146
+         Fixed: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/918
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1329>
+
+2021-11-09 13:36:28 +0800  Haihua Hu <jared.hu@nxp.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         v4l2bufferpool: set video alignment of video meta
+         need apply video alignment info on video meta, downstream
+         element can get buffer alignment from video meta
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1326>
+
+2021-11-06 16:48:20 +0800  Zhao, Gang <gang.zhao.42@gmail.com>
+
+       * ext/vpx/gstvpxdec.c:
+         vpxdec: Skip check of key frame when open GOP
+         Valid stream [1] might has no key frame.
+         Fixed: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/890
+         [1] https://storage.googleapis.com/downloads.webmproject.org/test_data/libvpx/vp90-2-16-intra-only.webm
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1316>
+
+2021-10-05 18:07:06 +0100  Joe Todd <joextodd@gmail.com>
+
+       * sys/osxaudio/gstosxcoreaudio.h:
+         osxaudio: Increase max channels to 64
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1059>
+
+2021-11-05 15:17:20 +0530  Sanchayan Maity <sanchayan@asymptotic.io>
+
+       * gst/imagefreeze/gstimagefreeze.c:
+         imagefreeze: Only set caps if they do not match current caps
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1311>
+
+2021-11-04 16:04:30 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * sys/v4l2/v4l2_calls.c:
+         v4l2: Support bools for setting extra-controls
+         They're just mapped to 0 / 1 and can already be set as integers, but
+         being able to set them as booleans seems useful.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1308>
+
+2021-11-03 18:44:03 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * meson.build:
+         Back to development
+
+=== release 1.19.3 ===
+
+2021-11-03 15:43:36 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+       * NEWS:
+       * RELEASE:
+       * docs/gst_plugins_cache.json:
+       * gst-plugins-good.doap:
+       * meson.build:
+         Release 1.19.3
+
+2021-11-03 15:43:32 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.19.3
+
+2021-11-02 16:46:08 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/multifile/gstmultifilesink.c:
+       * gst/multifile/gstmultifilesink.h:
+         multifilesink: Make minimum distance between keyframes in next-file=key-frame mode configurable
+         Previously this was hardcoded to 10s, which is not necessarily the
+         desired behaviour.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1292>
+
+2021-11-01 16:32:10 +0100  Erlend Eriksen <erlend_ne@hotmail.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: Fix deadlock in gst_qt_mux_prepare_moov_recovery
+         Regression from 5766731bd4200c3a374522a749386f740347661a
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1288>
+
+2021-10-30 16:22:39 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+         video: Fix order of new video formats
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1282>
+
+2021-10-30 00:58:55 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/check/elements/rtphdrext-colorspace.c:
+         Couple more g_memdup() -> g_memdup2() fixes
+         Fixes deprecation warnings with newer GLib versions.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1279>
+
+2021-10-23 00:44:57 +0200  Piotrek Brzeziński <piotr@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+         video-format: Add support for ARGB64 LE/BE and similar variants
+         Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1247>
+
+2021-10-29 03:46:25 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtpmanager/rtptwcc.c:
+         rtptwcc: don't assume all PacketInfo->data are buffers
+         They can also be buffer lists
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1268>
+
+2021-10-25 11:37:45 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * meson.build:
+         meson: require matching GStreamer dep versions for unstable development releases
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/929
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1244>
+
+2021-10-28 21:37:47 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Fix text and closed-caption handling.
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1182
+         broke text and and closed caption extraction when introducing WebVTT
+         support, by making the output buffers not have timestamps any more.
+         Fix that by making the process functions copy buffer metadata
+         when generating new output buffers.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1262>
+
+2021-10-25 01:02:07 +0100  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/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
+         Fixes #656
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1240>
+
+2021-10-23 14:38:06 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux_types.c:
+         qtdemux: Add pasp box to the list of known boxes
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1235>
+
+2021-01-20 11:53:51 +0100  Rafał Dzięgiel <rafostar.github@gmail.com>
+
+       * gst/matroska/matroska-read-common.c:
+         matroska: Set image/attachment structure mimetype
+         Set structure mimetype to fix data detection by mimetype in other plugins.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1205>
+
+2021-01-20 11:33:39 +0100  Rafał Dzięgiel <rafostar.github@gmail.com>
+
+       * gst/matroska/matroska-read-common.c:
+         matroska: Treat non-image structure as attachment
+         Otherwise each structure is named as GstTagImageInfo even if
+         it does not contain any images which is misleading.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1205>
+
+2021-10-21 20:32:05 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: fix leak of pad when a fec encoder and aux sender a created
+         The ghost sink pad retrieved by rtpbin from the aux sender was not freed
+         when there was a previous element (fec encoder) in the chain.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1222>
+
+2021-10-18 15:47:00 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/check/meson.build:
+         meson: update for meson.build_root() and .build_source() deprecation
+         -> use meson.project_build_root() or .global_build_root() instead.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
+
+2021-10-18 00:40:14 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/meson.build:
+       * meson.build:
+       * tests/check/meson.build:
+         meson: update for dep.get_pkgconfig_variable() deprecation
+         ... in favour of dep.get_variable('foo', ..) which in some
+         cases allows for further cleanups in future since we can
+         extract variables from pkg-config dependencies as well as
+         internal dependencies using this mechanism.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
+
+2021-10-18 00:03:47 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * meson.build:
+         meson: clean up conditional paths after version bump
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
+
+2021-09-15 14:19:06 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtphdrext-clientaudiolevel.c:
+       * gst/rtpmanager/gstrtphdrext-clientaudiolevel.h:
+       * gst/rtpmanager/gstrtpmanager.c:
+       * gst/rtpmanager/meson.build:
+       * tests/check/elements/rtphdrextclientaudiolevel.c:
+       * tests/check/meson.build:
+         rtphdrext-clientaudiolevel: Rename RFC 6464 element
+         Multiplying elements named after RFC numbers is confusing,
+         so let's give them meaningful names.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1125>
+
+2021-06-05 03:13:52 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/isomp4/fourcc.h:
+       * gst/isomp4/meson.build:
+       * gst/isomp4/qtdemux-webvtt.c:
+       * gst/isomp4/qtdemux-webvtt.h:
+       * gst/isomp4/qtdemux.c:
+       * gst/isomp4/qtdemux_types.c:
+         qtdemux: Add support for wvtt (WebVTT) subtitles.
+         WebVTT in ISO MP4 is specified in ISO 14496-30,
+         and needed for DASH support. It's stored in an
+         mp4 specific format. To handle it compatibly,
+         the wvtt boxes are converted back into WebVTT text
+         and pushed as application/x-subtitle-vtt
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1182>
+
+2021-08-27 22:45:18 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         isomp4: Split buffer process functions.
+         Split the different handling for closed captions, VobSub subpicture
+         and timed text samples into separate simplified process functions.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1182>
+
+2021-08-27 21:58:25 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+       * gst/isomp4/qtdemux.h:
+         isomp4: Use a function pointer for buffer splitting.
+         Swap the `need_process` boolean check on qtdemux streams
+         for a direct function pointer to the splitting function,
+         so we can stop adding extra cases to the single growing
+         `gst_qtdemux_process_buffer()` function.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1182>
+
+2021-10-14 18:38:26 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * meson.build:
+         meson: bump meson requirement to >= 0.59
+         For monorepo build and ugly/bad, for advanced feature
+         option API like get_option('xyz').required(..) which
+         we use in combination with the 'gpl' option.
+         For rest of modules for consistency (people will likely
+         use newer features based on the top-level requirement).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
+
+2021-10-05 12:28:22 -0300  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: Allow more fields changes renegotiating h264
+         And consider interlace-mode=progress as equivalent to the field not
+         being specified.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1062>
+
+2021-10-05 10:50:32 -0300  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroskamux: Ignore some fields when renegotiating
+         Those values are never used in the muxer so we should not fail the
+         negotiation if those are changing.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1062>
+
+2021-10-17 01:59:35 -0300  Thibault Saunier <tsaunier@igalia.com>
+
+       * ext/lame/meson.build:
+         lame:meson: Avoid using fallback when we could use system install
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1176>
+
+2021-10-05 11:38:33 -0300  Thibault Saunier <tsaunier@igalia.com>
+
+       * ext/lame/gstlamemp3enc.h:
+       * ext/lame/meson.build:
+         meson: Support building lame as subproject
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1068>
+
+2021-10-12 15:52:48 -0300  Thibault Saunier <tsaunier@igalia.com>
+
+       * docs/meson.build:
+         meson: Streamline the way we detect when to build documentation
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
+
+2021-10-13 14:42:15 +0100  Philippe Normand <philn@igalia.com>
+
+       * ext/soup/stub/soup.h:
+         soup-stub: Gate G_URI_FLAGS_SCHEME_NORMALIZE behind glib version check
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1138>
+
+2021-10-13 10:38:07 +0200  Bastien Nocera <hadess@hadess.net>
+
+       * ext/gtk/gtkgstglwidget.c:
+         gtkglsink: Avoid assertion when applying "auto" rotation method
+         Guard against the orientation not coming from an inexistant tag, nor
+         from the application (rotation set to "auto") which caused an assertion.
+         When the application requests the auto rotation method, make sure it is
+         resolved to a rotation that's applicable.
+         ERROR:gstreamer/subprojects/gst-plugins-good/ext/gtk/gtkgstglwidget.c:745:gtk_gst_gl_widget_set_rotate_method: code should not be reached
+         Fixes: 103ceb853a5f7dade07a1ac4aa517e9df6ed5ded
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1134>
+
+2021-10-04 09:31:02 +0100  Philippe Normand <philn@igalia.com>
+
+       * ext/soup/gstsoup.c:
+       * ext/soup/gstsouphttpclientsink.c:
+       * ext/soup/gstsouphttpclientsink.h:
+       * ext/soup/gstsouphttpsrc.c:
+       * ext/soup/gstsouphttpsrc.h:
+       * ext/soup/gstsouploader.c:
+       * ext/soup/gstsouploader.h:
+       * ext/soup/gstsouputils.c:
+       * ext/soup/gstsouputils.h:
+       * ext/soup/meson.build:
+       * ext/soup/stub/soup.h:
+       * meson.build:
+       * tests/check/elements/souphttpsrc.c:
+       * tests/check/meson.build:
+         soup: Runtime compatibility support for libsoup2 and libsoup3
+         The src and sink elements no longer link against libsoup. It is now loaded at
+         runtime. If any version is resident already, it is used. Otherwise we first try
+         to load libsoup3 and if it's not found we fallback to libsoup2.
+         For the unit-tests, we now build one version of the test unit file per libsoup
+         version found. So if both libsoup2 and libsoup3 are available on the host, the
+         CI will cover them both.
+         Based on initial patch by Daniel Kolesa <dkolesa@igalia.com> and
+         Patrick Griffis <pgriffis@igalia.com>.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1044>
+
+2021-09-10 18:03:55 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtpopuspay.c:
+         rtopuspay: Set marker bit inside RTP packet too
+         At the end of a talk spurt, not only set the marker flag on the
+         GstBuffer, but also set the bit inside the RTP header as recommended
+         by the RFC.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1124>
+
+2021-10-11 14:27:24 +0200  Bastien Nocera <hadess@hadess.net>
+
+       * ext/gtk/gstgtkbasesink.c:
+         gtksink: Fetch the default "widget" value in the docs
+         There's really no interesting "widget" value that could be shown in the
+         docs, so use the GST_PARAM_DOC_SHOW_DEFAULT flag to avoid showing
+         another value.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
+
+2021-10-11 10:22:41 +0200  Bastien Nocera <hadess@hadess.net>
+
+       * ext/gtk/gstgtkbasesink.c:
+       * ext/gtk/gstgtkglsink.c:
+         gtksink: Avoid errors fetching widget property
+         Avoid errors when fetching the "widget" property and GTK initialisation
+         fails, such as when running in a non-graphical environment.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
+
+2021-05-04 13:27:30 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * ext/gtk/gstgtkbasesink.c:
+       * ext/gtk/gstgtkglsink.c:
+         gtksink: Return reference to GtkWidget in the acquire function
+         This should ensure thread safety.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
+
+2020-09-03 18:27:19 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+       * ext/gtk/gstgtkbasesink.c:
+       * ext/gtk/gstgtkbasesink.h:
+       * ext/gtk/gstgtkglsink.c:
+       * ext/gtk/gtkgstglwidget.c:
+       * ext/gtk/gtkgstglwidget.h:
+         gtkglsink: Add rotate-method property
+         This mostly just takes code out of glimagesink and applies it here.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1088>
+
+2021-10-12 19:01:37 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Don't assert on the input side if no GOP is available when shutting down
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1119>
+
+2021-10-12 11:43:16 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/soup/meson.build:
+         libsoup: Bump to 2.74 to fix gssapi build failure on macOS
+         See: https://gitlab.gnome.org/GNOME/libsoup/-/merge_requests/255
+         We also need to disable sysprof by default because it only builds on
+         native Linux. If someone really wants it, they can enable the option
+         on the command-line by passing -Dlibsoup:sysprof=enabled
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1114>
+
+2020-06-05 16:20:18 +0200  Marek Vasut <marex@denx.de>
+
+       * ext/jpeg/gstjpegdec.c:
+       * ext/jpeg/gstjpegdec.h:
+         jpegdec: Support libjpeg-turbo colorspace conversion
+         The libjpeg-turbo has a built-in support for performing colorspace
+         conversion. The performance of this conversion is much better than
+         doing the same separately using videoconvert. Implement support for
+         this conversion to RGBx/xRGB/BGRx/xBGR formats. Other formats can
+         be easily added later.
+         - The decoding of various pixel formats can be tested and compared to
+         non-libjpeg-turbo decoding as follows:
+         for gfmt in {RGB,BGR}{,x} x{RGB,BGR} ; do
+         echo "$gfmt"
+         gst-launch-1.0 -q \
+         videotestsrc pattern=colors ! \
+         video/x-raw,format=${gfmt} ! \
+         fakesink dump=true | \
+         head -n 200 | tail -n 1
+         gst-launch-1.0 -q --gst-plugin-path=build/ext/jpeg/ \
+         videotestsrc pattern=colors ! \
+         video/x-raw,format=${gfmt} ! \
+         jpegenc ! \
+         jpegdec ! \
+         video/x-raw,format=${gfmt} ! \
+         fakesink dump=true | \
+         head -n 200 | tail -n 1
+         done
+         Result looks as follows, i.e. comparable:
+         RGB
+         00000c70 (0x7f7736fbdd10): 05 33 19 05 33 26 05 33 33 05 33 40 05 33 4c 05  .3..3&.33.3@.3L.
+         00000c70 (0x7f389e8f7d10): 05 32 17 04 32 22 04 32 31 04 32 3e 04 32 4a 04  .2..2".21.2>.2J.
+         RGBx
+         00000c70 (0x7f79efd0ad10): cc 07 22 ff d9 07 22 ff e6 07 22 ff f3 07 22 ff  .."..."..."...".
+         00000c70 (0x7fb6989f3d10): cd 06 22 00 d9 06 22 00 e6 06 22 00 f4 06 22 00  .."..."..."...".
+         BGR
+         00000c70 (0x7fa0a6c42d10): 05 0c 33 05 19 33 05 26 33 05 33 33 05 40 33 05  ..3..3.&3.33.@3.
+         00000c70 (0x7fc74165fd10): 05 08 32 04 17 32 04 22 32 04 31 32 04 3e 32 04  ..2..2."2.12.>2.
+         BGRx
+         00000c70 (0x7fbf399f1d10): 22 07 cc ff 22 07 d9 ff 22 07 e6 ff 22 07 f3 ff  "..."..."..."...
+         00000c70 (0x7f50e3d1cd10): 22 06 cd 00 22 06 d9 00 22 06 e6 00 22 06 f4 00  "..."..."..."...
+         xRGB
+         00000c70 (0x7f0b950a2d10): ff cc 07 22 ff d9 07 22 ff e6 07 22 ff f3 07 22  ..."..."..."..."
+         00000c70 (0x7f4416b8dd10): 00 cd 06 22 00 d9 06 22 00 e6 06 22 00 f4 06 22  ..."..."..."..."
+         xBGR
+         00000c70 (0x7f237d74dd10): ff 22 07 cc ff 22 07 d9 ff 22 07 e6 ff 22 07 f3  ."..."..."..."..
+         00000c70 (0x7f095547dd10): 00 22 06 cd 00 22 06 d9 00 22 06 e6 00 22 06 f4  ."..."..."..."..
+         ^^          ^^          ^^          ^^
+         Notice how the alpha channel is set to arbitrary value in case of the
+         libjpeg-turbo decoding into RGBx/BGRx/xRGB/xBGR pixel formats. This is
+         documented in libjpeg-turbo README.md as follows:
+         "
+         When using the RGBX, BGRX, XBGR, and XRGB colorspaces during decompression, the
+         X byte is undefined, and in order to ensure the best performance, libjpeg-turbo
+         can set that byte to whatever value it wishes.
+         "
+         - The interlaced num_fields=2 mjpeg stream can be generated and
+         tested as follows (this does require mjpegtools):
+         $ gst-launch-1.0 videotestsrc num-buffers=10 ! jpegenc ! multifilesink location=in%04d.jpg
+         $ jpeg2yuv -f 25 -I t -L 0 -j in%04d.jpg | yuv2lav -f avi -o result.avi
+         ...
+         $ gst-launch-1.0 --gst-plugin-path=build/ext/jpeg/ filesrc location=result.avi ! \
+         avidemux ! jpegdec ! video/x-raw,format=RGBx ! videoconvert ! autovideosink
+         Signed-off-by: Marek Vasut <marex@denx.de>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1091>
+
+2021-09-21 13:37:35 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: Keep track of the pending input GOPs in a queue
+         This cleans up input GOP handling and makes it possible to handle more
+         than 2 pending GOPs, which could happen before if keyframes are arriving
+         with too short of a distance between them.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005>
+
+2021-09-16 19:36:27 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: Handle frame reordering due to B frames better
+         Instead of assuming that the PTS of a keyframe is the lowest PTS of a
+         GOP, wait until the DTS has passed this PTS and take the minimum PTS up
+         to that point. That way the minimum PTS of a GOP can be determined, at
+         least for closed GOP streams. Open GOP streams still can't be handled
+         properly.
+         By knowing the minimum PTS of each GOP, keyframes can be requested at
+         the correct time relative to the GOP (and thus fragment) start and
+         fragment overflow calculations can calculate the correct durations of
+         the GOPs.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005>
+
+2021-09-16 14:07:27 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Reset timecodes when resetting the sink
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005>
+
+2021-09-16 13:11:20 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Use GST_CLOCK_STIME_NONE instead of 0 to initialize max out running time
+         Otherwise streams with only DTS would misbehave while it is negative.
+         For outputting everything immediately at EOS, use G_MAXINT64 instead
+         which is bigger-or-equal to any other running time.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005>
+
+2021-09-16 13:02:29 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Only update max in/out running time if it's actually bigger
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005>
+
+2021-09-16 12:53:12 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Only count keyframes for the reference context, consistently
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1005>
+
+2021-09-24 13:38:39 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+         rtphdrext: Pass just the attributes to the subclass
+         Since the base class now does the parsing, there is no need
+         to reproduce that code in all the subclasses, just pass the attributes
+         which are the only relevant bit anyway.
+         Also, only store the direction if the subclass accepted the caps
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906>
+
+2021-09-24 12:52:37 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+         rtphdrext-rfc6464: Use helper function to set caps field
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906>
+
+2021-09-23 16:01:40 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtphdrext-colorspace.c:
+       * gst/rtpmanager/gstrtphdrext-twcc.c:
+         rtphdrext: Set caps without attributes as the default
+         Most subclasses just use the simple function, so just let the base class
+         do it. It makes less code in subclasses.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906>
+
+2021-09-23 15:36:00 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtphdrext-colorspace.c:
+       * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+       * gst/rtpmanager/gstrtphdrext-twcc.c:
+         rtphdrext: Put simple caps generation as the base class default
+         Instead of having a helper function that gets called by almost every
+         subclass, just let the base class set the caps fields automatically.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/906>
+
+2021-09-28 10:11:15 +1000  Brad Hards <bradh@frogmouth.net>
+
+       * README:
+       * RELEASE:
+         doc: update IRC links to OFTC
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
+
+2021-09-26 01:07:02 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * meson.build:
+         Back to development
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
+
 === release 1.19.2 ===
 
 2021-09-23 01:33:39 +0100  Tim-Philipp Müller <tim@centricular.com>
        * ChangeLog:
        * NEWS:
        * RELEASE:
+       * docs/gst_plugins_cache.json:
        * gst-plugins-good.doap:
        * meson.build:
          Release 1.19.2