isoff: Fix earliest pts field parse issue
[platform/upstream/gstreamer.git] / subprojects / gst-plugins-good / ChangeLog
index 3bd2e99..5db352d 100644 (file)
@@ -1,3 +1,836 @@
+=== 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: