isoff: Fix earliest pts field parse issue
[platform/upstream/gstreamer.git] / subprojects / gst-plugins-good / ChangeLog
index f997cc9..5db352d 100644 (file)
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * 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