Release 1.19.2
[platform/upstream/gstreamer.git] / ChangeLog
index 628a07a..f997cc9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+=== release 1.19.2 ===
+
+2021-09-23 01:33:39 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+       * NEWS:
+       * RELEASE:
+       * gst-plugins-good.doap:
+       * meson.build:
+         Release 1.19.2
+
+2021-09-22 14:03:57 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/rtp/gstrtph263pdepay.c:
+         rtph263pdepay: flag keyframes on output buffers
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1091>
+
+2021-08-18 19:47:40 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtpmanager/gstrtphdrext-twcc.c:
+         rtphdrhext-twcc: Return failure on map failure
+         This feels like exactly like a case that should fail.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1059>
+
+2021-08-18 19:46:25 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtphdrext-colorspace.c:
+       * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+       * gst/rtpmanager/gstrtphdrext-twcc.c:
+         rtphdrext: Update write() API to return a signed value
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1059>
+
+2021-09-14 17:26:27 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Try to build AAC codec-data whenever it's possible
+         AAC codec_data is a just collection of AAC profile, samplerate, and
+         channels. We can know samplerate and channels from parsed
+         SampleEntry data. Although the AAC profile is unknown there,
+         let's assume it as AAC-LC like we've been doing for the version 1
+         atom.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1082>
+
+2021-09-07 22:23:01 +0200  Vivienne Watermeier <vwatermeier@igalia.com>
+
+       * gst/flv/gstflvdemux.c:
+       * gst/flv/gstflvdemux.h:
+         flv: fix seqnum handling for seeks
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1078>
+
+2021-01-18 16:06:27 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         isomp4: also allow muxing different h264/5 profiles/levels/etc
+         All of that is advertised through the codec_data itself so can change
+         just fine within isomp4.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1071>
+
+2021-09-11 09:24:35 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-ids.h:
+       * gst/matroska/matroska-mux.c:
+         matroska: Add support for muxing/demuxing ffv1
+         Previously only demuxing when stored via the RIFF/AVI mapping was
+         supported.
+         See https://github.com/FFmpeg/FFV1/blob/master/ffv1.md#matroska-file-format
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/923
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1080>
+
+2021-09-12 12:18:32 +0100  Philippe Normand <philn@igalia.com>
+
+       * docs/gst_plugins_cache.json:
+         docs: Update cache
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1081>
+
+2021-08-03 19:12:11 +0900  Seungha Yang <seungha@centricular.com>
+
+       * ext/jpeg/gstjpegdec.c:
+         jpegdec: Fix crash when interlaced field height is not DCT block size aligned
+         In case of interlaced JPEG file, we are doubling stride.
+         The scratch scan line should take account of it as well.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1042>
+
+2021-09-02 08:38:54 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/avi/gstavidemux.c:
+         avidemux: Also detect 0x000001 as H264 byte-stream start code in codec_data
+         This works around some AVI files storing byte-stream data in the
+         codec_data. The previous workaround was only checking for
+         0x00000001 (4 bytes) instead of 0x000001 (3 bytes).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1072>
+
+2021-08-31 11:05:16 +0100  Philippe Normand <philn@igalia.com>
+
+       * ext/qt/qtitem.cc:
+         qt: Fix build for Qt 5.9
+         The QQuickItem::size() method was introduced in 5.10, so use direct width() and
+         height() access instead.
+         Fixes #908
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1069>
+
+2021-08-19 10:32:27 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * tests/check/elements/rtphdrextrfc6464.c:
+         rtphdrext-rfc6464: Add test for inserting in payloader using the API
+         This makes it clearer how to use the plugin in an API driven application.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1058>
+
+2021-08-18 19:36:07 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+         rtphdrext-rfc6464: Put max level if the audio is beyond it
+         Otherwise, it just fails to add the extension, which makes no
+         sense. And our level element produces levels higher than 127 in some
+         cases.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1058>
+
+2021-08-18 19:35:36 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+         rtphdrext-rfc6464: Add example pipeline
+         This makes it a bit easier to understand how to use it in an application.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1058>
+
+2021-08-18 19:07:18 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * tests/check/elements/rtphdrextrfc6464.c:
+         rtphdrext-rfc6464: Add test for inserting it based on caps
+         Tests adding the extension based on the caps.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1058>
+
+2021-08-27 14:32:45 +0200  Edward Hervey <edward@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Force stream-start push when re-using EOS'd streams
+         When re-using streams, we *do* need to push a `stream-start` event downstream if
+         we previously were EOS'd. Failure to do that would never remove the EOS status
+         on all downstream elements and cause weird issues.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1067>
+
+2021-08-27 02:05:45 -0400  Brad Smith <brad@comstyle.com>
+
+       * gst/deinterlace/meson.build:
+         deinterlace: Use proper ASM output format for *BSD OS
+         FreeBSD/NetBSD/OpenBSD amd64 use the ELF binary format.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1066>
+
+2021-08-27 13:30:57 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/qtitem.cc:
+         qmlgl: don't critical on input events before input format has been set
+         Accessing the unset GstVideoInfo would result in criticals
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1065>
+
+2021-08-25 11:53:58 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/rtpsession.c:
+         docs: Add `Since` marker to "twcc-feedback-interval" property
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2021-08-25 10:33:24 +0200  Havard Graff <havard@pexip.com>
+
+       * docs/gst_plugins_cache.json:
+         docs: update with "twcc-feedback-interval"
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2021-04-13 16:19:22 +0200  Tulio Beloqui <tulio.beloqui@pexip.com>
+
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtpstats.h:
+       * gst/rtpmanager/rtptwcc.c:
+       * tests/check/elements/rtpsession.c:
+         rtptwcc: changes to use rtp buffer arrival time and current time.
+         For TWCC we are more interested to track the arrival time (receive side)
+         and the current time (sender side) of the buffers rather than the
+         running time.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2021-03-26 11:57:42 +0100  Knut Inge Hvidsten <knut.hvidsten@pexip.com>
+
+       * gst/rtpmanager/rtpstats.c:
+       * gst/rtpmanager/rtptwcc.c:
+       * gst/rtpmanager/rtptwcc.h:
+         rtptwcc: add payloadtype to RTPTWCCPacket
+         The consumer of the stats can then separate between different media-types,
+         and do individual stats for each of them.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2021-03-19 18:19:43 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/rtptwcc.c:
+         rtptwcc: make enabling TWCC sticky
+         Meaning that if a caps comes along that does NOT have TWCC in it,
+         this does not turn of TWCC for the rest, as this is in fact
+         completely allowed. (To have some payload-types not containing TWCC
+         seqnums).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2021-02-23 09:44:05 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtptwcc.c:
+       * gst/rtpmanager/rtptwcc.h:
+         rtptwcc: move TWCC-logic over to the TWCC-manager
+         Prevent cluttering up the rtpsession, and keeping things localized.
+         Also write TWCC-seqnums for *all* streams in the session if configured by
+         caps.
+         A while back WebRTC was not doing TWCC for audio, basically breaking the
+         whole idea of a "transport-wide seqnuencenumber" applying for all bundled
+         streams. However, they have since fixed this, and now it no longers
+         makes sense to be able to single out certain payloadtypes for
+         use with TWCC, rather just including them all.
+         This also makes using RTX, RED, FEC etc much simpler, as it will apply
+         to them all as they enter the rtpsession.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2021-02-23 09:50:04 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/rtptwcc.c:
+         rtptwcc: fix warning
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2021-02-11 15:17:16 +0100  Tulio Beloqui <tulio.beloqui@pexip.com>
+
+       * gst/rtpmanager/rtptwcc.c:
+       * tests/check/elements/rtpsession.c:
+         rtptwcc: fixes and optimizations around run-length chunks
+         Co-authored-by: Havard Graff <havard.graff@gmail.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2020-12-18 14:01:23 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/rtptwcc.c:
+       * tests/check/elements/rtpsession.c:
+         rtptwcc: fix seqnum-wrap
+         Using the proper API to do this is obviously an improvement, and
+         adding a test for the case of a packet-loss when the seqnum wrap
+         is also a good idea.
+         Co-authored-by: Tulio Beloqui <tulio.beloqui@pexip.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2020-12-18 13:06:35 +0100  Tulio Beloqui <tulio.beloqui@pexip.com>
+
+       * gst/rtpmanager/rtptwcc.c:
+       * tests/check/elements/rtpsession.c:
+         rtptwcc: fixed feedback packet count overflow that allowed late packets to be processed
+         Co-authored-by: Havard Graff <havard.graff@gmail.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2020-12-16 16:31:18 +0100  Tulio Beloqui <tulio.beloqui@pexip.com>
+
+       * gst/rtpmanager/rtptwcc.c:
+       * tests/check/elements/rtpsession.c:
+         rtptwcc: fixed parsing of old sequence number
+         Co-authored-by: Havard Graff <havard.graff@gmail.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2020-12-16 16:16:09 +0100  Tulio Beloqui <tulio.beloqui@pexip.com>
+
+       * gst/rtpmanager/rtptwcc.c:
+       * tests/check/elements/rtpsession.c:
+         rtptwcc: fixed guint8 overflow of feedback packet count
+         Co-authored-by: Havard Graff <havard.graff@gmail.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2020-11-19 23:50:23 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtptwcc.c:
+       * gst/rtpmanager/rtptwcc.h:
+       * tests/check/elements/rtpsession.c:
+         rtptwcc: add feedback-interval
+         To allow RTCP TWCC reports to be scheduled on a timer instead of per
+         marker-bit.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2021-08-20 11:54:01 +0200  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/rtptwcc.c:
+       * gst/rtpmanager/rtptwcc.h:
+         rtptwcc: remove _set_send_packet_ts
+         Not in use.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2020-11-17 00:45:02 +0100  Havard Graff <havard@pexip.com>
+
+       * tests/check/elements/rtpsession.c:
+         rtptwcc: make twcc-tests more deterministic
+         They were a bit racy.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/927>
+
+2021-08-24 13:28:22 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: add depth for ProRes 4:4:4:4 variants if available
+         Might be 24bpp in case an alpha channel is coded but
+         the image is always opaque.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1061>
+
+2021-08-22 23:16:26 +0000  Ruslan Khamidullin <ruslank@borisfx.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: for Apple ProRes, allow overriding pixel bit depth for 4:4:4:4 variants
+         e.g. when exporting an opaque image, yet with alpha channel.
+         Apple ProRes certification requires that, when a ProRes-writing
+         application *knows* that the entire frame is opaque, the application
+         writes only RGB without alpha even when the clip is RGBA. For that,
+         this tiny change allows the app to override pixel depth when writing ProRes.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1061>
+
+2019-05-22 11:16:56 +0200  Havard Graff <havard.graff@gmail.com>
+
+       * ext/vpx/gstvpxdec.c:
+       * ext/vpx/gstvpxdec.h:
+         vpxdec: Fix direct rendering, avoid holding write access
+         When a buffer is pushed downstream, we should try not to hold the
+         buffer mapped with write access. Doing so would often lead to
+         an unneccesary memcpy later.
+         For instance, gst_buffer_make_writable() in
+         gst_video_decoder_finish_frame() will cause a memcpy because of
+         _memory_get_exclusive_reference().
+         We know that we can perform a two-step remap when using system
+         memory, as this will not cause the location of the memory to
+         change.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/812>
+
+2021-08-19 16:26:17 +1000  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         isomp4/mux: add a function for seeking to a specific output byte position
+         We do it enough times that this makes sense.  Also add a debug log line
+         for the seek position requested.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1060>
+
+2021-08-19 16:02:47 +1000  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/atoms.c:
+         isomp4/mux: don't overwrite with a bigger moov when fragmenting
+         When outputting fragmented mp4, with a seekable downstream, we rewrite
+         the moov to maybe add a duration to the mvex.  If we start by not
+         writing the initial moov->mvex->mhed duration and then overwrite with a
+         moov containing mhed atom, the moov's will have different sizes and
+         could overwrite subsequent data and result in an unplayable file.
+         e.g. The initial moov would be of size 842 and the final moov would have
+         a size of 862.
+         Fix by always pushing out the mhed duration in the moov when
+         fragmenting.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/898
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1060>
+
+2021-01-15 20:53:27 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         isomp4: actually make streamable fallback work
+         We weren't setting the fragment_mode field anymore now that the
+         implementation doesn't change based on the value of the streamable
+         property.  This lead to invalid files.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1060>
+
+2021-01-15 20:54:56 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         isomp4: fix trun data offset handling
+         The trun offset was missing a calculation for one of the box type
+         headers.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/866
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1060>
+
+2020-10-15 00:28:36 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/atoms.c:
+       * gst/isomp4/gstqtmux.c:
+         isomp4/mux: fixes for fragmented mp4 output
+         Various buffer offset calculations were not quite correct in all cases.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/866
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1060>
+
+2021-08-10 00:53:57 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/matroska/matroska-mux.c:
+         matroska-mux: support H264 avc3 / H265 hev1
+         The matroska codec specs is unfortunately vague on the subject,
+         stating for H264:
+         AVC/H.264 stored as described in [@!ISO.14496-15]
+         and for H265:
+         HEVC/H.265 stored as described in [@!ISO.14496-15]
+         This spec however specifies multiple stream formats, our
+         implementation has opted for interpreting this as avc1 / hvc1,
+         both of which disallow in-band SPS.
+         Most decoders however will support in-band SPS / PPS, and
+         this commit gives the option to explicitly mux in avc3 / hev1,
+         which allows changing stream parameters on the fly, that is
+         useful for smart encoding for example.
+         When either of these stream formats are picked as the input,
+         changes in codec_data / tier / level / profile do not cause
+         renegotiation failure, a warning is logged however as it isn't
+         clear how compliant such a stream is.
+         The stream-format field is correctly ordered in the template
+         caps to avoid selecting potentially non-compliant options on
+         automatic negotiation.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047>
+
+2021-08-10 00:51:36 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         isomp4/qtmux: allow renegotiating when tier / level / profile change
+         Those are carried either in codec_data or in-band SPS (for avc3),
+         and it is OK for those to change, though decoders obviously need
+         to support it.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047>
+
+2021-08-06 23:36:48 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/gstqtmuxmap.c:
+         isomp4/qtmux: accept video/x-h264, stream-format=avc3
+         The main difference between avc1 and avc3 is that avc3 is allowed
+         to contain in-band SPS / PPS. In practice decoders will always use
+         in-band parameter sets anyway, but it is cleaner to explicitly
+         advertise it.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047>
+
+2021-08-06 22:59:23 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         isomp4/qtmux: make sure to switch to next chunk on new caps
+         For example, with single video sink pad, and new codec_data is
+         received, current_chunk_offset must be reset to -1 for the
+         aggregate loop to open a new chunk.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047>
+
+2021-08-06 22:55:32 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/atoms.c:
+         isomp4/atoms: fix multiple stsd entries
+         stsd entries are serialized in reverse order (starting from
+         g_list_last()), and must be prepended to the entry list for their
+         index to be correct when referenced from stsc entries.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047>
+
+2021-08-12 11:03:58 -0400  Arun Raghavan <arun@asymptotic.io>
+
+       * docs/gst_plugins_cache.json:
+       * gst/matroska/matroska-mux.c:
+       * gst/matroska/matroska-mux.h:
+         matroska-mux: Add a timestamp-offset property
+         Adds a user-controllable timestamp offset to clusters and blocks. This
+         should be useful if we want to have timestamps that have significance
+         outside of the current file (for example, we might set the offset to the
+         wallclock when the file is being created, or some other common base, if
+         we want to correlate streams across multiple files).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1051>
+
+2021-07-15 12:02:40 +0200  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/matroska/matroska-demux.c:
+         matroska: demux: update stream_start_time
+         The stream_start_time can be less than the first detected.
+         In case of B-Frame based media, the first frame PTS might be
+         greater than the next one.
+         Need to keep the segment.start if a seek has been performed.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1030>
+
+2021-08-17 16:08:33 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/matroska/matroska-demux.c:
+         mastrokademux: Remove redundant assignment
+         The segment.position is unconditionnaly set few lines below.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1030>
+
+2021-08-17 16:49:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+       * gst/videocrop/gstvideocrop.c:
+       * tests/icles/videocrop-test.c:
+         videocrop: Fix icles tests.
+         Internally videcrop can call gst_video_crop_set_info() with NULL as in
+         caps. Then critical messages are raised when the in caps are
+         processed.
+         To fix this the in caps are checked, and if they are present, its
+         capsfeature is extracted, otherwise, the previous raw caps detection
+         remains as before.
+         Also the videocrop-test removes the format field in the structure
+         because now its always passed.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1056>
+
+2021-01-08 17:34:02 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtp/gstrtp.c:
+       * gst/rtp/gstrtpelements.h:
+       * gst/rtp/gstrtphdrext-colorspace.c:
+       * gst/rtp/gstrtphdrext-colorspace.h:
+       * gst/rtp/meson.build:
+       * tests/check/elements/rtphdrext-colorspace.c:
+       * tests/check/meson.build:
+         rtp: Color Space header extension
+         Implements WebRTC header extension defined in
+         http://www.webrtc.org/experiments/rtp-hdrext/color-space.
+         It uses RTP header to communicate color space information and optionally
+         also metadata that is needed in order to properly render a high dynamic
+         range (HDR) video stream.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/853>
+
+2021-08-09 10:46:30 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: Add protection when set decoder capture fps accroding to output fps
+         Some v4l2 drivers don't have the capacity to change framerate. There is
+         chance to make decoder capture fps to be 0/0 if numerator and denominator
+         returned by G_PARM ioctl are both 0. It causes critical warning
+         "passed '0' as denominator for `GstFraction'".
+         In order to fix this, add protection when set decoder capture fps according
+         to output fps.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1048>
+
+2021-06-01 15:33:01 +0200  Per Förlin <perfn@axis.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/rtsp/gstrtspsrc.h:
+         rtspsrc: Add support to ignore x-server HEADER reply
+         When connecting to an RTSP server in tunnled mode (HTTP) the server
+         usually replies with a x-server header. This contains the address
+         of the intended streaming server. However some servers return an
+         "invalid" address. Here follows two examples when it might happen.
+         1. A server use Apache combined with a separate RTSP process to handle
+         Https request on port 443. In this case Apache handle TLS and
+         connects to the local RTSP server, which results in a local
+         address 127.0.0.1 or ::1 in the x-server reply. This address is
+         returned to the actual RTSP client in the x-server header.
+         The client will receive this address and try to  connect to it
+         and fail.
+         2. The client use a ipv6 link local address with a specified scope id
+         fe80::aaaa:bbbb:cccc:dddd%eth0 and connects via Http on port 80.
+         The RTSP server receives the connection and returns the address
+         in the x-server header. The client will receive this address and
+         try to connect to it "as is" without the scope id and fail.
+         In the case of streaming data from RTSP servers like 1. and 2. it's
+         useful to have the option to simply ignore the x-server header reply
+         and continue using the original address.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1007>
+
+2021-08-04 12:33:06 +0700  Dmitry Shusharin <pmdvsh@gmail.com>
+
+       * ext/qt/qtitem.cc:
+         gstqmlgl: fix indent
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1032>
+
+2021-07-30 16:52:23 +0700  Dmitry Shusharin <pmdvsh@gmail.com>
+
+       * ext/qt/gstqsgtexture.cc:
+       * ext/qt/gstqsgtexture.h:
+         gstqmlgl: wrap raw GstGLContext into GWeakRef
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1032>
+
+2021-07-30 16:32:13 +0700  Dmitry Shusharin <pmdvsh@gmail.com>
+
+       * tests/examples/qt/meson.build:
+       * tests/examples/qt/qmlsink-multisink/main.cpp:
+       * tests/examples/qt/qmlsink-multisink/main.qml:
+       * tests/examples/qt/qmlsink-multisink/meson.build:
+       * tests/examples/qt/qmlsink-multisink/qmlsink-multi.qrc:
+       * tests/examples/qt/qmlsink-multisink/videoitem/VideoItem.qml:
+       * tests/examples/qt/qmlsink-multisink/videoitem/videoitem.cpp:
+       * tests/examples/qt/qmlsink-multisink/videoitem/videoitem.h:
+         gstqmlgl: add multisink test application
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1032>
+
+2021-07-30 17:21:46 +0700  Dmitry Shusharin <pmdvsh@gmail.com>
+
+       * ext/qt/qtitem.cc:
+       * ext/qt/qtitem.h:
+         gstqmlgl: refactoring: rename ambiguous variables, clean up unused and duplicated ones
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1032>
+
+2021-07-30 17:20:59 +0700  Dmitry Shusharin <pmdvsh@gmail.com>
+
+       * ext/qt/gstqtglutility.cc:
+         gstqmlgl: rework WGL-specific context init code
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1032>
+
+2021-07-30 17:20:49 +0700  Dmitry Shusharin <pmdvsh@gmail.com>
+
+       * ext/qt/gstqtglutility.cc:
+         gstqmlgl: retrieve correct device bound to current GL context (+ minor code cleanup)
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1032>
+
+2021-07-30 17:20:25 +0700  Dmitry Shusharin <pmdvsh@gmail.com>
+
+       * ext/qt/gstqsgtexture.cc:
+         gstqmlgl: correct validation for Qt GL context
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1032>
+
+2021-07-30 17:20:07 +0700  Dmitry Shusharin <pmdvsh@gmail.com>
+
+       * ext/qt/gstqtglutility.h:
+       * ext/qt/qtitem.cc:
+       * ext/qt/qtitem.h:
+       * ext/qt/qtwindow.cc:
+       * ext/qt/qtwindow.h:
+         gstqmlgl: create helper QRunnable-based class for render jobs
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1032>
+
+2021-08-06 16:25:02 +0200  Tulio Beloqui <tulio@pexip.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: fixed stall on gap when using rtx
+         Co-authored-by: Håvard Graff <havard@pexip.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1055>
+
+2021-08-13 19:32:53 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/flv/gstindex.c:
+         flv: use g_memdup2() as g_memdup() is deprecated
+         g_memdup() is deprecated since GLib 2.68 and we want to avoid
+         deprecation warnings with recent versions of GLib.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1052>
+
+2021-08-15 12:26:38 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/soup/gstsouphttpsrc.c:
+         souphttpsrc: Always use the content decoder but set `Accept-Encoding: identity` if no compression should be used
+         Some servers respond with gzip-encoded responses regardless of whether
+         the request allowed it to be used in the response. By always having the
+         content decoder enabled, these invalid responses can be decoded
+         correctly while for well-behaving servers the `compress` property
+         selects between allowing compressed responses or not.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/833
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1053>
+
+2021-08-12 22:57:01 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqtglutility.cc:
+         qt: always update the sink_retrieved flag when the sink retrieves
+         Fixes a case where adding a qmlgloverlay element after an existing
+         qmlglsink elements was already in the pipeline would create an entirely
+         separate GstGLDisplay pointing to the same underlying display resource.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1050>
+
+2021-08-11 14:52:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+       * gst/videocrop/gstaspectratiocrop.c:
+       * gst/videocrop/gstaspectratiocrop.h:
+       * gst/videocrop/gstvideocrop.c:
+       * gst/videocrop/gstvideocrop.h:
+       * gst/videocrop/gstvideocropelement.c:
+       * gst/videocrop/gstvideocropelements.h:
+       * gst/videocrop/gstvideocropplugin.c:
+       * gst/videocrop/meson.build:
+         videocrop: Resurrect logging category.
+         Fix for a regression from commit 8f1384c9. That commit moved the debug
+         category definition, as static, into a gstvideocropelement.c, but that
+         category was used as default, in gstvideocrop.c, so it was never used
+         at logging, so the debug selector never showed the logs for
+         videocrop.
+         This patch move back the category definition into gstvideocrop.c and
+         leaving the function videocrop_element_init() as a noop.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1049>
+
+2021-07-31 23:14:34 +0900  Seungha Yang <seungha@centricular.com>
+
+       * ext/jpeg/meson.build:
+         jpeg: Add support for meson fallback
+         Allow building jpeg plugin by using meson fallback
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1041>
+
+2021-07-27 10:43:21 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2object.c:
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2: Keep decoder capture fps same as output fps if it's not set
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1035>
+
+2021-07-27 18:33:18 +0900  Seungha Yang <seungha@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * ext/jack/gstjack.c:
+       * ext/jack/gstjack.h:
+       * ext/jack/gstjackaudioclient.c:
+       * ext/jack/gstjackaudioclient.h:
+       * ext/jack/gstjackaudiosink.c:
+       * ext/jack/gstjackaudiosink.h:
+       * ext/jack/gstjackaudiosrc.c:
+       * ext/jack/gstjackaudiosrc.h:
+         jack: Add port-names property to select ports explicitly
+         By this new property, user can select physical port to connect,
+         and element will pick requested port instead of random ones.
+         User should provide full port name including "client_name:" prefix.
+         An example is
+         jackaudiosrc port-names="system:capture_1,system:capture_3" ! ...
+         jackaudiosink port-names="system:playback_2"
+         In addition to "port-names" property, a new connect type "explicit"
+         is added so that element can post error message if requested
+         "port-names" contains invalid port(s).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1037>
+
+2021-07-23 11:04:00 +0200  Kai Uwe Broulik <kai_uwe.broulik@mbition.io>
+
+       * ext/qt/gstqsgtexture.cc:
+       * ext/qt/gstqtsink.cc:
+         qt: Support RGB format
+         In GstQSGTexture::hasAlphaChannel return value based on
+         whether the video format has alpha channel.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1040>
+
+2021-07-26 20:14:32 +0900  Seungha Yang <seungha@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * ext/jack/gstjackaudiosink.c:
+       * ext/jack/gstjackaudiosink.h:
+       * ext/jack/gstjackaudiosrc.c:
+       * ext/jack/gstjackaudiosrc.h:
+         jack: Add low-latency property for automatic latency-optimized setting
+         Similar to wasapi/wasapi2 plugins on Windows, adding low-latency
+         option so that jack element can optimize GstAudioRingBufferSpec
+         setting for low latency.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1034>
+
+2021-07-26 19:55:25 +0900  Seungha Yang <seungha@centricular.com>
+
+       * ext/jack/gstjackaudioclient.c:
+       * ext/jack/gstjackaudioclient.h:
+       * ext/jack/gstjackaudiosrc.c:
+       * ext/jack/gstjackringbuffer.h:
+         jack: Remove trailing whitespace
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1034>
+
+2021-07-27 17:58:15 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/videocrop/gstvideocrop-private.h:
+         videocrop: Resurrect any caps feature negotiation.
+         Commit e31cbce4 brought a regression to negotiate featured caps. But
+         only by removing the entry in the caps template. This commit brings it
+         back.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1039>
+
+2021-07-26 18:43:04 +0900  Seungha Yang <seungha@centricular.com>
+
+       * ext/jack/gstjackaudiosink.c:
+       * ext/jack/gstjackaudiosrc.c:
+         jack: Fix assertion fail when device supports only mono channel
+         MAX should be larger than MIN for GST_TYPE_INT_RANGE.
+         GStreamer-CRITICAL **: 18:26:27.912:
+         gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1033>
+
+2021-07-21 20:14:46 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqtsrc.cc:
+       * ext/qt/qtwindow.cc:
+       * ext/qt/qtwindow.h:
+         qmlglsrc: fix operation without any qmlglsink
+         E.g. a pipeline like qmlglsrc ! gldownload ! ... would currently fail to
+         run because the OpenGL context are not created in the correct order.
+         The QtWindow also needs to know the OpenGL context used by downstream
+         elements in order to set optimize for the correct GstGLSyncMeta for
+         synchonisation purposes.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1036>
+
+2021-07-26 17:55:24 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Fix some reference leaks in error cases.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1023>
+
+2021-07-08 00:12:52 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * tests/check/elements/splitmuxsink.c:
+         splitmuxsink: Prevent hang going back to NULL after failures
+         Prevent a condition where splitmuxsink won't go back to NULL state
+         after a child element fails to change state by making sure that
+         a READY->READY state change doesn't fail, and by returning
+         GST_FLOW_ERROR or GST_FLOW_FLUSHING upstream to shut down streaming
+         as quickly as possible.
+         This can happen after (for example) setting an invalid filename
+         on the sink element. In that case, the READY->PAUSED transition
+         fails, but with internal elements still in the NULL state. Trying
+         to set splitmuxsink back to NULL then ends up trying to bring
+         those NULL elements up to READY with a READY->READY transition,
+         (which fails, prevent splitmuxsink from getting to NULL)
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1023>
+
+2021-07-13 01:27:45 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+         deinterlace: reduce noise when gst_pad_set_caps fails
+         It may be that downstream is simply flushing, in which case logging
+         an error is misleading.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1029>
+
+2021-07-08 02:22:20 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: always use factory property when set
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1024>
+
+2021-06-21 13:47:50 +0200  Yacine Bandou <yacine.bandou@softathome.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: No need for new "application/x-cbcs" caps
+         Instead of using the new "application/x-cbcs" caps, we are just adding
+         a new structure field "ciphe-mode", to indicate which encryption scheme
+         is used: "cenc", "cbcs", "cbc1" or "cens".
+         Similarly for the protection metadata, we add the "cipher-mode" field
+         to specify the encryption mode with which the buffers are encrypted.
+         "cenc": AES-CTR (no pattern)
+         "cbc1": AES-CBC (no pattern)
+         "cens": AES-CTR (pattern specified)
+         "cbcs": AES-CBC (pattern specified, using a constant IV)
+         Currently only "cenc" and "cbcs" are supported.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1013>
+
+2021-07-05 16:12:57 +0100  Philippe Normand <philn@igalia.com>
+
+       * ext/qt/qtitem.h:
+         qt: Fix clang build
+         The updatePaintNode method is part of the QQuickItem class interface, so needs
+         to be flagged as overriding the default implementation.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/567>
+
+2020-04-15 10:38:04 +0100  Philippe Normand <philn@igalia.com>
+
+       * ext/qt/gstqtsink.cc:
+       * ext/qt/qtitem.cc:
+       * ext/qt/qtitem.h:
+         qt: Add navigation events support
+         Currently handles only mouse events.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/567>
+
+2020-04-15 10:33:22 +0100  Philippe Normand <philn@igalia.com>
+
+       * ext/gtk/gtkgstbasewidget.c:
+         gtk: Scroll events dispatch support
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/567>
+
+2021-07-02 01:41:05 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroskamux: Always write a tags element into seekhead
+         If there are only stream tags, we still want to write the
+         tags entry into the seekhead, so that tags can be found
+         quickly in the player.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/905
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1020>
+
+2021-06-30 23:52:26 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: Don't need to update track per GstCaps if it's not changed
+         Skip GstQTMuxPad::set_caps() call for duplicated caps.
+         All the processing done in set_caps() method for duplicated caps
+         are redundant.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1019>
+
+2021-07-01 13:18:45 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpssrcdemux.c:
+         rtpssrcdemux: Remove pads and reset the element also in READY->NULL
+         Mostly for completeness.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1018>
+
+2021-07-01 13:18:09 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpptdemux.c:
+         rtpptdemux: Remove pads also in PAUSED->READY
+         They're based on per-stream information and that should be reset
+         whenever going to READY state.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1018>
+
+2021-02-16 16:39:34 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+         docs: update plugins cache for vp9enc
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/874>
+
+2021-04-09 19:22:29 +0200  Jakub Adam <jakub.adam@collabora.com>
+
+       * ext/vpx/gstvp9enc.c:
+       * ext/vpx/gstvp9enc.h:
+       * ext/vpx/gstvpxenums.h:
+       * ext/vpx/meson.build:
+         vpx: add enum for adaptive quantization modes
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/874>
+
+2021-02-16 13:28:00 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * ext/vpx/gstvp9enc.c:
+       * ext/vpx/gstvp9enc.h:
+         vp9enc: expose frame-parallel-decoding property
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/874>
+
+2021-02-16 12:57:55 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * ext/vpx/gstvp9enc.c:
+       * ext/vpx/gstvp9enc.h:
+         vp9enc: expose aq-mode property
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/874>
+
+2021-06-26 20:00:03 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/udp/gstmultiudpsink.c:
+         multiudpsink: Fix broken SO_SNDBUF get/set on Windows
+         SO_SNDBUF has been undefined on Windows because of missing WinSock2.h
+         include. And don't use native socket functions (e.g., setsockopt())
+         if code is expected to be built on Windows. We don't link ws2_32.lib
+         for this plugin.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1016>
+
+2021-06-24 14:57:14 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtpmanager/gstrtphdrext-twcc.c:
+         rtpmanager: Access GstRTPHdrExt fields through accessor
+         This way, the implementation can be private.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1017>
+
+2021-06-22 17:19:19 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Refuse seeks in BYTES format
+         If downstream tries to seek in BYTES format, don't pass that through
+         to upstream. The byte positions downstream requests won't make any
+         sense in the muxed stream. There might be other formats we want to
+         pass through to upstream, but BYTES is not one of them. If we get a
+         seeking query about BYTES format, refuse that too.
+         This fixes a situation where we're playing a fragmented mp4 over http
+         and qtdemux refuses the initial seek (in TIME format), but then
+         h264parse/baseparse send a seek in BYTES format and everything falls
+         apart.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1014>
+
+2021-06-16 16:30:59 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtp/gstrtph265depay.c:
+         rtph265depay: update codec_data in caps regardless of format
+         Updating of codec_data in the caps is important to propagate changes
+         in sps/pps/vps via NALs. Without this, downstream does not renegotiate
+         when upstream changes resolution.
+         The comment referring to rtph264pay is from 2015 and is out of date.
+         rtph264pay stopped doing that in 2017 with commit
+         dabeed52a995d27e16eba9e4617e61eb0bcd44c4
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1011>
+
+2021-06-04 13:56:05 +0300  Jordan Petridis <jordan@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+         doc: update gst_plugins_cache.json
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1006>
+
+2021-06-03 20:33:45 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/qtitem.cc:
+         qtitem: don't potentially leak a large number of buffers
+         The only other place where these queued buffers are removed, is in
+         setCaps() but that is not called at all on shutdown so this list of
+         buffers could not be removed.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1004>
+
+2021-05-28 09:54:12 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+       * ext/jpeg/gstjpegenc.c:
+         jpegenc: Remove arbitrary encoding size limitation
+         The encoder is happy to encode with sizes less then 16x16, so remove this
+         arbitrary limitation. This also fixes the fact the sink and src template caps
+         disagree.
+         Fixes #888
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/998>
+
+2021-05-23 15:42:38 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: use g_memdup2() as g_memdup() is deprecated
+         - atom nodes/bytereader sizes are already checked
+         - palettes: are fixed/known size
+         g_memdup() is deprecated since GLib 2.68 and we want to avoid
+         deprecation warnings with recent versions of GLib.
+         Also use gst_buffer_new_memdup() instead of _wrapped(g_memdup(),..).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/993>
+
+2021-05-23 01:28:11 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/matroska/ebml-read.c:
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-ids.c:
+       * gst/matroska/matroska-read-common.c:
+         matroskademux: use g_memdup2() as g_memdup() is deprecated
+         - ebml-read: add some sanity checks when going from 64-bit
+         to 32-bit length
+         - matroska-ids: codec_data_size has been checked via
+         gst_ebml_read_binary(), is existing allocation.
+         - matroska-demux: alloc size is from existing allocations
+         g_memdup() is deprecated since GLib 2.68 and we want to avoid
+         deprecation warnings with recent versions of GLib.
+         Also use gst_buffer_new_memdup() instead of _wrapped(g_memdup(),..).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/993>
+
+2021-05-22 19:39:32 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * ext/libpng/gstpngdec.c:
+       * ext/vpx/gstvpxenc.c:
+       * ext/wavpack/gstwavpackenc.c:
+       * meson.build:
+       * tests/check/elements/rtp-payloading.c:
+       * tests/check/elements/rtph264.c:
+       * tests/check/elements/rtph265.c:
+       * tests/check/elements/rtpopus.c:
+       * tests/check/elements/rtpvp8.c:
+       * tests/check/elements/rtpvp9.c:
+       * tests/icles/gdkpixbufoverlay-test.c:
+         Use g_memdup2() where available and add fallback for older GLib versions
+         - png: alloc size variable is a png type that's always 32-bit
+         - vpx: alloc size based on existing allocation
+         - wavpack: alloc size based on existing allocation
+         - icles: gdkpixbufoverlay: trusted and hard-coded input data
+         - rtp tests: rtp-payloading, vp8, vp9, h264, h265: trusted and/or static input data
+         g_memdup() is deprecated since GLib 2.68 and we want to avoid
+         deprecation warnings with recent versions of GLib.
+         Also use gst_buffer_new_memdup() instead of _wrapped(g_memdup(),..)
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/993>
+
+2021-06-01 15:28:36 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * meson.build:
+         Back to development
+
+=== release 1.19.1 ===
+
+2021-06-01 00:11:44 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+       * NEWS:
+       * README:
+       * RELEASE:
+       * docs/gst_plugins_cache.json:
+       * gst-plugins-good.doap:
+       * meson.build:
+         Release 1.19.1
+
+2021-05-29 12:54:22 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/rtp/gstrtpjpegpay.c:
+         rtpjpegpay: fix image corruption when compiled with MSVC on Windows
+         On Windows with MSVC, jpeg_header_size would end up 2 bytes larger
+         than it should be. This then leads to the first 2 bytes of the
+         actual jpeg image data to be dropped, because we think those
+         belong to the header, which results in an undecodable image when
+         reconstructed in the depayloader.
+         What happens is that when the compiler evaluates
+         jpeg_header_size = mem.offset + read_u16_and_inc_offset_by_2(&mem);
+         it actually uses the mem.offset value after it has been increased
+         by the function call on the right hand size of the equation.
+         From section 6.5 of the C99 spec:
+         3. The grouping of operators and operands is indicated by the syntax [74].
+         Except as specified later (for the function-call (), &&, ||, ?:, and
+         comma operators), the order of evaluation of subexpressions and the
+         order in which side effects take place are both unspecified.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/889
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/999>
+
+2021-05-25 16:19:20 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2videoenc.c:
+         v4l2videoenc: Set default latency if the frame duration is invalid
+         If the duration of the v4l2object is invalid, use default 25fps instead.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/996>
+
+2021-05-26 00:23:56 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+         deinterlace: Drop "field-order" field while transforming caps
+         Like other basetransform subclasses are doing, drop field
+         which can be converted by deinterlace.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/997>
+
+2021-05-25 20:10:34 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+         deinterlace: Drop field-order field if outputting progressive
+         Progressive with field-order doesn't make sense
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/997>
+
+2021-05-21 14:19:29 +0200  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/gstrtpssrcdemux.c:
+       * tests/check/elements/rtpssrcdemux.c:
+         rtpssrcdemux: fix "data flow before segment event" crash
+         This crash could happen at any time a RTP and RTCP buffer arrived
+         simultaneously in ssrcdemux.
+         The problem was that sticky-event arriving while the rtp and rtcp pads
+         were being set up could arrive just too late to be included in the initial
+         forwarding.
+         The fix checks if the stickies have been sent on the srcpad about to be
+         pushed on, and if not sends them. It also blocks any stickes from
+         being forwarded *prior* to this happening, to avoid them arriving on
+         the srcpad multiple times.
+         Since the test loops 1000 times, this will make running under valgrind
+         take forever, so use the RUNNING_ON_VALGRIND variable to detect we
+         are running under valgrind, and reduce the loop-count to 2 in that case.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/992>
+
+2021-05-21 18:45:17 +0200  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/gstrtpssrcdemux.c:
+         rtpssrcdemux: refactor destruction of GstRtpSsrcDemuxPads
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/992>
+
+2021-05-21 18:30:28 +0200  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/gstrtpssrcdemux.c:
+       * gst/rtpmanager/gstrtpssrcdemux.h:
+         rtpssrcdemux: make naming consistent
+         Use plural for GstRtpSsrcDemuxPads, since it contains two pads, and
+         use the variable-name 'dpads' everywhere.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/992>
+
+2021-05-23 15:14:11 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/wavparse/gstwavparse.c:
+         wavparse: use g_strndup() for copying text data
+         So we don't rely on NUL terminators inside the data.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/994>
+
+2021-05-23 13:29:07 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/wavparse/gstwavparse.c:
+         wavparse: clean up adtl/note/labl chunk parsing
+         We were passing the size of the adtl chunk to the note/labl
+         sub-chunk parsing function, which means we may memdup lots of
+         data after the chunk string's NUL terminator that doesn't
+         really belong to it.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/994>
+
+2021-05-23 13:24:21 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/wavparse/gstwavparse.c:
+         wavparse: guard against overflow when comparing chunk sizes
+         Could be rewritten as lsize > (size - 8) a well, but the
+         extra check seems clearer. Doesn't look like it was problematic,
+         lsize wasn't actually used when parsing the sub-chunks.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/994>
+
+2021-05-21 13:31:12 -0300  Daniel Almeida <daniel.almeida@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+         doc: update gst_plugins_cache.json
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/991>
+
+2021-05-05 13:20:04 +0200  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/matroska/matroska-demux.c:
+         matroskademux: fix decoder glitches with H264 content
+         To avoid decoder starvation causing glitches on screen,
+         the demuxer shall clip only when the buffer is a key frame
+         and the lace time is greater than the stop time.
+         Fixes gst-editing-services#128
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/973>
+
+2021-05-11 20:41:38 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqtoverlay.cc:
+         qml: don't use buffers that have invalid contents
+         If the GL context is not shareable, ignore it.
+         A future change may also not output the relevant output either.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/983>
+
+2021-05-11 20:38:52 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqsgtexture.cc:
+         qml: also use the dummy texture when no buffer has been set
+         Fixes corrupted texture output when changing OpenGL display/contexts.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/983>
+
+2021-05-11 17:20:00 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+         doc: Update cache for RGBP format addition
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/968>
+
+2021-04-23 14:37:46 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-ids.c:
+       * gst/matroska/matroska-ids.h:
+         matroskademux: Advertise codec-alpha in caps
+         This will be used to select the appropriate decoders. We also only attach the
+         GstVideoCodecAlphaMeta if the AlphaMode element is set, this is to stay on the
+         safe side and mimic what browsers (verified in Firefox and Chromium code) do.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/968>
+
+2021-03-22 16:58:26 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/matroska/matroska-demux.c:
+         matroskademux: Store alpha stream in VideoCodecAlphaMeta
+         This generalize the feature over using mini object quark data. If
+         that feature was Matroska specifc, using the new CustomMeta would have
+         been enough and arguably cleaner then QData, though it seems that
+         similar technique is use with AV1 Image Format (AVIF).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/968>
+
+2016-12-03 14:27:57 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/matroska/matroska-demux.c:
+         matroska-demux: extract VP8 alpha from BlockAdditionals
+         And put it on buffers as qdata (which is easier in this
+         case than a private custom meta because it can be picked
+         up easily in other modules).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/968>
+
+2021-05-03 17:39:05 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqtglutility.cc:
+       * ext/qt/gstqtglutility.h:
+       * ext/qt/gstqtoverlay.cc:
+       * ext/qt/qtitem.cc:
+       * ext/qt/qtwindow.cc:
+         qt: return a different GstGLDisplay object when the first sink requests
+         This allows the 'replace-gstreamer-opengl-context' context machinery to
+         correctly replace the OpenGL context used by the pipeline when the first
+         qmlglsink is added to the pipeline.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/982>
+
+2021-05-07 11:16:47 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/udp/gstudpsrc.c:
+         udpsrc: Plug leaks of saddr in error cases
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/977>
+
+2021-05-07 11:16:21 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/udp/gstudpsrc.c:
+         udpsrc: Whitespace
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/977>
+
+2021-05-07 00:43:44 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+         deinterlace: Plug a method subobject leak
+         Changing the method would leak the previous method.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/976>
+
+2021-05-06 15:04:42 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * ext/vpx/gstvp9enc.c:
+         vp9enc: Add color range support
+         When setting the colorspace, we now clear the range to reduced range,
+         the default, and then we also set the range so the VP9 encoder encodes
+         the right information in the bitstream.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/975>
+
+2021-05-06 14:51:31 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * ext/vpx/gstvp9enc.c:
+       * ext/vpx/gstvpxenc.c:
+         vp9enc: Move colorspace configuration in VP9 enc
+         This is not supported by VP8 and was causing a warning.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/975>
+
+2021-05-06 14:48:36 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * ext/vpx/gstvp9enc.c:
+       * ext/vpx/gstvpxenc.c:
+       * ext/vpx/gstvpxenc.h:
+         vpxdenc: Add a GstVideoCodecState to configure_encoder virtual
+         This will be needed to configure the VP9 specific colorimetry, which is
+         currently configured for VP8 casing warning.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/975>
+
+2021-05-05 16:48:10 +0200  Bastien Nocera <hadess@hadess.net>
+
+       * ext/gtk/gtkgstbasewidget.c:
+         gtk: Remove coordinates double-translation
+         Remove our own translation in the mouse event capture code, as that
+         translation will be done through the navigation interface.
+         Tested by resizing the window created by:
+         gst-launch-1.0 -v videotestsrc ! navigationtest ! glupload ! glcolorconvert ! tee name=t  ! gtkglsink
+         and checking that the cursor follows the mouse as expected.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/974>
+
+2021-05-05 14:28:15 +0200  Bastien Nocera <hadess@hadess.net>
+
+       * ext/gtk/gstgtkbasesink.c:
+         gtk: Translate navigation events coordinates
+         If the application passed down some pointer coordinates, translate those
+         from display coordinates to stream coordinates, so things work as
+         expected even if the video is resized.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/974>
+
+2021-05-05 14:24:31 +0200  Bastien Nocera <hadess@hadess.net>
+
+       * ext/gtk/gtkgstbasewidget.c:
+       * ext/gtk/gtkgstbasewidget.h:
+         gtk: Export _display_size_to_stream_size()
+         Export _display_size_to_stream_size() so that GstNavigation implementors
+         can translate from display coordinates to stream coordinates before
+         pushing the events upstream to the DVD source, for example.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/974>
+
+2018-02-26 17:26:41 +0100  David Fernandez <d.fernandezlop@gmail.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/matroska/matroska-mux.c:
+         matroska-mux: Change accepted caps width and height from [16, MAX] to [1, MAX]
+         There are cases where the video size might be less than 16x16.
+         This change allows the Matroska muxer to accept this cases.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/539>
+
+2021-04-20 22:08:23 +0200  François Laignel <fengalin@free.fr>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtsp/gstrtspsrc.c:
+       * tests/check/elements/avimux.c:
+       * tests/check/elements/flvmux.c:
+       * tests/check/elements/interleave.c:
+       * tests/check/elements/qtmux.c:
+       * tests/check/elements/rtpbin.c:
+       * tests/check/elements/rtpcollision.c:
+       * tests/check/elements/rtpmux.c:
+       * tests/check/elements/splitmuxsink.c:
+       * tests/check/elements/videomixer.c:
+       * tests/examples/rtp/client-PCMA.c:
+       * tests/examples/rtp/server-alsasrc-PCMA.c:
+         Use gst_element_request_pad_simple
+         Instead of the deprecated gst_element_get_request_pad.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/958>
+
+2021-04-30 08:12:47 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/isomp4/atoms.c:
+       * gst/isomp4/atoms.h:
+         qtmux: Make sure to write 64-bit STCO table when needed.
+         qtmux attempts to choose between writing a 32-bit stco chunk offset table
+         when it can, but switch to a 64-bit co64 table when file offsets go over
+         4GB.
+         This patch fixes a problem where the atom handling code was checking
+         mdat-relative offsets instead of the final file offset (computed by
+         adding the mdat position plus the mdat-relative offset) - leading to
+         problems where files with a size between 4GB and 4GB+offset-of-the-mdat
+         would write incorrect STCO tables with some samples having truncated
+         32-bit offsets.
+         Smaller files write STCO correctly, larger files would switch to
+         co64 and also output correctly.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/970>
+
+2021-04-22 15:01:32 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: Add interlace-mode back to caps for camera
+         skip_try_fmt_probes is set to TRUE for v4l2src to skip interlace-mode and
+         colorimetry when probe caps. gst_v4l2_object_set_format_full() will add
+         colorimetry back to caps when iterating over the negotiated caps. There is
+         one case that v4l2src is first in preview state then starts recording.
+         v4l2src caps will change with an additional interlace-mode structure after
+         renegotiation, then v4l2src needs to reset. But this camera driver can't
+         orphan buffer pool, it causes require buffer failed as streaming is still
+         in active state.
+         To fix this, also need to add interlace-mode back to caps for camera to
+         avoid reset.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/961>
+
+2021-04-02 18:41:28 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * gst/rtp/gstrtpopuspay.c:
+       * gst/rtp/gstrtpopuspay.h:
+       * tests/check/elements/rtp-payloading.c:
+         rtpopuspay: set MARKER flag
+         Set MARKER flag on first buffer after DTX.
+         According to RFC 3551 section 4.1 the marker bit needs to be set on
+         "the first packet after a silence period during which packets have
+         not been transmitted contiguously".
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/967>
+
+2021-03-31 11:18:30 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtp/gstrtpopuspay.c:
+       * gst/rtp/gstrtpopuspay.h:
+       * tests/check/elements/rtp-payloading.c:
+         rtpopuspay: add DTX support
+         If enabled, the payloader won't transmit empty frames.
+         Can be tested using:
+         opusenc dtx=true bitrate-type=vbr ! rtpopuspay dtx=true
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/967>
+
+2021-04-24 11:15:50 -0400  Doug Nazar <nazard@nazar.ca>
+
+       * ext/taglib/gstid3v2mux.cc:
+         taglib: Update createFrame() to non-deprecated version.
+         ID3v2::FrameFactory::createFrame() versions not taking a Header have
+         been deprecated since v1.5 (Jan 2008).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/965>
+
+2021-04-25 02:16:45 +0200  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: fix divide-by-zero
+         The estimated packet-duration can sometimes end up as zero, and dividing
+         by that is never a good idea...
+         The test reproduces the scenario, and the fix is easy.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/966>
+
+2020-06-02 19:38:33 +0200  Havard Graff <havard@pexip.com>
+
+         rtpjitterbuffer: clean up and improve missing packets handling
+         * Try to make variable and function names more clear.
+         * Add plenty of comments describing the logic step-by-step.
+         * Improve the logging around this, making the logs easier to read and
+         understand when debugging these issues.
+         * Revise the logic of packets that are actually beyond saving in doing
+         the following:
+         1. Do an optimistic estimation of which packets can still arrive.
+         2. Based on this, find which packets (and duration) are now hopelessly
+         lost.
+         3. Issue an immediate lost-event for the hopelessly lost and then add
+         lost/rtx timers for the ones we still hope to save, meaning that if
+         they are to arrive, they will not be discarded.
+         * Revise the use of rtx-delay:
+         Earlier the rtx-delay would vary, depending on the pts of the latest
+         packet and the estimated pts of the packet it being issued a RTX for,
+         but now that we aim to estimate the PTS of the missing packet accurately,
+         the RTX delay should remain the same for all packets.
+         Meaning: If the packet have a PTS of X, the delay in asked for a RTX
+         for this packet is always a constant X + delay, not a variable one.
+         * Finally ensure that the chaotic "check-for-stall" tests uses timestamps
+         that starts from 0 to make them easier to debug.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/952>
+
+2021-04-23 12:07:52 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * gst/level/gstlevel.c:
+       * gst/level/gstlevel.h:
+         level: make properties thread-safe
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/962>
+
+2021-04-22 14:11:09 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * gst/level/gstlevel.c:
+         level: disable passthrough when audio-level-meta is enabled
+         Ensure we receive a writable buffer to add the meta.
+         Fix #878
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/962>
+
+2021-04-23 08:28:06 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroskamux: Don't pass a non-GObject pointer to GST_DEBUG_OBJECT and similar
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/964>
+
+2021-04-22 08:57:23 +0200  Edward Hervey <edward@centricular.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Avoid generation of invalid timestamps
+         When updating timestamps and timer timeouts with a new offset, make sure that
+         the resulting value is valid (and not a negative (signed) value which ends up in
+         a massive (unsigned) value).
+         Fixes #571
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/960>
+
+2021-04-21 18:41:08 +0100  Philippe Normand <philn@igalia.com>
+
+       * sys/v4l2/v4l2_calls.c:
+         v4l2: Fix glib warning emitted when attribute query fails
+         The v4l2object is not a GstObject. Logging has to go through its dbg_obj
+         specially meant for this.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/959>
+
+2021-03-25 13:20:38 +0100  VaL Doroshchuk <valentyn.doroshchuk@qt.io>
+
+       * ext/qt/gstqtoverlay.cc:
+       * tests/examples/qt/qmloverlay/overlay.py:
+         qmloverlay: Use first found GstGLVideoItem as widget property
+         GstGLVideoItem is required to render input video in the overlay's qml.
+         And currently qmlgloverlay requires to set this GstGLVideoItem to its widget property.
+         Instead of fetching GstGLVideoItem from the overlay's root object (root-item prop),
+         and setting it back as a widget (widget prop),
+         proposing to use found GstGLVideoItem in the current object hierarchy (passed in qml-scene) by default.
+         Also useful in Python, which solves the issue when casting gpointer <=> QQuickItem* is required.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/919>
+
+2021-04-19 16:39:03 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/v4l2/gstv4l2.c:
+         v4l2: fix debug category initialisation again
+         Would spew warnings on the rpi4 when calling into
+         gst_v4l2_object_get_codec_caps() from the probe_and_register()
+         function since the v4l2_debug category initialisation would
+         only be done later as part of the element/device provider
+         registration.
+         Also log things in the probe function to the v4l2 category
+         instead of the default category while we're at it.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/956>
+
+2021-04-19 01:29:33 -0400  Doug Nazar <nazard@nazar.ca>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Fix race saving seek event seqnum.
+         We need to save the seek seqnum before the flush stop event
+         since that will start the basesrc task which may send the segment
+         event before we're ready.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/954>
+
+2021-03-31 10:52:14 +0200  Marco Felsch <m.felsch@pengutronix.de>
+
+       * ext/qt/qtitem.cc:
+       * ext/qt/qtitem.h:
+         qmlglsink: allow to set force-aspect-ratio property
+         Add the forceAspectRatio Q_PROPERTY to allow changing the aspect ratio
+         from QML code as well.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/937>
+
+2021-04-19 11:14:00 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/v4l2/v4l2_calls.c:
+         v4l2src: fix spurious SOURCE_CHANGED error-level log messages
+         They're harmless, and some drivers at least return EINVAL
+         instead of ENOTTY for unsupported events (here: uvcvideo).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/955>
+
+2021-04-14 16:32:06 -0400  Doug Nazar <nazard@nazar.ca>
+
+       * gst/rtp/gstrtpsbcpay.c:
+         rtpsbcpay: remove use of packed struct for payload
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/950>
+
+2021-04-14 11:13:45 -0400  Doug Nazar <nazard@nazar.ca>
+
+       * gst/dtmf/gstdtmfcommon.h:
+       * gst/dtmf/gstrtpdtmfdepay.c:
+       * gst/dtmf/gstrtpdtmfsrc.c:
+         dtmf: convert to bit accessors
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/949>
+
+2021-04-13 09:23:12 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Remove some dead code
+         stop is not used after this point, nor do we create a new segment
+         here since 84725d62b57bc74ce34abde755f35bf8f948f94d
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/940>
+
+2021-04-10 02:53:51 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Do not overwrite the known duration after a seek
+         This breaks the duration query and also the seeking query.
+         Broke in 5f1a732bc7b76a6f1b8aa5f26b6e76fbca0261c7
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/940>
+
+2021-04-10 04:40:46 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Just assign the segment instead of memcpy
+         Assignments copy by value, we don't need to memcpy...
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/940>
+
+2021-04-13 11:30:51 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Check srcresult before waiting on the condition variable too
+         It might've been set to FLUSHING between the last check and the waiting,
+         and in that case we'd be waiting here forever now.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/944>
+
+2021-04-12 23:15:17 -0400  Doug Nazar <nazard@nazar.ca>
+
+       * tests/check/elements/rtpsession.c:
+         rtp: fix test_twcc_header_and_run to support big endian.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/942>
+
+2021-04-12 23:13:15 -0400  Doug Nazar <nazard@nazar.ca>
+
+       * gst/rtpmanager/rtptwcc.c:
+         rtp: fix rtptwcc to support big endian.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/942>
+
+2021-04-12 21:59:45 -0400  Doug Nazar <nazard@nazar.ca>
+
+       * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+         rtp: fix rtphdrextrfc6464 to support big endian.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/942>
+
+2021-04-12 21:36:58 -0400  Doug Nazar <nazard@nazar.ca>
+
+       * tests/check/elements/alpha.c:
+         tests: Fix alpha test on big endian machines.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/943>
+
+2021-03-19 02:51:20 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/gstqtmux.h:
+         qtmux: Protect against writing absurd sample durations
+         If the input DTS goes backward or is missing, the calculated
+         sample duration goes negative and wraps around to a very big
+         number. In that case, just write a sample with a duration of
+         0 and hope the problem is transient.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/914>
+
+2021-04-10 03:09:44 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: De-dup seek event seqnums to avoid multiple seeks
+         Seek events are sent upstream on each sink, so if we receive multiple
+         seeks with the same seqnum, we must only perform one seek, not N seeks
+         where N = the number of sinks in the pipeline connected to rtspsrc.
+         This is the same thing done by demuxers like qtdemux or matrsokademux.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/938>
+
+2021-04-10 01:55:28 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Using multicast UDP has no relation to seekability
+         The transport has no relation to whether a media can be seeked. The
+         range response having a duration is the correct thing to check for.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/939>
+
+2021-04-10 01:54:48 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Add more logging for range parsing and seekable
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/939>
+
+2021-04-10 14:47:23 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+         videocrop: Update documentation cache
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/515>
+
+2021-04-07 21:57:11 +0200  Markus Ebner <info@ebner-markus.de>
+
+       * gst/videocrop/gstvideocrop-private.h:
+       * gst/videocrop/gstvideocrop.c:
+       * gst/videocrop/gstvideocrop.h:
+         videocrop: Add support for GBR* video formats
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/515>
+
+2021-04-07 18:54:49 +0200  Markus Ebner <info@ebner-markus.de>
+
+       * gst/videocrop/gstvideocrop-private.h:
+       * gst/videocrop/gstvideocrop.c:
+       * gst/videocrop/gstvideocrop.h:
+         videocrop: Added support for planar pixel formats > 8bits
+         - Added support for planar pixel formats with depths greater than 8bits
+         to transform_planar implementation
+         - Added a whole lot of new pixel formats to the support-list
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/515>
+
+2021-04-07 17:52:34 +0200  Markus Ebner <info@ebner-markus.de>
+
+       * gst/videocrop/gstaspectratiocrop.c:
+       * gst/videocrop/gstvideocrop-private.h:
+       * gst/videocrop/gstvideocrop.c:
+         videocrop: Move supported format list into private header
+         - Moved declaration of supported pixel formats to private header, which
+         can be shared between videocrop and aspectvideocrop
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/515>
+
+2021-04-06 17:02:34 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtpmanager/rtpjitterbuffer.c:
+         rtpjitterbuffer: More logging when calculating rfc7273 timestamps
+         This code can be fragile, since it is very exacting in the timestamps
+         that it will accept. Add more logging so it's easier to debug issues
+         and figure out whether it's a bug in the calculation or something
+         wrong in the incoming buffers.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/934>
+
+2021-04-08 13:29:10 +0200  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/rtp/gstrtph264depay.c:
+       * gst/rtp/gstrtph265depay.c:
+       * gst/rtp/gstrtpsv3vdepay.c:
+         rtp: missing debug init after element splitting
+         - h264depay
+         - h265depay
+         - sv3vdepay
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/936>
+
+2020-03-30 09:29:07 +0200  Michal Dzik <michal.dzik@streamunlimited.com>
+
+       * gst/rtp/gstrtpsbcpay.c:
+         rtp: rename gst_rtp_sbc_pay_flush_buffers()
+         gst_rtp_sbc_pay_flush_buffers() is a misleading name. A better name would
+         be gst_rtp_sbc_pay_drain_buffers(), because that's what it does, it drains
+         any leftover queued data and pushes it downstream. "Flushing" in GStreamer
+         typically means to throw away any queued data and not process/push it
+         downstream.
+         Signed-off-by: Michal Dzik <michal.dzik@streamunlimited.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/700>
+
+2020-03-24 13:31:00 +0100  Michal Dzik <michal.dzik@streamunlimited.com>
+
+       * gst/rtp/gstrtpsbcpay.c:
+         rtp: fix adapter flushing in sbc payloader
+         GstAdapter must be flushed in some cases (flush, new segment, state change)
+         Without it, it may, for example, push some leftover buffer from old
+         segment in new segment. This, in general, breaks timestamps.
+         See GstAdapter documentation for more.
+         Signed-off-by: Michal Dzik <michal.dzik@streamunlimited.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/700>
+
+2020-08-18 20:16:06 +0200  Jakub Adam <jakub.adam@collabora.com>
+
+       * ext/vpx/gstvpxenc.c:
+         vpxenc: add colorspace information into VP9 bitstream
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/871>
+
+2021-03-26 16:26:22 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: Use default colorimetry if that in caps is unknown
+         Some streams have unknown colorimetry in caps, but v4l2object sets
+         default values for each primaries. It will cause check colorimetry
+         fail when do gst_v4l2_video_colorimetry_matches().
+         To fix this, need to keep the unknown colorimetry in caps same as
+         the default value set by v4l2object.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/923>
+
+2021-03-31 16:37:56 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/matroska/matroska-demux.c:
+         matroskademux: Take segment stop into account when need_segment
+         Otherwise, in the case of e.g. a deferred seek event, the segment stop
+         would be replaced with GST_CLOCK_TIME_NONE.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/929>
+
+2021-03-29 16:45:26 +0200  Val Doroshchuk <val@sevendof.com>
+
+       * ext/qt/gstqtoverlay.cc:
+       * ext/qt/gstqtoverlay.h:
+         gstqtoverlay: Add initialization and finalization to qml-scene prop
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/924>
+
+2021-03-31 10:21:59 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqtglutility.h:
+         qt: fix build warning with clang and c-linkage of user defined type
+         In file included from ../subprojects/gst-plugins-good/ext/qt/qtglrenderer.cc:17:
+         ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:35:16: error: 'qt_opengl_native_context_from_gst_gl_context' has C-linkage specified, but returns user-defined type 'QVariant' which is incompatible with C [-Werror,-Wreturn-type-c-linkage]
+         QVariant       qt_opengl_native_context_from_gst_gl_context     (GstGLContext * context);
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/928>
+
+2021-03-30 09:45:45 +0200  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/qt/gstqtelement.cc:
+       * ext/qt/gstqtelements.h:
+       * ext/qt/gstqtoverlay.cc:
+       * ext/qt/gstqtsink.cc:
+       * ext/qt/gstqtsrc.cc:
+         qt: hotfix: allow per feature registration
+         Fixes #869
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/925>
+
+2021-02-17 08:52:40 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/twolame/gsttwolamemp2enc.c:
+       * ext/twolame/gsttwolamemp2enc.h:
+         twolame: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:49:03 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/shout2/gstshout2.c:
+       * ext/shout2/gstshout2.h:
+         shout2: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:38:46 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/cairo/gstcairo.c:
+       * ext/cairo/gstcairooverlay.c:
+       * ext/cairo/gstcairooverlay.h:
+         cairo: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:34:34 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/y4m/gsty4mencode.c:
+       * gst/y4m/gsty4mencode.h:
+         y4m: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:32:26 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/wavparse/gstwavparse.c:
+       * gst/wavparse/gstwavparse.h:
+         wavparse: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:29:40 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/wavenc/gstwavenc.c:
+       * gst/wavenc/gstwavenc.h:
+         wavenc: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:27:24 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/spectrum/gstspectrum.c:
+       * gst/spectrum/gstspectrum.h:
+         spectrum: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:27:12 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/monoscope/gstmonoscope.c:
+       * gst/monoscope/gstmonoscope.h:
+         monoscope: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:22:47 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/imagefreeze/gstimagefreeze.c:
+       * gst/imagefreeze/gstimagefreeze.h:
+         imagefreeze: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:19:52 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/id3demux/gstid3demux.c:
+       * gst/id3demux/gstid3demux.h:
+         id3demux: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:16:33 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/icydemux/gsticydemux.c:
+       * gst/icydemux/gsticydemux.h:
+         icydemux: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:14:26 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/goom2k1/gstgoom.c:
+       * gst/goom2k1/gstgoom.h:
+         goom2k1: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:11:26 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/cutter/gstcutter.c:
+       * gst/cutter/gstcutter.h:
+         cutter: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:11:14 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/goom/gstgoom.c:
+       * gst/goom/gstgoom.h:
+         goom: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 17:10:33 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+       * gst/deinterlace/gstdeinterlace.h:
+         deinterlace: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 16:34:48 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * sys/oss4/gstoss4audioplugin.c:
+       * sys/oss4/meson.build:
+       * sys/oss4/oss4-audio.c:
+       * sys/oss4/oss4-audio.h:
+       * sys/oss4/oss4-sink.c:
+       * sys/oss4/oss4-sink.h:
+       * sys/oss4/oss4-source.c:
+       * sys/oss4/oss4-source.h:
+         oss4: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 16:11:36 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * sys/oss/gstossaudio.c:
+       * sys/oss/gstossaudioelement.c:
+       * sys/oss/gstossaudioelements.h:
+       * sys/oss/gstosssink.c:
+       * sys/oss/gstosssrc.c:
+       * sys/oss/meson.build:
+         oss: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 15:56:35 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/auparse/gstauparse.c:
+       * gst/auparse/gstauparse.h:
+         auparse: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 15:29:06 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * sys/v4l2/gstv4l2.c:
+       * sys/v4l2/gstv4l2deviceprovider.c:
+       * sys/v4l2/gstv4l2element.c:
+       * sys/v4l2/gstv4l2elements.h:
+       * sys/v4l2/gstv4l2radio.c:
+       * sys/v4l2/gstv4l2sink.c:
+       * sys/v4l2/gstv4l2src.c:
+       * sys/v4l2/meson.build:
+         v4l2: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 15:05:43 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/videofilter/gstgamma.c:
+       * gst/videofilter/gstgamma.h:
+       * gst/videofilter/gstvideobalance.c:
+       * gst/videofilter/gstvideobalance.h:
+       * gst/videofilter/gstvideoflip.c:
+       * gst/videofilter/gstvideoflip.h:
+       * gst/videofilter/gstvideomedian.c:
+       * gst/videofilter/gstvideomedian.h:
+       * gst/videofilter/plugin.c:
+         videofilter: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 14:58:57 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/videocrop/gstaspectratiocrop.c:
+       * gst/videocrop/gstvideocrop.c:
+       * gst/videocrop/gstvideocropelement.c:
+       * gst/videocrop/gstvideocropelements.h:
+       * gst/videocrop/gstvideocropplugin.c:
+       * gst/videocrop/meson.build:
+         videocrop: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 14:54:15 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/videobox/gstvideobox.c:
+       * gst/videobox/gstvideobox.h:
+         videobox: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 14:49:56 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/udp/gstdynudpsink.c:
+       * gst/udp/gstmultiudpsink.c:
+       * gst/udp/gstudp.c:
+       * gst/udp/gstudpelement.c:
+       * gst/udp/gstudpelements.h:
+       * gst/udp/gstudpsink.c:
+       * gst/udp/gstudpsrc.c:
+       * gst/udp/meson.build:
+         udp: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 14:43:32 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/smpte/gstsmpte.c:
+       * gst/smpte/gstsmpte.h:
+       * gst/smpte/gstsmptealpha.c:
+       * gst/smpte/gstsmptealpha.h:
+       * gst/smpte/plugin.c:
+         smpte: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 14:38:37 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/shapewipe/gstshapewipe.c:
+       * gst/shapewipe/gstshapewipe.h:
+         shapewipe: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 14:35:51 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/rtsp/gstrtpdec.c:
+       * gst/rtsp/gstrtsp.c:
+       * gst/rtsp/gstrtspelement.c:
+       * gst/rtsp/gstrtspelements.h:
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/rtsp/meson.build:
+         rtsp: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 14:24:33 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpbin.h:
+       * gst/rtpmanager/gstrtpdtmfmux.c:
+       * gst/rtpmanager/gstrtpdtmfmux.h:
+       * gst/rtpmanager/gstrtpfunnel.c:
+       * gst/rtpmanager/gstrtpfunnel.h:
+       * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+       * gst/rtpmanager/gstrtphdrext-rfc6464.h:
+       * gst/rtpmanager/gstrtphdrext-twcc.c:
+       * gst/rtpmanager/gstrtphdrext-twcc.h:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/gstrtpjitterbuffer.h:
+       * gst/rtpmanager/gstrtpmanager.c:
+       * gst/rtpmanager/gstrtpmux.c:
+       * gst/rtpmanager/gstrtpmux.h:
+       * gst/rtpmanager/gstrtpptdemux.c:
+       * gst/rtpmanager/gstrtpptdemux.h:
+       * gst/rtpmanager/gstrtprtxqueue.c:
+       * gst/rtpmanager/gstrtprtxqueue.h:
+       * gst/rtpmanager/gstrtprtxreceive.c:
+       * gst/rtpmanager/gstrtprtxreceive.h:
+       * gst/rtpmanager/gstrtprtxsend.c:
+       * gst/rtpmanager/gstrtprtxsend.h:
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/rtpmanager/gstrtpsession.h:
+       * gst/rtpmanager/gstrtpssrcdemux.c:
+       * gst/rtpmanager/gstrtpssrcdemux.h:
+       * gst/rtpmanager/gstrtpst2022-1-fecdec.c:
+       * gst/rtpmanager/gstrtpst2022-1-fecdec.h:
+       * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+       * gst/rtpmanager/gstrtpst2022-1-fecenc.h:
+         rtpmanager: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 13:49:15 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/replaygain/gstrganalysis.c:
+       * gst/replaygain/gstrglimiter.c:
+       * gst/replaygain/gstrglimiter.h:
+       * gst/replaygain/gstrgvolume.c:
+       * gst/replaygain/gstrgvolume.h:
+       * gst/replaygain/replaygain.c:
+       * gst/replaygain/rganalysis.h:
+         replaygain: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 13:43:44 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/multipart/multipart.c:
+       * gst/multipart/multipartdemux.c:
+       * gst/multipart/multipartdemux.h:
+       * gst/multipart/multipartmux.c:
+       * gst/multipart/multipartmux.h:
+         multipart: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 12:04:26 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/multifile/gstimagesequencesrc.c:
+       * gst/multifile/gstimagesequencesrc.h:
+       * gst/multifile/gstmultifile.c:
+       * gst/multifile/gstmultifilesink.c:
+       * gst/multifile/gstmultifilesink.h:
+       * gst/multifile/gstmultifilesrc.c:
+       * gst/multifile/gstmultifilesrc.h:
+       * gst/multifile/gstsplitfilesrc.c:
+       * gst/multifile/gstsplitfilesrc.h:
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+       * gst/multifile/gstsplitmuxsrc.c:
+       * gst/multifile/gstsplitmuxsrc.h:
+         multifile: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 11:14:17 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/matroska/gstmatroskaelement.c:
+       * gst/matroska/gstmatroskaelements.h:
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-demux.h:
+       * gst/matroska/matroska-mux.c:
+       * gst/matroska/matroska-parse.c:
+       * gst/matroska/matroska-parse.h:
+       * gst/matroska/matroska.c:
+       * gst/matroska/meson.build:
+       * gst/matroska/webm-mux.c:
+         matroska: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 10:59:34 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/level/gstlevel.c:
+       * gst/level/gstlevel.h:
+         level: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 10:57:58 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/law/alaw-decode.c:
+       * gst/law/alaw-decode.h:
+       * gst/law/alaw-encode.c:
+       * gst/law/alaw-encode.h:
+       * gst/law/alaw.c:
+       * gst/law/mulaw-decode.c:
+       * gst/law/mulaw-decode.h:
+       * gst/law/mulaw-encode.c:
+       * gst/law/mulaw-encode.h:
+       * gst/law/mulaw.c:
+         law: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 10:26:40 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/isomp4/gstisomp4element.c:
+       * gst/isomp4/gstisomp4elements.h:
+       * gst/isomp4/gstqtmoovrecover.c:
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/gstrtpxqtdepay.c:
+       * gst/isomp4/isomp4-plugin.c:
+       * gst/isomp4/meson.build:
+       * gst/isomp4/qtdemux.c:
+         isomp4: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 09:57:27 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/interleave/deinterleave.c:
+       * gst/interleave/gstinterleaveelements.h:
+       * gst/interleave/interleave.c:
+       * gst/interleave/plugin.c:
+         interleave: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-16 09:51:16 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/flx/gstflxdec.c:
+       * gst/flx/gstflxdec.h:
+         flx: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 17:37:09 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/flv/gstflvdemux.c:
+       * gst/flv/gstflvelement.c:
+       * gst/flv/gstflvelements.h:
+       * gst/flv/gstflvmux.c:
+       * gst/flv/gstflvplugin.c:
+       * gst/flv/meson.build:
+         flv: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 17:27:51 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/equalizer/gstiirequalizer.c:
+       * gst/equalizer/gstiirequalizer.h:
+       * gst/equalizer/gstiirequalizer10bands.c:
+       * gst/equalizer/gstiirequalizer3bands.c:
+       * gst/equalizer/gstiirequalizernbands.c:
+       * gst/equalizer/gstiirequalizerplugin.c:
+       * gst/equalizer/meson.build:
+         equalizer: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 15:37:52 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/effectv/gstaging.c:
+       * gst/effectv/gstdice.c:
+       * gst/effectv/gstedge.c:
+       * gst/effectv/gsteffectv.c:
+       * gst/effectv/gsteffectv.h:
+       * gst/effectv/gstop.c:
+       * gst/effectv/gstquark.c:
+       * gst/effectv/gstradioac.c:
+       * gst/effectv/gstrev.c:
+       * gst/effectv/gstripple.c:
+       * gst/effectv/gstshagadelic.c:
+       * gst/effectv/gststreak.c:
+       * gst/effectv/gstvertigo.c:
+       * gst/effectv/gstwarp.c:
+         effectv: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 15:03:10 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/dtmf/gstdtmf.c:
+       * gst/dtmf/gstdtmfsrc.c:
+       * gst/dtmf/gstdtmfsrc.h:
+       * gst/dtmf/gstrtpdtmfdepay.c:
+       * gst/dtmf/gstrtpdtmfdepay.h:
+       * gst/dtmf/gstrtpdtmfsrc.c:
+       * gst/dtmf/gstrtpdtmfsrc.h:
+         dtmf: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 14:55:15 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/debugutils/breakmydata.c:
+       * gst/debugutils/cpureport.c:
+       * gst/debugutils/gstcapsdebug.c:
+       * gst/debugutils/gstcapssetter.c:
+       * gst/debugutils/gstdebug.c:
+       * gst/debugutils/gstdebugutilselements.h:
+       * gst/debugutils/gstnavigationtest.c:
+       * gst/debugutils/gstnavigationtest.h:
+       * gst/debugutils/gstnavseek.c:
+       * gst/debugutils/gstpushfilesrc.c:
+       * gst/debugutils/gsttaginject.c:
+       * gst/debugutils/progressreport.c:
+       * gst/debugutils/rndbuffersize.c:
+       * gst/debugutils/testplugin.c:
+         debugutils: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 13:38:21 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/avi/gstavi.c:
+       * gst/avi/gstavidemux.c:
+       * gst/avi/gstavielement.c:
+       * gst/avi/gstavielements.h:
+       * gst/avi/gstavimux.c:
+       * gst/avi/gstavisubtitle.c:
+       * gst/avi/meson.build:
+         avi: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 13:02:59 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/autodetect/gstautoaudiosink.c:
+       * gst/autodetect/gstautoaudiosrc.c:
+       * gst/autodetect/gstautodetect.c:
+       * gst/autodetect/gstautodetect.h:
+       * gst/autodetect/gstautodetectelement.c:
+       * gst/autodetect/gstautodetectelements.h:
+       * gst/autodetect/gstautodetectplugin.c:
+       * gst/autodetect/gstautovideosink.c:
+       * gst/autodetect/gstautovideosrc.c:
+       * gst/autodetect/meson.build:
+         autodetect: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 13:00:38 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/audioparsers/gstaacparse.c:
+       * gst/audioparsers/gstac3parse.c:
+       * gst/audioparsers/gstamrparse.c:
+       * gst/audioparsers/gstaudioparserselements.h:
+       * gst/audioparsers/gstdcaparse.c:
+       * gst/audioparsers/gstflacparse.c:
+       * gst/audioparsers/gstmpegaudioparse.c:
+       * gst/audioparsers/gstsbcparse.c:
+       * gst/audioparsers/gstwavpackparse.c:
+       * gst/audioparsers/plugin.c:
+         audioparsers: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 12:44:31 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/apetag/gstapedemux.c:
+       * gst/apetag/gstapedemux.h:
+         apetag: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-15 11:00:46 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/vpx/gstvp8dec.c:
+       * ext/vpx/gstvp8enc.c:
+       * ext/vpx/gstvp9dec.c:
+       * ext/vpx/gstvp9enc.c:
+       * ext/vpx/gstvpxelement.c:
+       * ext/vpx/gstvpxelements.h:
+       * ext/vpx/meson.build:
+       * ext/vpx/plugin.c:
+         vpx: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 17:26:36 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/taglib/gstapev2mux.cc:
+       * ext/taglib/gstid3v2mux.cc:
+       * ext/taglib/gsttaglibelement.c:
+       * ext/taglib/gsttaglibelements.h:
+       * ext/taglib/gsttaglibplugin.c:
+       * ext/taglib/meson.build:
+         taglib: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 17:09:19 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/qt/gstplugin.cc:
+       * ext/qt/gstqtelement.cc:
+       * ext/qt/gstqtelements.h:
+       * ext/qt/gstqtoverlay.cc:
+       * ext/qt/gstqtsink.cc:
+       * ext/qt/gstqtsrc.cc:
+       * ext/qt/meson.build:
+       * ext/qt/qtplugin.pro:
+         qt: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 16:09:53 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/speex/gstspeex.c:
+       * ext/speex/gstspeexdec.c:
+       * ext/speex/gstspeexelement.c:
+       * ext/speex/gstspeexelements.h:
+       * ext/speex/gstspeexenc.c:
+       * ext/speex/meson.build:
+         speex: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 16:04:16 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/soup/gstsoup.c:
+       * ext/soup/gstsoupelement.c:
+       * ext/soup/gstsoupelements.h:
+       * ext/soup/gstsouphttpclientsink.c:
+       * ext/soup/gstsouphttpsrc.c:
+       * ext/soup/meson.build:
+         soup: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 15:53:19 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/raw1394/gst1394.c:
+       * ext/raw1394/gstdv1394src.c:
+       * ext/raw1394/gstdv1394src.h:
+       * ext/raw1394/gsthdv1394src.c:
+       * ext/raw1394/gsthdv1394src.h:
+         raw1394: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 15:47:46 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/wavpack/gstwavpack.c:
+       * ext/wavpack/gstwavpackdec.c:
+       * ext/wavpack/gstwavpackelement.c:
+       * ext/wavpack/gstwavpackelements.h:
+       * ext/wavpack/gstwavpackenc.c:
+       * ext/wavpack/meson.build:
+         wavpack: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 15:35:11 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/alpha/gstalpha.c:
+       * gst/alpha/gstalpha.h:
+         alpha: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 15:27:31 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/audiofx/audioamplify.c:
+       * gst/audiofx/audioamplify.h:
+       * gst/audiofx/audiochebband.c:
+       * gst/audiofx/audiochebband.h:
+       * gst/audiofx/audiocheblimit.c:
+       * gst/audiofx/audiocheblimit.h:
+       * gst/audiofx/audiodynamic.c:
+       * gst/audiofx/audiodynamic.h:
+       * gst/audiofx/audioecho.c:
+       * gst/audiofx/audioecho.h:
+       * gst/audiofx/audiofirfilter.c:
+       * gst/audiofx/audiofirfilter.h:
+       * gst/audiofx/audiofx.c:
+       * gst/audiofx/audioiirfilter.c:
+       * gst/audiofx/audioiirfilter.h:
+       * gst/audiofx/audioinvert.c:
+       * gst/audiofx/audioinvert.h:
+       * gst/audiofx/audiokaraoke.c:
+       * gst/audiofx/audiokaraoke.h:
+       * gst/audiofx/audiopanorama.c:
+       * gst/audiofx/audiopanorama.h:
+       * gst/audiofx/audiowsincband.c:
+       * gst/audiofx/audiowsincband.h:
+       * gst/audiofx/audiowsinclimit.c:
+       * gst/audiofx/audiowsinclimit.h:
+       * gst/audiofx/gstscaletempo.c:
+       * gst/audiofx/gstscaletempo.h:
+       * gst/audiofx/gststereo.c:
+       * gst/audiofx/gststereo.h:
+         audiofx: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 13:16:28 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/rtp/gstasteriskh263.c:
+       * gst/rtp/gstasteriskh263.h:
+       * gst/rtp/gstrtp.c:
+       * gst/rtp/gstrtpL16depay.c:
+       * gst/rtp/gstrtpL16depay.h:
+       * gst/rtp/gstrtpL16pay.c:
+       * gst/rtp/gstrtpL16pay.h:
+       * gst/rtp/gstrtpL24depay.c:
+       * gst/rtp/gstrtpL24depay.h:
+       * gst/rtp/gstrtpL24pay.c:
+       * gst/rtp/gstrtpL24pay.h:
+       * gst/rtp/gstrtpL8depay.c:
+       * gst/rtp/gstrtpL8depay.h:
+       * gst/rtp/gstrtpL8pay.c:
+       * gst/rtp/gstrtpL8pay.h:
+       * gst/rtp/gstrtpac3depay.c:
+       * gst/rtp/gstrtpac3depay.h:
+       * gst/rtp/gstrtpac3pay.c:
+       * gst/rtp/gstrtpac3pay.h:
+       * gst/rtp/gstrtpamrdepay.c:
+       * gst/rtp/gstrtpamrdepay.h:
+       * gst/rtp/gstrtpamrpay.c:
+       * gst/rtp/gstrtpamrpay.h:
+       * gst/rtp/gstrtpbvdepay.c:
+       * gst/rtp/gstrtpbvdepay.h:
+       * gst/rtp/gstrtpbvpay.c:
+       * gst/rtp/gstrtpbvpay.h:
+       * gst/rtp/gstrtpceltdepay.c:
+       * gst/rtp/gstrtpceltdepay.h:
+       * gst/rtp/gstrtpceltpay.c:
+       * gst/rtp/gstrtpceltpay.h:
+       * gst/rtp/gstrtpdvdepay.c:
+       * gst/rtp/gstrtpdvdepay.h:
+       * gst/rtp/gstrtpdvpay.c:
+       * gst/rtp/gstrtpdvpay.h:
+       * gst/rtp/gstrtpelement.c:
+       * gst/rtp/gstrtpelements.h:
+       * gst/rtp/gstrtpg722depay.c:
+       * gst/rtp/gstrtpg722depay.h:
+       * gst/rtp/gstrtpg722pay.c:
+       * gst/rtp/gstrtpg722pay.h:
+       * gst/rtp/gstrtpg723depay.c:
+       * gst/rtp/gstrtpg723depay.h:
+       * gst/rtp/gstrtpg723pay.c:
+       * gst/rtp/gstrtpg723pay.h:
+       * gst/rtp/gstrtpg726depay.c:
+       * gst/rtp/gstrtpg726depay.h:
+       * gst/rtp/gstrtpg726pay.c:
+       * gst/rtp/gstrtpg726pay.h:
+       * gst/rtp/gstrtpg729depay.c:
+       * gst/rtp/gstrtpg729depay.h:
+       * gst/rtp/gstrtpg729pay.c:
+       * gst/rtp/gstrtpg729pay.h:
+       * gst/rtp/gstrtpgsmdepay.c:
+       * gst/rtp/gstrtpgsmdepay.h:
+       * gst/rtp/gstrtpgsmpay.c:
+       * gst/rtp/gstrtpgsmpay.h:
+       * gst/rtp/gstrtpgstdepay.c:
+       * gst/rtp/gstrtpgstdepay.h:
+       * gst/rtp/gstrtpgstpay.c:
+       * gst/rtp/gstrtpgstpay.h:
+       * gst/rtp/gstrtph261depay.c:
+       * gst/rtp/gstrtph261depay.h:
+       * gst/rtp/gstrtph261pay.c:
+       * gst/rtp/gstrtph261pay.h:
+       * gst/rtp/gstrtph263depay.c:
+       * gst/rtp/gstrtph263depay.h:
+       * gst/rtp/gstrtph263pay.c:
+       * gst/rtp/gstrtph263pay.h:
+       * gst/rtp/gstrtph263pdepay.c:
+       * gst/rtp/gstrtph263pdepay.h:
+       * gst/rtp/gstrtph263ppay.c:
+       * gst/rtp/gstrtph263ppay.h:
+       * gst/rtp/gstrtph264depay.c:
+       * gst/rtp/gstrtph264depay.h:
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph264pay.h:
+       * gst/rtp/gstrtph265depay.c:
+       * gst/rtp/gstrtph265depay.h:
+       * gst/rtp/gstrtph265pay.c:
+       * gst/rtp/gstrtph265pay.h:
+       * gst/rtp/gstrtpilbcdepay.c:
+       * gst/rtp/gstrtpilbcdepay.h:
+       * gst/rtp/gstrtpilbcpay.c:
+       * gst/rtp/gstrtpilbcpay.h:
+       * gst/rtp/gstrtpisacdepay.c:
+       * gst/rtp/gstrtpisacdepay.h:
+       * gst/rtp/gstrtpisacpay.c:
+       * gst/rtp/gstrtpisacpay.h:
+       * gst/rtp/gstrtpj2kdepay.c:
+       * gst/rtp/gstrtpj2kdepay.h:
+       * gst/rtp/gstrtpj2kpay.c:
+       * gst/rtp/gstrtpj2kpay.h:
+       * gst/rtp/gstrtpjpegdepay.c:
+       * gst/rtp/gstrtpjpegdepay.h:
+       * gst/rtp/gstrtpjpegpay.c:
+       * gst/rtp/gstrtpjpegpay.h:
+       * gst/rtp/gstrtpklvdepay.c:
+       * gst/rtp/gstrtpklvdepay.h:
+       * gst/rtp/gstrtpklvpay.c:
+       * gst/rtp/gstrtpklvpay.h:
+       * gst/rtp/gstrtpldacpay.c:
+       * gst/rtp/gstrtpmp1sdepay.c:
+       * gst/rtp/gstrtpmp1sdepay.h:
+       * gst/rtp/gstrtpmp2tdepay.c:
+       * gst/rtp/gstrtpmp2tdepay.h:
+       * gst/rtp/gstrtpmp2tpay.c:
+       * gst/rtp/gstrtpmp2tpay.h:
+       * gst/rtp/gstrtpmp4adepay.c:
+       * gst/rtp/gstrtpmp4adepay.h:
+       * gst/rtp/gstrtpmp4apay.c:
+       * gst/rtp/gstrtpmp4apay.h:
+       * gst/rtp/gstrtpmp4gdepay.c:
+       * gst/rtp/gstrtpmp4gdepay.h:
+       * gst/rtp/gstrtpmp4gpay.c:
+       * gst/rtp/gstrtpmp4gpay.h:
+       * gst/rtp/gstrtpmp4vdepay.c:
+       * gst/rtp/gstrtpmp4vdepay.h:
+       * gst/rtp/gstrtpmp4vpay.c:
+       * gst/rtp/gstrtpmp4vpay.h:
+       * gst/rtp/gstrtpmpadepay.c:
+       * gst/rtp/gstrtpmpadepay.h:
+       * gst/rtp/gstrtpmpapay.c:
+       * gst/rtp/gstrtpmpapay.h:
+       * gst/rtp/gstrtpmparobustdepay.c:
+       * gst/rtp/gstrtpmparobustdepay.h:
+       * gst/rtp/gstrtpmpvdepay.c:
+       * gst/rtp/gstrtpmpvdepay.h:
+       * gst/rtp/gstrtpmpvpay.c:
+       * gst/rtp/gstrtpmpvpay.h:
+       * gst/rtp/gstrtpopusdepay.c:
+       * gst/rtp/gstrtpopusdepay.h:
+       * gst/rtp/gstrtpopuspay.c:
+       * gst/rtp/gstrtpopuspay.h:
+       * gst/rtp/gstrtppcmadepay.c:
+       * gst/rtp/gstrtppcmadepay.h:
+       * gst/rtp/gstrtppcmapay.c:
+       * gst/rtp/gstrtppcmapay.h:
+       * gst/rtp/gstrtppcmudepay.c:
+       * gst/rtp/gstrtppcmudepay.h:
+       * gst/rtp/gstrtppcmupay.c:
+       * gst/rtp/gstrtppcmupay.h:
+       * gst/rtp/gstrtpqcelpdepay.c:
+       * gst/rtp/gstrtpqcelpdepay.h:
+       * gst/rtp/gstrtpqdmdepay.c:
+       * gst/rtp/gstrtpqdmdepay.h:
+       * gst/rtp/gstrtpreddec.c:
+       * gst/rtp/gstrtpredenc.c:
+       * gst/rtp/gstrtpsbcdepay.c:
+       * gst/rtp/gstrtpsbcdepay.h:
+       * gst/rtp/gstrtpsbcpay.c:
+       * gst/rtp/gstrtpsbcpay.h:
+       * gst/rtp/gstrtpsirendepay.c:
+       * gst/rtp/gstrtpsirendepay.h:
+       * gst/rtp/gstrtpsirenpay.c:
+       * gst/rtp/gstrtpsirenpay.h:
+       * gst/rtp/gstrtpspeexdepay.c:
+       * gst/rtp/gstrtpspeexdepay.h:
+       * gst/rtp/gstrtpspeexpay.c:
+       * gst/rtp/gstrtpspeexpay.h:
+       * gst/rtp/gstrtpstorage.c:
+       * gst/rtp/gstrtpstreamdepay.c:
+       * gst/rtp/gstrtpstreamdepay.h:
+       * gst/rtp/gstrtpstreampay.c:
+       * gst/rtp/gstrtpstreampay.h:
+       * gst/rtp/gstrtpsv3vdepay.c:
+       * gst/rtp/gstrtpsv3vdepay.h:
+       * gst/rtp/gstrtptheoradepay.c:
+       * gst/rtp/gstrtptheoradepay.h:
+       * gst/rtp/gstrtptheorapay.c:
+       * gst/rtp/gstrtptheorapay.h:
+       * gst/rtp/gstrtpulpfecdec.c:
+       * gst/rtp/gstrtpulpfecenc.c:
+       * gst/rtp/gstrtpvorbisdepay.c:
+       * gst/rtp/gstrtpvorbisdepay.h:
+       * gst/rtp/gstrtpvorbispay.c:
+       * gst/rtp/gstrtpvorbispay.h:
+       * gst/rtp/gstrtpvp8depay.c:
+       * gst/rtp/gstrtpvp8depay.h:
+       * gst/rtp/gstrtpvp8pay.c:
+       * gst/rtp/gstrtpvp8pay.h:
+       * gst/rtp/gstrtpvp9depay.c:
+       * gst/rtp/gstrtpvp9depay.h:
+       * gst/rtp/gstrtpvp9pay.c:
+       * gst/rtp/gstrtpvp9pay.h:
+       * gst/rtp/gstrtpvrawdepay.c:
+       * gst/rtp/gstrtpvrawdepay.h:
+       * gst/rtp/gstrtpvrawpay.c:
+       * gst/rtp/gstrtpvrawpay.h:
+       * gst/rtp/meson.build:
+       * tests/check/meson.build:
+         rtp: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 11:12:34 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/pulse/gstpulseelement.c:
+       * ext/pulse/gstpulseelements.h:
+       * ext/pulse/meson.build:
+       * ext/pulse/plugin.c:
+       * ext/pulse/pulsesink.c:
+       * ext/pulse/pulsesrc.c:
+         pulse: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 10:41:29 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/mpg123/gstmpg123audiodec.c:
+       * ext/mpg123/gstmpg123audiodec.h:
+         mpeg123: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 10:33:50 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/libpng/gstpng.c:
+       * ext/libpng/gstpngdec.c:
+       * ext/libpng/gstpngdec.h:
+       * ext/libpng/gstpngenc.c:
+       * ext/libpng/gstpngenc.h:
+         libpng: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 10:27:18 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/lame/gstlamemp3enc.c:
+       * ext/lame/gstlamemp3enc.h:
+       * ext/lame/plugin.c:
+         lame: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 10:26:26 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/libcaca/gstcacaplugin.c:
+       * ext/libcaca/gstcacasink.c:
+       * ext/libcaca/gstcacasink.h:
+       * ext/libcaca/gstcacatv.c:
+       * ext/libcaca/gstcacatv.h:
+       * ext/libcaca/meson.build:
+         libcaca: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 10:09:46 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/jpeg/gstjpeg.c:
+       * ext/jpeg/gstjpegdec.c:
+       * ext/jpeg/gstjpegelements.h:
+       * ext/jpeg/gstjpegenc.c:
+       * ext/jpeg/gstjpegplugin.c:
+       * ext/jpeg/gstsmokedec.c:
+       * ext/jpeg/gstsmokeenc.c:
+       * ext/jpeg/meson.build:
+         jpeg: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 09:56:36 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/jack/gstjack.c:
+       * ext/jack/gstjack.h:
+       * ext/jack/gstjackaudiosink.c:
+       * ext/jack/gstjackaudiosrc.c:
+         jack: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 08:57:55 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/gdk_pixbuf/gstgdkpixbufdec.c:
+       * ext/gdk_pixbuf/gstgdkpixbufelement.c:
+       * ext/gdk_pixbuf/gstgdkpixbufelements.h:
+       * ext/gdk_pixbuf/gstgdkpixbufoverlay.c:
+       * ext/gdk_pixbuf/gstgdkpixbufplugin.c:
+       * ext/gdk_pixbuf/gstgdkpixbufsink.c:
+       * ext/gdk_pixbuf/meson.build:
+         gdk_pixbuf: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-12 08:48:21 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/gtk/gstgtkglsink.c:
+       * ext/gtk/gstgtkglsink.h:
+       * ext/gtk/gstgtksink.c:
+       * ext/gtk/gstgtksink.h:
+       * ext/gtk/gstplugin.c:
+         gtk: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-11 19:53:30 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/flac/gstflac.c:
+       * ext/flac/gstflacdec.c:
+       * ext/flac/gstflacelement.c:
+       * ext/flac/gstflacelements.h:
+       * ext/flac/gstflacenc.c:
+       * ext/flac/gstflactag.c:
+       * ext/flac/meson.build:
+         flac: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-02-11 18:57:03 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/dv/gstdv.c:
+       * ext/dv/gstdvdec.c:
+       * ext/dv/gstdvdemux.c:
+       * ext/dv/gstdvelement.c:
+       * ext/dv/gstdvelements.h:
+       * ext/dv/meson.build:
+         dv: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2020-08-14 15:27:31 -0400  Julian Bouzas <julian.bouzas@collabora.com>
+
+       * ext/aalib/gstaaplugin.c:
+       * ext/aalib/gstaasink.c:
+       * ext/aalib/gstaasink.h:
+       * ext/aalib/gstaatv.c:
+       * ext/aalib/gstaatv.h:
+       * ext/aalib/meson.build:
+         aalib: allow per feature registration
+         Split plugin into features including
+         dynamic types which can be indiviually
+         registered during a static build.
+         More details here:
+         https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>
+
+2021-03-19 17:19:43 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/videocrop/gstvideocrop.c:
+       * gst/videocrop/gstvideocrop.h:
+       * tests/check/elements/videocrop.c:
+         videocrop: handle non raw caps features
+         Currently, videocrop, only negotiates raw caps (system memory) because
+         it's the type of memory it can modify. Nonetheless, it's also possible
+         for the element to handle non-raw caps when only adding the crop meta
+         is possible, in other words, when downstream buffer pools expose the
+         crop API.
+         This patch enable non-raw caps negotiation. If downstream doesn't
+         expose crop API and negotiated caps are featured, the negotiation
+         fails.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/915>
+
+2021-03-19 10:35:09 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: Don't special-case G_SIGNAL_RUN_CLEANUP stage in signal accumulators
+         All these signals don't run the class handler in the CLEANUP stage.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/913>
+
+2021-03-19 10:34:33 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/shout2/gstshout2.c:
+         shout2: Don't register signal without class handler with G_SIGNAL_RUN_CLEANUP
+         There is no class handler to run during the CLEANUP stage.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/913>
+
+2021-03-23 16:59:28 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: Avoid colorimetry mismatch for streams with invalid colorimetry
+         video-info sets gst colorimetry to default value when colorimetry in caps
+         is unparsable or invalid. Then v4l2object uses this gst colorimetry to do
+         mapping with v4l2 colorimetry. This may cause colorimetry mismatch when
+         check mapped gst colorimetry with that read from caps directly.
+         To fix this, need to correct gst colorimetry as that parsed from video-info
+         when check gst_v4l2_video_colorimetry_matches().
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/917>
+
+2021-03-19 10:52:26 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: Add support for hdr10 stream playback
+         Colorimetry of hdr10 video is bt2100-pq with transfer as
+         GST_VIDEO_TRANSFER_SMPTE2084. So map GST_VIDEO_TRANSFER_SMPTE2084
+         to V4L2_XFER_FUNC_SMPTE2084 to support hdr10 stream playback.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/888>
+
+2021-03-20 10:41:29 -0500  Sid Sethupathi <sid.sethupathi@gmail.com>
+
+       * gst/shapewipe/gstshapewipe.c:
+         shapewipe: fix broken link in docs
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/916>
+
+2021-03-18 17:42:02 +0000  Alba Mendez <me@alba.sh>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Fix more signals
+         Behaviour change in GLib causes select-stream signal to discard
+         the value returned by handlers. See !909 for more info.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/912>
+
+2021-03-18 19:52:53 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/jack/gstjack.c:
+       * ext/jack/gstjackaudiosink.c:
+       * ext/jack/gstjackaudiosrc.c:
+       * ext/pulse/pulsesink.h:
+       * ext/qt/gstqsgtexture.cc:
+       * ext/qt/gstqtglutility.cc:
+       * ext/qt/qtglrenderer.cc:
+       * ext/qt/qtitem.cc:
+       * ext/qt/qtwindow.cc:
+       * ext/vpx/gstvpxdec.c:
+       * ext/vpx/gstvpxenc.c:
+       * gst/audioparsers/gstac3parse.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/ximage/ximageutil.c:
+         gst: don't use volatile to mean atomic
+         volatile is not sufficient to provide atomic guarantees and real atomics
+         should be used instead.  GCC 11 has started warning about using volatile
+         with atomic operations.
+         https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
+         Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/911>
+
+2021-03-17 15:54:59 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtsp/gstrtspsrc.c:
+         Update docs cache and fix before-send signal doc syntax
+         The docs for before-send were missing because of this
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/909>
+
+2021-03-17 13:18:34 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Fix accumulation of before-send signal return values
+         Since glib 2.62, the accumulated return values in RUN_CLEANUP override the
+         accumulated return values in RUN_FIRST. Since:
+         1. We have a default handler that always returns TRUE, and
+         2. User handlers are only run in RUN_FIRST, and
+         3. Our accumulator just takes the latest return value
+         We were discarding the return value from the user handler and always
+         sending messages even if the user handler said not to. See
+         https://gitlab.gnome.org/GNOME/glib/-/issues/2352 for more details.
+         This signal does not need RUN_CLEANUP or RUN_FIRST, so just change it
+         to RUN_LAST so that it's emitted exactly once and accumulated once.
+         With this fix, this signal can now be used to intercept PAUSE when
+         going to GST_STATE_NULL so that the server does a TEARDOWN (if
+         necessary) and not a PAUSE, which will confuse other RTSP clients when
+         playing shared media.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/909>
+
+2021-03-17 11:32:08 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         Revert unusable workaround for PAUSE being sent when going NULL
+         Directly setting rtspsrc to the NULL state before putting the pipeline
+         in the NULL state usually works, but it can cause a deadlock in some
+         cases, so it's not a reliable mechanism to fix this.
+         This reverts commit f37afdafff1fd0a339966116261f5cd0de53f5d1:
+         "rtspsrc: Fix state changes from PAUSED to PLAYING"
+         and commit 76d624b2df5594a82269b94dffe8766a372d059d:
+         "rtspsrc: Do not send PAUSE command when going to GST_STATE_NULL"
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/908>
+
+2021-03-16 19:25:36 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Fix parsing of the mediaclk:direct= field
+         Due to an off-by-one when parsing the string, the most significant digit
+         or the clock offset was skipped when parsing the offset.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/907>
+
+2021-03-16 00:08:43 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Fix state changes from PAUSED to PLAYING
+         This was accidentally broken in the last commit that touched this
+         because I missed the fall-through in the case immediately above this.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/906>
+
+2021-03-04 13:05:19 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-ids.h:
+         matroskademux: Fix extraction of multichannel WavPack
+         The old code had a couple of issues that all lead to potential memory
+         safety bugs.
+         - Use a constant for the Wavpack4Header size instead of using sizeof.
+         It's written out into the data and not from the struct and who knows
+         what special alignment/padding requirements some C compilers have.
+         - gst_buffer_set_size() does not realloc the buffer when setting a
+         bigger size than allocated, it only allows growing up to the maximum
+         allocated size. Instead use a GstAdapter to collect all the blocks
+         and take out everything at once in the end.
+         - Check that enough data is actually available in the input and
+         otherwise handle it an error in all cases instead of silently
+         ignoring it.
+         Among other things this fixes out of bounds writes because the code
+         assumed gst_buffer_set_size() can grow the buffer and simply wrote after
+         the end of the buffer.
+         Thanks to Natalie Silvanovich for reporting.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/859
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/902>
+
+2021-03-03 11:31:52 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/matroska/matroska-demux.c:
+         matroskademux: Initialize track context out parameter to NULL before parsing
+         Various error return paths don't set it to NULL and callers are only
+         checking if the pointer is NULL. As it's allocated on the stack this
+         usually contains random stack memory, and more often than not the memory
+         of a previously parsed track.
+         This then causes all kinds of memory corruptions further down the line.
+         Thanks to Natalie Silvanovich for reporting.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/858
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/902>
+
+2021-03-15 12:57:19 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Do not send PAUSE command when going to GST_STATE_NULL
+         This usually doesn't matter, but it is disruptive when streaming from
+         a shared media since it will pause all other clients when any client
+         exits.
+         This new behaviour is opt-in and should be safe because you need to
+         set the NULL state on rtspsrc directly, instead of just on the
+         pipeline. See the updated documentation for an explanation.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/901>
+
+2021-01-18 15:54:43 +0100  Philipp Zabel <p.zabel@pengutronix.de>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: handle GST_VIDEO_TRANSFER_BT601
+         V4L2 makes no difference between the BT.601 and BT.709 transfer
+         functions [1], but GStreamer does since 1.18 [2].
+         Adapt gst_v4l2_object_get_colorspace() and
+         gst_v4l2_object_set_format_full().
+         [1] https://linuxtv.org/downloads/v4l-dvb-apis-new/userspace-api/v4l/colorspaces-details.html#colorspace-smpte-170m-v4l2-colorspace-smpte170m
+         [2] https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/724
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/856>
+
+2021-03-11 22:22:15 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: fix title of a few properties docstrings
+         GstRtspSrc -> GstRTSPSrc
+         This would have been noticed by the since checker, but those
+         properties were introduced prior to that.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/899>
+
+2021-03-07 21:25:01 +0000  Vladimir Menshakov <vladimir.menshakov@gmail.com>
+
+       * docs/gst_plugins_cache.json:
+       * ext/wavpack/gstwavpackdec.c:
+       * ext/wavpack/gstwavpackdec.h:
+         wavpackdec: Add floating point format support
+         This commit negotiate F32 audio format if MODE_FLOAT used in wavpack file.
+         Wavpack float mode is always in 32-bit IEEE format.
+         The following pipeline plays distorted audio if source file is encoded in float mode:
+         gst-launch-1.0 filesrc ... ! wavpackparse ! wavpackdec ! pulsesink
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/894>
+
+2021-03-04 16:40:06 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/matroska/matroska-demux.c:
+         matroska: also support push-mode from seek events sent to the element
+         Otherwise sending seek events would fail to actually seek.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/891>
+
+2021-02-26 10:49:10 +0100  Marc Leeman <m.leeman@televic.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         gstrtspsrc: 551 should not result in an unhandled error
+         Some cameras (e.g. HikVision DS-2CD2732F-IS) return "551 Option
+         not supported" when a command is sent that is not implemented
+         (e.g. PAUSE). Instead; it should return "501 Not Implemented".
+         This is wrong, as previously, the camera did announce support for PAUSE
+         in the OPTIONS.
+         In this case, handle the 551 as if it was 501 to avoid throwing errors
+         to application level. */
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/885>
+
+2021-03-01 14:32:40 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: Do not expose profiles/levels in vp8/vp9 template caps
+         Vp8/vp9 supported profiles/levels are listed in decoder sink caps, but
+         there is no parser for these two formats and the demuxers also don't have
+         these information. It causes negotiation fail between demuxers and decoder
+         when check caps "accept = gst_caps_is_subset (caps, template_caps);".
+         To fix this, need to remove profiles/levels for vp8/vp9 formats in decoder
+         sink caps.
+         Fix #854
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/887>
+
+2021-03-03 18:30:39 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/rtpmanager/gstrtphdrext-twcc.h:
+         rtpmanager: Fix an MSVC compile warning
+         We don't expect this object is a part of public library.
+         gstrtphdrext-twcc.c(45): warning C4273: 'gst_rtp_header_extension_twcc_get_type': inconsistent dll linkage
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/889>
+
+2021-02-24 13:25:43 +0100  Philipp Zabel <p.zabel@pengutronix.de>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: fix src side frame rate negotiation
+         Negotiating v4l2h264dec ! v4l2h264enc transcoding pipelines fails in
+         case the encoder does not accept framerate=(fraction)0/1.
+         The acquired caps used for downstream negotiation are determined from
+         gst_v4l2_object_acquire_format(), which sets the GstVideoInfo::fps_n
+         and ::fps_d fields to 0.
+         To fix this, copy the frame rate from the sink side.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/882>
+
+2021-02-16 16:20:05 +0200  Jordan Petridis <jpetridis@gnome.org>
+
+       * sys/rpicamsrc/meson.build:
+         rpicamsrc: depend on posix threads and vchiq_arm
+         Could only test on rpi 3b+
+         Close #839
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/875>
+
+2021-02-11 14:48:07 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         v4l2bufferpool: Silence traces around unsupported source change
+         Don't be too spamy about unsupported source change flags as these will be
+         commonly extended in the future.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-11 14:24:29 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2src.c:
+         v4l2src: Move preferred resolution query before the probe
+         As we lock the DV_TIMINGS (and standards in the future), we need to probe the
+         caps after, otherwise, we may endup fixating to an unsupported resolution,
+         which would lead to a not-negotiated error.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-10 16:37:01 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2src.c:
+       * sys/v4l2/v4l2_calls.c:
+         v4l2src: Calculate framerate from DV timings
+         And use this framerate in our preference. Note that we also flush
+         the probed caps as it seems that the format enumeration may change
+         when a new source change event get triggered.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-10 15:52:55 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.h:
+       * sys/v4l2/gstv4l2object.h:
+       * sys/v4l2/gstv4l2src.c:
+       * sys/v4l2/v4l2_calls.c:
+         v4l2rc: Add DV_TIMINGS query and locking
+         This adds support to DV_TIMINGS query and locking. The timing width and
+         height is then used as a preference.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-10 15:49:03 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2src.c:
+         v4l2src: Force renegotiation on resolution change
+         As mandated by the specification, make sure to cycle through streamoff
+         / streamon regardless if the caps have changed or not.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-10 14:52:14 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2object.h:
+         v4l2object: Remove unused streaming member
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-10 10:48:48 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2src.c:
+         v4l2src: Refactor to use PreferredCapsInfo structure
+         Avoid passing around a bare structure for the preference, this removes
+         the need to copy and free that structure and simplify the code. Also
+         fix a type in the structure name, Prefered -> Preferred.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-08 17:27:20 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2src.c:
+         v4l2src: Stub preferred resolution support
+         This stubs the ability to use preferred resolution from digital
+         video timings, analog TV standards or driver reported native
+         resolution.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-09 14:44:02 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+       * sys/v4l2/gstv4l2object.h:
+       * sys/v4l2/v4l2_calls.c:
+         v4l2: Subscribe source_change for the current input
+         When we subscribe for source-change event, we need to specify for which
+         input. Make sure we subscribe for the current input.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-08 17:26:20 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2src.c:
+       * sys/v4l2/gstv4l2src.h:
+         v4l2src: Add input signal status detection
+         As part of the support to select a preferred size, we can also
+         detect the signal status. This is a split patch so that feature
+         is separated to ease review.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-08 17:24:00 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2object.h:
+       * sys/v4l2/v4l2_calls.c:
+         v4l2: Add helper to query input status
+         This is a wrapper around ENUM_INPUT renamed for readability.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-08 17:22:37 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2object.h:
+       * sys/v4l2/gstv4l2radio.c:
+       * sys/v4l2/gstv4l2tuner.c:
+       * sys/v4l2/v4l2_calls.c:
+         v4l2: Fix input/output index sign
+         This is an unsigned integer in the kernel API.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-04 16:59:44 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2src.c:
+         v4l2src: Add source resolution change support
+         This patch adds support for source resolution change detection.
+         Resolution change is signaled by drivers when a change in the detected
+         signal have been detected. This is notably seen on HDMI receivers.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-04 14:13:32 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+       * sys/v4l2/gstv4l2bufferpool.h:
+         v4l2bufferpool: Handle resolution change event
+         This patch adds the detection, dequeuing and reporting of the SOURCE_CHANGE
+         event when the CH_RESOLUTION flag is set. The acquire function will now return
+         a new custom success called GST_V4L2_FLOW_RESOLUTION_CHANGE. In order to use
+         this new feature, elements must enable it by calling:
+         gst_v4l2_buffer_pool_enable_resolution_change (pool);
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-04 11:01:38 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2object.h:
+       * sys/v4l2/v4l2_calls.c:
+         v4l2object: Add event helpers
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2021-02-04 10:10:34 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         v4l2bufferpool: use FLOW_LAST_BUFFER
+         This uses the GST_V4L2_FLOW_LAST_BUFFER alias instead of
+         GST_FLOW_CUSTOM_SUCCESS to make the code more readable.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>
+
+2018-12-10 14:10:05 +0100  Lucas Stach <l.stach@pengutronix.de>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: prefer NV12 over I420
+         Considering NV12 an 'odd' format is a historical artifact. This format
+         is now quite common, and usually preferable to I420 due to more memory
+         friendly access patterns.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/857>
+
+2021-02-18 10:34:25 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * gst/wavparse/gstwavparse.c:
+       * tests/check/elements/wavparse.c:
+         wavparse: fix seeking in READY state
+         wavparse claims to be able to support seeking in the READY state by
+         saving the pending seek event and actually seeking later after having parsed the
+         header.
+         Problem was that this seek event was reset on the READY to PAUSED
+         transition, making all this code useless. Fixing it by stop resetting
+         on READY to PAUSED transition as we already reset on PAUSED to READY
+         and when initiating the element.
+         Note that DTS marker detection isn't support in such scenario as
+         gst_type_find_helper_for_buffer() needs a buffer containing the
+         beginning of the stream.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/879>
+
+2021-02-18 10:05:03 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * tests/check/elements/wavparse.c:
+         tests: wavparse: factor out create_pipeline()
+         No semantic change.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/879>
+
+2021-02-18 00:34:02 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+         docs: update plugins cache with new h264 / vp8 depay properties
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/834>
+
+2020-12-09 01:40:45 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtp/gstrtph264depay.c:
+       * gst/rtp/gstrtph264depay.h:
+         rtph264depay: expose request-keyframe property
+         When set, the depayloader will request new keyframes on packet
+         loss
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/834>
+
+2020-12-09 01:34:20 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtp/gstrtpvp8depay.c:
+       * gst/rtp/gstrtpvp8depay.h:
+         rtpvp8depay: expose request-keyframe property
+         When set, the depayloader will request new keyframes on packet
+         loss
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/834>
+
+2020-12-09 01:24:57 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtp/gstrtph264depay.c:
+       * gst/rtp/gstrtph264depay.h:
+         rtph264depay: expose wait-for-keyframe property
+         Similar to rtpvp8depay, when packet loss occurs, the depayloader
+         starts waiting for a keyframe.
+         We try to only stop waiting when all the packets for the new keyframe
+         have been received, by only resetting waiting_for_keyframe when
+         encountering the first packet of a keyframe, this is slightly
+         fragile because there is no bit that explicitly marks the start
+         of an access unit, so we rely on the existing picture_start
+         detection code.
+         As a consequence, the property is only meaningful when outputting
+         access units, and is ignored when outputting NALs directly.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/834>
+
+2021-02-18 00:36:43 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/videomixer/videomixer2.c:
+         videomixer: document as deprecated
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/878>
+
+2021-02-16 22:20:17 +1100  Ashley Brighthope <ashley.b@reddegrees.com>
+
+       * gst/wavenc/gstwavenc.c:
+         wavenc: Fixed INFO chunk corruption, caused by odd sized data not being padded. Code style was updated.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/873>
+
+2020-12-07 19:51:35 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * gst/rtp/gstrtpopuspay.c:
+         rtpopuspay: add info regarding (non-standard) multichannel support
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>
+
+2020-12-07 16:50:01 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+         docs: update plugins cache for rtpopus
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>
+
+2020-12-01 20:09:58 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * tests/check/elements/rtpopus.c:
+         tests: add rtpopus multichannel test cases
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>
+
+2020-12-01 16:43:32 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * gst/rtp/gstrtpopusdepay.c:
+         rtpopusdepay: support libwebrtc-compatible multichannel payload
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>
+
+2020-11-30 21:49:48 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * gst/rtp/gstrtpopuspay.c:
+         rtpopuspay: support libwebrtc-compatible multichannel payload
+         When the audio has more than 2 channels, add optional fields to output
+         caps from which webrtcbin can generate SDP in the syntax recognized by
+         "multiopus" codec present in libwebrtc [1].
+         e.g. for 5.1 audio:
+         a=rtpmap:96 multiopus/48000/6
+         a=fmtp:96 num_streams=4;coupled_streams=2;channel_mapping=0,4,1,2,3,5
+         [1] https://webrtc-review.googlesource.com/c/src/+/129768
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>
+
+2020-11-30 22:10:14 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * gst/rtp/gstrtpopuspay.c:
+         rtpopuspay: make use of gst_rtp_base_payload_set_outcaps_structure()
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>
+
+2021-02-09 19:31:28 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/effectv/LICENSE:
+         effectv: Remove redundant license file
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/869>
+
+2021-02-05 00:55:12 +0000  Kevin Song <kevinbing.song@gmail.com>
+
+       * sys/v4l2/gstv4l2videoenc.c:
+         Apply 1 suggestion(s) to 1 file(s)
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/868>
+
+2021-02-05 00:55:04 +0000  Kevin Song <kevinbing.song@gmail.com>
+
+       * sys/v4l2/gstv4l2videoenc.c:
+         Apply 1 suggestion(s) to 1 file(s)
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/868>
+
+2021-02-04 13:43:17 +0800  Bing Song <bing.song@nxp.com>
+
+       * sys/v4l2/gstv4l2videoenc.c:
+         v4l2videoenc: support resolution change stream encode.
+         Resolution change stream transcoding will drain before send new video
+         frame buffer. Need encode video frame after process EOS.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/868>
+
+2021-02-04 11:44:53 +0100  Xabier Rodriguez Calvar <calvaris@igalia.com>
+
+       * gst/isomp4/fourcc.h:
+       * gst/isomp4/qtdemux.c:
+         qtdemux: added support for cbcs encryption scheme
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/865>
+
+2021-01-21 18:04:58 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtphdrext-rfc6464.c:
+       * gst/rtpmanager/gstrtphdrext-rfc6464.h:
+       * gst/rtpmanager/gstrtpmanager.c:
+       * gst/rtpmanager/meson.build:
+       * tests/check/elements/rtphdrextrfc6464.c:
+       * tests/check/meson.build:
+         rtp: add rtphdrextrfc6464
+         Header Extension for Client-to-Mixer Audio Level Indication as
+         defined in RFC 6464.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/630>
+
+2020-06-16 12:01:30 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/level/gstlevel.c:
+       * gst/level/gstlevel.h:
+       * tests/check/elements/level.c:
+         level: add GstRTPAudioLevelMeta on buffers
+         This meta can be used by a RTP payloader to send the level information
+         to the peer.
+         Part of https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/446
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/630>
+
+2021-02-03 17:10:20 +0200  Robert Swain <robert.swain@gmail.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+         deinterlace: Provide documentation for GST_DEINTERLACE_BUFFER_STATE
+         More information available in
+         https://gstconf.ubicast.tv/videos/interlacing-and-telecine-in-gstreamer/
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/866>
+
+2021-01-30 16:16:13 +0200  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/deinterlace/gstdeinterlacemethod.c:
+         deinterlace: Fix telecine/onefield mixup
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/838
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/866>
+
+2021-01-30 15:49:23 +0200  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/deinterlace/gstdeinterlace.c:
+       * gst/deinterlace/gstdeinterlacemethod.c:
+         deinterlace: Better alternate support
+         Improve line offset halving based on whether this field is top or
+         bottom.
+         Also handle the buffer state the same as mixed.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/866>
+
+2021-01-14 01:12:06 +0800  Bing Song <bing.song@nxp.com>
+
+       * sys/v4l2/gstv4l2h265codec.c:
+         v4l2h265codec: fix HEVC profile string issue.
+         Keep HEVC profile compatible with other module.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/850>
+
+2020-12-15 10:41:40 +0800  Bing Song <bing.song@nxp.com>
+
+       * sys/v4l2/gstv4l2object.c:
+       * sys/v4l2/gstv4l2object.h:
+         v4l2object: Need keep same transfer as input caps.
+         GST_VIDEO_TRANSFER_BT2020_12 and GST_VIDEO_TRANSFER_BT2020_10 will
+         be mapped to V4L2_XFER_FUNC_709. Need check input caps when map
+         V4L2_XFER_FUNC_709 back to GST_VIDEO_TRANSFER_BT2020_12 and
+         GST_VIDEO_TRANSFER_BT2020_10
+         Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/816
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/841>
+
+2020-12-07 10:01:53 +0100  Tobias Ronge <tobiasr@axis.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Do not wait for response while flushing
+         Due to the may_cancel flag in GstRTSPConnection, receiving might not get
+         cancelled when supposed to. In this case, gst_rtsp_src_receive_response
+         will have to wait until timeout instead but if busy receiving RTP
+         data, this timeout will never occur.
+         With this patch, gst_rtsp_src_receive_response returns GST_RTSP_EINTR
+         if flushing is set to TRUE instead of continuing to receive.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/831>
+
+2021-01-14 19:13:03 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ext/dv/meson.build:
+         meson: allow libdv subproject fallback
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/854>
+
+2020-12-21 13:55:58 +0100  Xabier Rodriguez Calvar <calvaris@igalia.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Allow streams with no specified protection system ID
+         This is necessary in cases like CMAF where there won't be any events
+         passing thru.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/852>
+
+2021-01-07 16:57:27 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * docs/gst_plugins_cache.json:
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: Map correct video format for RGBA
+         Map V4L2_PIX_FMT_RGBA32 pixel format to GST_VIDEO_FORMAT_RGBA instead of
+         GST_VIDEO_FORMAT_RGB video format to support RGBA.
+         Fixes #823
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/848>
+
+2021-01-02 13:06:16 +0530  Sanchayan Maity <sanchayan@asymptotic.io>
+
+       * gst/udp/gstudpsrc.c:
+         udpsrc: Fix marker links
+         These should be with a single ':'. The double '::' results in a CI with
+         build failure message like below.
+         ERROR: [links]: (mandatory-link-not-found): Mandatory link Link GstSocketTimestamp -> None (GstSocketTimestamp) could not be resolved
+         ERROR: [check-missing-since-markers]: (missing-since-marker): Missing since marker for udpsrc:socket-timestamp
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/828>
+
+2020-12-17 11:24:07 +0530  Sanchayan Maity <sanchayan@asymptotic.io>
+
+       * docs/gst_plugins_cache.json:
+       * gst/udp/gstudpsrc.c:
+       * gst/udp/gstudpsrc.h:
+         udpsrc: Allow use of socket control message timestamps for DTS
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/828>
+
+2020-12-09 20:20:18 +1100  Matthew Waters <matthew@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/videofilter/gstvideoflip.c:
+       * gst/videofilter/gstvideoflip.h:
+       * tests/check/elements/videoflip.c:
+         videoflip: fix possible crash when setting the video-direction while running
+         A classic case of not enough locking.
+         One interesting thing with this is the interaction between the
+         rotation value and caps negotiation.  i.e. the width/height of the caps
+         can be swapped depending on the video-direction property.  We can't lock
+         the entirety of the caps negotiation for obvious reasons so we need to
+         do something else.  This takes the approach of trying to use a single
+         rotation value throughout the entirety of the negotiation and then
+         subsequent output frame in a kind of latching sequence.
+         Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/792
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/836>
+
+2020-12-09 19:49:47 +1100  Matthew Waters <matthew@centricular.com>
+
+       * tests/check/elements/videoflip.c:
+       * tests/check/meson.build:
+         tests: add tests for videoflip
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/836>
+
+2020-12-30 13:38:46 +0100  Ignacio Casal Quinteiro <qignacio@amazon.com>
+
+       * gst/deinterlace/meson.build:
+         deinterlace: force -DPREFIX on macos
+         This is due to a bug in meson where it will not detect properly
+         the compiler if the symbols need an undercore.
+         https://github.com/mesonbuild/meson/issues/5482
+         Fixes #821
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/845>
+
+2020-12-15 11:36:27 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Use proper types instead of G_TYPE_POINTER for the RTSP messages in the "handle-request" signal
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/842>
+
+2020-12-10 14:27:49 +0200  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: Avoid deadlock when releasing a pad from a running muxer
+         Might not drain correctly
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/838>
+
+2020-12-11 11:24:14 +0800  Hou Qi <qi.hou@nxp.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: Use active resolution during fallback colorspace probe
+         For legacy drivers that don't implement ENUM_FRAMESIZE, use active
+         resolution to probe colorspace. This can improve the accuracy of the
+         result when the colorspace depends on the resolution. This fixes a
+         wrong colorspace issue on board with vendor bsp at resolution 2560x1440.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/830>
+
+2020-12-12 04:02:37 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtpmanager/gstrtpst2022-1-fecdec.c:
+         rtpst2022-1-fecdec: don't xor out of bounds
+         When reconstituting packets from a stream with variable packet
+         sizes, don't xor larger packets past the length of the protected
+         packet
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/839>
+
+2020-12-12 04:00:41 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+         rtpst2022-1-fecenc: memset when reallocating xored payload
+         When protecting packets with a variable payload length, we
+         reallocate the xored payload when needed. It is a good idea
+         to memset the extended memory to 0 so that we don't xor
+         data with garbage!
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/839>
+
+2020-12-12 03:56:11 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtpmanager/gstrtpst2022-1-fecdec.c:
+       * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+         rtpst2022-1-fec-*: protect additional RTP header fields
+         While the standard is a bit vague about whether the padding,
+         extension and marker bits should be protected:
+         > The usage, by senders and receivers, of the following bits shall
+         > be defined by the associated video/audio transport standards:
+         It is obviously necessary and useful for some formats (eg VP8)
+         that those indeed be protected.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/839>
+
+2020-12-12 03:28:56 +1100  Jan Schmidt <jan@centricular.com>
+
+       * tests/check/elements/splitmuxsink.c:
+         splitmuxsink: Unit test - check format/opened/closed sequence
+         Check the sequence of format-location/fragment-opened/fragment-closed
+         events is respected. There should be 1 format-location call for each
+         fragment-opened message, and 1 fragment-closed for each.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/833>
+
+2020-12-09 00:40:52 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: Fix for 'reference bytes muxed' check.
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798
+         introduced a check in the need-new-fragment logic to avoid starting a
+         new fragment unless there has been some data on the reference stream,
+         but the check is done against the number of bytes that have been
+         received on the input, not the number that were released for output
+         into the current fragment.
+         Fix the check to remember and test against bytes that have been sent
+         for output.
+         This also fixes a problem where starting a new fragment fails to
+         request a new filename from the format-location signal.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/833>
+
+2020-09-15 00:27:24 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Add debug for fragment opened/closed msgs
+         When posting fragment-opened and fragment-closed messages,
+         put a debug statement in the logs
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/833>
+
+2020-08-18 16:06:14 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Convert asserts into element errors.
+         Change some g_assert into element errors so that they can be
+         caught and the pipeline shut down.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/833>
+
+2020-07-10 15:36:54 +1000  Matthew Waters <matthew@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtpfunnel.c:
+       * gst/rtpmanager/gstrtphdrext-twcc.c:
+       * gst/rtpmanager/gstrtphdrext-twcc.h:
+       * gst/rtpmanager/gstrtpmanager.c:
+       * gst/rtpmanager/meson.build:
+         rtpmanager: update for rtp header extensions
+         Provide an implementation of the transport-wide-cc header extension and
+         use it in rtpfunnel.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/808>
+
+2020-11-15 11:30:07 +0000  Jose Quaresma <quaresma.jose@gmail.com>
+
+       * sys/rpicamsrc/meson.build:
+         rpicamsrc: add vchostif library as it is required to build successful
+         fix: undefined reference to `vc_gencmd'
+         /usr/src/debug/gstreamer1.0-plugins-good/1.18.1-r0/build/../gst-plugins-good-1.18.1/sys/rpicamsrc/RaspiCamControl.c:1440: undefined reference to `vc_gencmd'
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/818>
+
+2020-11-25 17:51:24 +0100  Marijn Suijten <marijns95@gmail.com>
+
+       * tests/check/elements/rtp-payloading.c:
+         tests/rtp-payloading: Use new AudioFormatInfo::fill_silence function
+         The function is renamed to be properly associated with AudioFormatInfo
+         (its instance) instead of AudioFormat (an unrelated enum), see [1] for
+         the rename itself.
+         [1]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/940
+
+2020-11-24 22:11:50 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/deinterlace/meson.build:
+       * meson.build:
+         deinterlace: Enable x86 assembly with nasm on MSVC
+         We need to remove x86inc.asm from the list of compiled assembly files
+         because it is not supposed to be compiled separately. It is directly
+         included by yadif.asm, and it exports no symbols.
+         The object file was getting ignored on all platforms except on msvc
+         where it was causing a linker hang when building with debugging
+         enabled because the object file had no debug symbols (or similar).
+         We've seen this before in FFmpeg too, which uses nasm:
+         https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg/-/merge_requests/46
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/825>
+
+2020-11-19 17:47:21 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqtoverlay.cc:
+       * ext/qt/gstqtsink.cc:
+         qml: add some docs on display and contexts
+         Especially considering some dynamic pipeline scenarios.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/822>
+
+2020-11-18 20:09:24 +0100  Tim Schneider <tim.schneider94@t-online.de>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Added "src->started = FALSE;" to gst_rpi_cam_src_stop
+         Makes the element reusable multiple times after a state change back to READY.
+         Fixes #105
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/823>
+
+2020-11-12 09:32:30 +0800  Bing Song <bing.song@nxp.com>
+
+       * docs/gst_plugins_cache.json:
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: caps negotiate wrong as interlace feature
+         gst_caps_simplify() will move interlace format before normal video
+         format. It will cause caps negotiate prefer interlaced caps which
+         isn't expected. Seperate normal caps and interlaced caps and then
+         merge it will keep prefer progress video format.
+         Add ARGB/BGRA for interlaced caps.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/802
+         Part-of <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/813>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/813>
+
+2020-11-13 21:25:42 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/rtpsession.c:
+       * tests/check/elements/rtpsession.c:
+         rtpsession: never send on a non-internal source
+         This will end up as a "received" packet, due to the code in
+         source_push_rtp, which will think this is a packet being received.
+         Instead drop the packet and hope that either:
+         1. Something upstream responds to the GstRTPCollision event and changes
+         SSRC used for sending.
+         2. That the application responds to the "on-ssrc-collision" signal, and
+         forces the sender (payloader) to change its SSRC.
+         3. That the BYE sent to the existing user of this SSRC will respond to
+         the BYE, and that we timeout this source, so we can continue sending
+         using the chosen SSRC.
+         The test reproduces a scenario where we previously would have sent
+         on a non-internal source.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/817>
+
+2020-11-13 12:39:53 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/rtpsource.c:
+         rtpsource: rewrite timeout-check to avoid underflow
+         If current_time is < collision_timeout, we get an uint64 underflow, and
+         the check will trigger prematurely.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/817>
+
+2020-11-13 14:58:44 +0200  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/audioparsers/gstaacparse.c:
+         aacparse: Fix caps change handling
+         In baseparse we set the fixed caps flag on all src pads, therefore the
+         source pad caps query in get_allowed_caps will return the current caps.
+         Current caps won't necessarily intersect with the new caps (e.g. sample
+         rate change). Replace get_allowed_caps with peer_query_caps.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/816>
+
+2020-11-12 23:39:21 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/check/elements/qtdemux.c:
+         tests: qtdemux: fix typo in caps field
+         timesacle -> timescale
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/815>
+
+2020-11-12 23:38:21 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/check/elements/qtdemux.c:
+         tests: qtdemux: fix crash on 32-bit architectures
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/803
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/815>
+
+2020-09-14 13:12:50 +0530  Sanchayan Maity <sanchayan@asymptotic.io>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtp/gstrtp.c:
+       * gst/rtp/gstrtpldacpay.c:
+       * gst/rtp/gstrtpldacpay.h:
+       * gst/rtp/meson.build:
+         rtp: ldacpay: Add LDAC RTP payloader
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/757>
+
+2020-11-03 15:58:30 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/qt/gstqsgtexture.cc:
+       * ext/qt/gstqsgtexture.h:
+       * ext/qt/qtitem.cc:
+         qmlglsink: Keep old buffers around a bit longer if they were bound by QML
+         We don't know exactly when QML will stop using them but it should be
+         safe to unref them after at least 2 more buffers were bound.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/810>
+
+2020-11-10 18:18:12 +0000  ChrisDuncanAnyvision <chrisd@anyvision.co>
+
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/rtsp/gstrtspsrc.h:
+         rtspsrc: Ensure same group-id used for both TCP/UDP stream-start events
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/811>
+
+2020-11-10 16:17:23 +0000  ChrisDuncanAnyvision <chrisd@anyvision.co>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Use consistent URI hashed stream-id for UDP and TCP/Interleaved streams
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/811>
+
+2020-11-04 18:43:04 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * meson.build:
+         meson: Enable some MSVC warnings for parity with GCC/Clang
+         This makes it easier to do development with MSVC by making it warn
+         on common issues that GCC/Clang error out for in our CI configuration.
+         Continuation from https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/223
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/809>
+
+2020-10-15 21:42:40 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtpsource.c:
+       * gst/rtpmanager/rtpsource.h:
+       * gst/rtpmanager/rtpstats.h:
+         rtpsource: Report for which local SSRC is a remote RB reporting on
+         This is useful in the Bundle case because there may be multiple local
+         and remote SSRCs in the same session.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/776>
+
+2020-10-29 15:58:38 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtp/gstrtpisacdepay.c:
+       * gst/rtp/gstrtpisacpay.c:
+         docs: update plugins cache
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/530>
+
+2020-03-20 13:15:33 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * gst/rtp/gstrtp.c:
+       * gst/rtp/gstrtpisacdepay.c:
+       * gst/rtp/gstrtpisacdepay.h:
+       * gst/rtp/meson.build:
+         rtp: add rtpisacdepay
+         Depayload for the iSAC audio codec.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/530>
+
+2020-03-20 13:15:33 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * gst/rtp/gstrtp.c:
+       * gst/rtp/gstrtpisacpay.c:
+       * gst/rtp/gstrtpisacpay.h:
+       * gst/rtp/meson.build:
+         rtp: add rtpisacpay
+         Payload for the iSAC audio codec.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/530>
+
+2020-11-01 18:36:49 +0000  Dinesh Manajipet <saidinesh5@gmail.com>
+
+       * ext/qt/qtitem.cc:
+         qmlglsink: Set qtitem's implicit width/height
+         This can be useful to let the layouts automatically resize qtitem
+         and also easily query a video's width/height from QML
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/802>
+
+2020-11-01 10:30:27 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Release pads via GstAggregator
+         See https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/797
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/801>
+
+2020-10-26 12:40:49 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/atoms.c:
+       * gst/isomp4/atoms.h:
+       * gst/isomp4/gstqtmux.c:
+         qtmux: support muxing multiple codec_data for h264/h265
+         Each codec_data is put into its own SampleTableEntry inside the stsd.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/787>
+
+2020-10-29 14:54:16 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/debugutils/gstnavseek.c:
+       * gst/debugutils/gstnavseek.h:
+         navseek: add hold_eos property
+         This property will tell the element to hold
+         the EOS event and keep it until the next
+         keystroke.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/792>
+
+2020-10-31 12:52:04 +1100  Jan Schmidt <jan@centricular.com>
+
+       * tests/check/elements/splitmuxsrc.c:
+         splitmuxsrc: Fix comment in a test
+         Fix a comment in the splitmuxsrc robust muxing test so it
+         describes the test properly.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>
+
+2020-10-31 12:49:08 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: Change EOS catching logic.
+         Add a new state for ending the overall stream, and use it to decide
+         whether to pass the final EOS message up the bus instead of dropping
+         it. Fixes a small race that makes the testsuite sometimes not generate
+         the last fragment(s) sometimes because the wrong EOS gets
+         allowed through too early.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>
+
+2020-10-31 02:19:07 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: Don't use the element state lock
+         Using the element state lock to avoid splitmuxsink shutting
+         down while doing element manipulations can lead to a deadlock on
+         shutdown if a fragment switch happens at exactly the wrong moment.
+         Use a private mutex and a shutdown boolean instead.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>
+
+2020-10-30 03:38:15 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Don't busy loop on a non-ready pad.
+         If a pad gets into the check_completed_gop method and then
+         the underlying conditions change on the reference context,
+         things could get stuck in a busy loop when the context should
+         instead jump back out and wait for more data.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>
+
+2020-10-30 03:36:51 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsrc.c:
+         splitmuxsrc: Mark running=false on shutdown.
+         Make sure that any late gst_element_call_async() callbacks
+         know that the elements is shutting down and bail out instead
+         of operating on the element we're trying to stop.
+         Fixes a spurious test failure in elements_splitmuxsrc
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>
+
+2020-10-29 02:36:35 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Forward EOS messages from async fragments.
+         Re-enable forwarding EOS messages from fragments that are completing
+         asynchronously, so that splitmuxsink itself won't go EOS until they
+         are complete. This was disabled to work around a bug in core that
+         is fixed in
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/683
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>
+
+2020-09-17 22:56:01 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: Never start a new fragment with no reference buffers
+         If there has been no bytes from the reference stream muxed into
+         the current fragment, then time can't have advanced, there's no
+         GOP... this fragment would be broken or empty, so wait for some
+         data on the reference buffer.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>
+
+2020-10-29 02:38:16 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: Chain up when releasing pad, and fix some locking.
+         Release pads by calling up into aggregator so it can do the right
+         things. Don't clean up the pad until after that.
+         Add some missing locks around some accesses to shared pad state.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/797>
+
+2018-08-13 15:35:11 +0200  Stian Selnes <stian@pexip.com>
+
+       * gst/rtp/gstrtpvp9depay.c:
+       * gst/rtp/gstrtpvp9depay.h:
+       * tests/check/elements/rtpvp9.c:
+         rtpvp9depay: Improve SVC parsing, aggregate all layers
+         - Fix start and end of picture to support multiple layers. Start of
+         picture is the first packet of the base layer, while end of picture
+         is when the marker bit is set (last packet of the enhancement
+         layers).
+         - All "layers" (aka "frames") of a picture are pushed downstream in a
+         single buffer when picture is complete.
+         - Forgive SID=0 for enhancement layers (invalid, but Chrome and
+         Firefox sends it)
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/773>
+
+2020-10-30 03:09:48 +0100  Stian Selnes <stian@pexip.com>
+
+       * gst/rtp/gstrtpvp8depay.c:
+       * gst/rtp/gstrtpvp8depay.h:
+       * tests/check/elements/rtpvp8.c:
+         rtpvp8depay: Send lost events when marker bit is missing
+         This means the previous frame was incomplete.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/796>
+
+2020-10-14 23:17:53 +0200  Knut Saastad <Knut@bitflow.io>
+
+       * gst/rtp/gstrtpvp8depay.c:
+       * gst/rtp/gstrtpvp8pay.c:
+         rtpvp9depay: detect incomplete frames and bail out
+         If a packet with the B bit set arrives but we haven't received
+         a packet with the marker or E bits set to end the previous frame,
+         we know the current frame was incomplete.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/795>
+
+2020-10-14 23:17:53 +0200  Knut Saastad <Knut@bitflow.io>
+
+       * gst/rtp/gstrtpvp9depay.c:
+         rtpvp9depay: detect incomplete frames and bail out
+         If a packet with the B bit set arrives but we haven't received
+         a packet with the marker or E bits set to end the previous frame,
+         we know the current frame was incomplete.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/769>
+
+2020-10-14 01:28:50 +0200  Mikhail Fludkov <misha@pexip.com>
+
+       * gst/rtp/gstrtpvp8depay.c:
+       * gst/rtp/gstrtpvp8depay.h:
+       * gst/rtp/gstrtpvp9depay.c:
+       * gst/rtp/gstrtpvp9depay.h:
+       * tests/check/elements/rtpvp8.c:
+       * tests/check/elements/rtpvp9.c:
+         rtpvp*depay: possibly forward might-have-been-fec PacketLost events
+         This is ad adaptation of a Pexip patch for dealing with spurious
+         GstRTPPacketLost events caused by lost ulpfec packets: as FEC packets
+         under that scheme are spliced in the same sequence domain as the media
+         packets, it is not generally possible to determine whether a lost packet
+         was a FEC packet or a media packet.
+         When upstreaming pexip's ulpfec patches, we decided to drop all lost
+         events at the base depayloader level, and where the original patch
+         from pexip was making use of picture ids and marker bits to determine
+         whether a packet should be forwarded, this patch makes use of those
+         to determine whether they should be dropped instead (by removing their
+         might-have-been-fec field).
+         Spurious lost events coming out of the depayloader can cause the
+         decoder to stop decoding until the next keyframe and / or request a new
+         keyframe, and while this is not desirable it makes sense to forward
+         that information when we have other means to determine whether a lost
+         packet was indeed a FEC packet, as is the case with VP8 / VP9 payloads
+         when they carry a picture id.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/769>
+
+2020-10-20 23:22:36 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/rtp/gstrtph264depay.c:
+         rtph264depay: Preserve SPS/PPS arrival order.
+         Even if SPS/PPS haven't changed, make sure to move them to the
+         end of the tracking array if needed, so we always know what the
+         most recent entries are, in case we need to discard the oldest
+         when generating codec_data.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/775>
+
+2020-10-17 00:05:15 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/rtp/gstrtph264depay.c:
+         rtph264depay: Warn when max SPS/PPS are collected in AVC mode.
+         The AVC codec_data has a flaw that it can only accomodate
+         31 SPS headers, even though H.264 can have 32, and 255 PPS,
+         when there can be 256 in H.264. When streaming RTP some
+         clients like to cycle through SPS/PPS ids when changing
+         configuration and can eventually accumulate a full set.
+         In that case, we have no choice but to discard one (oldest)
+         entry, or else the count written into the codec_data is wrong
+         and downstream decoding failures ensue.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/775>
+
+2020-10-28 00:29:05 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/rtptimerqueue.c:
+       * gst/rtpmanager/rtptimerqueue.h:
+       * tests/check/elements/rtpjitterbuffer.c:
+       * tests/check/elements/rtptimerqueue.c:
+         rtpjitterbuffer: don't send multiple instant RTX for the same packet
+         Due to us not properly acknowleding the time when the last RTX was sent
+         when scheduling a new one, it can easily happen that due to the packet
+         you are requesting have a PTS that is slightly old (but not too old when
+         adding the latency of the jitterbuffer), both its calculated second and
+         third (etc.) timeout could already have passed. This would lead to a burst
+         of RTX requests, which acts completely against its purpose, potentially
+         spending a lot more bandwidth than needed.
+         This has been properly reproduced in the test:
+         test_rtx_not_bursting_requests
+         The good news is that slightly re-thinking the logic concerning
+         re-requesting RTX, made it a lot simpler to understand, and allows us
+         to remove two members of the RtpTimer which no longer serves any purpose
+         due to the refactoring. If desirable the whole "delay" concept can actually
+         be removed completely from the timers, and simply just added to the timeout
+         by the caller of the API. But that can be a change for a another time.
+         The only external change (other than the improved behavior around bursting
+         RTX) is that the "delay" field now stricly represents the delay between
+         the PTS of the RTX-requested packet and the time it is requested on,
+         whereas before this calculation was more about the theoretical calculated
+         delay. This is visible in three other RTX-tests where the delay had
+         to be adjusted slightly. I am confident however that this change is
+         correct.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/789>
+
+2020-10-27 23:43:49 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroska-mux: Fix sparse stream crash
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/656
+         introduced an invalid memory access when debug is enabled, by casting
+         the wrong pointer to a GstCollectPad. Fixing that showed the original
+         change was incorrect and leads to an infinite loop in the
+         testsuite. This patch fixes both problems.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/788>
+
+2020-10-22 15:29:01 -0300  Thibault Saunier <tsaunier@igalia.com>
+
+       * ext/vpx/gstvpxenc.c:
+         vpx: Fix the check to unfixed/unknown framerate to set bitrate
+         0/1 means unknown framerate not X/0 (which is illegal).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/782>
+
+2020-10-22 09:17:26 -0400  Arun Raghavan <arun@asymptotic.io>
+
+       * gst/rtp/gstrtputils.c:
+         rtputils: Count metas with an empty tag list for copying/keeping
+         The GstMetaInfos registered in core do not set their tags to NULL, but
+         instead use an empty list (non-NULL list with a single NULL value).
+         Let's check explicitly for that so as to not miss some metas.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/779>
+
+2020-10-16 16:05:45 -0700  Bastien Reboulet <bastien.reboulet@gmail.com>
+
+       * ext/qt/qtitem.cc:
+         qmlglsink: fix crash when created/destroyed in quick succession
+         The crash is caused by a race condition where the render thread
+         calls a method on the QtGLVideoItem instance that was
+         previously destroyed by the main thread.
+         Also, less frequently, QtGLVideoItem::onSceneGraphInitialized
+         is called when QQuickItem::window is null, also causing a crash.
+         Fixes #798
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/777>
+
+2020-10-19 18:23:25 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+       * sys/v4l2/gstv4l2videoenc.c:
+         v4l2codec: Garbage collect old frames if they accumulate because of codec bugs
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/778>
+
+2020-10-19 17:56:04 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+       * sys/v4l2/gstv4l2bufferpool.h:
+       * sys/v4l2/gstv4l2sink.c:
+       * sys/v4l2/gstv4l2src.c:
+       * sys/v4l2/gstv4l2transform.c:
+       * sys/v4l2/gstv4l2videodec.c:
+       * sys/v4l2/gstv4l2videoenc.c:
+         v4l2codec: Pass system frame number as timestamp and use it to retrieve back frames reliably
+         System frame numbers are supposed to be unique and correct drivers are
+         passing through timestamps without modification from the output/sink to the
+         capture/src side.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/778>
+
+2020-09-24 13:13:00 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpbin.h:
+         rtpbin: Add clear-ssrc action
+         This action signal will delegate to clear-ssrc onto the rtpssrcdemux element
+         associated with the session. This allow rtpbin users to clear pads and
+         elements for a specific ssrc that is known to no longer be in use. This
+         happens when a pad is reused in rtpsrc or ristsrc.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/736>
+
+2017-09-08 20:02:13 +0100  John-Mark Bell <jmb@pexip.com>
+
+       * gst/rtp/gstrtpvp8pay.c:
+       * gst/rtp/gstrtpvp8pay.h:
+       * tests/check/elements/rtpvp8.c:
+       * tests/check/meson.build:
+         rtpvp8pay: payload temporally scaled bitstreams.
+         Co-Authored-By: Vincent Sanders <vince@pexip.com>
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/728>
+
+2017-11-17 15:11:41 +0100  Stian Selnes <stian@pexip.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtp/gstrtpvp8pay.c:
+       * gst/rtp/gstrtpvp8pay.h:
+         rtpvp8pay: Add picture-id-offset property
+         Add property to set the initial value for picture-id. RFC7741 says
+         that picture-id MAY be initialized to a random value, thus it's also
+         valid to simply set it to a fixed initial value. A fixed value is very
+         useful for testing.
+         Default behavior is not changed.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/728>
+
+2017-03-16 15:23:28 +0100  Mikhail Fludkov <misha@pexip.com>
+
+       * gst/rtp/gstrtpvp8pay.c:
+         rtpvp8pay: move duplicate code to separate functions
+         Two new functions to modify picture id:
+         gst_rtp_vp8_pay_picture_id_reset - picks random picture id of
+         appropriate bitsize
+         gst_rtp_vp8_pay_picture_id_increment - increments picture id taking
+         care of wrapping
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/728>
+
+2017-09-08 08:13:05 +0100  John-Mark Bell <jmb@pexip.com>
+
+       * docs/gst_plugins_cache.json:
+       * ext/vpx/gstvpxenc.c:
+         vp8enc: expect bps for temporal-scalability-target-bitrate.
+         Consistency with target-bitrate is less surprising and with
+         modern libvpx additional configuration is required to make
+         temporal scaling work.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/728>
+
+2017-09-08 08:19:20 +0100  John-Mark Bell <jmb@pexip.com>
+
+         vp8enc: finish support for temporally scaled encoding
+         - introduce two new properties:
+         * temporal-scalability-layer-flags:
+         Provide fine-grained control of layer encoding to the
+         outside world. The flags sequence should be a multiple of
+         the periodicity and is indexed by a running count of encoded
+         frames modulo the sequence length.
+         * temporal-scalability-layer-sync-flags:
+         Specify the pattern of inter-layer synchronisation (i.e.
+         which of the frames generated by the layer encoding
+         specification represent an inter-layer synchronisation).
+         There must be one entry per entry in
+         temporal-scalability-layer-flags.
+         - apply temporal scalability settings and expose as buffer
+         metadata.
+         This allows the codec to allocate a given frame to the correct
+         internal bitrate allocator. Additionally, all the
+         non-bitstream metadata needed to payload a temporally scaled
+         stream is now attached to each output buffer as a
+         GstVideoVP8Meta.
+         - add unit test for temporally scaled encoding.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/728>
+
+2020-10-15 18:21:54 +0200  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/isomp4/qtdemux.c:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/udp/gstudp.c:
+       * meson.build:
+         meson: update glib minimum version to 2.56
+         In order to support the symbol g_enum_to_string in various
+         project using GStreamer ( gst-validate etc.), the glib minimum
+         version should be 2.56.0.
+         Remove compat code as glib requirement
+         is now > 2.56
+         Version used by Ubuntu 18.04 LTS
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/774>
+
+2020-10-14 14:30:34 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+         rtpst2022-1-fecenc: fix input seqnum check
+         We need to cast the incremented last seqnum to guint16 for
+         consistent checks on wraparound
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/770>
+
+2020-09-12 09:02:30 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/flv/gstflvmux.c:
+       * gst/flv/gstflvmux.h:
+         flvmux: Correct time types
+         - last_dts is in milliseconds, not nanoseconds as expected for
+         GstClockTime. Make it a generic guint64.
+         - Use GstClockTime for the fields that actually contain nanoseconds.
+         None of them should become negative.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/766>
+
+2020-10-09 09:31:27 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+         rtpst2022-1-fecenc: Don't unconditionally use GLib 2.60 APIs
+         g_queue_clear_full() in this case.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/768>
+
+2020-10-08 18:54:55 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtp/rtpulpfeccommon.c:
+         rtpulpfec: fix potential alignment issue in xor function
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/753#note_646453
+         for context
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/753>
+
+2020-10-06 03:03:13 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpbin.h:
+       * gst/rtpmanager/gstrtpmanager.c:
+       * gst/rtpmanager/gstrtpst2022-1-fecenc.c:
+       * gst/rtpmanager/gstrtpst2022-1-fecenc.h:
+       * gst/rtpmanager/meson.build:
+       * tests/check/elements/rtpst2022-1-fecenc.c:
+       * tests/check/meson.build:
+         rtpmanager: implement SMPTE 2022-1 FEC encoder
+         + improve integration of FEC encoders in rtpbin
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/753>
+
+2020-10-06 03:13:30 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpbin.h:
+       * gst/rtpmanager/gstrtpmanager.c:
+       * gst/rtpmanager/gstrtpst2022-1-fecdec.c:
+       * gst/rtpmanager/gstrtpst2022-1-fecdec.h:
+       * gst/rtpmanager/meson.build:
+       * tests/check/elements/rtpst2022-1-fecdec.c:
+       * tests/check/meson.build:
+         rtpmanager: implement SMPTE 2022-1 FEC decoder
+         + improve integration of FEC decoders in rtpbin
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/753>
+
+2020-07-08 17:28:31 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtpmanager/gstrtpfunnel.c:
+       * tests/check/elements/rtpfunnel.c:
+         rtpfunnel: Also forward custom sticky event
+         This is useful to track metadata about each group of packets
+         Also include a unit test
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/666>
+
+2020-09-29 09:44:54 -0300  Thibault Saunier <tsaunier@igalia.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/isomp4/gstqtmux-doc.c:
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/gstqtmuxmap.c:
+         isomp4: Rename GstQTMux to GstBaseQTMux to avoid breaking API
+         Since 52b63de19ada283c1180c8fc00cacb1465fdf10f the qtmux GType was
+         renamed GstQTMuxElement which breaks presets, revert that change.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/755>
+
+2020-09-28 18:25:21 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtp/gstrtpdvpay.c:
+       * gst/rtp/gstrtph261pay.c:
+       * gst/rtp/gstrtph263pay.c:
+       * gst/rtp/gstrtph263ppay.c:
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph265pay.c:
+       * gst/rtp/gstrtpj2kpay.c:
+       * gst/rtp/gstrtpjpegpay.c:
+       * gst/rtp/gstrtpklvpay.c:
+       * gst/rtp/gstrtpmp4vpay.c:
+       * gst/rtp/gstrtpmpvpay.c:
+       * gst/rtp/gstrtptheorapay.c:
+       * gst/rtp/gstrtpvp8pay.c:
+       * gst/rtp/gstrtpvp9pay.c:
+         rtp: Fix allocations to support source-info property
+         Use gst_rtp_base_payload_allocate_output_buffer() instead of
+         gst_rtp_buffer_new_allocate() in order to allocate RTP buffer with
+         correct number of CSRCs according to the meta.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/612>
+
+2015-10-23 11:08:56 +0200  Stian Selnes <stian@pexip.com>
+
+       * gst/rtp/gstrtpvp8pay.c:
+         rtpvp8pay: Fix allocation to support source-info property
+         Use gst_rtp_base_payload_allocate_output_buffer() in order to allocate
+         RTP buffer with correct number of CSRCs according to the meta.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/314
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/612>
+
+2020-09-28 15:36:00 +1000  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: output the correct limits in error messages
+         Having the current bytes being less than the limit was confusing!
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/732>
+
+2020-07-31 16:47:37 +1000  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/gstqtmux.h:
+       * tests/check/elements/qtmux.c:
+         qtmux: properly support initial caps nego failure
+         Scenario:
+         - gap event causes h264parse to push made up caps that may fail checks
+         inside qtmux (e.g missing codec_data).
+         - the caps event has already been marked as received and is sticky on
+         the sink pad
+         - gst_qt_mux_pad_can_renegotiate() will retrieve the failed caps event
+         using gst_pad_get_current_caps() and reject the correct updated caps
+         with codec_data.
+         - Failure!
+         Keep track of the configured caps ourselves instead of relying on the
+         sticky event on the pad.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/732>
+
+2020-07-22 15:34:44 +1000  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/gstqtmux.h:
+         qtmux: support non-seekable downstream mode
+         Write an mdat per buffer in that case.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/732>
+
+2020-09-23 15:25:36 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: Remove the rtpjitterbuffer with the stream
+         Since !348, the jitterbuffer was only removed with the session. This restores
+         the original behaviour and removes the jitterbuffer when the stream is
+         removed. This avoid accumulating jitterbuffer objects into the bin when a
+         session is reused.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/735>
+
+2020-09-23 13:26:51 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: Cleanup dead code
+         The rtpjitterbuffer is now part of the session elements, we no longer need
+         to do the ref_sink dance when signalling it. It is already owned by the bin
+         when signalled. Also, the code that handles generic session elements already
+         handle the ref_sink() calls since:
+         03dc22951bacb6fdc3868c8f801e6a52c33a745f
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/735>
+
+2020-09-18 16:09:20 +1000  Matthew Waters <matthew@centricular.com>
+
+       * gst/rtp/gstrtph264depay.c:
+       * gst/rtp/gstrtph264depay.h:
+       * gst/rtp/gstrtph265depay.c:
+       * gst/rtp/gstrtph265depay.h:
+       * tests/check/elements/rtph264.c:
+         rtph26*depay: drop FU's without a corresponding start bit
+         If we have not received a FU with a start bit set, any subsequent FU
+         data is not useful at all and would result in an invalid stream.
+         This case is constructed from multiple requirements in
+         RFC 3984 Section 5.8 and RFC 7798 Section 4.4.3.  Following are excerpts
+         from RFC 3984 but RFC 7798 contains similar language.
+         The FU in a single FU case is forbidden:
+         A fragmented NAL unit MUST NOT be transmitted in one FU; i.e., the
+         Start bit and End bit MUST NOT both be set to one in the same FU
+         header.
+         and dropping is possible:
+         If a fragmentation unit is lost, the receiver SHOULD discard all
+         following fragmentation units in transmission order corresponding to
+         the same fragmented NAL unit.
+         The jump in seqnum case is supported by this from the specification
+         instead of implementing the forbidden_zero_bit mangling:
+         If a fragmentation unit is lost, the receiver SHOULD discard all
+         following fragmentation units in transmission order corresponding to
+         the same fragmented NAL unit.
+         A receiver in an endpoint or in a MANE MAY aggregate the first n-1
+         fragments of a NAL unit to an (incomplete) NAL unit, even if fragment
+         n of that NAL unit is not received.  In this case, the
+         forbidden_zero_bit of the NAL unit MUST be set to one to indicate a
+         syntax violation.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/730>
+
+2020-09-20 21:06:19 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/imagefreeze/gstimagefreeze.c:
+         imagefreeze: Response caps query from srcpad
+         ... and chain up to default query handler for unhandled query types.
+         Unhandled query shouldn't be returned with FALSE if there's no special needs.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/731>
+
+2020-09-16 12:15:09 +1000  Matthew Waters <matthew@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/isomp4/gstqtmux-doc.c:
+       * gst/isomp4/gstqtmux-doc.h:
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/gstqtmux.h:
+         qtmux: make documentation happy
+         introduce a base qtmux class that we can install documentation snippets
+         on instead of duplicating across alll the isomp4 elements
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/643>
+
+2020-05-28 19:40:24 +1000  Matthew Waters <matthew@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/isomp4/atoms.c:
+       * gst/isomp4/atoms.h:
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/gstqtmux.h:
+       * gst/isomp4/gstqtmuxmap.c:
+       * tests/check/elements/qtmux.c:
+         isomp4/mux: add a fragment mode for initial moov with data
+         Used by some proprietary software for their fragmented files.
+         Adds some support for multi-stream fragmented files
+         Flow is as follows.
+         1. The first 'fragment' is written as a self-contained fragmented
+         mdat+moov complete with an edit list and durations, tags, etc.
+         2. Subsequent fragments are written with a mdat+moof and each stream is
+         interleaved as data arrives (currently ignoring the interleave-*
+         properties).  data-offsets in both the traf and the trun ensure
+         data is read from the correct place on demuxing.  Data/chunk offsets
+         are also kept for writing out the final moov.
+         3. On finalisation, the initial moov is invalidated to a hoov and the
+         size of the first mdat is extended to cover the entire file contents.
+         Then a moov is written as regularly would in moov-at-end mode (the
+         default).
+         This results in a file that is playable throughout while leaving a
+         finalised file on completion for players that do not understand
+         fragmented mp4.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/643>
+
+2020-06-25 16:37:56 +1000  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: increase some logging on streams and sample parsing
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/643>
+
+2020-06-25 16:35:45 +1000  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: bail out when encountering an atom with a size of 0
+         A size 0 atom means the atom extends to the end of the file.  No further
+         valid atoms will ever follow.  Avoids a subsequent scan for an atom from
+         one byte earlier after encountering a size 0 atom.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/643>
+
+2020-06-25 16:33:04 +1000  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: fix subsequent moof parsing after moov with valid samples
+         reset the moof_offset back to its original value like is done in the
+         error case just before.
+         Fixes subsequent parsing of a moof following a moov that contains valid
+         samples in a non-streaming fragmented mp4.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/643>
+
+2020-06-25 16:30:28 +1000  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: extend edit list when fragmented
+         When we are fragmented, the edit list may only refer to the portion of
+         the media that is in the moov.  Extend the edit list stop time when we
+         if there is only one qt segment and we are reading a fragmented file.
+         Fixes playback of some fragmented mp4 files generated by proprietary
+         programs.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/643>
+
+2020-09-15 14:22:13 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * meson_options.txt:
+         meson: Allow overriding qt5 feature
+         This will allow controlling that feature from gst-build
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/729>
+
+2015-11-17 19:14:01 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/multifile/gstsplitmuxsrc.c:
+         splitmuxsrc: Implement segment query
+         Fixes #239
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/713>
+
+2020-09-14 10:15:35 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtp/gstrtpmp4gdepay.c:
+         rtpmp4gdepay: Allow lower-case "aac-hbr" instead of correct "AAC-hbr"
+         Various live555 based products are using the wrong "mode" string or
+         seem to assume case-insensitive matching, which is wrong.
+         Examples for this are the Yuan SC6C0N1 mini and the Kiloview E2.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/727>
+
+2020-05-02 02:21:00 +0200  Stefan Brüns <stefan.bruens@rwth-aachen.de>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Add support for AAX encrypted audio streams
+         This is modelled after the DASH Common Encryption scheme, but is somewhat
+         simpler as more parts are fixed, i.e. just one encryption scheme.
+         The output caps are fixed to 'application/x-aavd'. All information
+         required for decryption are part of the 'adrm' atom, which is passed
+         on as a property. The property is attached to the buffer.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/577>
+
+2020-05-02 02:20:44 +0200  Stefan Brüns <stefan.bruens@rwth-aachen.de>
+
+       * gst/isomp4/fourcc.h:
+       * gst/isomp4/qtdemux.c:
+       * gst/isomp4/qtdemux_types.c:
+         qtdemux: Add 'aavd' and related fourcc codes for AAX encrypted audio
+         The 'aavd' box is contained in the 'stsd' sample description. The 'aavd'
+         box follows the layout of an 'mp4a' entry, i.e. it contains a single
+         standard 'esds' extension box, and the two proprietary 'adrm' and 'aabd'
+         extension boxes.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/577>
+
+2014-06-23 08:46:37 +0200  Haakon Sporsheim <haakon@pexip.com>
+
+       * ext/vpx/gstvp8dec.c:
+       * ext/vpx/gstvp9dec.c:
+       * ext/vpx/gstvpxdec.c:
+       * ext/vpx/gstvpxdec.h:
+         vpxdec: request a sync point on decoder errors
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/725>
+
+2020-09-13 18:31:57 +0200  Camilo Celis Guzman <camilo@pexip.com>
+
+       * gst/rtp/gstrtpvrawpay.c:
+         rtp/vrawpay: use alloc_output_buffer from base class
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/726>
+
+2020-09-07 23:20:58 +0800  Ricky Tang <ricky@deepsentinel.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Fix push-backchannel-buffer parameter mismatch
+         When using python, signal parameter must match with function.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/724>
+
+2020-09-10 11:24:32 +0200  Jérôme Laheurte <jlaheurte@quividi.net>
+
+       * ext/jpeg/gstjpegdec.c:
+         jpegdec: check buffer size before dereferencing. Fixes #541
+         Some cameras (Panacast) have buggy drivers/firmware which send
+         invalid JPEG frames, containing no data, which makes jpegdec
+         crash because it assumes the frame is at least 2 bytes long.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/723>
+
+2020-09-10 11:11:00 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Improve logging of gst_flv_mux_buffer_to_tag_internal
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/722>
+
+2020-09-09 15:12:53 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Move stream skipping to GstAggregatorPadClass.skip_buffer
+         Besides looking like the correct place to put this, it allows us to drop
+         the entire aggregator queue. The old implementation only dropped at most
+         one buffer for each call of aggregate.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/722>
+
+2020-09-08 17:35:50 +0200  Havard Graff <havard@pexip.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: plug memory-leak
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/718>
+
+2020-08-28 18:09:15 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * ext/vpx/gstvp9enc.c:
+       * ext/vpx/gstvp9enc.h:
+       * ext/vpx/meson.build:
+         vp9enc: expose row-mt property
+         With recent libvpx versions, multithreading can be enabled on
+         a per-tile basis, instead of on a per tile-column basis.
+         In combination with the new tile-rows property, this allows the
+         encoder to make much better use of the available CPU power.
+         Bump minimum libvpx version to 1.7.0
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/707>
+
+2020-08-28 17:45:48 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * ext/vpx/gstvpxenc.c:
+         vpxenc: change default for deadline to good quality
+         Having the deadline set to best quality causes the encoder
+         to be absurdly slow, most real-life users will want the good
+         quality tradeoff instead.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/707>
+
+2020-08-28 17:39:47 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * ext/vpx/gstvp9enc.c:
+       * ext/vpx/gstvp9enc.h:
+         vp9enc: expose tile-columns and tile-rows properties
+         Based on patch by Stian Selnes <stian@pexip.com>.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/707>
+
+2020-08-28 17:35:26 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * ext/vpx/gstvpxenc.c:
+       * ext/vpx/gstvpxenc.h:
+         vpxenc: add configure_encoder virtual method
+         For subclasses to expose format-specific properties
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/707>
+
+2020-09-08 20:57:33 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: fix sink pad release while PLAYING
+         - Release the split mux lock while removing the probes
+         - Flush the sinkpad to unblock other pads
+         - Turn check_completed_gop into a do while statement, when
+         waking up we want to recheck whether the current GOP is
+         ready for sending
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/719>
+
+2017-10-31 09:40:33 +0000  John-Mark Bell <jmb@pexip.com>
+
+       * tests/check/elements/vp8enc.c:
+         vp8enc: improve unit tests
+         - make test_encode_simple cope with libvpx built with
+         CONFIG_REALTIME_ONLY. Sadly, there's no way to detect this at
+         runtime beyond trying to set lag-in-frames to >0, pushing a
+         buffer and catching the GST_FLOW_NOT_NEGOTIATED return.
+         - fix bitrot in test_encode_simple_when_bitrate_set_to_zero.
+         - port test_encode_simple to GstHarness and introduce a separate
+         test for the lag-in-frames property.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/708>
+
+2020-08-21 16:03:09 +0200  Jakub Adam <jakub.adam@collabora.com>
+
+       * docs/gst_plugins_cache.json:
+         docs: Update plugin cache
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/705>
+
+2020-03-24 19:35:07 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * ext/vpx/gstvp9dec.c:
+       * ext/vpx/gstvp9enc.c:
+       * ext/vpx/gstvpxenc.c:
+         vpx: Support GST_VIDEO_FORMAT_I422_10LE
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/705>
+
+2020-03-24 17:16:59 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * ext/vpx/gstvp9dec.c:
+       * ext/vpx/gstvp9enc.c:
+       * ext/vpx/gstvpxenc.c:
+         vpx: Support GST_VIDEO_FORMAT_I420_10LE
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/705>
+
+2020-03-23 21:44:30 +0100  Jakub Adam <jakub.adam@collabora.com>
+
+       * ext/vpx/gstvp9enc.c:
+       * ext/vpx/gstvpxenc.c:
+         vp9enc: support GST_VIDEO_FORMAT_Y444
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/705>
+
+2020-09-08 17:30:35 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * .gitlab-ci.yml:
+         ci: include template from gst-ci master branch again
+
+2020-09-08 16:58:37 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * meson.build:
+         Back to development
+
+=== release 1.18.0 ===
+
+2020-09-08 00:05:14 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * .gitlab-ci.yml:
+       * ChangeLog:
+       * NEWS:
+       * README:
+       * RELEASE:
+       * docs/gst_plugins_cache.json:
+       * gst-plugins-good.doap:
+       * meson.build:
+         Release 1.18.0
+
+2020-09-07 22:39:02 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * meson.build:
+       * scripts/dist-translations.py:
+       * scripts/meson.build:
+         meson: dist pot file in tarballs
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/716>
+
+2020-09-07 12:13:18 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/atoms.c:
+       * gst/isomp4/qtdemux.c:
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-mux.c:
+         gst: Update for gst_video_transfer_function_*() function renaming
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/715>
+
+2020-08-31 15:01:32 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Avoid crash when best pad gets flushed
+         The 'best' pad might receive a flush event between us picking it and us
+         popping the buffer. In this case, the buffer will be missing.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/711>
+
+2020-08-31 13:43:42 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Correct breaks in gst_flv_mux_find_best_pad
+         The code seems to use `continue` and `break` as if both refer to the
+         surrounding `while` loop. But because `break` breaks out of the
+         `switch`, they actually have the same effect.
+         This may have caused the loop not to terminate when it should. E.g. when
+         `skip_backwards_streams` drops a buffer we should abort the aggregation
+         and wait for all pads to be filled again. Instead, we might have just
+         selected a subsequent pad as our new "best".
+         Replace `break` with `done = TRUE; break`, and `continue` with `break`.
+         Then simplify the code a bit.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/710>
+
+2020-05-13 11:31:38 +0200  Dmitriy Purgin <dpurgin@gmail.com>
+
+       * ext/qt/README.md:
+       * ext/qt/qtplugin.pro:
+         gstqmlgl: build on Windows with qmake without pkgconfig; update instructions on building for Windows
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/591>
+
+2020-08-21 12:12:48 +0200  Philipp Zabel <philipp.zabel@gmail.com>
+
+       * meson.build:
+         meson: fix build failure if orc is enabled but none of its users are
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/778
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/704>
+
+2020-08-20 14:26:04 +0200  Zeid Bekli <zeidb@axis.com>
+
+       * gst/rtp/gstrtpL16depay.c:
+         rtpL16depay: unref buffer on error
+         gst_rtp_L16_depay_process to unref buffer on wrong payload size or
+         reorder failure.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/702>
+
+=== release 1.17.90 ===
+
+2020-08-20 16:11:58 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+       * NEWS:
+       * RELEASE:
+       * docs/gst_plugins_cache.json:
+       * gst-plugins-good.doap:
+       * meson.build:
+         Release 1.17.90
+
+2020-08-18 10:27:52 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtp/gstrtputils.c:
+         rtputils: Don't call NULL GstMeta transform function
+         It's optional and if it does not exist then no transformation is
+         possible.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/701>
+
+2020-08-13 15:27:25 -0400  Julian Bouzas <julian.bouzas@collabora.com>
+
+       * gst/rtp/gstrtp.c:
+         rtp: Do not register rtpreddec and rtpredenc twice
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/699>
+
+2020-08-12 12:21:43 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtpsource.c:
+         rtpmanager: Improve readability of "stats" docs by making the fields an actual list
+         Otherwise they end up all in the same line one after another.
+         Also add docs for the "avg-jitter" stats field of the jitterbuffer.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/698>
+
+2020-08-11 17:24:11 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2h264codec.c:
+         v4l2h264codec: Map newly defined profile/levels
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/697>
+
+2020-08-11 17:18:42 -0400  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:
+         v4l2: Sync headers with kernel 5.9
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/697>
+
+2020-08-06 13:15:10 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+       * sys/v4l2/gstv4l2deviceprovider.c:
+       * sys/v4l2/gstv4l2object.c:
+       * sys/v4l2/gstv4l2object.h:
+       * sys/v4l2/gstv4l2radio.c:
+       * sys/v4l2/gstv4l2sink.c:
+       * sys/v4l2/gstv4l2src.c:
+       * sys/v4l2/gstv4l2transform.c:
+       * sys/v4l2/gstv4l2videodec.c:
+       * sys/v4l2/gstv4l2videoenc.c:
+       * sys/v4l2/v4l2_calls.c:
+         v4l2: use GstV4l2Error in gst_v4l2_open()
+         gst_v4l2_open() is called by gst_v4l2_device_provider_probe_device(),
+         where the GstV4l2Object is created without an associated GstElement.
+         If gst_v4l2_open() fails, it raises a bus message, but without an
+         element, a precondition check fails on
+         gst_element_message_full_with_details() generating a crash if running
+         with fatal-warnings debug mode.
+         GstV4l2Error is a helper to raise error bus messages when it is
+         appropiated. This patch changes the direct bus messages to this
+         helper, and the elements will actually send the error message.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/694>
+
+2020-08-10 20:20:53 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Return NEED_DATA when we drop a buffer
+         When we are dropping a buffer in find_best_pad (e.g. waiting for a
+         keyframe, or skipping backwards timestamp), return
+         GST_AGGREGATOR_FLOW_NEED_DATA to make sure we have enough data at the
+         next run. Otherwise, a stream that accidentally fell behind (e.g.
+         relinking race, or just waiting for a keyframe) will never get the
+         opportunity to catch up to the other one, because the other one will
+         always keep advancing.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/696>
+
+2020-08-10 20:20:04 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Return NEED_DATA when no best pad is found
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/696>
+
+2020-08-10 20:17:38 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Fix possible crash on GST_ITERATOR_RESYNC
+         Wrong pointer type
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/696>
+
+2020-08-10 15:49:55 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/qtglrenderer.cc:
+         qmlgloverlay: fix multiple elements with Qt 5.15
+         With Qt 5.15 multiple qmlgloverlay elements would produce:
+         ASSERT: "!m_gl->property(QSG_RENDERCONTEXT_PROPERTY).isValid()" in file /path/to/qt5/qtdeclarative/src/quick/scenegraph/qsgdefaultrendercontext.cpp, line 121
+         Workaround by setting the (seeminigly unused) property before
+         initialization.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/695>
+
+2020-08-05 10:41:33 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph265pay.c:
+       * tests/check/elements/rtp-payloading.c:
+       * tests/check/elements/rtph264.c:
+       * tests/check/elements/rtph265.c:
+         rtph26[45]pay: Change default aggregate-mode to "none" for backwards compatibility
+         We didn't aggregate at all in previous versions and there are apparently
+         various RTP implementations that don't handle aggregation well at all.
+         As part of this also document that for RTSP it is recommended to keep it
+         set to "none" while for WebRTC it should be set to "zero-latency".
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/749
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/692>
+
+2020-07-24 16:58:34 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/gtk/meson.build:
+       * ext/qt/meson.build:
+       * meson.build:
+       * tests/examples/gtk/meson.build:
+         build: update for gl pkg-config file split
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/680>
+
+2020-07-31 13:50:13 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Make sure flushing doesn't block
+         * Trying to disconnect a stream from a running splitmuxsink by flushing
+         it results in the FLUSH_START blocking in the stream queue's
+         gst_pad_pause_task because the flush did not unblock
+         complete_or_wait_on_out, so add a check for ctx->flushing there.
+         * Add a GST_SPLITMUX_BROADCAST_INPUT so check_completed_gop notices
+         flushing changed and the incoming push is unblocked.
+         * Pass the FLUSH_STOP along to the muxer without waiting.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/687>
+
+2020-08-04 15:49:43 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/imagefreeze/gstimagefreeze.c:
+         imagefreeze: Wait until we have a clock
+         Otherwise it can happen that it tries to get the clock in PAUSED state
+         in live mode, which does not exist.
+         Thanks to Sebastian Dröge for helping debugging.
+         Fixes #775
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/691>
+
+2020-07-31 11:05:02 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: extract bit depth from codec data for ALAC
+         The info in the sound sample description might not be
+         accurate if it's an older version atom.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/771
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/686>
+
+2020-07-28 18:46:30 +0300  Jordan Petridis <jordan@centricular.com>
+
+       * gst/auparse/gstauparse.c:
+         auparse: fix compiler warnings
+         GCC 10 was complaining like following. It really is complaining about default cases returning
+         with potentially unitialized *desval, but those cases in the switch should never be hit.
+         ```
+         ../subprojects/gst-plugins-good/gst/auparse/gstauparse.c: In function 'gst_au_parse_chain':
+         ../subprojects/gst-plugins-good/gst/auparse/gstauparse.c:481:37: error: 'timestamp' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+         481 |       GST_BUFFER_TIMESTAMP (outbuf) = timestamp;
+         ../subprojects/gst-plugins-good/gst/auparse/gstauparse.c:482:36: error: 'duration' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+         482 |       GST_BUFFER_DURATION (outbuf) = duration;
+         ../subprojects/gst-plugins-good/gst/auparse/gstauparse.c:480:34: error: 'offset' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+         480 |       GST_BUFFER_OFFSET (outbuf) = offset;
+         cc1: all warnings being treated as errors
+         ```
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/671>
+
+2020-07-29 14:06:55 +0300  George Kiagiadakis <george.kiagiadakis@collabora.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: drop stream-start message posted by the internal udp sink(s)
+         See #1368
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/685>
+
+2020-07-22 16:24:15 +0900  Hosang Lee <hosang10.lee@lge.com>
+
+       * tests/check/elements/qtdemux.c:
+         tests: qtdemux: test correct pad names are created
+         Test correct pad names are created in accordance to their media type
+         in mss mode.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/628>
+
+2020-06-16 17:23:44 +0900  Hosang Lee <hosang10.lee@lge.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: create correct pad names in encrypted streams
+         Refer to "original-media-type" when setting stream's subtype
+         for encrypted streams in mss mode.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/628>
+
+2020-07-22 14:31:13 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroskamux: Do caps renegotiation when it only adds fields
+         Matroskamux can accept caps renegotiation if the new caps is a
+         superset of the old one, meaning upstream added new info to
+         the caps.
+         Same logic as a5f22f03aa25b04726f78ae619f40b3b648f7d48 in qtmux.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/678>
+
+2020-07-24 14:02:26 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/rtpmanager/gstrtpfunnel.c:
+         rtpfunnel: protect internal srccaps with lock
+         These are modified from sink pad event handlers, so
+         could be accessed from multiple threads at the same
+         time.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/681>
+
+2020-02-23 23:44:16 +0100  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/gstrtpfunnel.c:
+         rtpfunnel: copy caps before sending them in a caps-event
+         Reason being we don't want downstream to own a ref to our
+         internal caps.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/681>
+
+2020-07-27 15:41:26 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtpsource.c:
+         rtpmanager: fix various documentation issues
+         Improper naming of properties, improper links, misc
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/684>
+
+2020-07-24 17:13:04 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+         rpicamsrc: hypothetical fix for data pointer calculation
+         mmal buffer header docs say data is valid for length bytes
+         from offset. In practice offset always seems to be 0 so
+         far though.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>
+
+2020-07-24 16:35:43 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+         rpicamsrc: mark buffers as header and keyframe/delta-unit
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>
+
+2020-07-24 16:14:00 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: fix nal alignment of output buffers
+         We claim output buffers are nal-aligned, but that wasn't
+         actually true: We would push out a partial nal in case
+         the nal doesn't fit into the max encoder-selected output
+         buffer size, and then the next buffer would not start
+         with a sync marker. That's not right and makes h264parse
+         unhappy.
+         Instead accumulate buffers until we have a full frame
+         (we can't rely on the NAL_END flag, it's always set).
+         Fixes #768
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>
+
+2020-07-13 23:43:48 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/meson.build:
+         rpicamsrc: fix "Could not find component vc.ril.camera" on recent raspios
+         Make extra sure all the required mmal libs such as libmmal_vc_client.so
+         actually get linked and stay linked. Otherwise the above error happens
+         it seems.
+         buster (10.4) with meson 0.55 and pi ref 2020-05-27
+         pi-gen, 825107f04027269db77426046f5085475b1ea22f, stage5
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>
+
+2020-07-13 17:01:42 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * po/POTFILES:
+       * sys/rpicamsrc/gstrpicamsrcdeviceprovider.c:
+         rpicamsrc: deviceprovider: hook up i18n properly
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>
+
+2020-07-13 16:55:48 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrcdeviceprovider.c:
+         rpicamsrc: deviceprovider: advertise (M)JPEG as well
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>
+
+2020-07-13 16:50:58 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrcdeviceprovider.c:
+         rpicamsrc: deviceprovider: also advertise constrained-baseline profile
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>
+
+2020-07-23 16:58:00 +0200  Stéphane Cerveau <scerveau@collabora.com>
+
+       * meson.build:
+         meson: add a plugin summary
+         This summary displays a list of plugins which
+         have been enabled.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/679>
+
+2020-07-22 09:46:47 +0800  Haihua Hu <jared.hu@nxp.com>
+
+       * sys/v4l2/gstv4l2object.h:
+       * sys/v4l2/v4l2_calls.c:
+         v4l2: enhance v4l2 control interface to support string type CID
+         add string type cid support for v4l2 implementation
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/676>
+
+2020-07-01 15:17:47 +0200  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/isomp4/fourcc.h:
+       * gst/isomp4/qtdemux.c:
+       * gst/isomp4/qtdemux_types.c:
+         qtdemux: add  Dolby Vision fourcc
+         This identifiers are registered in the MPEG-RA and defined
+         to be used by the Dolby Vision AVC/HEVC streams.
+         This is a first step to present the stream to the decoder.
+         Additional box parsing of DOVIConfigurationBox is necessary
+         to complete the media presentation with proper Dolby Vision
+         enhancements.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/658>
+
+2020-05-17 15:51:09 +1000  Luke Yelavich <themuso@themuso.com>
+
+       * gst/imagefreeze/gstimagefreeze.c:
+         imagefreeze: Copy GstCapsFeatures to caps for source pad
+         Allows using imagefreeze with buffers in GLMemory. The following pipeline
+         works.
+         gst-launch-1.0 filesrc location=image.jpg ! jpegdec ! glupload ! \
+         imagefreeze ! glcolorconvert ! glimagesinkelement
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/594>
+
+2020-07-20 18:20:59 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/rtpmanager/rtptwcc.h:
+         rtpmanager: fix "redefinition of typedef RTPTWCCManager" compiler warning
+         G_DECLARE_FINAL_TYPE includes this typedef as well.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/675>
+
+2020-07-17 16:39:25 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtpac3pay.c:
+       * gst/rtp/gstrtpamrpay.c:
+       * gst/rtp/gstrtpceltpay.c:
+       * gst/rtp/gstrtpg723pay.c:
+       * gst/rtp/gstrtpg729pay.c:
+       * gst/rtp/gstrtpgsmpay.c:
+       * gst/rtp/gstrtpgstpay.c:
+       * gst/rtp/gstrtpmp2tpay.c:
+       * gst/rtp/gstrtpmp4apay.c:
+       * gst/rtp/gstrtpmp4gpay.c:
+       * gst/rtp/gstrtpmpapay.c:
+       * gst/rtp/gstrtpsbcpay.c:
+       * gst/rtp/gstrtpspeexpay.c:
+       * gst/rtp/gstrtpvorbispay.c:
+         rtp*pay: Allocate using the base class for audio codecs
+         This is required to add RTP header extensions from the
+         meta automatically.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/674>
+
+2020-07-14 13:14:09 +0200  Ognyan Tonchev <ognyan@axis.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Fix segfault with illegal free
+         set_get_param_q is not a pointer so it is illegal to call g_queue_free_full().
+         Freeing the requests by popping them from the queue instead.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/669>
+
+2020-07-15 14:40:42 +0300  Raul Tambre <raul@tambre.ee>
+
+       * ext/qt/qtitem.cc:
+         QtGLVideoItem: Use QSharedPointer::data() for better compatibility
+         Older Qt versions didn't have QSharedPointer::get(), which is just a modern alias for QSharedPointer::data().
+         FAILED: ext/qt/libgstqmlgl.so.p/qtitem.cc.o
+         c++ -Iext/qt/libgstqmlgl.so.p -Iext/qt -I../ext/qt -I. -I.. -I../gst-libs -I/usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4 -I/usr/lib/aarch64-linux-gnu/gstreamer-1.0/include -I/usr/include/aarch64-linux-gnu/qt5/QtCore -I/usr/include/aarch64-linux-gnu/qt5 -I/usr/include/aarch64-linux-gnu/qt5/QtGui -I/usr/include/aarch64-linux-gnu/qt5/QtQml -I/usr/include/aarch64-linux-gnu/qt5/QtNetwork -I/usr/include/aarch64-linux-gnu/qt5/QtQuick -I/usr/include/aarch64-linux-gnu/qt5/QtX11Extras -I/usr/include/libdrm -flto -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c++11 -Wmissing-declarations -Wredundant-decls -Wwrite-strings -Winit-self -Wmissing-include-dirs -Wno-multichar -Wvla -Wpointer-arith -g -fdebug-prefix-map=/opt/good/src=. -Wformat -Werror=format-security -O3 -march=native -Wno-error -Wdate-time -fPIC -pthread -DHAVE_CONFIG_H -DHAVE_QT_X11 -DHAVE_QT_EGLFS -MD -MQ ext/qt/libgstqmlgl.so.p/qtitem.cc.o -MF ext/qt/libgstqmlgl.so.p/qtitem.cc.o.d -o ext/qt/libgstqmlgl.so.p/qtitem.cc.o -c ../ext/qt/qtitem.cc
+         In file included from /usr/include/gstreamer-1.0/gst/gst.h:55:0,
+         from /usr/include/gstreamer-1.0/gst/video/video.h:23,
+         from ../ext/qt/qtitem.cc:27:
+         ../ext/qt/qtitem.cc: In destructor ‘virtual QtGLVideoItem::~QtGLVideoItem()’:
+         ../ext/qt/qtitem.cc:138:86: error: ‘class QSharedPointer<QtGLVideoItemInterface>’ has no member named ‘get’
+         GST_INFO ("%p Destroying QtGLVideoItem and invalidating the proxy %p", this, proxy.get());
+         ^
+         /usr/include/gstreamer-1.0/gst/gstinfo.h:682:31: note: in definition of macro ‘GST_CAT_LEVEL_LOG’
+         (GObject *) (object), __VA_ARGS__);    \
+         ^~~~~~~~~~~
+         ../ext/qt/qtitem.cc:138:3: note: in expansion of macro ‘GST_INFO’
+         GST_INFO ("%p Destroying QtGLVideoItem and invalidating the proxy %p", this, proxy.get());
+         ^
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/673>
+
+2020-07-14 14:24:20 +0100  Justin Chadwell <justin.chadwell@pexip.com>
+
+       * gst/isomp4/qtdemux.c:
+       * tests/check/elements/qtdemux.c:
+         qtdemux: fix allocation explosion with stsd entries
+         Previously, the user input for stsd entries is trusted completely, and
+         so a maliciously crafted file could choose the length of the stsd
+         entries arbitrarily and cause qtdemux to try to allocate up to 2GB of
+         memory (half of a 32 bit max int).
+         This patch fixes this by sanity checking the stsd input against the
+         size of the entire stsd atom.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/670>
+
+2020-07-13 10:37:19 +0100  Justin Chadwell <justin.chadwell@pexip.com>
+
+       * gst/isomp4/qtdemux.c:
+       * tests/check/elements/qtdemux.c:
+         qtdemux: fix crashes when input stream contained no stsd entries
+         During trak parsing, we need to check for the existence of stsd_entries,
+         otherwise, we end up with a NULL pointer to them. It is entirely
+         possible for the stsd to exist, but for it to have no entries, which the
+         previous checks did not take into account.
+         This patch adds a simply check to ensure that all files that do not
+         contain a stsd entry are deemed corrupt, and adds a test case to prevent
+         a regression.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/670>
+
+2020-07-15 12:40:17 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+         docs: update for new pixel formats
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/753
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/754
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/672>
+
+2020-07-10 21:43:14 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/meson.build:
+         rpicamsrc: fix build with older meson versions
+         assert() used to require two arguments.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/668>
+
+2020-07-10 13:08:55 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/examples/meson.build:
+       * tests/examples/rpicamsrc/meson.build:
+       * tests/examples/rpicamsrc/test_color_balance.c:
+       * tests/examples/rpicamsrc/test_orientation.c:
+         examples: hook up rpicamsrc examples
+         webrtc one should probably go into gst-examples.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/667>
+
+2020-07-10 00:42:13 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/examples/rpicamsrc/test_color_balance.c:
+       * tests/examples/rpicamsrc/test_orientation.c:
+       * tests/examples/rpicamsrc/webrtc-unidirectional-h264.c:
+         examples: fix indentation of rpicamsrc examples
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/667>
+
+2020-07-09 19:08:34 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * docs/meson.build:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: flesh out docs and add to plugin docs cache
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/667>
+
+2020-07-09 18:04:10 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrc.h:
+         rpicamsrc: enable video orientation/direction unconditionally
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/667>
+
+2020-07-09 17:37:01 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/gstrpicam-enums-template.c:
+       * sys/rpicamsrc/gstrpicam-enums-template.h:
+         rpicamsrc: remove mkenums template files which are no longer needed
+         They were still being used by the autotools build, but that's gone.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/667>
+
+2020-07-09 17:35:15 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/RaspiCLI.c:
+       * sys/rpicamsrc/RaspiCamControl.c:
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiPreview.c:
+       * sys/rpicamsrc/RaspiStill.c:
+       * sys/rpicamsrc/RaspiStillYUV.c:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrcdeviceprovider.c:
+         rpicamsrc: fix indentation
+         Not touching the Raspi* files.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/667>
+
+2020-07-09 17:31:49 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/meson.build:
+         rpicamsrc: fix and silence some compiler warnings
+         Some are in system headers, and in Raspi files we want
+         to keep modifications to a minimum.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/667>
+
+2020-07-09 16:07:30 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * meson_options.txt:
+       * sys/meson.build:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrcdeviceprovider.c:
+       * sys/rpicamsrc/gstrpicamsrcdeviceprovider.h:
+       * sys/rpicamsrc/meson.build:
+         rpicamsrc: hook up to build
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/667>
+
+2020-07-09 11:46:30 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+         Merge branch 'plugin-move-rpicamsrc'
+         Move rpicamsrc from https://github.com/thaytan/gst-rpicamsrc/
+         It's a useful little element and works well, so might as well
+         make sure it's widely available so people can stop piping
+         raspivid output into fdsrc.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/667>
+
+2020-05-02 19:27:20 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/gstrpicam-enums-template.c:
+       * sys/rpicamsrc/gstrpicam-enums-template.h:
+         rpicamsrc: sync autotools with glib-mkenum usage in meson build
+
+2020-05-02 18:28:10 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/meson.build:
+         rpicamsrc: meson: use gnome.glib_mkenums_simple() and fix build as Meson subproject
+         While at it also fix up the type defines, e.g.
+         GST_RPI_CAM_TYPE_RPI_CAM_SRC_EXPOSURE_MODE -> GST_RPI_CAM_SRC_TYPE_EXPOSURE_MODE
+
+2020-05-03 11:09:47 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/gstplugin.map:
+       * sys/rpicamsrc/meson.build:
+         rpicamsrc: meson: drop map file and fix plugin symbol export with newer gstreamer versions
+         Use -fvisibility instead of a map file for symbol export, so that
+         the right symbols get exported with newer gstreamer versions. Older
+         GStreamer versions also still work of course.
+         Fixes blacklisting/plugin-loading issues with GStreamer >= 1.14
+         Fixes https://github.com/thaytan/gst-rpicamsrc/issues/984,
+         closes https://github.com/thaytan/gst-rpicamsrc/issues/94
+         and https://github.com/thaytan/gst-rpicamsrc/issues/67
+
+2018-07-16 19:49:21 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+         rpicamsrc: Attempt to workaround MMAL timeout bug
+         mmal_queue_timedwait() might spuriously return immediately
+         if called at exactly the wrong instant due to an internal
+         off-by-one bug. Attempt to work around that and just retry.
+
+2018-07-16 19:30:26 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Improve timeout error
+         Propagate timeout errors so they're not reported
+         generically
+
+2018-06-21 22:50:28 +1000  Jan Schmidt <jan@centricular.com>
+
+       * tests/examples/rpicamsrc/webrtc-unidirectional-h264.c:
+         rpicamsrc: webrtc example: Add a STUN server to the configuration
+         To let the webrtc example work through NAT firewalls
+
+2018-06-21 22:44:25 +1000  Jan Schmidt <jan@centricular.com>
+
+       * tests/examples/rpicamsrc/webrtc-unidirectional-h264.c:
+         rpicamsrc: webrtc example: Modify HTML to support other ports than 57778
+
+2018-06-21 21:45:32 +1000  Jan Schmidt <jan@centricular.com>
+
+       * tests/examples/rpicamsrc/webrtc-unidirectional-h264.c:
+         rpicamsrc: webrtc example: Remove external fmtp insertion
+         GStreamer 1.14.2 should contain the backport of gst-plugins-bad
+         commit 5c450c5 adding FEC and RTX support, and incidentally
+         the fmtp field in the SDP
+
+2018-06-21 20:33:03 +1000  Jan Schmidt <jan@centricular.com>
+
+       * tests/examples/rpicamsrc/webrtc-unidirectional-h264.c:
+         rpicamsrc: webrtc example: Set the locale
+         Make the date format in the overlay respect the current
+         locale
+
+2018-06-20 15:36:42 +0000  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+         rpicamsrc: Don't destroy the camera component on startup error
+         Just disable the camera component when it fails to start. The
+         most common reason is that the camera device is already in use,
+         and if we just disable the mmal component correct cleanup
+         will happen later
+
+2018-05-12 21:13:52 +0000  Jan Schmidt <jan@centricular.com>
+
+       * tests/examples/rpicamsrc/webrtc-unidirectional-h264.c:
+         rpicamsrc: Add webrtc streaming example
+         Add an example for testing webrtc streaming from the rpi
+         camera, based on the code from
+         https://bugzilla.gnome.org/show_bug.cgi?id=795404
+         Requires GStreamer 1.14.1 or git master
+
+2018-05-12 19:57:43 +0000  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Expose constrained-baseline profile
+         constrained-baseline is a useful profile for streaming to iOS
+         devices, and seems to work in the firmware, so let's publish it
+
+2018-03-28 22:00:10 +1100  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrcdeviceprovider.c:
+         rpicamsrc: Add define and increase reported maximum FPS from 90 to 1000
+
+2017-11-14 15:01:21 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+         rpicamsrc: Expand frame timeout from 100ms to 500ms
+         rpicamsrc on a normal rpi camera doesn't start up fast enough,
+         and always fails the new 100ms timeout. A better solution
+         might be to have a longer timeout for the first frame, but
+         shorter once frames are running - but this quick fix will at
+         least make rpicamsrc work again.
+
+2017-11-08 09:14:35 +0000  Georgii Staroselskii <georgii.staroselskii@emlid.com>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+         rpicamsrc: RaspiCapture: use mmal_queue_timedwait() for buffer queueing
+         If an external camera was disconnected, there were no feedback in an
+         application. It seems reasonable to wait on mmal_queue no longer than
+         100ms. If it's stuck we just return a FLOW_ERROR and let the application
+         decide what to do later.
+
+2017-11-07 15:14:06 +0000  Georgii Staroselskii <georgii.staroselskii@emlid.com>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+         rpicamsrc: RaspiCapture: handle MMAL_EVENT_ERROR
+
+2017-07-01 00:51:13 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Implement use-stc property to disable STC timestamps
+         If use-stc=false, then rpicamsrc won't apply
+         the camera timestamping to outgoing buffers, instead
+         relying on real-time timestamping by the
+         GStreamer clock. It means slightly less accuracy
+         and more jitter in timestamps, but might help on some
+         CSI inputs with broken timestamping.
+
+2017-05-19 20:55:35 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Fix the descriptions of text annotation colour properties
+         The text annotation colour properties take an integer value
+         corresponding to a VUY colour, not a text string like
+         the copy-pasted description from raspivid suggests.
+         Fixes https://github.com/thaytan/gst-rpicamsrc/issues/59
+
+2017-01-27 12:58:29 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+         rpicamsrc: Implement dynamic bitrate update
+         Use mmal_port_set_parameter_uint32 to update the encoder
+         bitrate.
+         Fixes https://github.com/thaytan/gst-rpicamsrc/issues/60
+
+2016-10-08 11:12:09 +0000  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrc.h:
+         rpicamsrc: Set outgoing buffer durations based on negotiated framerate.
+         make sure outgoing buffers have at least some duration set,
+         otherwise it leads to strange situations, like qtmux writing
+         out a file that doesn't include the final frame inside the
+         playable segment, because no-duration = 0 duration there.
+
+2016-10-08 11:10:30 +0000  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+         rpicamsrc: Destroy mmal pool on shutdown always.
+         Avoid hangs on the next run because we didn't clean up the mmal pool
+         last time we shutdown.
+
+2016-10-03 15:29:49 +0000  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Switch back to MJPEG codec for image/jpeg
+         The JPEG codec hangs, not sure why yet. The MJPEG
+         codec doesn't provide a quality setting, and sometimes
+         freezes on shutdown, but otherwise seems more
+         reliable
+
+2016-10-03 14:00:54 +0000  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Don't try and set H264 params with JPEG codec
+
+2016-10-03 02:34:50 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: First attempt at implementing MJPEG and raw video support
+
+2016-09-19 12:06:05 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/gstplugin.map:
+       * sys/rpicamsrc/meson.build:
+         rpicamsrc: Add experimental build using the Meson build system
+         Builds in about 10 seconds vs. 77 seconds with autotools.
+
+2016-08-30 17:00:41 +0200  Xabier Rodriguez Calvar <calvaris@igalia.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrc.h:
+         rpicamsrc: Implement GstVideoDirection interface
+         Instead of implementing a custom property, we implement that interface.
+
+2016-07-21 02:29:57 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: MMAL gives buffers with nal alignment, not AU
+         Fix the output caps, our buffers are not AU aligned, since
+         the SPS / PPS are given in separate packets at the start.
+
+2016-07-08 15:32:21 +0200  Xabier Rodriguez Calvar <calvaris@igalia.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrc.h:
+         rpicamsrc: Create orientation property
+         Its behavior and choices are analog to the ones present in [gl]videoflip
+         for the method property.
+
+2016-01-03 08:26:23 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: basesrc event handlers should not unref
+         Don't unref the passed event when handling events via
+         the GstBaseSrc src pad event handler - basesrc does
+         the unref. That breaks handling of upstream
+         force-key-unit events by unreffing twice.
+         Fixes https://github.com/thaytan/gst-rpicamsrc/issues/43
+
+2015-12-17 14:16:10 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Add property getters for preview window position.
+         Add the lines in get_property() for the preview-x/y/w/h properties
+         so the values can be retrieved without causing critical warnings.
+         Fixes https://github.com/thaytan/gst-rpicamsrc/issues/42
+
+2015-12-02 01:20:10 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Add preview-x/y/w/h properties
+         Expose properties for setting the position of the preview
+         window on the screen
+
+2015-10-21 21:11:36 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Add properties for configuring annotation text size and colour.
+         Map the raspivid setting for annotation text size and colours
+         to properties.
+
+2015-10-08 10:32:32 +0200  ibauer <iljabauer@gmail.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Changed awb-gain-blue use the correct enum PROP_AWB_GAIN_BLUE and not PROP_AWB_GAIN_RED
+
+2015-07-19 01:48:35 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+         rpicamsrc: Fix buffer PTS calculation
+         Timestamps from MMAL are in microseconds,
+         so make sure to convert to nanoseconds before
+         using them to adjust the GStreamer buffer time
+
+2015-05-11 11:16:52 +0200  Philippe Normand <philn@igalia.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * tests/examples/rpicamsrc/test_orientation.c:
+         rpicamsrc: Basic orientation interface support
+         The (h,v)flip attributes are now supported through this interface.
+         It should also be possible to support (h,v)center attributes using the
+         ROI properties.
+
+2015-05-11 21:29:58 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Describe awb-mode=off in lowercase
+         Change the descriptions for the awb-gain-blue and awb-gain-red
+         properties to say 'awb-mode=off' instead of 'awb-mode=OFF'
+         See https://github.com/thaytan/gst-rpicamsrc/issues/26
+
+2015-05-11 10:17:18 +0200  Philippe Normand <philn@igalia.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: colorbalance: protect with config_lock mutex
+
+2015-05-05 19:03:43 +0200  Philippe Normand <philn@igalia.com>
+
+       * tests/examples/rpicamsrc/test_color_balance.c:
+         rpicamsrc: add test-color-balance example
+         This small test will display a live video preview of the rpicam with
+         the balance controls being updated once a second. The controls to
+         update can be disabled in the source by setting the CONTROL_* macros
+         values to 0.
+
+2015-04-29 16:36:18 +0200  Philippe Normand <philn@igalia.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrc.h:
+         rpicamsrc: Implement GstColorBalance interface
+         Fixes https://github.com/thaytan/gst-rpicamsrc/issues/24
+
+2015-04-27 22:56:32 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Fix initial config setting.
+         Make sure to update the captsure config before starting
+         capture. Since the capture component now keeps a local
+         copy of the config, it's not updated automatically.
+
+2015-04-27 04:05:42 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+         rpicamsrc: Disable bitrate, quantisation and intra-refresh dynamic changes
+         The firmware rejects dynamic changes of those encoder params.
+
+2015-04-27 04:05:04 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCapture.h:
+         rpicamsrc: Send vcos_log_warn via GStreamer debug messages
+
+2015-04-27 02:43:14 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * tests/examples/rpicamsrc/dynamicprops.py:
+         rpicamsrc: Add dynamic properties example
+         Python example of adjusting saturation on the fly
+
+2015-04-27 00:54:54 +1000  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrc.h:
+         rpicamsrc: Update properties dynamically where possible
+         Update camera and encoder properties at runtime
+         where possible
+         Fixes https://github.com/thaytan/gst-rpicamsrc/issues/19
+         and https://github.com/thaytan/gst-rpicamsrc/issues/23
+
+2015-04-27 00:40:23 +1000  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/RaspiPreview.c:
+       * sys/rpicamsrc/RaspiPreview.h:
+         rpicamsrc: split preview config and state
+
+2015-04-21 02:45:59 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+         rpicamsrc: Clear intra-refresh MMAL param struct.
+         Use memset on the stack allocated MMAL_PARAMETER_VIDEO_INTRA_REFRESH_T
+         struct. Apparently mmal_port_parameter_get() doesn't retrieve all
+         parameters, causing random failures when we set the intra-refresh
+         param on the encoder.
+         Fixes https://github.com/thaytan/gst-rpicamsrc/issues/22 for me.
+
+2015-04-21 01:17:55 +1000  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/RaspiCamControl.c:
+       * sys/rpicamsrc/RaspiCamControl.h:
+       * sys/rpicamsrc/RaspiCapture.c:
+         rpicamsrc: Merge changes from userland repo
+         Current to b69f807ce59189457662c2144a8e7e12dc776988
+         No integration of stereoscopic support as yet
+
+2015-04-21 00:02:27 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/gstrpicam_types.h:
+         rpicamsrc: Map intra-refresh cyclic-rows to the correct MMAL param.
+
+2015-03-10 00:22:40 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Use MMAL PTS and STC to calculate GStreamer timestamps
+         Don't apply timestamps based on output time from the encoder,
+         but use the MMAL STC and capture PTS to generate a GStreamer
+         timestamp that more accurately resembles the input (and would
+         preserve reordering should the encoder ever add B-frames).
+         Fixes https://github.com/thaytan/gst-rpicamsrc/issues/16
+
+2015-03-07 02:11:25 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+         rpicamsrc: Defer encoder creation until after caps are negotiated
+         This ensures the encoder is created with the profile
+         negotiated with downstream
+
+2015-03-07 01:17:30 +1100  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Read and set H.264 profile from negotiated caps
+
+2015-03-06 03:43:07 +1100  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/gstrpicam_types.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Add intra-refresh-type property, and set default keyframe spacing to -1 (auto)
+         This plus other recent commits mostly fix
+         bug https://github.com/thaytan/gst-rpicamsrc/issues/16
+
+2015-03-06 03:05:24 +1100  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/gstrpicam_types.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrc.h:
+         rpicamsrc: Add annotation-mode and annotation-text properties
+
+2015-03-06 02:42:00 +1100  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrc.h:
+         rpicamsrc: implement sensor-mode property
+
+2015-03-06 01:27:44 +1100  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+         rpicamsrc: More conversion to GStreamer logging
+
+2015-03-06 01:15:48 +1100  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/gstrpicam_types.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Implement drc property
+
+2015-03-06 01:09:16 +1100  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: add awb-gain-red and awb-gain-blue properties
+
+2015-03-06 00:52:37 +1100  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Add camera-number property
+
+2015-03-06 00:45:05 +1100  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: add inline-headers and shutter-speed properties
+
+2015-03-06 00:21:31 +1100  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Add quantisation-parameter property, support variable bitrate
+         Allow birate=0 and implement the quantisation-parameter property
+         Fixes https://github.com/thaytan/gst-rpicamsrc/issues/21
+
+2015-03-05 17:01:33 +1100  Jan Schmidt <jan@centricular.com>
+
+       * sys/rpicamsrc/RaspiCLI.c:
+       * sys/rpicamsrc/RaspiCLI.h:
+       * sys/rpicamsrc/RaspiCamControl.c:
+       * sys/rpicamsrc/RaspiCamControl.h:
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/RaspiPreview.c:
+       * sys/rpicamsrc/RaspiPreview.h:
+         rpicamsrc: Incorporate raspivid changes from upstream
+         Merge all changes for new features from upstream
+         raspberrypi userland, up to commit 0de0b2
+
+2015-01-05 02:21:16 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Add keyframe-interval property to the element
+
+2014-10-30 00:45:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/RaspiCamControl.c:
+       * sys/rpicamsrc/RaspiCamControl.h:
+       * sys/rpicamsrc/gstrpicamsrcdeviceprovider.c:
+         rpicamsrc: deviceprovider: check if camera is detected and supported
+
+2014-10-29 00:43:51 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrcdeviceprovider.c:
+       * sys/rpicamsrc/gstrpicamsrcdeviceprovider.h:
+         rpicamsrc: Add GstDeviceProvider for rpi camera module
+
+2014-09-27 14:31:10 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: avoid single-element lists in template caps
+
+2014-10-09 20:38:41 +0000  Vivia Nikolaidou <n.vivia@gmail.com>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Add force-key-unit event support
+
+2014-03-13 00:16:18 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCamControl.c:
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/RaspiPreview.c:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Move all debug output to go via GStreamer logs
+         Fixes https://github.com/thaytan/gst-rpicamsrc/issues/9
+
+2013-10-19 18:52:25 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Update maximum framerate to 90 fps
+
+2013-10-14 02:39:00 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCamControl.c:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Enable image effects
+
+2013-10-13 18:01:00 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Re-flow element source code with gst-indent
+
+2013-10-13 17:46:07 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/gstrpicam-enums-template.c:
+       * sys/rpicamsrc/gstrpicam-enums-template.h:
+       * sys/rpicamsrc/gstrpicam_types.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Implement a bunch of the raspivid command-line params
+         Add properties for controlling various parts of the capture
+
+2013-10-13 01:29:08 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: Tell basesrc to timestamp buffers for us, for now.
+
+2013-10-13 01:20:51 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCamControl.c:
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrc.h:
+         rpicamsrc: Initial caps nego and properties.
+         Support caps negotiation for H.264 frame size and framerate.
+         Add bitrate, saturation, brightness, contrast, sharpness properties.
+
+2013-10-12 19:23:03 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+         rpicamsrc: First version which generates buffers on the src pad
+         Fixed to 1920x1080 h264 regardless of caps.
+
+2013-10-12 12:42:07 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCamControl.c:
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/RaspiStill.c:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrc.h:
+         rpicamsrc: Checkpoint. Version which writes directly to test.out
+         Switch to plain basesrc for parent class
+
+2013-10-11 19:17:05 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/RaspiCamControl.c:
+       * sys/rpicamsrc/RaspiCamControl.h:
+       * sys/rpicamsrc/RaspiCapture.c:
+       * sys/rpicamsrc/RaspiCapture.h:
+       * sys/rpicamsrc/RaspiPreview.c:
+       * sys/rpicamsrc/RaspiPreview.h:
+       * sys/rpicamsrc/RaspiStill.c:
+       * sys/rpicamsrc/RaspiStillYUV.c:
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrc.h:
+         rpicamsrc: checkpoint
+
+2013-10-10 23:47:38 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+       * sys/rpicamsrc/gstrpicamsrc.c:
+       * sys/rpicamsrc/gstrpicamsrc.h:
+         rpicamsrc: Initial commit
+         Simple modified gst-template to use BaseCameraSrc
+         Incorporate Broadcom mmal headers
+
+2018-04-19 13:57:26 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+       * ext/soup/gstsouphttpsrc.c:
+         souphttpsrc: don't fail when seeking past the end of the content
+         Range errors are already turned into EOS when the size is not known.
+         Do the same thing if the request as outside the known content size.
+         This can be triggered by seeking in a queue2:
+         - Ensure that the range containing the end of the file is available.
+         - Seek into this range from a different range.
+         - queue2 creates a seek event with start=<file-size>
+         - this results in a "Requested Range Not Satisfiable" error
+         Fixes #452
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/385>
+
+2019-11-10 21:19:09 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
+
+       * ext/soup/gstsouphttpsrc.c:
+         souphttpsrc: don't update the size on error
+         Any data corresponding length in the message is not part of the requested
+         file.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/385>
+
+2020-06-18 19:12:46 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/qtglrenderer.cc:
+         qt/gloverlay: fix using OpenGL after destroying Qml
+         Qml somewhat unhelpfully seems to uncurrent our OpenGL context on its
+         destruction.  Work around that by uncurrenting and recurrenting again.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/632>
+
+2020-07-08 17:02:34 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * meson.build:
+       * scripts/extract-release-date-from-doap-file.py:
+         meson: set release date from .doap file for releases
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/664>
+
+2020-07-07 12:36:01 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: Don't lock object lock twice in prefill mode
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/762
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/663>
+
+2020-07-04 01:02:02 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/audiofx/meson.build:
+       * gst/deinterlace/meson.build:
+       * gst/videobox/meson.build:
+       * gst/videomixer/meson.build:
+       * meson.build:
+       * scripts/update-orc-dist-files.py:
+         meson: add update-orc-dist target
+         Add target to update backup orc -dist.[ch] files.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/662>
+
+2020-05-26 10:27:35 -0400  Xavier Claessens <xavier.claessens@collabora.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2: Do not renegotiate if only framerate changed
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/602>
+
+2020-07-02 09:15:08 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/flac/gstflacenc.c:
+         flacenc: Pass audio info from set_format() to query_total_samples() explicitly
+         This fixes writing of the seek table header.
+         gst_audio_encoder_get_audio_info() will still return old/unset audio
+         info until set_format() has actually returned, which then results in
+         query_total_samples() to always return 0.
+         Thanks to Jacob Kauffmann for debugging this and finding the main cause.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/756
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/661>
+
+2020-07-03 02:03:33 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * meson.build:
+         Back to development
+
+=== release 1.17.2 ===
+
+2020-07-03 00:27:47 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+       * NEWS:
+       * RELEASE:
+       * docs/gst_plugins_cache.json:
+       * gst-plugins-good.doap:
+       * meson.build:
+         Release 1.17.2
+
+2020-07-02 07:53:14 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/deinterlace/meson.build:
+       * meson.build:
+         deinterlace: Disable nasm support on x32
+         The assembly assumes pointers are 64-bit, so just disable it.
+         Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/757
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/660>
+
+2020-07-01 18:19:09 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/deinterlace/meson.build:
+         deinterlace: Fix build on x32
+         Need to pass `-f elfx32` to nasm in that case.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/757
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/657>
+
+2020-07-01 16:17:19 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroska-mux: Wait for caps on sparse streams
+         Don't set sparse streams to non-waiting at the collectpads
+         level until after capa arrive, as we need caps on all
+         pads before the file headers get written, or else the
+         subtitle track will be silently absent in the final file.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/724
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/656>
+
+2020-07-01 16:13:27 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroska-mux: Warn on late caps arrival
+         As well as warning when caps change after the headers
+         were already written, make sure to warn if the *first* caos
+         arrive late too.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/656>
+
+2020-06-30 18:37:06 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/imagefreeze/gstimagefreeze.c:
+         imagefreeze: Return TRUE from the LATENCY query handling
+         We always answer it successfully no matter what.
+         The default return value in the function is FALSE even if the code below
+         sets it again to FALSE.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/654>
+
+2020-06-29 11:53:39 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * tests/check/elements/imagefreeze.c:
+         imagefreeze: Add test for new live mode
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/653>
+
+2020-06-29 10:10:09 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/imagefreeze/gstimagefreeze.c:
+       * gst/imagefreeze/gstimagefreeze.h:
+         imagefreeze: Add a live mode
+         Previously imagefreeze would always operate as non-live element and
+         output frames as fast as possible according to the configured segment
+         (via SEEK events) and the negotiated framerate from start to stop or the
+         other way around.
+         With the new live mode (enabled via the is-live property) it would only
+         output frames in PLAYING. Frames would be output according to the
+         negotiated framerate unless it would be too late, in which case it would
+         jump ahead and skip over the requirement amount of frames.
+         This makes it possible to actually use imagefreeze in live pipelines
+         without having to manually ensure somehow that it would start outputting
+         at the current running time and without still risking to fall behind
+         without recovery.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/653>
+
+2020-06-28 22:26:23 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/imagefreeze/gstimagefreeze.c:
+         imagefreeze: Correctly answer the LATENCY query
+         We never run as a live element, even if upstream is live, and never
+         output any buffers with latency but immediately generate buffers as
+         fast as we can according to the negotiated framerate.
+         Passing the query upstream would proxy whatever mode of operation
+         upstream has, which has nothing to do with how we produce buffers.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/653>
+
+2020-06-25 14:15:51 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         v4l2: Fix threading issues in orphaning mechanism
+         The pool orphaning function was colling internal _stop() virtual function
+         implementation. This is not thread safe, as a private lock inside the buffer
+         pool is supposed to be held. Fix this by keeping delayed _stop() and orphaning
+         the GstV4L2Allocator instead (REQBUFS(0)).
+         Then, protect the orphaned boolean with the object lock for the case a buffer
+         is being released after we have orphaned the buffer. That would otherwise
+         cause a QBUF to happen while the queue is no longer owned by the buffer pool.
+         This boolean is otherwise used and set from the streaming lock, or after
+         threads have been stopped (final cleanup).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/648>
+
+2020-06-26 16:43:37 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         v4l2bufferpoool: Fix requeueue after seek when importing
+         When the buffer pool is importing buffer, it will requeue num_allocated on
+         streamon. As this value was not set for DMABuf import and USERPTR, no buffer
+         was queued  back.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/651>
+
+2020-06-26 16:39:42 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         Revert "v4l2bufferpool: request the maximum number of buffers for USERPTR"
+         This reverts commit 6bf9f4bd77a4c6cce8786893feea7d601a6e6030.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/651>
+
+2020-06-26 16:37:06 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         Revert "v4l2bufferpool: request the maximum number of buffers for DMABUF"
+         This reverts commit 94e323c10f2d7fa85bf63f357d203ca5305800c6.
+         Fixes #754
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/651>
+
+2020-06-26 14:48:14 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         v4l2bufferpool: Only resurrect the right amount of buffers
+         On streamon, we need to resurrect (queue back) some buffers, as during
+         flushign seek we'd endup with an empty queued. We initially started with
+         resurrecting as many as we could without blocking, but that miss-behaved with
+         dynamic CREATE_BUFS, causing the pool to grow dramatically. This was limited
+         by the number of allocated buffers, but this still tried to resurrect too many
+         buffers for the first run, as activating the pool will queued buffers.
+         In this patch, we calculte the missing detal in the queue and only try and
+         resurrect that amount of buffers.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/651>
+
+2020-06-26 13:11:04 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: Only offer inactive pools and if needed
+         Avoid offering a pool if it's not needed or if it's still active.
+         This works around the fact the we only have one pool in V4L2.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/651>
+
+2020-06-24 21:58:07 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/qt/gstqtglutility.cc:
+       * ext/qt/meson.build:
+         qt: Rework how we find the Qt QPA header
+         Instead of querying the Qt include path from the dependency or from
+         qmake, rely on the qt5qml_dep to set the include path to QtGui
+         correctly, and look for the header inside the private includedir.
+         Then we can use that path to include the header directly.
+         Reported in https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/780#note_548092
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/640>
+
+2020-06-24 22:04:55 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/qt/meson.build:
+         qt: Only check for moc-qt5/moc in PATH if not cross-compiling
+         This is an extra check that's only needed for working around Linux
+         distribution packaging. `moc` is not required in the cross file.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/640>
+
+2020-06-26 13:10:00 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2allocator.c:
+         v4l2allocator: Don't do REQBUFS(0) on inactive allocator
+         If the allocator is no longer active, it means the memory has already
+         been freed, calling REQBUF(0) would make no sense.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/649>
+
+2020-06-26 11:05:25 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         v4l2bufferpool: Avoid set_flushing warning
+         The gst_buffer_pool_set_flushing() warns when that function is called
+         on an inactive pool. Avoid the warning by checking the state, this is
+         similar to what we do in gst_v4l2_object_unlock().
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/649>
+
+2020-06-26 09:53:13 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2allocator.c:
+         v4l2allocator: Fix data offset / bytesused size validation
+         The check was too strict causing spurious warning. Now check for <= so that 0
+         sized buffer do not cause a warning.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/649>
+
+2020-06-25 16:46:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2videoenc.c:
+         v4l2videoenc: Fix negotiation caps leak
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/649>
+
+2020-06-26 19:28:31 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: flesh out docs for format-location* signals
+         Make explicit that the returned strings need to be g_free()-able.
+         Fixes #753
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/652>
+
+2020-06-25 16:47:42 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2videoenc.c:
+         v4l2videoenc: Skip negotiation of profiles/level if no codec
+         The codec structure is optional and not used for fwht test codec. This
+         was leading to a crash dereferencing NULL pointer.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/650>
+
+2020-05-03 13:17:46 +0200  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/rtpstats.c:
+         rtpstats: guard against division by zero
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/646>
+
+2020-06-17 23:23:58 +0200  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/rtptwcc.c:
+         rtptwcc: fix pruning of ack'ed twcc-packets
+         Fixes #750
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/645>
+
+2020-06-24 21:15:47 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * tests/examples/qt/qmloverlay/meson.build:
+       * tests/examples/qt/qmlsink-dynamically-added/meson.build:
+       * tests/examples/qt/qmlsink/meson.build:
+       * tests/examples/qt/qmlsrc/meson.build:
+         meson: Build Qt5 tests with -std=c++11
+         We already do this for the plugin.
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/780#note_548179
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/642>
+
+2020-06-25 12:58:48 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: Add new properties for setting muxer/sink presets
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/644>
+
+2020-06-24 17:04:51 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/autodetect/gstautodetect.c:
+         autodetect: mark filter-caps property as DOC_SHOW_DEFAULT
+         When generating the cache we inspect the base class through
+         an instance of one of its subclasses. We don't want potential
+         assignments in subclasses initialization to leak into the
+         base class documentation
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/641>
+
+2020-06-24 16:45:27 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * ext/vpx/gstvpxenc.c:
+         vpxenc: mark all properties as GST_DOC_SHOW_DEFAULT
+         When generating the cache we inspect the base class through
+         an instance of one of its subclasses. We don't want potential
+         assignments in subclasses initialization to leak into the
+         base class documentation
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/641>
+
+2020-06-23 19:04:03 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/equalizer/gstiirequalizer.c:
+         docs: mark GstIirEqualizer as plugin API
+
+2020-06-23 12:47:44 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * ext/vpx/gstvp8enc.c:
+       * ext/vpx/gstvp9enc.c:
+         vpx: Fix links to baseclass properties
+
+2020-06-23 02:50:35 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * sys/v4l2/tuner.c:
+       * sys/v4l2/tunerchannel.c:
+         docs: mark more types as plugin API
+
+2020-06-23 00:02:34 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+         plugins_cache: add base classes
+
+2020-06-23 00:02:21 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/meson.build:
+         meson: mark plugins cache target as always stale
+
+2020-06-21 01:34:43 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * ext/gtk/gstgtkbasesink.c:
+       * ext/vpx/gstvpxdec.c:
+       * ext/vpx/gstvpxenc.c:
+       * gst/audiofx/audiofxbasefirfilter.c:
+       * gst/audiofx/audiofxbaseiirfilter.c:
+       * gst/autodetect/gstautodetect.c:
+         docs: mark more types as plugin API
+
+2020-06-19 22:54:38 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * docs/gst_plugins_cache.json:
+         doc: Stop documenting properties from parents
+
+2020-06-21 20:11:06 +0800  He Junyan <junyan.he@hotmail.com>
+
+       * gst/deinterlace/yadif.c:
+         deinterlace: Add the missing ORC_RESTRICT define.
+         ORC_RESTRICT may not be defined in yadif.c and cause build error.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/637>
+
+2019-06-06 09:41:13 +0200  Havard Graff <havard.graff@gmail.com>
+
+       * tests/check/elements/rtpsession.c:
+         rtpsession: make tests more stable
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/410>
+
+2020-06-20 20:42:37 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+         docs: update plugin cache for new version
+         Some default values include our version string, like
+         user agent strings.
+
+2020-06-20 00:28:11 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * meson.build:
+         Back to development
+
+=== release 1.17.1 ===
+
+2020-06-19 19:18:59 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+       * NEWS:
+       * RELEASE:
+       * docs/gst_plugins_cache.json:
+       * gst-plugins-good.doap:
+       * meson.build:
+         Release 1.17.1
+
+2020-06-19 20:24:12 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/deinterlace/meson.build:
+         meson: deinterlace: Check host cpu type for asm build
+         Add host cpu type check as we would enable asm only for x86_64
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/636>
+
+2020-06-19 19:54:08 +0900  Seungha Yang <seungha@centricular.com>
+
+       * meson.build:
+         meson: Fix build error with MSVC caused by ARCH_X86_64 define
+         ARCH_X86_64 define will enable GCC specific code path in dv_types.h
+         while building dv plugin.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/636>
+
+2020-06-19 10:32:45 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * ext/shout2/gstshout2.c:
+         shout2: advertise documentation caps properly
+         shout2send caps depend on what the libshout2
+         version in question supports, but the
+         documentation caps should always be the same.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/635>
+
+2019-05-26 20:20:03 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/isomp4/meson.build:
+       * gst/isomp4/qtdemux.c:
+       * gst/isomp4/qtdemux.h:
+       * gst/isomp4/qtdemux_tags.c:
+       * gst/isomp4/qtdemux_tags.h:
+         qtdemux: Split tag reading functions out
+         Move some code out of the enormous qtdemux.c into a separate
+         qtdemux_tags helper, and make some structs available via qtdemux.h
+         to accommodate that.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/634>
+
+2019-05-26 05:05:06 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/isomp4/meson.build:
+       * gst/isomp4/qtdemux.c:
+       * gst/isomp4/qtdemux_tree.c:
+       * gst/isomp4/qtdemux_tree.h:
+         qtdemux: Move some tree parsing files out to a separate file.
+         Reduce a tiny bit of the bulk of qtdemux.c by moving some
+         agnostic helper functions out.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/634>
+
+2019-05-26 01:24:54 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/isomp4/atoms.c:
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Factor out svmi parsing. Fix bounds checking.
+         Move the SVMI stereoscopic atom parsing out to a helper
+         function to shrink qtdemux_parse_trak a bit.
+         Add a bounds check that the received atom is large enough
+         before parsing it.
+         Add a note to the atom parser that svmi comes from the
+         MPEG-A spec 23000-11.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/634>
+
+2020-06-15 13:05:49 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * ext/pulse/pulsedeviceprovider.c:
+         pulse: fix discovery of newly added devices
+         Fix regression introduced in 7bc5e28d85992b03e5852879b8d4d96043496caf
+         preventing the device provider to send the device-added message for new
+         devices.
+         By early returning the patch was discarding add/remove events.
+         Fix #735
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/626>
+
+2020-06-18 10:47:28 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/examples/qt/qmlsink-dynamically-added/meson.build:
+       * tests/examples/qt/qmlsink-dynamically-added/play.pro:
+       * tests/examples/qt/qmlsink-dynamically-added/qmlsink-dyn-added.qrc:
+         examples: qmlsink: rename qrc file to avoid naming conflicts with older meson versions
+         Would get "Tried to create target "qt5-qmlsink_qrc", but a
+         target of that name already exists." with older meson versions.
+         Work around that by renaming the qrc file.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/633>
+
+2020-06-17 16:42:16 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * meson.build:
+         meson: Check the nasm version with run_command
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/751
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/631>
+
+2020-06-16 19:34:01 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Don't return TRUE for unhandled query
+         Expected return value for unhandled query is FALSE
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/629>
+
+2020-06-16 11:52:38 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/deinterlace/meson.build:
+       * gst/deinterlace/x86/x86inc.asm:
+       * gst/deinterlace/x86/yadif.asm:
+       * gst/deinterlace/yadif.c:
+       * gst/deinterlace/yadif.h:
+       * meson.build:
+       * meson_options.txt:
+         deinterlace: Add yadif ASM optimisations
+         Measured to be about 3.4x faster than C
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/621>
+
+2020-06-12 13:21:02 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/deinterlace/yadif.c:
+         deinterlace: Fix invalid read in yadif
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/621>
+
+2020-06-12 12:18:11 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/qtglrenderer.cc:
+         qt/gloverlay: reset OpenGL state after Qt drawing
+         Reset to the original OpenGL state as required by the GStreamer OpenGL
+         API contract.  Fixes output with a glimagesink element downstream.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/623>
+
+2020-06-12 12:16:49 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/qtglrenderer.cc:
+         qt/gloverlay: reset current OpenGL context after Qt
+         Qt may replace the drawable with its own which breaks output if Qt is
+         not displaying the resulting video as used with e.g. glimagesink.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/623>
+
+2020-06-12 09:52:56 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/flv/gstflvdemux.c:
+         flvdemux: Change a GST_ERROR_OBJECT() back to GST_DEBUG_OBJECT()
+         It was accidentally changed in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/436
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/624>
+
+2020-06-11 20:39:33 +0300  Jordan Petridis <jpetridis@gnome.org>
+
+       * gst/isomp4/gstqtmux.c:
+       * sys/v4l2/gstv4l2videodec.c:
+         Use gst_element_class_set_metadata when passing dynamic strings
+         gst_element_class_set_metadata is meant to only be used with
+         static or inlined strings, which isn't the case for the 2 elements
+         here resulting in use-after-free later on.
+         https://gstreamer.freedesktop.org/documentation/gstreamer/gstelement.html?gi-language=c#gst_element_class_set_static_metadata
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/622>
+
+2020-06-10 13:56:22 +0000  Sebastian Dröge <slomo@coaxion.net>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         Revert "rtpjitterbuffer: Avoid deadlock on flush"
+         This reverts commit 54810bf44f27d9c180730f58f16f6e172c7b0bc8
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/620>
+
+2020-06-09 15:12:13 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * docs/gst_plugins_cache.json:
+         docs: Update plugins cache
+
+2020-06-09 13:09:20 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: g_queue_clear_full introduced in glib 2.60
+         Define g_queue_clear_full if glib < 2.60.
+         Fixes #747
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/619>
+
+2020-06-08 11:33:16 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/rtpmanager/rtpsession.c:
+         rtpsession: Make internal-ssrc as show default for doc
+
+2020-06-08 10:56:02 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * docs/gst_plugins_cache.json:
+         docs: Update plugins cache
+
+2020-06-09 15:21:25 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/check/meson.build:
+         tests: don't pull in all -bad plugin, only allow the one we need
+         Set up our plugin include list for tests in such a way that
+         we don't pull in *all* plugins from -bad but only the one
+         used in the splitmuxsink unit test, i.e. the timecode plugin,
+         so we don't accidentally use other encoders/decoders such as
+         nvenc/dec for example.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/617>
+
+2020-06-08 17:41:13 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/rtptimerqueue.c:
+         rtptimerqueue: Fix leak on timer collision
+         While the caller should make sure this does not happen, make sure timer
+         collision are not silently ignored and leaked.
+         Fixes #726
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/616>
+
+2020-03-27 15:48:32 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Keep JBUF lock while processing timers
+         Until now, do_expected_timeout() was shortly dropping the JBUF_LOCK in order
+         to push RTX event event without causing deadlock. As a side effect, some
+         CPU hung would happen as the timerqueue would get filled while looping over
+         the due timers. To mitigate this, we were processing the lost timer first and
+         placing into a queue the remainign to be processed later.
+         In the gap caused by an unlock, we could endup receiving one of the seqnum
+         present in the pending timers. In that case, the timer would not be found and
+         a new one was created. When we then update the expected timer, the seqnum
+         would already exist and the updated timer would be lost.
+         In this patch we remove the unlock from do_expected_timeout() and place all
+         pending RTX event into a queue (instead of pending timer). Then, as soon as
+         we have selected a timer to wait (or if there is no timer to wait for) we send
+         all the upstream RTX events. As we no longer unlock, we no longer need to pop
+         more then one timer from the queue, and we do so with the lock held, which
+         blocks any new colliding timers from being created.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/616>
+
+2020-06-08 09:33:10 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * tests/check/elements/vp9enc.c:
+         tests: vp9enc: enforce I420 format
+         Test was not enforcing a video format on videotestsrc. I420 was picked
+         as it was the first format in GST_VIDEO_FORMATS_ALL which will no longer
+         be true (gst-plugins-base!689).
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/615>
+
+2020-05-30 08:55:19 +0200  Edward Hervey <edward@centricular.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Avoid deadlock on flush
+         When a GST_EVENT_FLUSH_START reaches the jitterbuffer, there is a chance that
+         our task is currently blocking waiting for a timer.
+         There was two problems:
+         * That wait wasn't checking for flushing situations
+         * The flushing handling wasn't waking up that conditional (to check whether it
+         should abort)
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/608>
+
+2020-06-06 00:42:25 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * ext/aalib/gstaasink.c:
+       * ext/aalib/gstaatv.c:
+       * ext/dv/gstdvdec.c:
+       * ext/flac/gstflacenc.c:
+       * ext/gdk_pixbuf/gstgdkpixbufoverlay.c:
+       * ext/jack/gstjackaudiosink.c:
+       * ext/jpeg/gstjpegdec.c:
+       * ext/lame/gstlamemp3enc.c:
+       * ext/libcaca/gstcacasink.c:
+       * ext/libcaca/gstcacatv.c:
+       * ext/shout2/gstshout2.c:
+       * ext/speex/gstspeexenc.c:
+       * ext/twolame/gsttwolamemp2enc.c:
+       * ext/vpx/gstvpxdec.c:
+       * ext/vpx/gstvpxenc.c:
+       * ext/wavpack/gstwavpackenc.c:
+       * gst/alpha/gstalpha.c:
+       * gst/audiofx/audioamplify.c:
+       * gst/audiofx/audiochebband.c:
+       * gst/audiofx/audiocheblimit.c:
+       * gst/audiofx/audiodynamic.c:
+       * gst/audiofx/audiopanorama.c:
+       * gst/audiofx/audiowsincband.c:
+       * gst/audiofx/audiowsinclimit.c:
+       * gst/deinterlace/gstdeinterlace.c:
+       * gst/effectv/gstop.c:
+       * gst/effectv/gstradioac.c:
+       * gst/effectv/gstripple.c:
+       * gst/flv/gstflvmux.c:
+       * gst/isomp4/gstqtmux.c:
+       * gst/multifile/gstmultifilesink.c:
+       * gst/rtp/gstrtpdvpay.c:
+       * gst/rtp/gstrtph263ppay.c:
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph265pay.c:
+       * gst/rtp/gstrtpilbcdepay.c:
+       * gst/rtp/gstrtpvp8pay.c:
+       * gst/rtp/gstrtpvp9pay.c:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/smpte/gstsmpte.c:
+       * gst/smpte/gstsmptealpha.c:
+       * gst/videobox/gstvideobox.c:
+       * gst/videofilter/gstvideoflip.c:
+       * gst/videofilter/gstvideomedian.c:
+       * gst/videomixer/videomixer2.c:
+       * sys/v4l2/gstv4l2object.c:
+         plugins: uddate gst_type_mark_as_plugin_api() calls
+
+2020-06-05 11:49:17 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: Initialize uninitialized variable correctly
+         `last_out` would be used uninitialized if the element has no `set-active`
+         signal. Initialize it to -1 as that's what the "default" value is
+         further below.
+         CID 1455443
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/727
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/613>
+
+2015-11-26 17:52:29 +0100  Mikhail Fludkov <misha@pexip.com>
+
+       * ext/vpx/gstvp9enc.c:
+       * ext/vpx/gstvpxenc.c:
+       * ext/vpx/gstvpxenc.h:
+       * tests/check/elements/vp8enc.c:
+       * tests/check/elements/vp9enc.c:
+         vpxenc: Add new bit-per-pixel property to select a better "default" bitrate
+         As part of this also change the default bitrate value to 0. The default
+         value was 256000 previously. In reality, if the property was not set the
+         bitrate value would be scaled according to the resolution which is not
+         very intuitive behavior. It is better to use 0 for this purpose. Now
+         together with newly introduced property "bits-per-pixel" 0 means to
+         assign the bitrate according to resolution/framerate.
+         The default bitrates are now
+         - 1.2Mbps for VP8 720p@30fps
+         - 0.8Mbps for VP9 720p@30fps
+         and scaled accordingly for different resolutions/framerates.
+         Previously the default bitrate was also not scaled according to the
+         framerate but only took the resolution into account.
+         This also fixes the side effect of setting bitrate to 0. Previously
+         encoder would not produce any data at all.
+         Addition from Sebastian Dröge <sebastian@centricular.com> to assume
+         30fps if no framerate is given in the caps instead of not calculating
+         any bitrate at all.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/611>
+
+2020-06-03 18:35:58 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * docs/meson.build:
+         doc: Require hotdoc >= 0.11.0
+
+2020-06-02 14:58:47 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         doc: Fix wrong link to GString in rtpjitterbuffer
+
+2020-05-27 16:01:22 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+         docs: Update gst_plugins_cache.json
+
+2020-05-30 01:29:03 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * ext/aalib/gstaasink.c:
+       * ext/aalib/gstaatv.c:
+       * ext/dv/gstdvdec.c:
+       * ext/flac/gstflacenc.c:
+       * ext/gdk_pixbuf/gstgdkpixbufoverlay.c:
+       * ext/jack/gstjackaudiosink.c:
+       * ext/jpeg/gstjpegdec.c:
+       * ext/lame/gstlamemp3enc.c:
+       * ext/libcaca/gstcacasink.c:
+       * ext/libcaca/gstcacatv.c:
+       * ext/shout2/gstshout2.c:
+       * ext/speex/gstspeexenc.c:
+       * ext/twolame/gsttwolamemp2enc.c:
+       * ext/vpx/gstvpxdec.c:
+       * ext/vpx/gstvpxenc.c:
+       * ext/wavpack/gstwavpackenc.c:
+       * gst/alpha/gstalpha.c:
+       * gst/audiofx/audioamplify.c:
+       * gst/audiofx/audiochebband.c:
+       * gst/audiofx/audiocheblimit.c:
+       * gst/audiofx/audiodynamic.c:
+       * gst/audiofx/audiopanorama.c:
+       * gst/audiofx/audiowsincband.c:
+       * gst/audiofx/audiowsinclimit.c:
+       * gst/deinterlace/gstdeinterlace.c:
+       * gst/effectv/gstop.c:
+       * gst/effectv/gstradioac.c:
+       * gst/effectv/gstripple.c:
+       * gst/flv/gstflvmux.c:
+       * gst/isomp4/gstqtmux.c:
+       * gst/multifile/gstmultifilesink.c:
+       * gst/rtp/gstrtpdvpay.c:
+       * gst/rtp/gstrtph263ppay.c:
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph265pay.c:
+       * gst/rtp/gstrtpilbcdepay.c:
+       * gst/rtp/gstrtpvp8pay.c:
+       * gst/rtp/gstrtpvp9pay.c:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/smpte/gstsmpte.c:
+       * gst/smpte/gstsmptealpha.c:
+       * gst/videobox/gstvideobox.c:
+       * gst/videofilter/gstvideoflip.c:
+       * gst/videofilter/gstvideomedian.c:
+       * gst/videomixer/videomixer2.c:
+       * sys/v4l2/gstv4l2object.c:
+         plugins: Use gst_type_mark_as_plugin_api() for all non-element plugin types
+
+2018-02-28 15:46:51 +0100  Stian Selnes <stian@pexip.com>
+
+       * ext/vpx/gstvpxdec.c:
+       * tests/check/elements/vp8dec.c:
+         vpxdec: Check that output width and height != 0
+         For VP8 it's possible to signal width or height to be 0, but it does
+         not make sense to do so. For VP9 it's impossible. Hence, we most
+         likely have a corrupt stream. Trying to negotiate caps downstream with
+         either width or height as 0 will fail with something like
+         gst_video_decoder_negotiate_default: assertion 'GST_VIDEO_INFO_WIDTH (&state->info) != 0' failed
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/610>
+
+2020-05-29 00:45:03 +0900  Seungha Yang <seungha@centricular.com>
+
+       * ext/speex/gstspeexdec.c:
+       * ext/speex/gstspeexenc.c:
+         speex: Fix crash on Windows caused by cross-CRT issue
+         Use speex_header_free() to free memory which was allocated by
+         library. Cross-CRT issue should not happen on 1.17 Cerbero build
+         but might happen custom build or so.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/606>
+
+2020-05-27 22:33:31 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.h:
+         rtspsrc: Use the correct type for storing the max-rtcp-rtp-time-diff property
+         It's an integer property and rtpbin also expects an integer. Passing it
+         as a GstClockTime (guint64) to g_object_set() will cause problems, and
+         on big endian MIPS apparently causes crashes.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/737
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/605>
+
+2020-05-27 12:42:38 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/check/meson.build:
+         tests: fix meson test env setup to make sure we use the right gst-plugin-scanner
+         If core is built as a subproject (e.g. as in gst-build), make sure to use
+         the gst-plugin-scanner from the built subproject. Without this, gstreamer
+         might accidentally use the gst-plugin-scanner from the install prefix if
+         that exists, which in turn might drag in gst library versions we didn't
+         mean to drag in. Those gst library versions might then be older than
+         what our current build needs, and might cause our newly-built plugins
+         to get blacklisted in the test registry because they rely on a symbol
+         that the wrongly-pulled in gst lib doesn't have.
+         This should fix running of unit tests in gst-build when invoking
+         meson test or ninja test from outside the devenv for the case where
+         there is an older or different-version gst-plugin-scanner installed
+         in the install prefix.
+         In case no gst-plugin-scanner is installed in the install prefix, this
+         will fix "GStreamer-WARNING: External plugin loader failed. This most
+         likely means that the plugin loader helper binary was not found or
+         could not be run. You might need to set the GST_PLUGIN_SCANNER
+         environment variable if your setup is unusual." warnings when running
+         the unit tests.
+         In the case where we find GStreamer core via pkg-config we use
+         a newly-added pkg-config var "pluginscannerdir" to get the right
+         directory. This has the benefit of working transparently for both
+         installed and uninstalled pkg-config files/setups.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/603>
+
+2020-05-25 20:11:31 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Error out when failling to receive message response
+         And let it rety twice.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/717
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/601>
+
+2020-05-21 17:12:55 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2videoenc.c:
+         v4l2: videodec: Fix broken template caps
+         The profiles and levels were applied to the common caps instead of the copy.
+         That had the side effect of setting profiles/level from one CODEC onto
+         another. Leaving to encoder not being registered or not-negotiated errors.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/599>
+
+2020-05-21 17:09:39 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2codec.c:
+       * sys/v4l2/gstv4l2codec.h:
+       * sys/v4l2/gstv4l2videodec.c:
+       * sys/v4l2/gstv4l2videoenc.c:
+         v4l2: codec: Fix GValue leak
+         The levels and profiles probe function returned a dynamically allocated GValue
+         that was leaked. Simplify this by using a stack allocated GValue and a boolean
+         return value.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/599>
+
+2020-05-21 16:39:53 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2codec.c:
+         v4l2codec: Remove uneeded factorisation
+         There is only one user of that function and the split only increase
+         complexicity.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/599>
+
+2020-05-20 17:30:59 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2src.c:
+         v4l2src: Ignore non-increasing sequence number
+         With older kernel, older driver or just broken drivers, the sequence number
+         may not be increasing. This simply ignore the sequence in this case. This
+         would otherwise miss-leading large amount of lost frame being reported.
+         Fixes #729
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/598>
+
+2020-05-18 13:17:14 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqtoverlay.cc:
+       * ext/qt/gstqtoverlay.h:
+       * tests/examples/qt/qmloverlay/main.cpp:
+         qtoverlay: add the root item as a property
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/595>
+
+2020-05-20 13:17:13 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/flv/gstflvdemux.c:
+         flvdemux: Send gap events if one of the streams falls behind the other by more than 3s
+         Same mechanism and threshold as in other demuxers.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/597>
+
+2020-05-20 12:53:56 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/flv/gstflvdemux.h:
+         flvdemux: Remove unused audio_linked/video_linked booleans
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/597>
+
+2020-05-20 10:46:45 +0200  Edward Hervey <edward@centricular.com>
+
+       * gst/flv/gstflvdemux.c:
+       * gst/flv/gstflvdemux.h:
+         flvdemux: Answer bitrate queries from upstream
+         If upstream (such as queue2 in urisourcebin) asks for our bitrate, check if we
+         have stored audio/video bitrates, and use them.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/596>
+
+2020-05-20 10:45:16 +0200  Edward Hervey <edward@centricular.com>
+
+       * gst/flv/gstflvdemux.c:
+         flvdemux: Handle empty metadata strings
+         g_utf8_validate() errors out on empty string. But empty strings are valid,
+         so only check if they're not
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/596>
+
+2020-05-20 10:44:19 +0200  Edward Hervey <edward@centricular.com>
+
+       * gst/flv/gstflvdemux.c:
+         flvdemux: Set ACCEPT_TEMPLATE flag on sinkpad
+         A demuxer can accept any caps matching its sinkpad template caps
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/596>
+
+2020-05-15 19:20:45 +0300  Raul Tambre <raul@tambre.ee>
+
+       * ext/qt/qtglrenderer.cc:
+         qtglrenderer.cc: Fix compiling
+         46bfb7d247aef880c15300dad63eb2bbf6dc4928 fixed a format warning without checking if it actually compiled.
+         toUtf8() returns QByteArray so we need to assign it to a temporary variable to be able to get the raw string data from it.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/593>
+
+2020-05-15 06:07:25 +0000  Raul Tambre <raul@tambre.ee>
+
+       * ext/qt/qtglrenderer.cc:
+         qtglrenderer.cc: Fix -Wformat-security warning
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/592>
+
+2020-05-12 04:35:37 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/qt/meson.build:
+       * ext/taglib/meson.build:
+       * meson.build:
+       * sys/osxvideo/meson.build:
+         meson: Pass native: false to add_languages()
+         This is needed for cross-compiling without a build machine compiler
+         available. The option was added in 0.54, but we only need this in
+         Cerbero and it doesn't break older versions so it should be ok.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/589>
+
+2020-05-12 04:33:43 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/qt/meson.build:
+       * ext/taglib/meson.build:
+       * meson.build:
+         meson: Make C++ compiler detection not be automagic
+         It is now controlled by the qt5 and/or taglib options. We won't
+         silently fail to build taglib now.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/587>
+
+2020-05-12 04:32:01 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/gtk/meson.build:
+       * ext/qt/meson.build:
+       * meson.build:
+       * tests/examples/gtk/meson.build:
+         meson: Fix gstgl checks for qt and gtk
+         Also rename from build_ to have_, which is more accurate.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/587>
+
+2020-05-12 04:30:13 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/qt/meson.build:
+       * tests/examples/qt/meson.build:
+       * tests/examples/qt/qmloverlay/meson.build:
+       * tests/examples/qt/qmlsink-dynamically-added/meson.build:
+       * tests/examples/qt/qmlsink/meson.build:
+       * tests/examples/qt/qmlsrc/meson.build:
+         meson: Revamp qt5qml plugin and example build code
+         Stricter and simpler. For example, now we properly error out when
+         gstreamer-gl-1.0 was not found when the qt5 plugin is enabled or when
+         a C++ compiler is not enabled.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/587>
+
+2020-05-09 03:09:03 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/deinterlace/yadif.c:
+         deinterlace: Split out NULL checks in yadif
+         Separate out explicit NULL checks for fields we depend on so
+         that coverity can hopefully verify dependencies better.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/585>
+
+2020-05-09 03:07:33 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/deinterlace/tvtime/greedy.c:
+         deinterlace: Handle NV12/NV21 for the greedyl mode.
+         Don't fall back on the default interpolate_scanline function, which
+         blindly tries to copy from the next field, which can be NULL in
+         mixed progressive/interlaced streams
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/585>
+
+2020-05-05 16:59:56 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/deinterlace/yadif.c:
+         deinterlace: Support packed formats for YADIF
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/444>
+
+2020-05-06 11:04:18 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/deinterlace/gstdeinterlacemethod.c:
+         deinterlace: Call the planar functions for the Y plane of nv12/nv21
+         In some algorithms (like yadif), the Y plane has to be handled different
+         than the UV plane. Therefore, the planar_y functions are now called for
+         the Y plane, and the nv12/nv21 functions are handling only the UV/VU
+         planes respectively.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/444>
+
+2020-01-03 02:34:59 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+       * gst/deinterlace/gstdeinterlace.h:
+       * gst/deinterlace/meson.build:
+       * gst/deinterlace/yadif.c:
+       * gst/deinterlace/yadif.h:
+         deinterlace: Add C implementation of YADIF
+         Import the YADIF deinterlacer from ffmpeg and modify
+         it to match the simple deinterlace scanlines structure.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/444>
+
+2020-01-03 02:33:25 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/deinterlace/gstdeinterlacemethod.c:
+       * gst/deinterlace/gstdeinterlacemethod.h:
+         deinterlace: Allow for 5 fields for interpolation
+         Add an extra field to the simple deinterlace implementation,
+         so that methods can potentially use 5 fields - the current
+         field, and 2 before and 2 after.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/444>
+
+2020-05-07 01:17:25 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+         deinterlace: Force renegotiation when changing mode
+         Switching the deinterlacing mode on-the-fly from disabled to
+         auto used to work, but was broken by commit #1f21747c some
+         years ago.
+         Force re-negotiation with downstream when the mode or
+         fields properties are changed, otherwise deinterlace
+         never switches out of the passthrough mode.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/584>
+
+2020-04-23 15:32:58 +0800  nian.yan <nian.yan@transwarp.io>
+
+       * ext/jpeg/gstjpegenc.c:
+         jpegenc: remove meta copy in jpegenc
+         GstVideoEncoder takes care of the Meta copy, so there is no need in
+         jpegenc
+         Fixes http://gstreamer-devel.966125.n4.nabble.com/jpegenc-copy-GstMeta-twice-tt4693981.html
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/576>
+
+2020-05-05 17:47:28 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/imagefreeze/gstimagefreeze.c:
+       * gst/imagefreeze/gstimagefreeze.h:
+         imagefreeze: Handle flushing correctly
+         First of all get rid of the atomic seeking boolean, which was only ever
+         set and never read. Replace it with a flushing boolean that is used in
+         the loop function to distinguish no buffer because of flushing and no
+         buffer because of an error as otherwise we could end up in a
+         GST_FLOW_ERROR case during flushing.
+         Also only reset the state of imagefreeze in flush-stop when all
+         processing is stopped instead of doing it as part of flush-start.
+         And last, get a reference to the imagefreeze buffer in the loop function
+         in the very beginning and work from that as otherwise it could in theory
+         be replaced or set to NULL in the meantime as we release and re-take the
+         mutex a couple of times during the loop function.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/580>
+
+2020-05-06 06:48:24 +0200  Edward Hervey <edward@centricular.com>
+
+       * gst/videobox/gstvideobox.c:
+         videbox: Use MIN instead of CLAMP for uint
+         an unsigned int is always positive.
+         CID #206207
+         CID #206208
+         CID #206209
+         CID #206210
+         CID #206211
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/583>
+
+2020-05-06 06:35:27 +0200  Edward Hervey <edward@centricular.com>
+
+       * gst/avi/gstavidemux.c:
+         avidemux: Avoid potential double-free
+         stream->name was being freed (without being NULL-ed) before we were certain it
+         would be set again.
+         CID #1456071
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/582>
+
+2020-05-05 17:30:48 +0200  Edward Hervey <edward@centricular.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+         deinterlace: Don't leak frame in error case
+         CID #1455494
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/581>
+
+2020-05-05 15:19:49 +0200  Edward Hervey <edward@centricular.com>
+
+       * gst/multifile/gstsplitmuxsrc.c:
+         slitmuxsrc: Properly stop the loop if not part reader is present
+         Previously this would end up in a refcounting loop of hell.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/578>
+
+2020-03-31 14:32:19 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/flv/gstflvmux.c:
+       * gst/flv/gstflvmux.h:
+         flvmux: Add skip-backwards-streams property
+         Backwards timestamps confuse librtmp, even if they're only backwards
+         relative to the other stream. If the timestamp of a stream is going
+         backwards related to the other stream, this property allows the muxer to
+         skip a few buffers until it reaches the timestamp of the other stream.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/572>
+
+2020-03-31 14:10:35 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Allow requesting streamable pads after header is written
+         Allows us to request pads after writing header for streamable flv's.
+         For non-streamable it doesn't make sense to request a new pad after
+         writing the header, because the headers have been written already and we
+         can't add the new stream. But for streamable, any clients that connect
+         after the new pad has been added will be able to see both streams.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/572>
+
+2020-04-27 18:11:32 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqtglutility.cc:
+         qt/x11: also pass the window for gstgl -> qt context
+         Removes this warning from Qt:
+         QGLXContext: Multiple configs for FBConfig ID -1
+         QSGContext::initialize: depth buffer support missing, expect rendering errors
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/575>
+
+2020-04-27 15:34:15 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/qtglrenderer.cc:
+       * ext/qt/qtglrenderer.h:
+         qt: perform surface creation in the main thread
+         As is required when creating a QWindow instance set out in the Qt
+         documentation.
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/575>
+
+2020-04-22 15:32:31 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/isomp4/fourcc.h:
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Add 'mp3 ' fourcc that VLC seems to produce now
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/574>
+
+2020-04-22 14:09:37 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/rtpjitterbuffer.c:
+       * gst/rtpmanager/rtpjitterbuffer.h:
+         rtpjitterbuffer: Properly free internal packets queue in finalize()
+         As we override the GLib item with our own structure, we cannot use any
+         function from GList or GQueue that would try to free the RTPJitterBufferItem.
+         In this patch, we move away from g_queue_new() which forces using
+         g_queue_free(). This this function could use g_slice_free() if there is any items
+         left in the queue. Passing the wrong size to GSLice may cause data corruption
+         and crash.
+         A better approach would be to use a proper intrusive linked list
+         implementation but that's left as an exercise for the next person
+         running into crashes caused by this.
+         Be ware that this regression was introduced 6 years ago in the following
+         commit [0], the call to flush() looked useless, as there was a g_queue_free()
+         afterward.
+         Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
+         [0] https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/479c7642fd953edf1291a0ed4a3d53618418019c
+         Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/573>
+
+2020-04-20 19:43:57 +0900  Seungha Yang <seungha@centricular.com>
+
+       * tests/check/elements/splitmuxsink.c:
+       * tests/check/elements/splitmuxsinktimecode.c:
+       * tests/check/meson.build:
+         tests: splitmuxsink: Add more timecode based split test
+         ... and split test cases to run tests in parallel
+
+2020-04-10 23:52:45 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: Enhancement for timecode based split
+         The calculated threshold for timecode might be varying depending on
+         "max-size-timecode" and framerate.
+         For instance, with framerate 29.97 (30000/1001) and
+         "max-size-timecode=00:02:00;02", every fragment will have identical
+         number of frames 3598. However, when "max-size-timecode=00:02:00;00",
+         calculated next keyframe via gst_video_time_code_add_interval()
+         can be different per fragment, but this is the nature of timecode.
+         To compensate such timecode drift, we should keep track of expected
+         timecode of next fragment based on observed timecode.
+
+2020-04-11 00:35:16 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Post error when requested timecode interval is invalid
+         In case we cannot rely on max-size-timecode for split decision,
+         post error instead of crashing
+
+2020-04-16 16:47:50 +0200  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: don't use RTX packets in rate-calc and reset-logic
+         The problem was this:
+         Due to the highly irregular arrival of RTX-packet the max-misorder variable
+         could be pushed very low. (-10).
+         If you then at some point get a big in the sequence-numbers (62 in the
+         test) you end up sending RTX-requests for some of those packets, and then
+         if the sender answers those requests, you are going to get a bunch of
+         RTX-packets arriving. (-13 and then 5 more packets in the test)
+         Now, if max-misorder is pushed very low at this point, these RTX-packets
+         will trigger the handle_big_gap_buffer() logic, and because they arriving
+         so neatly in order, (as they would, since they have been requested like
+         that), the gst_rtp_jitter_buffer_reset() will be called, and two things
+         will happen:
+         1. priv->next_seqnum will be set to the first RTX packet
+         2. the 5 RTX-packet will be pushed into the chain() function
+         However, at this point, these RTX-packets are no longer valid, the
+         jitterbuffer has already pushed lost-events for these, so they will now
+         be dropped on the floor, and never make it to the waiting loop-function.
+         And, since we now have a priv->next_seqnum that will never arrive
+         in the loop-function, the jitterbuffer is now stalled forever, and will
+         not push out another buffer.
+         The proposed fixes:
+         1. Don't use RTX in calculation of the packet-rate.
+         2. Don't use RTX in large-gap logic, as they are likely to be dropped.
+
+2020-04-15 12:36:29 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: Increase internal bitstream pool size
+         This patch will now set the maximum of buffers to 32, allowing to grow the
+         pool for drivers that supports that and will respect the minimum buffers
+         reported by the driver. This was made to fix a stall with the virtio CODEC
+         driver.
+         Fixes #672
+
+2020-04-15 17:50:31 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Do split-at-running-time splitting based on the time of the start of the GOP
+         If the start of the GOP is >= the requested running time, put it into a
+         new fragment. That is, split-at-running-time would always ensure that a
+         split happens as early as possible after the given running time.
+         Previously it was comparing against the current incoming timestamp,
+         which does not tell us what we actually want to know as it has no direct
+         relation to the GOP start/end.
+
+2020-04-15 13:21:05 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Fix off-by-one in running time comparison for split-at-running-time
+         If we get a keyframe exactly at the requested running time we would only
+         split on the next keyframe afterwards due to wrong usage of > vs. >=.
+
+2020-04-09 12:23:44 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/rtsp/gstrtspsrc.h:
+         rtspsrc: Properly set segments seqnums after seeks
+
+2020-04-08 19:49:00 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/flv/gstflvdemux.c:
+         flvdemux: Don't write an empty string as a tag
+         To stop warnings like:
+         GStreamer-WARNING **: 19:47:48.186: Trying to set empty string on
+         taglist field 'encoder'. Please file a bug.
+
+2020-04-08 12:34:40 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         v4l2bufferpool: request the maximum number of buffers for USERPTR
+         This is to match what we now do for DMABuf importation.
+
+2019-11-20 15:32:29 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         v4l2bufferpool: request the maximum number of buffers for DMABUF
+         There are often only two buffers queued in the kernel so no new buffers are
+         requested.
+         With every qbuf, the kernel receives a new DMABUF for the specified index.
+         This most likely differs from the last DMABUF and the old cached entry is
+         released. This results in a lot of map/unmap overhead if the kernel driver
+         needs a mapping for the buffer.
+         With a larger queue, it's quite likely, that both old and new DMABUFs are
+         also mapped for another index. So the map/unmap is skipped, because the
+         mapping is reference counted.
+         The corresponding allocated buffers don't contain any actual memory, so
+         allocating them is quite cheep. So the log message is updated to clarify
+         this.
+
+2020-04-08 09:45:17 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Avoid stack overflow recursing waiting for response
+         Instead of recursing, simply implement a loop with gotos, the same
+         way it was done before 812175288769d647ed6388755aed386378d9210c
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/710
+
+2020-04-06 16:25:59 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/gstqtmux.h:
+         qtmux: Add property for enforcing the creation of chunks in single-stream files
+         This is disabled by default as it unnecessarily creates bigger headers
+         but it is something that is required by some applications and most
+         notably the Apple ProRes spec.
+
+2020-04-03 00:16:10 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Fix invalid padlist accesses.
+         Request pads can released at any time, so make sure to hold
+         the object lock when iterating the element sinkpads list where
+         that's safe, or to use other safe pad iteration patterns in
+         other places.
+         When choosing a best pad, return a reference to the pad to make sure it
+         stays alive for output in the aggregator srcpad task.
+         Should fix a spurious valgrind error in the CI flvmux tests and some
+         other potential problems if the request sink pads are released while
+         the element is running..
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/714
+
+2018-10-22 15:41:56 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/isomp4/atoms.c:
+       * gst/isomp4/atoms.h:
+       * gst/isomp4/fourcc.h:
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/gstqtmux.h:
+         qtmux: Add option to create a timecode trak in non-mov flavors
+         Even if timecode trak is officially unsupported in non-mov flavors,
+         some software still supports it, e.g. Final Cut Pro X:
+         https://developer.apple.com/library/archive/technotes/tn2174/_index.html
+         The user might still expect to see the timecode information in the
+         non-mov file despite it being officially unsupported , because other
+         software e.g. QuickTime will create a timecode trak even in mp4 files.
+         Furthermore, software that supports timecode trak in non-mov flavors
+         will also display the file duration in "timecode units" instead of real
+         clock time, which is not necessarily the same for 29.97 fps and friends.
+         This might confuse users, who see a different duration for the same
+         framerate and amount of frames depending on whether the container is mp4
+         or mov.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/512
+
+2020-01-16 09:30:39 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtp/gstrtpL16depay.c:
+       * gst/rtp/gstrtpL24depay.c:
+       * gst/rtp/gstrtpL8depay.c:
+         rtpLXXdepay: Set the UNPOSITIONED flag on the audio-info when configuring an unpositioned layout
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/688
+
+2020-04-01 13:19:46 +0200  Kristofer Björkström <kristofb@axis.com>
+
+       * gst/rtp/gstrtpjpegpay.c:
+       * tests/check/elements/rtpjpeg.c:
+       * tests/check/meson.build:
+         rtpjpeg: Use gst_memory_map() instead of gst_buffer_map()
+         gst_buffer_map () results in memcopying when a GstBuffer contains
+         more than one GstMemory.
+         This has quite an impact on performance on systems with limited amount
+         of resources. With this patch the whole GstBuffer will not be mapped at
+         once, instead each individual GstMemory will be iterated and mapped
+         separately.
+
+2020-04-01 13:17:03 +0200  Kristofer Björkström <kristofb@axis.com>
+
+       * gst/rtp/gstbuffermemory.c:
+       * gst/rtp/gstbuffermemory.h:
+         buffermemory: keep track of buffer size and current offset
+         Added the possibility to get current offset and the total size of the
+         buffer.
+
+2020-04-03 10:29:18 +0200  Havard Graff <havard@pexip.com>
+
+       * gst/rtp/gstrtpopuspay.c:
+       * tests/check/elements/rtpopus.c:
+       * tests/check/meson.build:
+         rtpopuspay: make depay ! pay work
+         There is a use-case for a server to re-payload opus going through it.
+         Problem was that the payloader requires channels in the caps, but
+         this is not something the depayloader can parse out of the stream, meaning
+         caps-negotiation would fail.
+         Removing the requirement of channels in the template-caps fixes this.
+
+2020-04-03 16:49:25 +0900  Seungha Yang <seungha@centricular.com>
+
+       * tests/check/elements/splitmuxsink.c:
+       * tests/check/elements/splitmuxsrc.c:
+       * tests/check/meson.build:
+         tests: Split splitmux test case
+         Since we are adding more and more tests into splitmux,
+         we need to split it to avoid CI timeout.
+
+2020-04-03 13:45:56 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+       * tests/check/elements/splitmux.c:
+         splitmuxsink: Don't send too many force key unit event
+         splitmuxsink should requst keyframe depending on configured
+         threshold and previously requested time in order to avoid too many
+         keyframe request.
+
+2020-03-20 21:32:36 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/matroska/matroska-demux.c:
+         matroska: Check the return value of gst_segment_do_seek()
+         gst_segment_do_seek() can fail.
+
+2018-06-08 13:12:01 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Send instant-rate-change event if requested in the SEEK event
+         Handle an instant rate change seek immediately by reflecting
+         it downstream as an instant-rate-change event, and do no
+         further seek handling.
+
+2018-05-15 18:26:16 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/matroska/matroska-demux.c:
+         matroska-demux: Send instant-rate-change event if requested in the SEEK event
+         Short-circuit instant rate change events by generating
+         a downstream instant-rate-change event and doing no further
+         seek processing.
+
+2020-03-10 23:16:00 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-mux.c:
+         matroska: Update for video-hdr struct change
+         See the change of -base https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/594
+
+2020-03-31 15:51:27 -0400  Aaron Boxer <boxerab@gmail.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: make warning messages more meaningful
+
+2020-03-27 19:24:03 +0100  Nicolas Pernas Maradei <nicopernas@gmail.com>
+
+       * gst/rtpmanager/gstrtpsession.c:
+         rtpsession: rename RTCP thread
+         RTP session starts a new thread for RTCP and names it
+         "rtpsession-rtcp-thread" which happens to be longer than the maximum 16B
+         allowed by pthread_setname_np and causes the naming to fail.
+         See docs for more details.
+         This commit simply shortens the thread's name so it can actually be set.
+
+2020-03-30 22:26:33 +0200  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/rtpjitterbuffer.c:
+       * gst/rtpmanager/rtpjitterbuffer.h:
+         rtpjitterbuffer: create specific API for appending buffers, events etc
+         To avoid specifying a bunch of mystic variables.
+
+2020-02-10 17:33:54 +0100  Havard Graff <havard@pexip.com>
+
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: various test-improvements
+         Mainly generalize all the latest tests that have found various stalls
+         in the jitterbuffer, so that they only consist of a series of packets
+         with various seqnum/rtptime/rtx combinations, arriving at a specific time.
+         This means future tests can be more easily written to prove certain
+         behavior does not cause stalls.
+         Also fix the warning on windows:
+         warning C4244: 'initializing': conversion from 'double' to 'gint', possible loss of data
+
+2020-03-27 14:07:04 +0100  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: fix waiting timer/queue code
+         Changing the types from boolean to guint due to the ++ operand used on
+         them, and only call JBUF_SIGNAL_QUEUE after settling down,
+         or else you end up signaling the waiting code in chain() for every buffer
+         pushed out.
+
+2020-03-23 19:55:37 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: Error out instead of crashing if reserved-max-duration is 0 or no samples could be created in prefill mode
+
+2020-03-12 15:16:44 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/gdk_pixbuf/gstgdkpixbufoverlay.c:
+         gdkpixbufoverlay: Use GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS for the supported formats
+         We don't do any blending by ourselves since a while now.
+         Note that this is a regression in "supported" formats: previously
+         ARGB64 was supported, for example, but in practice it caused blending to
+         not take place at all.
+
+2020-03-24 00:23:24 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxpartreader.c:
+       * gst/multifile/gstsplitmuxpartreader.h:
+       * gst/multifile/gstsplitmuxsrc.c:
+       * gst/multifile/gstsplitmuxsrc.h:
+         splitmuxsrc: Fix some deadlock conditions and a crash
+         When switching the splitmuxsrc state back to NULL quickly, it
+         can encounter deadlocks shutting down the part readers that
+         are still starting up, or encounter a crash if the splitmuxsrc
+         cleaned up the parts before the async callback could run.
+         Taking the state lock to post async-start / async-done messages can
+         deadlock if the state change function is trying to shut down the
+         element, so use some finer grained locks for that.
+
+2020-03-24 00:18:54 +1100  Jan Schmidt <jan@centricular.com>
+
+       * tests/check/elements/splitmux.c:
+         splitmux: Make the unit test faster
+         The playback test is considerably faster if it runs with the
+         appsink set to sync=false
+
+2020-03-25 22:14:36 +0900  Seungha Yang <seungha@centricular.com>
+
+       * tests/check/elements/splitmux.c:
+       * tests/check/meson.build:
+         tests: splitmux: Add test for timecode based split
+
+2020-03-25 21:20:07 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Split fragment only if queued time is larger than threshold
+         The queued time includes the duration of the last queued frame
+         (i.e., new keyframe) so the condition check should not be inclusive.
+         Note that the new fragment will be cut excluding the last frame
+         and therefore if the condition is inclusive way,
+         the fragment might have one frame shorter duration for all keyframe
+         stream such as jpeg or all-inter video streams.
+
+2020-03-25 21:01:00 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Don't need to trace next timecode for split decision
+         Since the commit 94bb76b6b9c48981d3ad42a8c4370b9658db4229, splitmuxsink
+         will split fragments based on queued time and the threshold of that.
+         So don't need to store the next timecode for split decision.
+
+2018-08-08 09:27:19 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+       * sys/v4l2/gstv4l2object.c:
+       * sys/v4l2/gstv4l2object.h:
+       * sys/v4l2/gstv4l2src.c:
+       * sys/v4l2/gstv4l2src.h:
+         v4l2: add alternate interlace mode
+         When using this mode each frame is split in two fields, each one being
+         transferred using its own buffer.
+         This is implemented with the V4L2_FIELD_ALTERNATE field format in v4l2.
+         This mode is enabled using a caps filter such as
+         "v4l2src ! video/x-raw\(format:Interlaced\)"
+         Here are the main changes related to this feature:
+         - use the INTERLACED caps feature with this mode.
+         - in this mode both fields of a given frame have the same sequence/offset
+         so adjust the algorithm checking for lost field/frame accordingly.
+         - double pool's min number of buffers as each frame requires 2 buffers.
+         Fix #504
+         Co-authored-by: Zeeshan Ali <zeenix@collabora.co.uk>
+
+2020-02-05 13:03:51 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: display field when setting or trying format
+         Ease debugging interlacing pipelines.
+
+2020-01-30 12:35:02 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+       * sys/v4l2/gstv4l2object.c:
+       * sys/v4l2/gstv4l2object.h:
+       * sys/v4l2/gstv4l2transform.c:
+       * sys/v4l2/gstv4l2videoenc.c:
+         v4l2: pass v4l2object to GST_V4L2_MIN_BUFFERS()
+         Will be used to double the number of buffers in alternate interlace
+         mode.
+
+2020-01-30 12:09:12 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: use GST_VIDEO_INFO_FIELD_HEIGHT()
+         Use GST_VIDEO_INFO_FIELD_HEIGHT() instead of GST_VIDEO_INFO_HEIGHT()
+         when we actually want the field height rather than the frame height.
+         So far both are equals but that won't longer be the case when
+         implementing alternate interlace mode.
+
+2020-03-24 22:08:27 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Mark some split decision related properties as MUTABLE_READY
+         The change of various criteria for split decision while muxing is on progress
+         wouldn't work well as expected.
+
+2020-03-24 13:45:00 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: Take account queued time and max-size-timecode for split decision
+         Not only the requested keyframe time, the queued size should be
+         a criterion for the split decision of timecode based mode
+         (same as max-size-time based split case).
+
+2020-03-24 12:55:27 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqtoverlay.cc:
+         qmlgloverlay: fix usage without an qmlglsink in the pipeline
+         Without a qmlglsink, we need to retrieve the window system display
+         ourselves rather than relying solely on qmlglsink to have priority on
+         the choice of display.
+
+2020-03-23 21:32:04 -0400  Xavier Claessens <xavier.claessens@collabora.com>
+
+       * gst/rtpmanager/rtptwcc.c:
+       * gst/videocrop/gstvideocrop.c:
+       * tests/check/elements/rtpbin.c:
+       * tests/check/elements/rtpsession.c:
+         Fix usage of C99
+         It's 2020, way too early for that, let's stick to C89 for now.
+
+2020-03-23 16:34:46 +0900  Seungha Yang <seungha@centricular.com>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+       * sys/v4l2/gstv4l2object.h:
+         v4l2bufferpool: Use unique name for v4l2bufferpool object
+         Assign unique sequence number to an object name for better debugging
+
+2020-03-23 14:02:22 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/qtglrenderer.cc:
+         qmlgloverlay: don't leak resources freed on a different GL thread
+         deleting a QOpenGLFrameBufferObject needs to occur on the same thread it
+         was created on in order to actually free the relevant resources
+         immediately.  Otherwise, they will be queued for deletion and not freed
+         until the associated QOpenGLContext is destroyed.
+
+2020-03-20 09:14:01 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqtglutility.cc:
+         qt: reorganize include defines
+
+2020-03-19 23:17:21 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/rtptimerqueue.c:
+       * gst/rtpmanager/rtptimerqueue.h:
+       * tests/check/elements/rtptimerqueue.c:
+         rtptimerqueue: remove ->num from the timer
+         This concept was only used by the "multi"-lost timer, and since that
+         one is not around any longer, the "num" concept is superfluous.
+
+2020-03-19 23:37:26 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: remove the concept of "already-lost"
+         This is a concept that only applies when a buffer arrives in the chain
+         function, and it has already been scheduled as part of a "multi"-lost
+         timer.
+         However, "multi"-lost timers are now a thing of the past, making this
+         whole concept superflous, and this buffer is now simply counted as "late",
+         having already been pushed out (albeit as a lost-event).
+
+2020-03-19 23:12:04 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: immediately insert a lost-event on multiple lost packets
+         There is a problem with the code today, where a single timer will
+         be scheduled for a series of lost packets, and then if the first packet
+         in that series arrives, it will cause a rescheduling of that timer, going
+         from a "multi"-timer to a single-timer, causing a lot of the packets
+         in that timer to be unaccounted for, and creating a situation in where
+         the jitterbuffer will never again push out another packet.
+         This patch solves the problem by instead of scheduling those lost packets
+         as another timer, it instead asks to have that lost-event pushed straight
+         out.
+         This very much goes with the intent of the code here: These packets are
+         so desperately late that no cure exists, and we might as well get the
+         lost-event out of the way and get on with it.
+         This change has some interesting knock-on effect being presented in
+         later commits. It completely removes the concept of "already-lost", so
+         that is why that test has been disabled in this commit, to be
+         removed later.
+
+2020-03-19 23:03:50 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: rework large-gap tests
+         Make sure to set the time the buffer is supposed to arrive at, so
+         as not to trigger an artificial situation.
+
+2020-03-19 12:17:22 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: refactor lost_timeout code
+         Split it up in code related to the timer, (do_lost_timeout) and code
+         to insert a lost-item/event and update private jitterbuffer-variables.
+
+2019-10-18 17:43:36 +0200  Havard Graff <havard@pexip.com>
+
+       * tests/check/elements/rtpjitterbuffer.c:
+       * tests/check/elements/rtptimerqueue.c:
+       * tests/check/meson.build:
+         test/check: split out rtptimerqueue-tests in a separate file
+
+2020-02-05 09:56:23 +0100  Dmitriy Purgin <dmitriy.purgin@sequality.at>
+
+       * ext/qt/qtplugin.pro:
+         gstqmlgl: Link to opengl32.lib on MinGW
+
+2020-03-19 23:51:47 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: Fix build warning
+         gstqtmux.c(644): warning C4133: '=':
+         incompatible types - from 'gboolean (__cdecl *)(GstAggregator *,GstAggregatorPad *,GstEvent *)'
+         to 'GstFlowReturn (__cdecl *)(GstAggregator *,GstAggregatorPad *,GstEvent *)'
+
+2020-03-19 23:05:49 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Reset cleanly for reuse
+         Reset the splitmuxsink completely when changing states so that
+         it can be reused.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1241
+
+2020-02-17 22:37:10 -0600  Zebediah Figura <z.figura12@gmail.com>
+
+       * gst/audioparsers/gstmpegaudioparse.c:
+       * gst/audioparsers/gstmpegaudioparse.h:
+         mpegaudioparse: Use a constant bit rate to convert between time and bytes if possible.
+         This should result in no worse accuracy than the base parse element, and may
+         result in better accuracy. In particular, the number of bytes processed at any
+         given point, as accumulated by baseparse, can be only accurate to
+         (1 / # of frames) bytes per second, and if we try to seek immediately after
+         pausing the pipeline to a large offset, this small inaccuracy can propagate to
+         something noticeable.
+         The use case that prompted this patch is a 45-minute MPEG-1 layer 3 file, which
+         has a constant bit rate but no seek tables. Trying to seek the pipeline
+         immediately after pauisng it, without the ACCURATE flag, to a location 41
+         minutes in, yields a location that is, even with <https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/374>,
+         still audibly incorrect. This patch yields a much closer position, no longer
+         audibly incorrect, and likely within a frame of the most correct position.
+
+2020-03-04 22:10:40 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: fix renegotiation check
+         By the time sink_event is called, the pad's current caps have
+         already been updated. To address this, implement sink_event_pre_queue,
+         and check if the pad can be renegotiated there.
+         Fixes #707
+
+2020-03-12 20:34:47 +0900  Seungha Yang <seungha@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+       * tests/check/elements/splitmux.c:
+         splitmuxsink: Decouple keyframe request and the decision for fragmentation
+         Split the decision for keyframe request and fragmentation in order to
+         ensure periodic keyframe request.
+
+2020-02-26 18:29:06 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqtglutility.cc:
+       * ext/qt/gstqtoverlay.cc:
+       * ext/qt/qtglrenderer.cc:
+       * ext/qt/qtglrenderer.h:
+       * ext/qt/qtitem.cc:
+       * tests/examples/qt/qmloverlay/main.cpp:
+       * tests/examples/qt/qmloverlay/overlay2.qml:
+       * tests/examples/qt/qmloverlay/qmloverlay.qrc:
+         qt: add a qml overlay filter element [part 2]
+         It takes a qml scene description and renders it using a possible input
+         stream.
+         Currently supported on GLX and WGL.
+         Follow up to (as that MR had an old version of the commit):
+         - https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/475
+         - 4778d7166a02caf793df4f845dc35b6933d87c81: qt: add a qml overlay filter element
+
+2020-02-26 18:29:06 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstplugin.cc:
+       * ext/qt/gstqtglutility.cc:
+       * ext/qt/gstqtglutility.h:
+       * ext/qt/gstqtoverlay.cc:
+       * ext/qt/gstqtoverlay.h:
+       * ext/qt/meson.build:
+       * ext/qt/qtglrenderer.cc:
+       * ext/qt/qtglrenderer.h:
+       * tests/examples/qt/meson.build:
+       * tests/examples/qt/qmloverlay/main.cpp:
+       * tests/examples/qt/qmloverlay/main.qml:
+       * tests/examples/qt/qmloverlay/meson.build:
+       * tests/examples/qt/qmloverlay/overlay.qml:
+       * tests/examples/qt/qmloverlay/qmloverlay.qrc:
+         qt: add a qml overlay filter element
+         It takes a qml scene description and renders it using a possible input
+         stream.
+         Currently supported on GLX and WGL.
+
+2020-02-25 21:47:14 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqsgtexture.cc:
+       * ext/qt/qtitem.cc:
+         qt: don't always activate/deactivate our GstGLContext
+         Techincally it is enough to activate at the beginning and then forget.
+
+2020-02-04 19:43:52 +1100  Matthew Waters <matthew@centricular.com>
+
+       * tests/examples/qt/meson.build:
+       * tests/examples/qt/qmlsink-dynamically-added/.gitignore:
+       * tests/examples/qt/qmlsink-dynamically-added/main.cpp:
+       * tests/examples/qt/qmlsink-dynamically-added/main.qml:
+       * tests/examples/qt/qmlsink-dynamically-added/meson.build:
+       * tests/examples/qt/qmlsink-dynamically-added/play.pro:
+       * tests/examples/qt/qmlsink-dynamically-added/qmlsink.qrc:
+         test/qml: add an dynamically adding qmlglsink element
+         The example shows how to add qmlglsink to an already running pipeline
+         with pre-existing OpenGL elements.
+
+2020-02-04 19:40:45 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqtsink.cc:
+         qmlglsink: propagate the context up the the application
+         Allows the application to be notified of the OpenGL context creation.
+
+2020-02-03 15:59:34 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/qtitem.cc:
+         qtitem: fix leak of caps
+
+2020-03-15 19:28:18 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/wavpack/gstwavpackdec.h:
+       * ext/wavpack/gstwavpackenc.h:
+         wavpack: Use G_DECLARE_FINAL_TYPE
+
+2020-03-15 19:26:18 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/vpx/gstvp8dec.h:
+       * ext/vpx/gstvp8enc.h:
+       * ext/vpx/gstvp9dec.h:
+       * ext/vpx/gstvp9enc.h:
+       * ext/vpx/gstvpxdec.h:
+       * ext/vpx/gstvpxenc.h:
+         vpx: Use G_DECLARE_FINAL_TYPE
+
+2020-03-15 19:22:00 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/twolame/gsttwolamemp2enc.h:
+         twolame: Use G_DECLARE_FINAL_TYPE
+
+2020-03-15 19:20:49 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/taglib/gstapev2mux.h:
+       * ext/taglib/gstid3v2mux.h:
+         taglib: Use G_DECLARE_FINAL_TYPE
+
+2020-03-15 19:18:39 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/speex/gstspeexdec.h:
+       * ext/speex/gstspeexenc.h:
+         speex: Use G_DECLARE_FINAL_TYPE
+
+2020-03-15 19:16:22 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/soup/gstsouphttpclientsink.h:
+         soup: Use G_DECLARE_FINAL_TYPE
+
+2020-03-15 19:14:17 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/shout2/gstshout2.c:
+       * ext/shout2/gstshout2.h:
+         shout2: Use G_DECLARE_FINAL_TYPE
+
+2020-03-15 19:11:52 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/raw1394/gst1394clock.h:
+       * ext/raw1394/gstdv1394src.c:
+       * ext/raw1394/gstdv1394src.h:
+       * ext/raw1394/gsthdv1394src.h:
+         raw1394: Use G_DECLARE_FINAL_TYPE
+
+2020-03-15 19:06:50 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/qt/gstqtsink.h:
+       * ext/qt/gstqtsrc.h:
+         qt: Use G_DECLARE_FINAL_TYPE
+
+2020-03-15 19:00:18 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/pulse/pulsedeviceprovider.h:
+       * ext/pulse/pulsesink.h:
+       * ext/pulse/pulsesrc.h:
+         pulse: Use G_DECLARE_FINAL_TYPE
+
+2020-03-15 18:54:33 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/mpg123/gstmpg123audiodec.h:
+         mpg123: Use G_DECLARE_FINAL_TYPE
+
+2020-03-15 18:52:57 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/libpng/gstpng.h:
+       * ext/libpng/gstpngdec.h:
+       * ext/libpng/gstpngenc.h:
+         libpng: Use G_DECLARE_FINAL_TYPE
+
+2020-03-15 18:49:53 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/libcaca/gstcacasink.h:
+       * ext/libcaca/gstcacatv.h:
+         libcaca: Use G_DECLARE_FINAL_TYPE
+
+2020-03-15 18:40:28 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/lame/gstlamemp3enc.h:
+         lame: Use G_DECLARE_FINAL_TYPE
+
+2020-03-14 17:52:38 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/jack/gstjackaudiosink.h:
+       * ext/jack/gstjackaudiosrc.h:
+         jack: Use G_DECLARE_FINAL_TYPE
+
+2020-03-14 17:43:50 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/gtk/gstgtkbasesink.h:
+       * ext/gtk/gstgtkglsink.h:
+       * ext/gtk/gstgtksink.h:
+         gtk: Use G_DECLARE_FINAL_TYPE
+
+2020-03-13 18:47:49 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/gdk_pixbuf/gstgdkpixbufdec.h:
+       * ext/gdk_pixbuf/gstgdkpixbufoverlay.h:
+       * ext/gdk_pixbuf/gstgdkpixbufsink.h:
+         gdk_pixbuf: Use G_DECLARE_FINAL_TYPE
+
+2020-03-13 18:42:38 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/flac/gstflacdec.h:
+       * ext/flac/gstflacenc.h:
+       * ext/flac/gstflactag.h:
+         flax: Use G_DECLARE_FINAL_TYPE
+
+2020-03-13 18:39:38 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/dv/gstdvdec.h:
+       * ext/dv/gstdvdemux.h:
+         dv: Use G_DECLARE_FINAL_TYPE
+
+2020-03-12 19:24:57 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/cairo/gstcairooverlay.h:
+         cairo: Use G_DECLARE_FINAL_TYPE
+
+2020-03-12 19:20:42 +0100  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/aalib/gstaasink.h:
+       * ext/aalib/gstaatv.h:
+         aalib: Use G_DECLARE_FINAL_TYPE
+
+2020-03-12 16:55:44 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * tests/check/elements/rtp-payloading.c:
+         tests: rtp-payloading: add minimal vp8/vp9 rtp payloading/depayloading test
+
+2018-10-19 16:17:17 +0200  Stian Selnes <stian@pexip.com>
+
+       * gst/rtp/gstrtpvp8pay.c:
+       * gst/rtp/gstrtpvp9pay.c:
+         rtpvp8pay, rtpvp9pay: fix caps leak in set_caps()
+
+2020-03-12 11:22:56 +0100  Edward Hervey <edward@centricular.com>
+
+       * gst/videomixer/videomixer2.c:
+         videomixer: Don't leak peer caps
+
+2020-02-11 16:19:15 -0300  Thibault Saunier <tsaunier@igalia.com>
+
+       * docs/gst_plugins_cache.json:
+       * gst/multifile/gstimagesequencesrc.c:
+       * gst/multifile/gstimagesequencesrc.h:
+       * gst/multifile/gstmultifile.c:
+       * gst/multifile/meson.build:
+         imagesequencesrc: Cleanup and add some features
+         * Implement the GstURIHandlerInterface
+         * Rework the locking
+         * Implement backward seeking handling
+         * Generate documentation
+
+2016-04-10 02:25:32 +0000  Fabian Orccon <fabian.orccon@pucp.pe>
+
+       * gst/multifile/gstimagesequencesrc.c:
+       * gst/multifile/gstimagesequencesrc.h:
+         Add an imagesequencesrc element to stream sequence of images
+         See: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/121
+
+2020-03-05 08:55:44 -0800  Gordon Hart <gordon.hart2@gmail.com>
+
+       * sys/v4l2/gstv4l2src.c:
+         v4l2src: decrease gst_v4l2src_create log verbosity
+         Lower the verbosity of the 'sync' log message emitted
+         each buffer from gst_v4l2src_create down to LOG(6)
+         from INFO(4). This brings the logging behavior of
+         v4l2src closer to the GStreamer guidelines, which
+         recommend the INFO level be reserved for rare or
+         one-off messages.
+
+2020-03-10 17:19:46 +0800  yychao <yychao@gmail.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Add support for AC4
+         The caps received from qtdemux for AC-4 content are audio/x-gst-fourcc-ac_4
+         Based on patch by: Savinderjit Kaur
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/413
+
+2020-03-10 21:07:12 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/imagefreeze/gstimagefreeze.c:
+       * gst/imagefreeze/gstimagefreeze.h:
+         imagefreeze: handle reconfigure events on the srcpad
+
+2020-03-05 22:47:16 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/imagefreeze/gstimagefreeze.c:
+         imagefreeze: properly ignore setting caps failures
+         Ignore the return value of gst_pad_set_caps() so that setcaps will set a
+         framerate that is usable.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/705
+
+2020-03-05 22:45:32 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/imagefreeze/gstimagefreeze.c:
+         imagefreeze: don't fail sending sticky events downstream
+         They will be repropagated anyway.
+
+2020-03-09 23:31:09 +0100  Markus Ebner <info@ebner-markus.de>
+
+       * gst/videocrop/gstvideocrop.c:
+         videocrop: Add support for Y41B and Y42B
+
+2020-03-09 23:25:03 +0100  Markus Ebner <info@ebner-markus.de>
+
+       * gst/videocrop/gstvideocrop.c:
+       * gst/videocrop/gstvideocrop.h:
+         videocrop: Add support for Y444
+         - Refactored the planar transform method to support all video formats
+         that are stored planar, independent of the used subsampling
+         - Added support for Y444
+
+2020-03-09 23:23:50 +0100  Markus Ebner <info@ebner-markus.de>
+
+       * gst/videocrop/gstvideocrop.c:
+         videocrop: Use G_VALUE_INIT to initialize GValues
+
+2020-02-28 19:35:34 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/jpeg/gstjpegdec.c:
+         jpegdec: Configure JPEG chroma-siting for YUV formats
+
+2020-02-06 09:23:24 +0100  Ognyan Tonchev <ognyan@axis.com>
+
+       * gst/rtp/gstbuffermemory.c:
+       * gst/rtp/gstbuffermemory.h:
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph265pay.c:
+       * gst/rtp/meson.build:
+       * tests/check/elements/rtph264.c:
+         rtph26x: Use gst_memory_map() instead of gst_buffer_map() in avc mode
+         gst_buffer_map () results in memcopying when a GstBuffer contains
+         more than one GstMemory and when AVC (length-prefixed) alignment is used.
+         This has quite an impact on performance on systems with limited amount of
+         resources. With this patch the whole GstBuffer will not be mapped at once,
+         instead each individual GstMemory will be iterated and mapped separately.
+
+2019-11-26 15:08:20 +0100  Milian Wolff <milian.wolff@kdab.com>
+
+       * ext/qt/gstqtgl.h:
+         qmlgl: ensure Qt defines GLsync to fix compile on some platforms
+         By explictly including QtGui/qopengl.h we force the code path that
+         defines GLsync in the Qt-specific way. Without that, some platforms
+         failed to compile the qmlgl plugin, since neither Qt nor gstreamer
+         defined GLsync then, leading to e.g.:
+         ```
+         make[4]: Entering directory '/.../gst-plugins-good-1.16.1/ext/qt'
+         CXX      libgstqmlgl_la-qtitem.lo
+         In file included from gstqtgl.h:32,
+         from qtitem.h:27,
+         from qtitem.cc:28:
+         /.../usr/include/gstreamer-1.0/
+         gst/gl/gstglfuncs.h:93:17: error: expected identifier before ‘*’ token
+         ret (GSTGLAPI *name) args;
+         ^
+         /.../usr/include/gstreamer-1.0/
+         gst/gl/glprototypes/sync.h:27:1: note: in expansion of macro
+         ‘GST_GL_EXT_FUNCTION’
+         GST_GL_EXT_FUNCTION (GLsync, FenceSync,
+         ^~~~~~~~~~~~~~~~~~~
+         ```
+
+2020-03-02 13:50:55 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtptwcc.c:
+       * gst/rtpmanager/rtptwcc.h:
+         rtptwcc: make RTPTWCCManager a GObject
+
+2020-03-04 11:17:16 +0100  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: fix stalling when resetting timers
+         When calling gst_rtp_jitter_buffer_reset you pass in a seqnum.
+         This is considered the starting-point for a new stream.
+         However, the old behavior would unref this buffer, basically lying to
+         the thread that is pushing out buffers saying that it can expect
+         this buffer, when it would never arrive. The resulting effect being no
+         more buffer pushed out of the jitterbuffer, and it would buffer
+         incoming data indefinitely.
+         By instead inserting the buffer in the gap_packets queue, the _reset()
+         function will take responsibility for using that as the first buffer
+         of the new stream.
+         Fixes #703
+
+2020-02-21 02:14:11 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxpartreader.c:
+       * gst/multifile/gstsplitmuxpartreader.h:
+       * gst/multifile/gstsplitmuxsrc.c:
+       * tests/check/elements/splitmux.c:
+         splitmux: Avoid negative DTS
+         In order to concatenate fragments, splitmuxsrc offsets
+         the start of each fragment PTS to 0 to align it with the
+         previous file. This means that DTS can go negative for
+         the first fragment, with really bad results.
+         Add a fixed offset to outgoing timestamp ranges to
+         avoid that.
+
+2020-03-04 03:43:51 +1100  Jan Schmidt <jan@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: Remove warning in the log for mono video
+         Vanilla mono video was generating a spurious warning into the debug log
+         that's just misleading. Handle mono caps explicitly to avoid the warning.
+
+2020-01-27 12:29:18 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+       * gst/deinterlace/gstdeinterlacemethod.c:
+         deinterlace: add alternate support
+         In this mode each field is carried using its own buffer.
+         Allow deinterlace to negotiate caps with the Interlaced feature and
+         adjust the algorithm fetching lines.
+         Fix #620
+
+2020-02-03 13:08:39 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * gst/deinterlace/gstdeinterlacemethod.c:
+         deinterlace: add wrapper to get field lines from history
+         No semantic change so far, will be used to implement alternate support.
+
+2020-02-04 16:48:21 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * gst/deinterlace/gstdeinterlacemethod.c:
+         deinterlace: stop checking line index boundaries
+         The LINE2() macro already prevents out of bound indexes using CLAMP_HI()
+         and CLAMP_LOW().
+
+2020-01-20 12:30:12 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+       * gst/deinterlace/gstdeinterlace.h:
+         deinterlace: fix video info on output frames
+         Output frames used to have their interlace mode set to the same one as
+         the input. This breaks their field and comp heights when deinterlacing
+         an alternate stream.
+
+2020-01-14 14:51:07 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * gst/deinterlace/gstdeinterlace.c:
+         deinterlace: use output caps to compute buffer size
+         In interlace-mode=alternate the input buffers have half the size of the
+         output ones as each field has its own buffer.
+
+2020-02-29 08:10:56 -0500  Jennifer Berringer <berringerjennifer@gmail.com>
+
+       * gst/audioparsers/gstflacparse.c:
+         flacparse: fix broken reordering of flac metadata
+         Each FLAC metadata block starts with a flag denoting whether it is the
+         last metadata block. The existing flacparse code moves any existing
+         VORBISCOMMENT block to immediately follow the STREAMINFO block without
+         changing any block's last-metadata-block flag. If no VORBISCOMMENT block
+         exists, it created one with the last-metadata-block flag set to true.
+         This results in gstflacdec sometimes giving bad headers to libflac when
+         trying to play perfectly valid FLAC files depending on the file's
+         metadata ordering. Depending on the contents of the other metadata
+         blocks, current versions of libflac may or may not return
+         FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER when given this broken
+         metadata. This is most noticeable with files that have a large cover art
+         image attached where VORBISCOMMENT is the very last metadata block with
+         no PADDING afterwards.
+         This patch changes that behavior so that:
+         1. For FLAC files that already have a VORBISCOMMENT block, the metadata
+         order is preserved.
+         2. For FLAC files that do not have a VORBISCOMMENT block, the generated
+         dummy VORBISCOMMENT is placed immediately after STREAMINFO and
+         inherits the last-metadata-block flag from STREAMINFO.
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/484
+
+2020-02-27 14:50:51 +0900  Yeongjin Jeong <yeongjin.jeong@navercorp.com>
+
+       * tests/check/elements/flvmux.c:
+         tests: flvmux: Instead of using the testclock, just send eos event for drain
+         When using the testclock for determining clock in test, it is sometimes observed
+         that the clock entry is not registered in time by the aggregator. So deadlock occurs
+         between the aggregator and the test thread.
+
+2020-02-28 14:23:51 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Try to infer useful header values for raw audio if the sound sample descriptions contain zero values
+
+2020-02-28 14:00:51 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Also use the enda atom for determining endianess of in32, fl32 and fl64 formats
+         Previously it was only used for in24.
+
+2020-02-28 13:59:42 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Fix up header information for various fixed-format raw audio formats
+         Sometimes the headers contain useless, wrong or zero values for e.g. the
+         sample size with these formats. There's only a single valid value for
+         them so let's set these instead.
+
+2020-02-28 13:59:06 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Don't print "unhandled type" warnings for various other raw audio fourccs
+
+2020-02-28 13:57:37 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/fourcc.h:
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Add some more raw audio fourccs to the header instead of duplicating them
+
+2020-02-25 21:14:54 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Don't use glib format modifiers with sscanf
+         We do not have a way to know the format modifiers to use with string
+         functions provided by the system. G_GUINT64_FORMAT and other string
+         modifiers only work for glib string formatting functions. We cannot
+         use them for string functions provided by the stdlib. See:
+         https://developer.gnome.org/glib/stable/glib-Basic-Types.html#glib-Basic-Types.description
+         ```
+         ../gst/rtpmanager/gstrtpjitterbuffer.c: In function 'gst_jitter_buffer_sink_parse_caps':
+         ../gst/rtpmanager/gstrtpjitterbuffer.c:1523:32: error: unknown conversion type character 'l' in format [-Werror=format=]
+         || sscanf (mediaclk, "direct=%" G_GUINT64_FORMAT, &clock_offset) != 1)
+         ^~~~~~~~~~
+         In file included from /home/nirbheek/cerbero/build/dist/windows_x86/include/glib-2.0/glib/gtypes.h:32,
+         from /home/nirbheek/cerbero/build/dist/windows_x86/include/glib-2.0/glib/galloca.h:32,
+         from /home/nirbheek/cerbero/build/dist/windows_x86/include/glib-2.0/glib.h:30,
+         from /home/nirbheek/cerbero/build/dist/windows_x86/include/gstreamer-1.0/gst/gst.h:27,
+         from /home/nirbheek/cerbero/build/dist/windows_x86/include/gstreamer-1.0/gst/rtp/gstrtpbuffer.h:27,
+         from ../gst/rtpmanager/gstrtpjitterbuffer.c:108:
+         /home/nirbheek/cerbero/build/dist/windows_x86/lib/glib-2.0/include/glibconfig.h:69:28: note: format string is defined here
+         #define G_GUINT64_FORMAT "llu"
+         ^
+         ../gst/rtpmanager/gstrtpjitterbuffer.c:1523:32: error: too many arguments for format [-Werror=format-extra-args]
+         || sscanf (mediaclk, "direct=%" G_GUINT64_FORMAT, &clock_offset) != 1)
+         ^~~~~~~~~~
+         ```
+         See also: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/379
+
+2020-02-24 15:25:07 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: Add support for 8k resolutions in prefill mode with ProRes
+
+2020-02-25 11:06:43 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtpmanager/rtptimerqueue.c:
+         rtpjitterbuffer: Include string.h for memcpy() / memset()
+         Usually something else is pulling it in somehow already, but not on
+         Windows.
+
+2020-02-24 13:06:27 +0000  Håvard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/rtpsession.c:
+       * tests/check/elements/rtpsession.c:
+         rtpsession: fix crash when no extension-header present for twcc
+
+2020-02-21 09:34:30 +0100  Johan Bjäreholt <johanbj@axis.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroska-mux: Fix incorrect rounding of timestamps
+         Previously we saved the buffer_timestamp straight into
+         mux->cluster_time. Since the cluster time saved into the file does not
+         have as high precision as GstClockTime depending on the timecodescale
+         the rounding of relative_timestamp was invalid as mux->cluster_time
+         which it was calculated relative to was not equal to the cluster time
+         written to the matroska file.
+         Example of "mkvinfo -v" of how it looks before and after this change in
+         an scenario where previously timestamps got out of order because of this
+         issue.
+         Notice the timestamp of the SimpleBlock right before and right after the
+         Cluster now being in order. The consequence of this however is that the
+         cluster timestamp is not necessarily the same as the timestamp of the
+         first buffer in the cluster however (in case it's rounded up).
+         Before
+         | + SimpleBlock (track number 1, 1 frame(s), timecode 126.922s = 00:02:06.922)
+         |  + Frame with size 432
+         | + SimpleBlock (track number 2, 1 frame(s), timecode 126.933s = 00:02:06.933)
+         |  + Frame with size 329
+         | + SimpleBlock (track number 2, 1 frame(s), timecode 126.955s = 00:02:06.955)
+         |  + Frame with size 333
+         |+ Cluster
+         | + Cluster timecode: 126.954s
+         | + Cluster previous size: 97344
+         | + SimpleBlock (key, track number 1, 1 frame(s), timecode 126.954s = 00:02:06.954)
+         |  + Frame with size 61239
+         | + SimpleBlock (track number 2, 1 frame(s), timecode 126.975s = 00:02:06.975)
+         |  + Frame with size 338
+         After
+         | + SimpleBlock (track number 1, 1 frame(s), timecode 135.456s = 00:02:15.456)
+         |  + Frame with size 2260
+         | + SimpleBlock (track number 2, 1 frame(s), timecode 135.468s = 00:02:15.468)
+         |  + Frame with size 332
+         | + SimpleBlock (track number 2, 1 frame(s), timecode 135.490s = 00:02:15.490)
+         |  + Frame with size 335
+         |+ Cluster
+         | + Cluster timecode: 135.489s
+         | + Cluster previous size: 158758
+         | + SimpleBlock (key, track number 1, 1 frame(s), timecode 135.490s = 00:02:15.490)
+         |  + Frame with size 88070
+         | + SimpleBlock (track number 2, 1 frame(s), timecode 135.511s = 00:02:15.511)
+         |  + Frame with size 336
+
+2020-02-19 15:59:19 +1100  Jake Barnes <jake@vivi.io>
+
+       * ext/soup/gstsouphttpsrc.c:
+         souphttpsrc: Fix cookies property
+         Disable session sharing and cookie jar when cookies property is set.
+         The cookie jar actually replaces or removes any existing Cookie header
+         set on the message, so the cookies property was effectively being
+         ignored. There doesn't appear to be a way to inject the cookies into the
+         jar without having to specify matching domains etc., so it's not
+         possible to simulate the old behaviour of unconditionally sending the
+         cookies with all messages, besides simply disabling the cookie jar.
+
+2020-02-20 09:06:10 +0100  Stefano Buora <sbuora@marchnetworks.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: remove useless function calls
+         Comparing gst_rtspsrc_loop_interleaved and gst_rtspsrc_loop_udp, and investigating on timeout issues, it sounds like a piece of code has been originally copied from udp to the interleaved one. The timeout variable is never used inside the interleaved one. No side effect has been seen in the removed function calls.
+         The debug message removed is pointless as the timeout used is "src->tcp_timeout" that is fixed.
+         The presence of the two timeout drove my team in investigating if the reference to the tcp_timeout was correct (it is). Hence we removed the misleading reference to the local timeout variable.
+
+2020-02-20 13:43:13 +1100  Matthew Waters <matthew@centricular.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: fix typo setting max-dropout/misorder-time
+         we were setting the max-dropout-time to the value of the
+         max-misorder-time which by default has a factor of 30 difference in
+         value.
+
+2020-02-19 20:27:54 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * gst/isomp4/fourcc.h:
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Parse VP Codec Configuration Box
+         The VP Codec Configuration Box (vpcC) contains vp9 profile and
+         colorimetry information. Especially the profile information might
+         be useful for downstream to select capable decoder element.
+
+2020-02-18 18:36:36 +0900  Yeongjin Jeong <yeongjin.jeong@navercorp.com>
+
+       * tests/check/elements/flvmux.c:
+         tests: flvmux: Add test for rollover timestamp
+         The timestamps that exceed uint32 maximum value should be handled to rollover.
+
+2020-02-18 14:58:00 +0900  Yeongjin Jeong <yeongjin.jeong@navercorp.com>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Support rollover in timestamp
+         For live streams, if we keep the stream for a long time, the timestamp
+         will be larger than max_uint32. In that case, timestamp should be handled
+         as a rollover timestamp rather than a backward timestamp.
+
+2020-02-17 15:03:28 +0100  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: don't use the timer-object after JBUF_UNLOCK
+         It could have been freed (rtp_timer_free) in the meantime.
+
+2019-06-29 18:06:11 +0200  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/rtpmanager/meson.build:
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtpsession.h:
+       * gst/rtpmanager/rtpsource.c:
+       * gst/rtpmanager/rtpstats.c:
+       * gst/rtpmanager/rtpstats.h:
+       * gst/rtpmanager/rtptwcc.c:
+       * gst/rtpmanager/rtptwcc.h:
+       * tests/check/elements/rtpsession.c:
+         rtpmanager: Google Transport-Wide Congestion Control RTP Extension
+         Generating and parsing the RTCP-messages described in:
+         https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01
+
+2020-02-14 10:08:05 +0000  Håvard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/gstrtpfunnel.c:
+       * tests/check/elements/rtpfunnel.c:
+         rtpfunnel: various cleanups
+         * Organize GstRtpFunnelPad and GstRtpFunnel separately
+         * Use G_GNUC_UNUSED instead of (void) casts
+         * Don't call an event "caps"
+         * Use semicolons after GST_END_TEST (helps gst-indent)
+
+2020-01-29 23:51:45 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Merge sample tables for raw audio streams with one container sample per audio sample
+         Instead of having chunks with one sample per raw audio sample, have
+         chunks with a single sample that contains lots of raw audio samples. If
+         necessary these are still split again later when reading the stream.
+         With this we are allocating a lot less memory for the parsed sample
+         tables and can play files that previously triggered our limit of 200MB
+         for the sample table. For example, one file here would previously
+         allocate 3.5GB for the sample table and now only allocates 70KB.
+
+2020-01-13 11:55:42 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Add a minimum buffer size for raw audio to not output one buffer per frame
+         Outputting 48000 buffers per second is not a good idea performance-wise.
+         If a container sample is less than 1024 raw audio frames, combine
+         multiple samples to get at least 1024 raw audio samples as long as
+         they're stored contiguous in the file.
+         For the other direction, if a container sample contains more than 4096
+         samples there is already code for splitting them up.
+         Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692750
+
+2020-02-11 21:52:41 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: fix requested range
+         When the server replies with a range "now-", it is presumed to
+         be a "live" stream and we should request a similar range.
+         This was the case prior to my refactoring to make use of
+         gst_rtsp_range_to_string in 5f1a732bc7b76a6f1b8aa5f26b6e76fbca0261c7,
+         this commit restores the behaviour for that case.
+
+2017-07-13 13:49:07 +0200  Mikhail Fludkov <misha@pexip.com>
+
+       * gst/rtpmanager/gstrtpptdemux.c:
+       * tests/check/elements/rtpptdemux.c:
+       * tests/check/meson.build:
+         rtpptdemux: set payload to caps inside gst_rtp_pt_demux_get_caps
+         Refactoring to remove duplicate code and add test
+
+2017-03-16 20:57:54 +0100  Stian Selnes <stian@pexip.com>
+
+       * gst/rtpmanager/gstrtpptdemux.c:
+         rtpptdemux: Fix debug to use GST_DEBUG_OBJECT
+
+2016-09-14 16:49:26 +0200  Mikhail Fludkov <misha@pexip.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: use max-streams on rtpssrcdemux
+         The proper way of capping on max-streams is to do it in rtpssrcdemux.
+         This patch uses the newly introduced property on rtpssrcdemux. Previous
+         behavior would not prevent rtpssrcdemux spawning new pads for every new
+         ssrc and potentialy causing performance trouble during teardown.
+
+2017-01-18 14:32:03 +0000  John Bassett <john.bassett@pexip.com>
+
+       * gst/rtpmanager/gstrtpssrcdemux.c:
+       * tests/check/elements/rtpssrcdemux.c:
+         rtpssrcdemux: Handle RTCP APP packets
+         Fix crash when processing RTCP APP packets.
+
+2017-01-12 16:05:59 +0000  John Bassett <john.bassett@pexip.com>
+
+       * gst/rtpmanager/gstrtpssrcdemux.c:
+       * tests/check/elements/rtpssrcdemux.c:
+         rtpssrcdemux: Bad RTP/RTCP packet is not fatal
+         When used for processing bundled media streams within rtpbin the rtpssrcdemux element may
+         receive bad RTP and RTCP packets, these should not be treated as a fatal error.
+
+2016-09-14 16:41:02 +0200  Mikhail Fludkov <misha@pexip.com>
+
+       * gst/rtpmanager/gstrtpssrcdemux.c:
+       * gst/rtpmanager/gstrtpssrcdemux.h:
+       * tests/check/elements/rtpssrcdemux.c:
+         rtpssrcdemux: introduce max-streams property
+         The property is useful against atacks when the sender changes SSRC for
+         every RTP packet. The property with the same name introduced in rtpbin
+         was not enough, because we still can end up with thousands of pads
+         allocated in rtpssrcdemux.
+
+2020-02-10 14:22:47 +0100  Havard Graff <havard@pexip.com>
+
+       * tests/check/elements/rtpssrcdemux.c:
+         rtpssrcdemux: fix test warnings
+
+2020-02-07 10:03:49 +0100  Alexander Lapajne <alexander.lapajne@axis.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Fix for segmentation fault when handling set/get_parameter requests
+         gstrtspsrc uses a queue, set_get_param_q, to store set param and get
+         param requests. The requests are put on the queue by calling
+         get_parameters() and set_parameter(). A thread which executs in
+         gst_rtspsrc_thread() then pops requests from the queue and processes
+         them. The crash occured because the queue became empty and a NULL
+         request object was then used. The reason that the queue became empty
+         is that it was popped even when the thread was NOT processing a get
+         parameter or set parameter command. The fix is to make sure that the
+         queue is ONLY popped when the command being processed is a set
+         parameter or get parameter command.
+
+2019-09-27 16:52:06 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtpmanager/rtpsource.c:
+       * tests/check/elements/rtpsession.c:
+         rtpsession: Add test for packet rate maths
+
+2019-09-10 19:03:02 +0100  olivier.crete@collabora.com <Olivier Crête>
+
+       * gst/rtpmanager/rtpstats.c:
+         rtpstats: Base the packet rate average on the packet rate itself
+         Do this so that the average update speed is in time instead of varying
+         based on the actual packet arrival rate.
+
+2019-09-10 18:59:02 +0100  olivier.crete@collabora.com <Olivier Crête>
+
+       * gst/rtpmanager/rtpstats.c:
+         rtpstats: Don't save the ts & seqnum if the avg is not updated
+         This makes it update correctly when you have more than one packet per
+         frame.
+
+2020-02-05 12:48:45 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: map GST_VIDEO_FORMAT_BGR15
+         The GstVideoFormat to v4l2 conversion was missing for BGR15.
+
+2020-02-05 12:00:00 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: fix crash on invalid caps
+         gst_v4l2_object_set_format_full() was returning FALSE without setting
+         an error. Caller code (gst_v4l2src_fixate()) was then derefing a
+         NULL pointer when trying to handle the error.
+
+2020-01-27 16:00:30 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Include actual sink element in the fragment-opened/closed messages
+         If not configuring the sinks via the "location" property this can be
+         useful to know for which sink the fragment was actually opened/closed,
+         especially if finalization of the fragments is happening asynchronously.
+
+2020-01-29 12:05:07 +0100  Juergen Werner <pogojotz@gmx.net>
+
+       * gst/rtpmanager/rtpjitterbuffer.c:
+         rtpjitterbuffer: fix scaling from RTP-time to NTP-time
+         The scaling was inverse.
+
+2020-01-27 23:59:05 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtpmanager/gstrtprtxsend.c:
+       * gst/rtpmanager/gstrtprtxsend.h:
+       * tests/check/elements/rtprtx.c:
+         rtprtxsend: allow generic input caps
+         When connected to an upstream rtpfunnel element, payload-type,
+         ssrc and clock-rate will not be present in the received caps.
+         rtprtxsend can already deal with only the clock rate being
+         present there, a new property is exposed to allow users to
+         provide a payload-type -> clock-rate map, this enables the
+         use of the max-size-time property for bundled streams.
+
+2020-01-27 15:17:27 -0800  Julien Isorce <jisorce@oblong.com>
+
+       * ext/vpx/gstvpxenc.c:
+         vp8enc/vp8enc: set 1 for the default value of VP8E_SET_STATIC_THRESHOLD
+         In Google webrtc, the setting VP8E_SET_STATIC_THRESHOLD is set to 1
+         (except when the content is known to be static very often in which
+         case it is set to 100, i.e. when sharing screen with Google Hangouts).
+         The cpu usage drops a lot when using 1 for above setting because it
+         allows the encoder to skip static/low content blocks. The current
+         0 default value uses too much cpu and confuses the user regarding
+         the cpu usage expectations. User expects vp8enc to use low cpu by
+         default.
+         Documentation of VP8E_SET_STATIC_THRESHOLD:
+         https://github.com/webmproject/libvpx/blob/master/vpx/vp8cx.h#L188
+         chromium/webrtc:
+         https://chromium.googlesource.com/external/webrtc/+/b484ec0082948ae086c2ba4142b4d2bf8bc4dd4b/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc#822
+         Closes #58
+
+2020-01-27 17:16:02 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * ext/jpeg/gstjpegdec.c:
+         jpegdec: Check return value of gst_buffer_map()
+         Without this check, the element will crash instead of returning an
+         error.
+
+2020-01-27 15:52:42 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Check the correct sink class for the existence of the "location" property
+
+2020-01-13 11:58:12 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Always prefer information from v1/v2 sound sample description over sample description entry
+         ffmpeg is doing the same and various files in the wild have bogus
+         information in the sample description if the same information is also
+         duplicated afterwards in the v1/v2 sound sample desription.
+         Previously we only did this for non-raw audio due to
+         https://bugzilla.gnome.org/show_bug.cgi?id=374914
+         but this specific file is already worked around differently. It still
+         works after this change.
+         Also remove ad-hoc GST_READ_DOUBLE_BE re-implementation and move the
+         switch for legacy audio formats after reading all the sample
+         descriptions as we want to override the values from there.
+
+2020-01-13 20:02:58 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/avi/gstavimux.c:
+       * gst/avi/gstavimux.h:
+         avimux: Add support for >2 raw audio channels
+         For this case write a WAVEFORMATEXTENSIBLE header and also reorder the
+         raw audio channels to the AVI channel order if needed.
+
+2020-01-13 20:07:01 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/wavenc/gstwavenc.c:
+         wavenc: Fix writing of the channel mask with >2 channels
+         The channel position is an enum but the conversion code assumed it's a
+         mask. Convert accordingly.
+
+2020-01-10 16:30:33 +0100  Kristofer Björkström <kristofb@axis.com>
+
+       * gst/rtp/gstrtph265pay.c:
+       * tests/check/elements/rtph265.c:
+         rtph265pay: TID for NALU type 48 was always set to 7
+         A typo bug: | instead of & resulted in TID alwasy being set to 7
+         for the aggregated NALU of type 48
+
+2020-01-10 14:54:26 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/imagefreeze/gstimagefreeze.c:
+       * gst/imagefreeze/gstimagefreeze.h:
+         imagefreeze: Add support for replacing the output buffer
+         By default imagefreeze will still reject new buffers after the first one
+         and immediately return GST_FLOW_EOS but the new allow-replace property
+         allows to change this.
+         Whenever updating the buffer we now also keep track of the configured
+         caps of the buffer and from the source pad task negotiate correctly
+         based on the potentially updated caps.
+         Only the very first time negotiation of a framerate with downstream is
+         performed, afterwards only the caps themselves apart from the framerate
+         are updated.
+
+2020-01-09 18:43:02 +0000  Alicia Boya García <ntrrgc@gmail.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Fix race on pad reconnection
+         Elements emitting frames through several srcpads should use a
+         flow combiner to aggregate the chain returns and therefore only return
+         GST_FLOW_NOT_LINKED to upstream when all the downstream pads have
+         received GST_FLOW_NOT_LINKED.
+         In addition to that, in order to handle pads being relinked downstream,
+         the flow combiner should be reset in response to RECONFIGURE events.
+         This ensures that a both srcpads process a chain operation before a
+         GST_FLOW_NOT_LINKED can be propagated upstream (which would usually stop
+         the pipeline).
+         Otherwise, in a configuration with two srcpads, only one linked at a
+         time, after the relink the element could chain data through the now
+         unlinked pad and the flow combiner would resolve as GST_FLOW_NOT_LINKED
+         (stopping the pipeline) just because the now linked pad has not been
+         chained yet to update the flow combiner.
+         This patch adds handling of RECONFIGURE events to qtdemux. Also, since
+         this event handling causes the flow combiner to be used from a thread
+         other than the qtdemux streaming thread, usages of the flow combiner
+         has been guarded by the object lock.
+
+2020-01-07 01:20:24 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Fix assertion failure on set_property()
+         GValue might have null object.
+         (gst-inspect-1.0:10304): GStreamer-CRITICAL ...
+         gst_object_ref_sink: assertion 'object != NULL' failed
+
+2020-01-03 15:16:02 +0100  Daniel Molkentin <daniel@molkentin.de>
+
+       * gst/videocrop/gstvideocrop.c:
+         videocrop: allow properties to be animated by GstController
+
+2019-12-24 08:24:51 -0500  Aaron Boxer <aaron.boxer@collabora.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: improved handling of control concatenation with base
+         Also, `control_url` variable has been renamed to `control_path`,
+         as it is actually a path.
+
+2019-12-06 12:34:15 -0500  Aaron Boxer <aaron.boxer@collabora.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: append aggregate control string to base URL before query string
+         Appending control string to end of query changes meaning of query string
+         Fixes #650
+
+2019-12-28 23:01:19 +0000  Eric Marks <bigmarkslp@gmail.com>
+
+       * ext/aalib/gstaasink.c:
+       * ext/aalib/gstaatv.c:
+       * ext/aalib/gstaatv.h:
+       * ext/aalib/meson.build:
+       * ext/libcaca/gstcacasink.c:
+       * ext/libcaca/gstcacatv.c:
+       * ext/libcaca/gstcacatv.h:
+       * ext/libcaca/meson.build:
+         aasink & cacasink: add filter aatv & cacatv
+         Add transform filter capabilities to aasink and cacasink in the form of new elements aatv and cacatv.
+
+2019-06-06 11:03:34 +0200  Niels De Graef <niels.degraef@barco.com>
+
+       * gst/alpha/gstalpha.h:
+       * gst/alpha/gstalphacolor.h:
+         alpha: Cleanup using G_DECLARE_FINAL_TYPE
+         We started depending on GLib 2.44, so we can clean up all the GObject
+         boilerplate macros.
+
+2019-12-18 16:07:18 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * ext/shout2/gstshout2.c:
+       * gst/multipart/multipartmux.c:
+       * sys/ximage/gstximagesrc.c:
+         good: use of g_value_dup_string
+         Use helper method to get string from GValue.
+
+2019-12-19 23:48:09 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+       * tests/check/elements/rtpbin.c:
+         rtpbin: fix shutdown crash in rtpbin
+         The key is to make sure the jitterbuffer is set to NULL *before* the
+         ptdemux.
+         The race that existed would basically happen when ptdemux had reached
+         READY, and the jitterbuffer would then push a buffer, triggering a new
+         pad with a new payloadtype being added and ghosted to the rtpbin itself.
+         However, the srcpad of the ptdemux would now be inactive, and all the
+         sticky-event pushed on it would be swallowed, not allowing any to reach
+         the ghost-pad. Then the buffer in-flight would come to the ghostpad,
+         and we would assert that a buffer arrived before the necessary
+         events.
+         By simply re-ordering the state-changes, we ensure that there will be
+         no buffer racing into the ptdemux while its state is being changed,
+         and the problem disappears completely.
+         Notice also that there is not point in disconnecting the signals on the
+         ptdemux before this point, since we need the push-thread to settle
+         down before we can do this in a non-racy way.
+
+2019-09-12 14:22:10 -0600  Aaron Boxer <aaron.boxer@collabora.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: avoid seek DISCONT when only rate changes in same direction
+         Not setting DISCONT avoids a noticable delay when seeking
+         with only rate changing, in the same direction as current
+         rate.
+
+2019-12-10 18:13:11 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/rtsp/gstrtspsrc.h:
+         rtspsrc: Remove deprecated GTimeVal
+         GTimeVal won't work past 2038
+
+2019-12-10 17:13:45 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+       * sys/osxaudio/gstosxcoreaudiohal.c:
+         osxaudio: Remove deprecated GTimeVal
+
+2019-12-18 12:19:27 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/avi/gstavimux.c:
+         avimux: Add support for S24LE and S32LE raw audio
+         avidemux already handles this correctly.
+
+2019-12-16 21:07:08 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/avi/gstavimux.c:
+         avimux: Allow muxing v210 video into AVI
+         avidemux already handles this.
+
+2019-12-16 18:43:44 +0200  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/flv/gstflvdemux.c:
+         flvdemux: Don't replace video codec data when we receive a PAR
+         Receiving a pixel-aspect-ratio should trigger a caps change, but not
+         replace the existing video codec tag
+
+2019-12-12 20:20:35 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: protect access to GstElement.sinkpads
+
+2019-12-03 15:30:06 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/gstqtmux.h:
+       * tests/check/elements/qtmux.c:
+         qtmux: port to GstAggregator
+
+2019-12-16 13:03:51 +0100  Joakim Johansson <joakimj@axis.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         gstrtspsrc: Add missing lock on free set_get_param_q
+         Otherwise is it possible to get a crash in gst_rtspsrc_set_parameter.
+
+2019-12-12 18:53:00 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Increment fragment_id even if no fragment location was provided
+         Applications might handle locations and generally configuration of the
+         sink by themselves instead of having splitmuxsink set the location on
+         the sink. Nonetheless it makes sense to increment the fragment_id that
+         is passed to the signal so that applications know which fragment is
+         requested.
+
+2019-12-12 10:59:35 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Use the last DTS for the metadata timestamp
+         This avoids creating a timestamp regression during a stream.
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/merge_requests/429
+
+2019-12-11 17:30:50 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: send GAP events for lagging audio and video streams too
+         The logic is taken straight from matroskademux, see
+         77403d0afee635f2de6c2e53a23e1f50ad0d00fa
+
+2019-12-10 23:48:35 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * gst/flv/gstflvmux.c:
+       * meson.build:
+         flvmux: Use thread-safe gmtime_r if available
+         gmtime on *nix is not thread-safe.
+
+2019-12-05 14:58:40 +0000  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: provides a start-index property
+         Allow to change the fragment-id start index.
+
+2019-12-03 11:36:07 +0100  Philipp Zabel <p.zabel@pengutronix.de>
+
+       * ext/qt/meson.build:
+         qmlglsink: fix build on EGL platform without X11 headers
+         If Mesa is built without X11 headers, building against Mesa EGL headers
+         requires a dependency on egl.pc, to define MESA_EGL_NO_X11_HEADERS.
+         This fixes a build error when compiling ext/qt/gstqtglutility.cc:
+         In file included from /usr/include/EGL/egl.h:39,
+         from /usr/include/gstreamer-1.0/gst/gl/egl/gstegl.h:44,
+         from ../gst-plugins-good-1.16.1/ext/qt/gstqtglutility.cc:43:
+         /usr/include/EGL/eglplatform.h:124:10: fatal error: X11/Xlib.h: No such file or directory
+
+2019-12-04 01:03:49 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/rtp/gstrtpjpegdepay.c:
+         rtpjpegdepay: outputs framed jpeg
+         Add parsed=true to output caps, as we always output
+         whole frames, timestamped and all. Means also that
+         the output can be decoded by avdec_mjpeg wihout
+         plugging an extra parser (which has no rank).
+
+2019-12-03 13:47:22 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Correct metadata handling in file and stream mode
+         In file mode, only push one onMetaData at the start of the stream.
+         In stream mode, always push complete onMetaData. They get replaced, not
+         merged.
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/merge_requests/418
+
+2019-12-03 13:46:09 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Don't calculate duration in streamable mode
+         There's no header to rewrite, so the duration is left unused.
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/merge_requests/418
+
+2016-11-30 15:55:01 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtp/gstrtpL16depay.c:
+         rtpL16depay: don't crash if data is not modulo channels*width
+
+2019-12-02 19:00:45 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * meson.build:
+       * pkgconfig/gstreamer-plugins-good-uninstalled.pc.in:
+       * pkgconfig/meson.build:
+         pkgconfig: remove gst-plugins-good-1.0-uninstalled.pc
+         This was never installed and it was only used by the uninstalled
+         autotools dev environment to locate the -good plugins for use
+         in unit tests in gstreamer modules higher up the stack.
+         It is no longer needed now that we no longer have an autotools build.
+
+2017-10-10 15:45:28 +0200  Håvard Graff <havard.graff@gmail.com>
+
+       * pkgconfig/meson.build:
+         meson.build: use join_paths() on prefix
+         So that "/" are correct on Windows.
+
+2017-06-30 09:48:58 +0200  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtp/gstrtpopuspay.c:
+         rtpopuspay: use baseclass allocator for buffers
+         That way we get some of the meta -> rtp-extension goodies.
+
+2019-11-29 20:46:26 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * ext/vpx/gstvp9dec.c:
+         vp9dec: Fix broken 4:4:4 8bits decoding
+         VPX_IMG_FMT_I444 pixel format with sRGB colorspace means
+         GBR data.
+         Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/651
+
+2019-10-18 17:45:43 +0200  Havard Graff <havard@pexip.com>
+
+       * tests/check/elements/rtpsession.c:
+         rtpsession: add test for requesting FIR after having requested PLI
+
+2019-11-26 15:00:18 +0100  Havard Graff <havard@pexip.com>
+
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: make test more stable
+
+2019-11-29 14:23:49 +0100  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/gstrtpsession.c:
+       * tests/check/elements/rtpsession.c:
+         rtpsession: add locking for clear-pt-map
+         ...or it will segfault from time to time...
+
+2018-05-31 10:29:43 +0200  Linus Svensson <linussn@axis.com>
+
+       * gst/matroska/matroska-mux.c:
+       * gst/matroska/matroska-mux.h:
+       * gst/matroska/matroska-read-common.c:
+         matroskamux: Add property to set DateUTC
+         Add a property that makes it possible for an application to set the
+         DateUTC header field in matroska files. This is useful for live feeds,
+         where the DateUTC header can be set to a UTC timestamp, matching the
+         beginning of the file.
+         Needs gstreamer!323
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/481
+
+2018-05-31 11:20:36 +0200  Linus Svensson <linussn@axis.com>
+
+       * gst/matroska/ebml-ids.h:
+       * gst/matroska/ebml-read.c:
+       * gst/matroska/ebml-write.c:
+       * gst/matroska/matroska-mux.c:
+         matroskamux: Use nanosecond precision for DateUTC
+         DateUTC is specified with nanosecond precision in matroska, make use of
+         that.
+
+2018-10-17 02:28:13 +0000  Nicolas Dufresne <nicolas@ndufresne.ca>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+       * sys/v4l2/gstv4l2bufferpool.h:
+         v4l2bufferpool: Queue number of allocated buffers to capture
+         Before we do streamon, we queue all capture buffers by calling
+         resurrect. When the driver supports CREATE_BUFS, this would lead
+         to buffers being allocated till the maximum of 32 is reached.
+         Instead, we now save the number of allocated buffers and queue this
+         amount.
+
+2019-11-19 14:23:48 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/matroska/matroska-mux.c:
+         matroskamux: Pass the right size to gst_collect_pads_add_pad
+         We were lucky that GstMatroskamuxPad is larger than GstMatroskaPad.
+         https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/merge_requests/393
+
+2019-11-18 13:27:42 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: Workaround bad TRY_FMT colorimetry implementation
+         libv4l2 reset the colorpace to 0 and does not do any request to the
+         driver. This yields an invalid colorspace which currently cause a
+         negotiation failure. This workaround by ignoring bad values during the
+         TRY_FMT step.
+
+2019-11-04 17:18:30 +0800  aogun <gun.ao@magewell.com>
+
+       * gst/audioparsers/gstaacparse.c:
+         aacparse: fix wrong offset of adts channel
+
+2019-10-07 12:45:00 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Don't take lock during posting message
+         An application might try to access splitmuxsink from sync message handler
+         by g_object_{get,set} which takes lock also. In general, we don't
+         take lock around message handler.
+
+2019-09-12 15:21:24 -0400  Scott Kanowitz <skanowitz@echo360.com>
+
+       * ext/jpeg/gstjpegdec.c:
+         jpegdec: Fix incorrect logic in EOI tag detection
+         This change fixes the reversed logic in the EOI tag detection
+         code.
+
+2019-08-26 08:03:24 +0200  Niels De Graef <nielsdegraef@gmail.com>
+
+       * ext/cairo/gstcairooverlay.c:
+       * ext/raw1394/gstdv1394src.c:
+       * ext/shout2/gstshout2.c:
+       * gst/rtp/rtpstorage.c:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/gstrtpptdemux.c:
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/rtpmanager/gstrtpssrcdemux.c:
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtsp/gstrtpdec.c:
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/udp/gstdynudpsink.c:
+       * gst/udp/gstmultiudpsink.c:
+       * sys/v4l2/tuner.c:
+       * sys/v4l2/tunerchannel.c:
+         Don't pass default GLib marshallers for signals
+         By passing `NULL` to `g_signal_new` instead of a marshaller, GLib will
+         actually internally optimize the signal (if the marshaller is available
+         in GLib itself) by also setting the valist marshaller. This makes the
+         signal emission a bit more performant than the regular marshalling,
+         which still needs to box into `GValue` and call libffi in case of a
+         generic marshaller.
+         Note that for custom marshallers, one would use
+         `g_signal_set_va_marshaller()` with the valist marshaller instead.
+
+2019-11-14 17:33:08 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Check the exit condition after executing timers
+         The do_expected_timeout() function may release the JBUF_LOCK, so we need
+         to check if nothing wanted the timer thread to exit after this call.
+         The side effect was that we may endup going back into waiting for a timer
+         which will cause arbitrary delay on tear down (or deadlock when test
+         clock is used).
+         Fixes #653
+
+2019-11-14 17:20:51 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Check exit condition immediately after JBUF_WAIT
+         JBUF_WAIT_QUEUE drops the JBUF_LOCK, which means the stop condition
+         for the chain function may have changed (change_state to NULL). Check
+         this immediately after the wait so that we don't delay shutting down.
+
+2019-11-12 17:28:22 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/videocrop/gstvideocrop.c:
+         videocrop: Also update the coordinate when in-place
+         This update is needed when the output caps is not changed (e.g. we are
+         moving a viewport around).
+         Fixes #669
+
+2019-11-11 13:19:08 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/videocrop/gstvideocrop.c:
+         videocrop: Don't always re-run the allocation query
+         When in-place, running an allocation is not useful since videocrop
+         is not implicated in the allocation. So only force the allocation
+         query for the case it was in passthrough. This is needed since the
+         change in the crop region will likely pull us out of this mode. For the
+         case we where neither in passthrough or in-place, the allocation query
+         is already ran by the baseclass, so nothing special is needed.
+         This fixes performance issues when changing the crop region per frame.
+         This was reproduced using videocrop2-test.
+
+2019-11-11 13:18:52 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/videocrop/gstvideocrop.c:
+         videocrop: Cleanup spurious assignment
+         These are just writing the same thing a second time.
+
+2018-11-07 09:00:02 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
+
+       * ext/jpeg/gstjpegdec.c:
+       * ext/jpeg/gstjpegdec.h:
+         jpegdec: don't overwrite the last valid line
+         If the the height is not a multiple of the macro block size then the memory
+         of the last line is reused for all extra lines. This is no problem if the
+         last line is duplicated properly. However, if the extra lines are not
+         initialized properly during encoding, then the last visible line is
+         overwritten with undefined data.
+         Use a extra buffer to avoid this problem.
+
+2019-11-07 12:28:58 +0100  Stéphane Cerveau <scerveau@collabora.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: add fakesink support
+         fakesink does not support "location" property and was generating
+         a warning.
+
+2018-12-12 19:07:39 +0300  Sergey Nazaryev <sergey.nazaryev@cogentembedded.com>
+
+       * gst/udp/gstmultiudpsink.c:
+         multiudpsink: don't lose scope_id
+
+2019-11-05 21:41:55 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * ext/vpx/meson.build:
+         vpx: Error out if enabled and no features found
+         Seee: https://gitlab.freedesktop.org/gstreamer/cerbero/issues/200
+
+2019-05-25 21:19:21 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: update match_buffer_layout() debug messages
+         It's no longer used only to try importing buffers.
+
+2019-05-23 10:49:39 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: try matching buffer layout from downstream
+         Ask v4l2 to produce buffers matching the buffer layout requested
+         downstream.
+
+2019-05-21 10:31:46 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: factor out gst_v4l2_object_match_buffer_layout()
+         No semantic change.
+
+2019-10-20 12:17:25 +0200  Havard Graff <havard@pexip.com>
+
+       * gst/rtpmanager/rtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: make sure not to drop packets based on skew
+         One of the jitterbuffers functions is to try and make sense of weird
+         network behavior.
+         It is quite unhelpful for the jitterbuffer to start dropping packets
+         itself when what you are trying to achieve is better network resilience.
+         In the case of a skew, this could often mean the sender has restarted
+         in some fashion, and then dropping the very first buffer of this "new"
+         stream could often mean missing valuable information, like in the case
+         of video and I-frames.
+         This patch simply reverts back to the old behavior, prior to https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/commit/8d955fc32b552b2db933c67f3cfa31d987f36b81
+         and includes the simplest test I could write to demonstrate the behavior,
+         where a single packet arrives "perfectly", then a 50ms gap happens,
+         and then two more packets arrive in perfect order after that.
+         # Conflicts:
+         #     tests/check/elements/rtpjitterbuffer.c
+
+2019-04-17 12:40:22 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * sys/v4l2/gstv4l2transform.c:
+         v4l2transform: use alignments from upstream when importing on sink
+         Try configuring the v4l2 output with the alignments from upstream when
+         importing its buffers. This allows us to support importing with
+         non-standard strides and/or heights if supported by the driver.
+
+2019-04-17 12:25:14 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: add support for vertical padding when importing buffers
+         We were already supporting horizontal padding by setting bytesperline to
+         the buffer stride but not vertical one.
+         We are now updating the format height with the padded height and crop to
+         the actual video resolution if needed.
+
+2019-04-17 11:46:10 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: fix debug message if driver rejects stride
+         The 'want' and 'got' strides were inversed.
+
+2019-04-15 11:43:41 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: improve logs when importing buffers
+         Log strides and offsets from upstream.
+         Also fix a typo.
+
+2019-10-29 14:05:48 +0000  James Cowgill <james.cowgill@thinci.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: ensure pool exists before orphaning it
+         In commit e2ff87732d0b ("v4l2videodec: support orphaning") support for
+         orphaning the capture buffer pool was added when the format is
+         renegotiated. However, the commit forgot to check that a pool existed
+         before doing this. This is needed because it's possible for the format
+         to be renegotiated before a capture pool is allocated, which would
+         result in trying to orphan a NULL pool and lead to a NULL pointer
+         dereference.
+         Fix this by checking a pool exists first. If the pool doesn't exist,
+         there are no buffers to be reclaimed, so skip the allocation query in
+         that case.
+
+2019-10-25 22:03:18 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/qtwindow.cc:
+         qmlglsrc: read from the back buffer when use-default-fbo = TRUE
+         glReadBuffer(GL_COLOR_ATTACHMENT0) on the default framebuffer (0) is
+         invalid GL API usage and would result in a GL error being thrown.
+
+2019-10-25 21:47:01 +1100  Matthew Waters <matthew@centricular.com>
+
+       * ext/qt/gstqtsrc.cc:
+         qmlglsrc: fix vertical flip matrix
+         Some time ago libgstgl defined the majorness of matrices it uses.
+         The majorness used by qmlglsrc was incompatible with the libgstgl.
+
+2019-07-30 12:07:18 +0200  Patricia Muscalu <patricia@axis.com>
+
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/gstqtmux.h:
+         qtmux: Fix memory leak while pushing fragmented data
+         The memory leak occurs in the case when the buffer has been
+         added to the fragment_buffers array of the current pad and
+         never been sent because of the push failure of the previous
+         buffers: moof or mdat header or fragmented buffer(s).
+
+2019-10-11 14:20:15 +0200  Edward Hervey <edward@centricular.com>
+
+       * gst/debugutils/cpureport.c:
+       * gst/debugutils/cpureport.h:
+       * gst/debugutils/progressreport.c:
+       * gst/debugutils/progressreport.h:
+       * gst/flv/gstflvmux.c:
+       * gst/isomp4/atoms.c:
+       * gst/isomp4/qtdemux.c:
+       * gst/matroska/matroska-mux.c:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/udp/gstmultiudpsink.c:
+       * sys/v4l2/gstv4l2src.c:
+         good: Avoid usage of deprecated API
+         GTimeval and related functions are now deprecated in glib.
+         Replacement APIs have been present since 2.26
+
+2019-07-15 07:46:56 +0200  Javier Celaya <javier.celaya@flexvdi.com>
+
+       * sys/osxaudio/meson.build:
+         osxaudio: misspelled dependency
+         When building osxaudio, the required 'AudioToolbox' dependency is
+         misspelled as 'AudioToolBox', which crashes the build with error:
+         ld: framework not found AudioToolBox
+
+2019-06-09 00:43:00 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * .gitignore:
+       * .gitmodules:
+       * Makefile.am:
+       * README:
+       * autogen.sh:
+       * common:
+       * configure.ac:
+       * docs/.gitignore:
+       * ext/Makefile.am:
+       * ext/aalib/Makefile.am:
+       * ext/cairo/Makefile.am:
+       * ext/dv/Makefile.am:
+       * ext/flac/Makefile.am:
+       * ext/gdk_pixbuf/Makefile.am:
+       * ext/gtk/Makefile.am:
+       * ext/jack/.gitignore:
+       * ext/jack/Makefile.am:
+       * ext/jpeg/Makefile.am:
+       * ext/lame/Makefile.am:
+       * ext/libcaca/Makefile.am:
+       * ext/libpng/Makefile.am:
+       * ext/mpg123/Makefile.am:
+       * ext/pulse/Makefile.am:
+       * ext/qt/.gitignore:
+       * ext/qt/Makefile.am:
+       * ext/raw1394/.gitignore:
+       * ext/raw1394/Makefile.am:
+       * ext/shout2/Makefile.am:
+       * ext/soup/Makefile.am:
+       * ext/speex/Makefile.am:
+       * ext/taglib/.gitignore:
+       * ext/taglib/Makefile.am:
+       * ext/twolame/Makefile.am:
+       * ext/vpx/Makefile.am:
+       * ext/wavpack/Makefile.am:
+       * gst/Makefile.am:
+       * gst/alpha/Makefile.am:
+       * gst/apetag/Makefile.am:
+       * gst/audiofx/.gitignore:
+       * gst/audiofx/Makefile.am:
+       * gst/audioparsers/Makefile.am:
+       * gst/auparse/.gitignore:
+       * gst/auparse/Makefile.am:
+       * gst/autodetect/Makefile.am:
+       * gst/avi/.gitignore:
+       * gst/avi/Makefile.am:
+       * gst/cutter/Makefile.am:
+       * gst/debugutils/Makefile.am:
+       * gst/deinterlace/Makefile.am:
+       * gst/dtmf/Makefile.am:
+       * gst/effectv/Makefile.am:
+       * gst/equalizer/.gitignore:
+       * gst/equalizer/Makefile.am:
+       * gst/flv/Makefile.am:
+       * gst/flx/Makefile.am:
+       * gst/goom/.gitignore:
+       * gst/goom/Makefile.am:
+       * gst/goom2k1/.gitignore:
+       * gst/goom2k1/Makefile.am:
+       * gst/icydemux/Makefile.am:
+       * gst/id3demux/Makefile.am:
+       * gst/imagefreeze/Makefile.am:
+       * gst/interleave/Makefile.am:
+       * gst/isomp4/Makefile.am:
+       * gst/law/Makefile.am:
+       * gst/level/.gitignore:
+       * gst/level/Makefile.am:
+       * gst/matroska/Makefile.am:
+       * gst/monoscope/.gitignore:
+       * gst/monoscope/Makefile.am:
+       * gst/multifile/Makefile.am:
+       * gst/multipart/Makefile.am:
+       * gst/replaygain/Makefile.am:
+       * gst/rtp/Makefile.am:
+       * gst/rtpmanager/Makefile.am:
+       * gst/rtsp/.gitignore:
+       * gst/rtsp/Makefile.am:
+       * gst/shapewipe/Makefile.am:
+       * gst/smpte/Makefile.am:
+       * gst/spectrum/.gitignore:
+       * gst/spectrum/Makefile.am:
+       * gst/udp/Makefile.am:
+       * gst/videobox/Makefile.am:
+       * gst/videocrop/Makefile.am:
+       * gst/videofilter/.gitignore:
+       * gst/videofilter/Makefile.am:
+       * gst/videomixer/Makefile.am:
+       * gst/wavenc/Makefile.am:
+       * gst/wavparse/.gitignore:
+       * gst/wavparse/Makefile.am:
+       * gst/y4m/Makefile.am:
+       * m4/.gitignore:
+       * m4/Makefile.am:
+       * m4/README:
+       * m4/a52.m4:
+       * m4/aalib.m4:
+       * m4/as-ffmpeg.m4:
+       * m4/as-liblame.m4:
+       * m4/as-slurp-ffmpeg.m4:
+       * m4/check-libheader.m4:
+       * m4/freetype2.m4:
+       * m4/glib.m4:
+       * m4/gst-alsa.m4:
+       * m4/gst-artsc.m4:
+       * m4/gst-fionread.m4:
+       * m4/gst-ivorbis.m4:
+       * m4/gst-matroska.m4:
+       * m4/gst-sdl.m4:
+       * m4/gst-shout2.m4:
+       * m4/gst-sid.m4:
+       * m4/gtk.m4:
+       * m4/libfame.m4:
+       * m4/ogg.m4:
+       * m4/vorbis.m4:
+       * pkgconfig/.gitignore:
+       * pkgconfig/Makefile.am:
+       * po/.gitignore:
+       * po/Makevars:
+       * po/POTFILES:
+       * sys/Makefile.am:
+       * sys/directsound/Makefile.am:
+       * sys/oss/.gitignore:
+       * sys/oss/Makefile.am:
+       * sys/oss4/Makefile.am:
+       * sys/osxaudio/Makefile.am:
+       * sys/osxvideo/Makefile.am:
+       * sys/v4l2/Makefile.am:
+       * sys/waveform/Makefile.am:
+       * sys/ximage/Makefile.am:
+       * tests/Makefile.am:
+       * tests/check/.gitignore:
+       * tests/check/Makefile.am:
+       * tests/check/elements/.gitignore:
+       * tests/check/generic/.gitignore:
+       * tests/check/pipelines/.gitignore:
+       * tests/examples/Makefile.am:
+       * tests/examples/audiofx/.gitignore:
+       * tests/examples/audiofx/Makefile.am:
+       * tests/examples/cairo/.gitignore:
+       * tests/examples/cairo/Makefile.am:
+       * tests/examples/equalizer/.gitignore:
+       * tests/examples/equalizer/Makefile.am:
+       * tests/examples/gtk/.gitignore:
+       * tests/examples/gtk/Makefile.am:
+       * tests/examples/jack/Makefile.am:
+       * tests/examples/level/.gitignore:
+       * tests/examples/level/Makefile.am:
+       * tests/examples/qt/qmlsink/.gitignore:
+       * tests/examples/qt/qmlsrc/.gitignore:
+       * tests/examples/rtp/.gitignore:
+       * tests/examples/rtp/Makefile.am:
+       * tests/examples/rtsp/Makefile.am:
+       * tests/examples/shapewipe/.gitignore:
+       * tests/examples/shapewipe/Makefile.am:
+       * tests/examples/spectrum/.gitignore:
+       * tests/examples/spectrum/Makefile.am:
+       * tests/examples/v4l2/.gitignore:
+       * tests/examples/v4l2/Makefile.am:
+       * tests/files/Makefile.am:
+       * tests/icles/.gitignore:
+       * tests/icles/Makefile.am:
+         Remove autotools build system
+
+2019-10-13 12:46:58 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/v4l2/gstv4l2videoenc.c:
+         v4l2videoenc: fix wrong type cast
+         Follow-up to commit 1b752c0f !361
+
+2019-09-25 12:36:32 +0000  HuQian <huqian123hq@hotmail.com>
+
+       * sys/v4l2/gstv4l2object.c:
+         is a typo here? gstv4l2object.c
+
+2019-10-11 12:27:12 +0000  Kevin Song <kevinbing.song@gmail.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: Check stop in flush() to avoid race condition.
+         Backward playback will drain and flush every frame. Stop playback
+         when backward playback have race condition between exit thread and
+         streaming thread flush. Add one check to avoid it.
+         Fixes #639
+
+2019-10-11 10:33:20 +0800  Fuwei Tang <fuweix.tang@intel.com>
+
+       * sys/v4l2/gstv4l2videoenc.c:
+         v4l2videoenc: fix type conversion errors
+
+2019-09-02 08:27:35 -0400  Aaron Boxer <aaron.boxer@collabora.com>
+
+       * NEWS:
+       * docs/gst_plugins_cache.json:
+       * ext/dv/gstdvdemux.c:
+       * ext/flac/gstflactag.c:
+       * ext/gdk_pixbuf/gstgdkpixbufdec.c:
+       * ext/gtk/gstgtkbasesink.c:
+       * ext/jack/gstjackaudioclient.c:
+       * ext/jpeg/Makefile.am:
+       * ext/pulse/pulsesink.c:
+       * ext/qt/qtwindow.cc:
+       * ext/raw1394/gstdv1394src.h:
+       * ext/taglib/gstid3v2mux.cc:
+       * ext/wavpack/gstwavpackenc.c:
+       * gst/audiofx/audiodynamic.c:
+       * gst/audiofx/audiofxbasefirfilter.c:
+       * gst/audiofx/audiofxbasefirfilter.h:
+       * gst/audiofx/gstscaletempo.c:
+       * gst/audiofx/gstscaletempoplugin.c:
+       * gst/autodetect/gstautodetect.c:
+       * gst/avi/gstavidemux.c:
+       * gst/avi/gstavimux.c:
+       * gst/debugutils/progressreport.c:
+       * gst/debugutils/rndbuffersize.c:
+       * gst/deinterlace/gstdeinterlace.c:
+       * gst/deinterlace/tvtime/sse.h:
+       * gst/deinterlace/tvtime/tomsmocomp/SearchLoopBottom.inc:
+       * gst/deinterlace/tvtime/tomsmocomp/StrangeBob.inc:
+       * gst/deinterlace/tvtime/tomsmocomp/WierdBob.inc:
+       * gst/deinterlace/tvtime/vfir.c:
+       * gst/dtmf/gstdtmfsrc.c:
+       * gst/dtmf/gstrtpdtmfdepay.c:
+       * gst/dtmf/gstrtpdtmfsrc.c:
+       * gst/effectv/gstedge.c:
+       * gst/effectv/gstquark.c:
+       * gst/flv/gstflvdemux.c:
+       * gst/flv/gstindex.c:
+       * gst/interleave/deinterleave.c:
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/qtdemux.c:
+       * gst/isomp4/qtdemux_lang.c:
+       * gst/level/gstlevel.c:
+       * gst/matroska/ebml-write.c:
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-mux.c:
+       * gst/matroska/matroska-parse.c:
+       * gst/matroska/matroska-read-common.c:
+       * gst/monoscope/monoscope.c:
+       * gst/multifile/gstmultifilesrc.c:
+       * gst/multifile/gstsplitmuxpartreader.c:
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsrc.c:
+       * gst/multifile/patternspec.c:
+       * gst/replaygain/replaygain.h:
+       * gst/rtp/README:
+       * gst/rtp/gstrtpdvdepay.c:
+       * gst/rtp/gstrtpg726pay.c:
+       * gst/rtp/gstrtpgstpay.c:
+       * gst/rtp/gstrtph261pay.c:
+       * gst/rtp/gstrtph263pay.c:
+       * gst/rtp/gstrtph263ppay.c:
+       * gst/rtp/gstrtph264depay.c:
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph265depay.c:
+       * gst/rtp/gstrtpjpegdepay.c:
+       * gst/rtp/gstrtpjpegpay.c:
+       * gst/rtp/gstrtpmp4adepay.c:
+       * gst/rtp/gstrtpmp4gdepay.c:
+       * gst/rtp/gstrtpmp4gpay.c:
+       * gst/rtp/gstrtpmp4vpay.c:
+       * gst/rtp/gstrtpredenc.c:
+       * gst/rtp/gstrtptheoradepay.c:
+       * gst/rtp/gstrtpulpfecenc.c:
+       * gst/rtp/gstrtpvorbisdepay.c:
+       * gst/rtp/gstrtpvrawdepay.c:
+       * gst/rtp/rtpstorage.c:
+       * gst/rtp/rtpulpfeccommon.c:
+       * gst/rtp/rtpulpfeccommon.h:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/gstrtpptdemux.c:
+       * gst/rtpmanager/gstrtpptdemux.h:
+       * gst/rtpmanager/gstrtprtxreceive.c:
+       * gst/rtpmanager/gstrtprtxsend.c:
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/rtpmanager/gstrtpssrcdemux.c:
+       * gst/rtpmanager/rtpjitterbuffer.c:
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtpsession.h:
+       * gst/rtpmanager/rtpsource.c:
+       * gst/rtsp/README:
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/spectrum/gstspectrum.h:
+       * gst/udp/gstmultiudpsink.c:
+       * gst/udp/gstudpsrc.c:
+       * gst/videobox/gstvideobox.c:
+       * gst/videocrop/gstvideocrop.c:
+       * gst/videofilter/gstvideoflip.c:
+       * gst/videomixer/README:
+       * gst/videomixer/videomixer2.c:
+       * gst/wavenc/gstwavenc.c:
+       * gst/wavparse/gstwavparse.c:
+       * hooks/pre-commit.hook:
+       * m4/aalib.m4:
+       * m4/freetype2.m4:
+       * m4/glib.m4:
+       * m4/gst-fionread.m4:
+       * m4/gst-matroska.m4:
+       * m4/gst-sdl.m4:
+       * m4/gst-shout2.m4:
+       * m4/gtk.m4:
+       * m4/libfame.m4:
+       * m4/ogg.m4:
+       * m4/vorbis.m4:
+       * sys/oss4/oss4-audio.c:
+       * sys/oss4/oss4-soundcard.h:
+       * sys/osxaudio/gstosxcoreaudio.c:
+       * sys/osxvideo/osxvideosink.m:
+       * sys/v4l2/gstv4l2.c:
+       * sys/v4l2/gstv4l2allocator.c:
+       * sys/v4l2/gstv4l2bufferpool.c:
+       * sys/v4l2/gstv4l2bufferpool.h:
+       * sys/v4l2/gstv4l2object.c:
+       * sys/v4l2/gstv4l2src.c:
+       * sys/v4l2/gstv4l2transform.c:
+       * sys/v4l2/gstv4l2videodec.c:
+       * sys/v4l2/gstv4l2videoenc.c:
+       * sys/v4l2/v4l2_calls.c:
+       * sys/waveform/gstwaveformsink.c:
+       * sys/ximage/gstximagesrc.c:
+       * sys/ximage/ximageutil.h:
+       * tests/check/elements/jpegdec.c:
+       * tests/check/elements/level.c:
+       * tests/check/elements/qtmux.c:
+       * tests/check/elements/rgvolume.c:
+       * tests/check/elements/rtp-payloading.c:
+       * tests/check/elements/rtpbin.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+       * tests/check/elements/rtpred.c:
+       * tests/check/elements/rtprtx.c:
+       * tests/check/elements/rtpsession.c:
+       * tests/check/elements/rtpstorage.c:
+       * tests/check/elements/splitmux.c:
+       * tests/check/pipelines/simple-launch-lines.c:
+       * tests/examples/cairo/cairo_overlay.c:
+       * tests/examples/gtk/glliveshader.c:
+       * tests/examples/rtp/client-rtpaux.c:
+       * tests/examples/v4l2/camctrl.c:
+         documentation: fix a number of typos
+
+2019-10-04 20:31:56 +0000  Simon Arnling Bååth <simon.baath@gmail.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         gstrtpjitterbuffer: Custom messages when dropping packets
+         This commit adds custom element messages for when gstrtpjitterbuffer
+         drops an incoming rtp packets due to for example arriving too late.
+         Applications can listen to these messages on the bus which enables
+         actions to be taken when packets are dropped due to for example high
+         network jitter.
+         Two properties has been added, one to enable posting drop messages and
+         one to set a minimum time between each message to enable throttling the
+         posting of messages as high drop rates.
+
+2019-09-03 16:46:30 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/isomp4/qtdemux.c:
+       * gst/isomp4/qtdemux.h:
+         qtdemux: Specify REDIRECT information in error message
+         There are in the wild (mp4) streams that basically contain no tracks
+         but do have a redirect info[0], in which case, we won't be able
+         to expose any pad (there are no tracks) so we can't post anything but
+         an error on the bus, as:
+         - it can't send EOS downstream, it has no pad,
+         - posting an EOS message will be useless as PAUSED state can't be
+         reached and there is no sink in the pipeline meaning GstBin will
+         simply ignore it
+         The approach here is to to add details to the ERROR message with a
+         `redirect-location` field which elements like playbin handle and use right
+         away.
+         [0]: http://movietrailers.apple.com/movies/paramount/terminator-dark-fate/terminator-dark-fate-trailer-2_480p.mov
+
+2019-09-26 18:39:48 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: Cancel timers instead of just unlocking loop thread
+         When the queue is full (and adding more packets would risk a seqnum
+         roll-over), the best approach is to just start pushing out packets
+         from the other side.  Just pushing out the packets results in the
+         timers being left hanging with old seqnums, so it's safer to just
+         execute them immediately in this case. It does limit the timer space
+         to the time it takes to receiver about 32k packets, but without
+         extended sequence number, this is the best RTP can do.
+         This also results in the test no longer needed to have timeouts or
+         timers as pushing packets in drives everything.
+         Fixes #619
+
+2019-09-27 14:04:28 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Optimize offset update
+         As we are applying the same offset over all timers, there timer
+         ordering won't change, so we can safely skip time-reordering.
+
+2019-09-27 16:21:22 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/rtptimerqueue.c:
+         rtptimerqueue: Optimize reschedule optations
+         This basically add ability to choose between inserting from head, tail
+         or in-place in order to try and minimize the distance to walk through in
+         the timer queue. This removes an overhead we had seen on high drop rate.
+
+2019-09-27 14:04:03 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Fix a typo in comment
+
+2019-07-02 15:52:25 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Don't use stats timer on the timers queue
+         The timer passed to update_timers may be from the stats timer. At the
+         moment, we could endup rescheduling (reusing) that timer onto the normal
+         timer queue, unschedul it as if it was from the normal timer queue or
+         duplicate it into the stats timer queue again. This was protected before
+         as the with the fact the stats timer didn't have a valid idx.
+
+2019-06-21 14:08:26 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Update timers on ts-offset changes
+         As the offset is already applied now, we need to update and reschedule
+         all timers each time the offset is changed. I'm not sure who expect this
+         to be retro-actively applied, but there was a unit test for it.
+
+2019-06-20 15:59:48 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: No need to wake the timer thread on head changes
+         If the jitterbuffer head change, there is no need to systematically
+         wakeup the timer thread. The timer thread will be waken up on if
+         an earlier timeout has been pushed. This prevent some more spurious
+         wakeup when the system is loaded. As a side effect, cranking the clock
+         may set the clock at an earlier position.
+
+2019-06-18 19:07:29 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/rtptimerqueue.h:
+         rtpjittterbuffer: Port timers array to RtpTimerQueue
+         In this patch we now make use of the new RtpTimerQueue instead of the
+         old GArray. This required a lot of changes all over the place, some of
+         the important changes are that `timer->timeout` is no longer a PTS but
+         the actual timeout. This was required to get the RtpTimerQueue sorting
+         right. The applied offset is saved as `timer->offset`, this allow
+         retreiving back the PTS when needed.
+         The clockid updates only happens once per incoming packet. If the
+         currently schedule timer is before the earliest timer in the queue, we
+         no longer wakeup the thread. This way, if other timers get setup in the
+         meantime, this will reduce the number of wakup.
+         The timer loop code has been mostly rewritten, though the behaviour of
+         running the lost timers first has been kept (even though there is no
+         test to show what would be the side effect of doing this differently).
+         Fixes #608
+
+2019-06-14 14:29:36 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjittterbuffer: Port from TimerQueue to RtpTimerQueue
+
+2019-06-13 17:08:31 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/rtptimerqueue.h:
+         rtpjitterbuffer: Port use the new RtpTimer structure
+         First iteration toward porting to the new timer queue.
+
+2019-06-12 09:59:31 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/Makefile.am:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/meson.build:
+       * gst/rtpmanager/rtptimerqueue.c:
+       * gst/rtpmanager/rtptimerqueue.h:
+       * tests/check/Makefile.am:
+       * tests/check/elements/rtpjitterbuffer.c:
+       * tests/check/meson.build:
+         rtptimerqueue: Consolidate a data structure for timers
+         Implement a single timer queue for all timers. The goal is to always use
+         ordered queues for storing timers. This way, extracting timers for
+         execution becomes O(1). This also allow separating the clock wait
+         scheduling from the timer itself and ensure that we only wake up the
+         timer thread when strictly needed.
+         The knew data structure is still O(n) on insertions and reschedule,
+         but we now use proximity optimization so that normal cases should be
+         really fast. The GList structure is also embeded intot he RtpTimer
+         structure to reduce the number of allocations.
+
+2019-06-10 16:46:05 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * tests/check/elements/rtpjitterbuffer.c:
+         tests: jitterbuffer: Demacroify some helpers
+         There is no reason for these to be macros anymore. This makes the
+         test helper much more readable.
+
+2019-06-06 14:44:27 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/rtpjitterbuffer.c:
+       * gst/rtpmanager/rtpjitterbuffer.h:
+         rtpjitterbuffer: Move item structure outside of the element
+         This moves the RtpJitterBufferStructure type, alloc, free into
+         rtpjitterbuffer.c/h implementation. jitterbuffer.c strictly rely on
+         the fact this structure is compatible with GList, and so it make more
+         sense to keep encapsulate it. Also, anything that could possibly
+         reduce the amount of code in the element is a win.
+         In order to support that move, a function pointer to free the data
+         was added. This also allow making the free function option when
+         flushing the jitterbuffer.
+
+2019-06-06 13:09:29 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Constify timer pointers where possible
+         This helps understanding which function modify the Timerdata
+         and which one does not. This is not always obvious from thelper
+         name considering recalculate_timer() does not.
+
+2019-09-27 08:46:22 +0200  Philipp Zabel <philipp.zabel@gmail.com>
+
+       * sys/v4l2/Makefile.am:
+       * sys/v4l2/gstv4l2mpeg2codec.c:
+       * sys/v4l2/gstv4l2mpeg2codec.h:
+       * sys/v4l2/gstv4l2videodec.c:
+       * sys/v4l2/meson.build:
+         v4l2: Add MPEG-2 profile and level support
+         Add support for V4L2 MPEG-2 decoders reporting supported profiles and
+         levels.
+
+2019-09-23 14:34:20 +0200  Philipp Zabel <p.zabel@pengutronix.de>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: add support for ABGR, xBGR, RGBA, and RGBx formats
+         Map them to the new V4L2_PIX_FMT_{BGRA32,BGRX32,RGBA32,RGBX32} pixel
+         formats.
+
+2019-09-23 14:10:15 +0200  Philipp Zabel <p.zabel@pengutronix.de>
+
+       * sys/v4l2/ext/v4l2-controls.h:
+       * sys/v4l2/ext/videodev2.h:
+         v4l2: update kernel headers to latest from media tree
+         Update to the latest installed headers (output of make headers_install)
+         from the media tree, keeping the slight modifications to the includes.
+         This includes typo fixes in enum v4l2_mpeg_video_multi_slice_mode,
+         MPEG-2 level and profile enums, new FWHT and H.264 Qp controls, new
+         RGB(A) formats, and new continuous bytestream and dynamic resolution
+         format flags.
+
+2017-12-19 18:23:16 +0100  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpbin.h:
+         rtpbin: add request-jitterbuffer signal
+         This can be used to pass the threadsharing jitterbuffer from
+         gst-plugins-rs for example.
+
+2019-09-23 18:46:16 +1000  Matthew Waters <matthew@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         build: fix werror build with newer gcc
+         In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:55,
+         from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/tag/tag.h:25,
+         from ../gst/isomp4/qtdemux.c:56:
+         In function ‘qtdemux_inspect_transformation_matrix’,
+         inlined from ‘qtdemux_parse_trak’ at ../gst/isomp4/qtdemux.c:10676:5,
+         inlined from ‘qtdemux_parse_tree’ at ../gst/isomp4/qtdemux.c:14210:5:
+         ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:645:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
+         645 |     gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__, \
+         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+         646 |         (GObject *) (object), __VA_ARGS__);    \
+         |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+         ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:1062:35: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’
+         1062 | #define GST_DEBUG_OBJECT(obj,...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_DEBUG,   obj,  __VA_ARGS__)
+         |                                   ^~~~~~~~~~~~~~~~~
+         ../gst/isomp4/qtdemux.c:10294:5: note: in expansion of macro ‘GST_DEBUG_OBJECT’
+         10294 |     GST_DEBUG_OBJECT (qtdemux, "Transformation matrix rotation %s",
+         |     ^~~~~~~~~~~~~~~~
+         ../gst/isomp4/qtdemux.c: In function ‘qtdemux_parse_tree’:
+         ../gst/isomp4/qtdemux.c:10294:64: note: format string is defined here
+         10294 |     GST_DEBUG_OBJECT (qtdemux, "Transformation matrix rotation %s",
+         |                                                                ^~
+
+2019-09-18 18:31:27 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/atoms.c:
+         qtmux: Use the new helper functions for mapping the colr atom values to colorimetry
+
+2019-09-18 18:29:27 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Use the new helper functions for mapping the colr atom values to colorimetry
+
+2019-09-10 22:44:20 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+         docs: update plugin cache
+
+2019-09-10 22:43:49 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/smpte/barboxwipes.c:
+         smpte: don't register transition types twice
+
+2019-09-08 20:43:17 -0400  Doug Nazar <nazard@nazar.ca>
+
+       * gst/alpha/gstalpha.c:
+         alpha: Fix one_over_kc calculation
+         On arm/aarch64, converting from float directly to unsigned int uses
+         a different opcode and negative numbers result in 0. Cast to
+         signed int first.
+
+2019-07-31 16:17:36 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+       * tests/check/elements/splitmux.c:
+         splitmux: Add muxer-pad-map property
+         Add a property which explicitly maps splitmuxsink pads to the
+         muxer pads they should connect to, overriding the implicit logic
+         that tries to match pads but yields arbitrary names.
+
+2019-07-26 02:21:59 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: In async mode, retain previous muxer pad names.
+         When running in async-finalize mode, request new pads from the muxer
+         using the same names as old pads, instead of letting the muxer assign
+         new ones based on the pad template name.
+
+2019-07-26 02:13:31 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Mark split-* signals as action signals. Doc fixes.
+         Add the G_SIGNAL_ACTION flag to the split-* signals on splitmuxsink,
+         and make some improvements to their docstrings
+
+2019-08-29 22:11:02 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: Fix incompatible type warning with MSVC
+         gstqtmux.c(5582): warning C4133: 'function':
+         incompatible types - from 'GstVideoMultiviewFlags *' to 'guint *'
+
+2019-09-02 16:33:05 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: fix git diff indentation
+
+2019-08-30 22:42:58 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: normalize variable to boolean
+
+2019-08-29 21:29:34 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/rtsp/gstrtspsrc.h:
+         rtspsrc: clip output segment on accurate seeks
+         The output segment is only used in ONVIF mode.
+         The previous behaviour was to output a segment computed from
+         the Range response sent by the server.
+         In ONVIF mode, servers will start serving from the appropriate
+         synchronization point (keyframe), and the Range in response will
+         start at that position.
+         This means rtspsrc can now perform truly accurate seeks in that
+         mode, by clipping the output segment to the values requested in
+         the seek. The decoder will then discard out of segment buffers
+         and playback will start without artefacts at the exact requested
+         position, similar to the behaviour of a demuxer when an accurate
+         seek is requested.
+
+2019-08-30 14:00:26 +1000  Matthew Waters <matthew@centricular.com>
+
+       * ext/vpx/gstvpxenc.c:
+         vpx: fix macos werror build
+         ../ext/vpx/gstvpxenc.c:1723:49: error: format specifies type 'long' but the argument has type 'vpx_codec_pts_t' (aka 'long long') [-Werror,-Wformat]
+         ", gst frame pts: %" G_GINT64_FORMAT, pkt->data.frame.pts, pts);
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
+         /Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:1065:96: note: expanded from macro 'GST_TRACE_OBJECT'
+         #define GST_TRACE_OBJECT(obj,...)       GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_TRACE,   obj,  __VA_ARGS__)
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
+         /Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:646:31: note: expanded from macro 'GST_CAT_LEVEL_LOG'
+         (GObject *) (object), __VA_ARGS__);                             \
+         ^~~~~~~~~~~
+         ../ext/vpx/gstvpxenc.c:1723:70: error: format specifies type 'long' but the argument has type 'vpx_codec_pts_t' (aka 'long long') [-Werror,-Wformat]
+         ", gst frame pts: %" G_GINT64_FORMAT, pkt->data.frame.pts, pts);
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
+         /Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:1065:96: note: expanded from macro 'GST_TRACE_OBJECT'
+         #define GST_TRACE_OBJECT(obj,...)       GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_TRACE,   obj,  __VA_ARGS__)
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
+         /Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:646:31: note: expanded from macro 'GST_CAT_LEVEL_LOG'
+         (GObject *) (object), __VA_ARGS__);                             \
+         ^~~~~~~~~~~
+
+2019-08-30 13:37:59 +1000  Matthew Waters <matthew@centricular.com>
+
+       * sys/osxvideo/cocoawindow.m:
+         osxvideosink: call superclass in reshape
+         Fixes macos werror build
+         ../sys/osxvideo/cocoawindow.m:437:1: error: method possibly missing a [super reshape] call [-Werror,-Wobjc-missing-super-calls]
+         }
+         ^
+
+2019-08-23 18:56:01 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * ext/flac/gstflacdec.c:
+       * ext/flac/gstflacenc.c:
+       * ext/lame/gstlamemp3enc.c:
+       * ext/pulse/pulsesink.c:
+       * ext/pulse/pulsesrc.c:
+       * ext/speex/gstspeexdec.c:
+       * ext/speex/gstspeexenc.c:
+       * ext/vpx/gstvp8dec.c:
+       * ext/vpx/gstvp8enc.c:
+       * ext/vpx/gstvp9dec.c:
+       * ext/vpx/gstvp9enc.c:
+       * ext/wavpack/gstwavpackdec.c:
+       * ext/wavpack/gstwavpackenc.c:
+       * gst/audiofx/audiofirfilter.c:
+       * gst/audiofx/audioiirfilter.c:
+       * gst/isomp4/gstqtmux-doc.c:
+       * gst/isomp4/gstqtmux.c:
+       * gst/shapewipe/gstshapewipe.c:
+         docstrings: port ulinks to markdown links
+
+2019-08-10 12:33:46 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/replaygain/gstrganalysis.c:
+       * gst/replaygain/gstrglimiter.c:
+       * gst/replaygain/gstrgvolume.c:
+         replaygain: fix up doc links to defunct replaygain.org website
+         Fixes #624
+
+2019-08-22 00:18:51 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * ext/soup/gstsouphttpsrc.c:
+         souphttpsrc: Fix incompatible type build warning
+         gstsouphttpsrc.c(2191): warning C4133:
+         '=': incompatible types - from 'guint (__cdecl *)(GType)' to 'GstURIType (__cdecl *)(GType)'
+
+2019-08-19 11:07:56 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * ext/vpx/gstvpxdec.c:
+       * ext/vpx/meson.build:
+         vpx: bump libvpx requirement to 1.5.0
+         Was released in Nov 2015.
+
+2019-08-19 11:03:00 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * ext/vpx/meson.build:
+         vpx: avoid confusing meson configure output when checking for vpx versions
+         Used to print:
+         |Run-time dependency vpx found: YES 1.7.0
+         |Message: libvpx provides VP8 encoder interface (vpx_codec_vp8_cx_algo)
+         |Message: libvpx provides VP8 decoder interface (vpx_codec_vp8_dx_algo)
+         |Message: libvpx provides VP9 encoder interface (vpx_codec_vp9_cx_algo)
+         |Message: libvpx provides VP9 decoder interface (vpx_codec_vp9_dx_algo)
+         |Dependency vpx found: YES (cached)
+         |Dependency vpx found: NO found '1.7.0' but need: '>=1.8.0'
+         |Run-time dependency vpx found: NO (tried pkgconfig and cmake)
+         We can check the version of the found dep in a way that
+         doesn't produce this confusing output.
+
+2019-08-19 07:30:17 +0000  Amr Mahdi <amramahdi@gmail.com>
+
+       * gst/wavparse/gstwavparse.c:
+         wavparse: Fix push mode ignoring audio with a size smaller than segment buffer
+         In push mode (streaming), if the audio size is smaller than segment buffer size, it would be ignored.
+         This happens because when the plugin receives an EOS signal while a single audio chunk that is less than the segment buffer size is buffered, it does not
+         flush this chunk. The fix is to flush the data chunk when it receives an EOS signal and has a single (first) chunk buffered.
+         How to reproduce:
+         1. Run gst-launch with tcp source
+         ```
+         gst-launch-1.0  tcpserversrc port=3000 !  wavparse ignore-length=0 ! audioconvert ! filesink location=bug.wav
+         ```
+         2. Send a wav file with unspecified data chunk length (0). Attached a test file
+         ```
+         cat test.wav | nc localhost 3000
+         ```
+         3. Compare the length of the source file and output file
+         ```
+         ls -l test.wav bug.wav
+         -rw-rw-r-- 1 amr amr    0 Aug 15 11:07 bug.wav
+         -rwxrwxr-x 1 amr amr 3564 Aug 15 11:06 test.wav
+         ```
+         The expected length of the result of the gst-lauch pipeline should be the same as the test file minus the headers (44), which is ```3564 - 44 = 3520``` but the actual output length is ```0```
+         After the fix:
+         ```
+         ls -l test.wav fix.wav
+         -rw-rw-r-- 1 amr amr 3520 Aug 15 11:09 fix.wav
+         -rwxrwxr-x 1 amr amr 3564 Aug 15 11:06 test.wav
+         ```
+
+2019-08-12 18:56:34 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtp/gstrtpvp8depay.c:
+       * gst/rtp/gstrtpvp8depay.h:
+         rtpvp8depay: Add property for waiting until the next keyframe after packet loss
+         If VP8 is not encoded with error resilience enabled then any packet loss
+         causes very bad artefacts when decoding and waiting for the next
+         keyframe instead improves user experience considerably.
+
+2019-08-06 22:27:40 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * sys/v4l2/ext/types-compat.h:
+         v4l2: Fix type compatibility issue with glibc 2.30
+         From now on, we will use linux/types.h on Linux, and use typedef of the
+         various flavour of BSD.
+         Fixes #635
+
+2019-08-07 18:29:25 -0400  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * tests/check/gst-plugins-good.supp:
+         valgrind: suppress Cond error coming from gnutls
+         taken from https://salsa.debian.org/debian/flatpak/commit/fb4a8dda211c4bc036781f2b0d706266e95ce068
+
+2019-07-10 22:07:05 +0300  Mart Raudsepp <mart.raudsepp@collabora.com>
+
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-demux.h:
+         matroska: Provide audio lead-in for some lossy formats
+         Various audio formats require an audio lead-in to decode it properly.
+         Most parsers would take care of it, but when a container like matroska is
+         involved, the demuxer handles the seeking and without its own lead-in
+         handling would never even pass the lead-in data to the parser.
+         This commit provides an initial implementation of that for audio/mpeg,
+         audio/x-ac3 and audio/x-eac3 by calculating the worst case lead-in time
+         needed from known samplerate, potential lead-in frames need and the
+         maximum blocksize possible for the format (as we don't parse that out
+         exactly in matroskademux) and seeking that much earlier in case of
+         accurate seeks. This is especially important for NLE use-cases with GES.
+         If accurate seeking to a position that happens to have a video keyframe,
+         it'll go back to the previous keyframe than needed, but with typical
+         video files that's the best we can do anyway without falling back to
+         scanning the clusters, as typically only keyframes are indexed in
+         Cueing Data.
+         If the media doesn't have a CUE, then we bisect for the cluster to seek
+         to with the same modified time as well in case of accurate seeking,
+         ensuring sufficient lead-in. This code path is typically hit only with
+         (suboptimal) audio-only matroska files, e.g. when created with ffmpeg,
+         which doesn't add a CUE for audio-only mkv muxing.
+
+2019-03-11 15:15:12 +0100  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * tests/check/elements/rtpbin_buffer_list.c:
+         test: rtpbin_buffer_list: add a test for invalid packets in buffer list
+         Upstream elements can send all kinds of data in a buffer list, so cover
+         the case of an invalid RTP packet mixed with valid RTP packets.
+
+2019-03-11 15:12:03 +0100  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * tests/check/elements/rtpbin_buffer_list.c:
+         test: rtpbin_buffer_list: add a test for multiplexed RTP and RTCP
+         RTP and RTCP packets can be muxed together on the same channel (see
+         RFC5761) and can arrive in the same buffer list.
+         The GStreamer rtpsession element support RFC5761, so add a test to cover
+         this case for buffer lists too.
+
+2019-03-11 15:09:27 +0100  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * tests/check/elements/rtpbin_buffer_list.c:
+         test: rtpbin_buffer_list: add a test for different timestamps in buffer list
+         Buffers with different timestamps (e.g. packets belonging to different
+         frames) can arrive together in the same buffer list,
+         Add a test to cover this case.
+
+2019-03-12 15:24:26 +0100  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * tests/check/elements/rtpbin_buffer_list.c:
+         test: rtpbin_buffer_list: add function to check timestamp
+
+2019-04-02 18:02:19 +0200  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * tests/check/elements/rtpbin_buffer_list.c:
+         test: rtpbin_buffer_list: add a test about reordered or duplicated seqnums
+
+2019-04-02 17:52:54 +0200  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * tests/check/elements/rtpbin_buffer_list.c:
+         test: rtpbin_buffer_list: add a test for lange jump in seqnums with recovery
+
+2019-04-02 17:50:35 +0200  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * tests/check/elements/rtpbin_buffer_list.c:
+         test: rtpbin_buffer_list: add a test for large jump in sequence numbers
+
+2019-04-02 17:47:27 +0200  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * tests/check/elements/rtpbin_buffer_list.c:
+         test: rtpbin_buffer_list: add a test for wrapping sequence numbers
+
+2019-03-11 15:07:08 +0100  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * tests/check/elements/rtpbin_buffer_list.c:
+         test: rtpbin_buffer_list: add a test for permissible gap in sequence numbers
+
+2019-03-11 15:03:31 +0100  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * tests/check/elements/rtpbin_buffer_list.c:
+         test: rtpbin_buffer_list: add a test for the case of failed probation
+         When a new source fails to pass the probation period (i.e. new packets
+         have non-consecutive sequence numbers), then no buffer shall be pushed
+         downstream. Add a test to validate this case.
+
+2019-03-12 15:23:16 +0100  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * tests/check/elements/rtpbin_buffer_list.c:
+         test: rtpbin_buffer_list: add function to check sequence number
+
+2019-04-03 14:46:35 +0200  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * tests/check/elements/rtpbin_buffer_list.c:
+         test: rtpbin_buffer_list: add test to verify that receiving stats are correct
+         Add a test to verify that stats about received packets are correct when
+         using buffer lists in the rtpsession receive path.
+         Split get_session_source_stats() in two to be able to get stats from
+         a GstRtpSession object directly.
+
+2019-02-27 16:17:57 +0100  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * tests/check/elements/rtpbin_buffer_list.c:
+         test: rtpbin_buffer_list: add a test for buffer lists on the recv path
+
+2019-02-27 17:03:44 +0100  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * gst/rtpmanager/gstrtpsession.c:
+         rtpsession: add support for buffer lists on the recv path
+         The send path in rtpsession processes the buffer list along the way,
+         sharing info and stats between packets in the same list, because it
+         assumes that all packets in a buffer list are from the same frame.
+         However, in the receiving path packets can arrive in all sorts of
+         arrangements:
+         - different sources,
+         - different frames (different timestamps),
+         - different types (multiplexed RTP and RTCP, invalid RTP packets).
+         so a more general approach should be used to correctly support buffer
+         lists in the receive path.
+         It turns out that it's simpler and more robust to process buffers
+         individually inside the rtpsession element even if they come in a buffer
+         list, and then reassemble a new buffer list when pushing the buffers
+         downstream.
+         This avoids complicating the existing code to make all functions
+         buffer-list-aware with the risk of introducing regressions,
+         To support buffer lists in the receive path and reduce the "push
+         overhead" in the pipeline, a new private field named processed_list is
+         added to GstRtpSessionPrivate, it is set in the chain_list handler and
+         used in the process_rtp callback; this is to achieve the following:
+         - iterate over the incoming buffer list;
+         - process the packets one by one;
+         - add the valid ones to a new buffer list;
+         - push the new buffer list downstream.
+         The processed_list field is reset before pushing a buffer list to be on
+         the safe side in case a single buffer was to be pushed by upstream
+         at some later point.
+         NOTE:
+         The proposed modifications do not change the behavior of the send path.
+         The process_rtp callback is called in rtpsource.c by the push_rtp
+         callback (via source_push_rtp) only when the source is not internal.
+         So even though push_rtp is also called in the send path, it won't end up
+         using process_rtp in this case because the source would be internal in
+         the send path.
+         The reasoning from above may suggest a future refactoring: push_rtp
+         might be split to better differentiate the send and receive path.
+
+2019-08-07 10:01:34 -0400  Doug Nazar <nazard@nazar.ca>
+
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-ids.c:
+       * gst/matroska/matroska-ids.h:
+       * gst/matroska/matroska-parse.c:
+         matroska: Handle interlaced field order
+
+2019-08-07 12:09:46 +0000  Amr Mahdi <amramahdi@gmail.com>
+
+       * gst/wavparse/gstwavparse.c:
+         wavparse: Fix ignoring of last chunk in push mode
+         In push mode (streaming), if the last audio payload chunk is less than the segment rate buffer size, it would be ignored since the plugin waits until it has at least segment rate bufer size of audio.
+         The fix is to introduce a flushing flag that indicates that no more audio will be available so that the plugin can recognize this condition and flush the data is has even if it is less
+         than the desired segment rate buffer size.
+
+2019-08-06 16:27:37 +0200  Robert Tiemann <rtie@gmx.de>
+
+       * ext/soup/gstsouphttpsrc.c:
+         souphttpsrc: Log any error returned by soup_session_send()
+
+2019-08-07 11:42:21 +0900  luke.lin <luke.lin@realtek.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: enlarge the maximal atom size
+         For 8K content, frame size is over 25MB, and cause the negotiation failure.
+         Enlarge the limitation of QTDEMUX_MAX_ATOM_SIZE to 32MB.
+
+2019-07-27 04:05:01 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/rtsp/gstrtspsrc.h:
+         rtspsrc: expose and implement is-live property
+         This is useful to support the ONVIF case: when is-live is set to
+         FALSE and onvif-rate-control is no, the client can control the
+         rate of delivery and arrange for the server to block and still
+         keep sending when unblocked, without requiring back and forth
+         PAUSE / PLAY requests. This enables, amongst other things, fast
+         frame stepping on the client side.
+         When is-live is FALSE, we don't use a manager at all. This case
+         was actually already pretty well handled by the current code. The
+         standard manager, rtpbin, is simply no longer needed in this case.
+         Applications can instantiate a downloadbuffer after rtspsrc if
+         needed.
+
+2019-07-27 04:03:44 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: reset_time when flush stopping
+
+2019-07-12 22:33:08 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/rtsp/gstrtspsrc.h:
+         rtspsrc: expose and implement onvif-mode property
+         Refactor the code for parsing and generating the Range, taking
+         advantage of existing API in GstRtspTimeRange.
+         Only use the TCP protocol in that mode, as per the specification.
+         Generate an accurate segment when in that mode, and signal to the
+         depayloader that it should not generate its own segment, through
+         the "onvif-mode" field in the caps, see
+         <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/328>
+         for more information.
+         Translate trickmode seek flags to their ONVIF representation
+         Expose an onvif-rate-control property
+
+2019-07-01 20:38:20 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/rtsp/gstrtspsrc.h:
+         rtspsrc: improve handling of rate in seeks
+
+2019-07-31 21:55:16 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtpmanager/gstrtpfunnel.c:
+         rtpfunnel: forward correct segment when switching pad
+         Forwarding a single segment event from the pad that first gets
+         chained is incorrect: when that first event was sent by an element
+         such as x264enc, with its offset start, we end pushing out of segment
+         buffers for the other pad(s).
+         Instead, everytime the active pad changes, forward the appropriate
+         segment event.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1028
+
+2019-08-05 19:35:36 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Use new GstRTSPMessage API to set message body from a buffer directly
+
+2019-04-04 13:17:34 +0200  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * gst/rtpmanager/rtpsource.c:
+         rtpsource: fix receiver source stats to consider previously queued packets
+         When it is not clear yet if a packet relative to a source should be
+         pushed, the packet is put into a queue, this happens in two cases:
+         - the source is still in probation;
+         - there is a large jump in seqnum, and it is not clear what
+         the cause is, future packets will help making a guess.
+         In either case stats about received packets are not updated at all; and
+         even if they were, when init_seq() is called it resets all receiver
+         stats, effectively loosing any possible stat about previously received
+         packets.
+         Fix this by taking into account the queued packets and update the stats
+         when calling init_seq().
+
+2019-04-09 10:46:39 +0200  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * gst/rtpmanager/rtpsource.c:
+         rtpsource: clarify meaning of the octets-sent and octets-received stats
+         The octets-send and octets-received stats count the payload bytes
+         excluding RTP and lower level headers, clarify that in the
+         documentation.
+
+2019-04-04 13:16:36 +0200  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * gst/rtpmanager/rtpsource.c:
+         rtpsource: expose field bytes_received in RTPSourceStats
+         Since commit c971d1a9a (rtpsource: refactor bitrate estimation,
+         2010-03-02) bytes_received filed in RTPSourceStats is set but then never
+         used again, expose it so that it can be used  by user code to verify how
+         many bytes have been received.
+
+2019-06-21 17:46:36 +0200  Antonio Ospite <antonio.ospite@collabora.com>
+
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtpmanager/rtpsource.c:
+       * gst/rtpmanager/rtpstats.h:
+         rtpmanager: consider UDP and IP headers in bandwidth calculation
+         According to RFC3550 lower-level headers should be considered for
+         bandwidth calculation.
+         See https://tools.ietf.org/html/rfc3550#section-6.2 paragraph 4:
+         Bandwidth calculations for control and data traffic include
+         lower-layer transport and network protocols (e.g., UDP and IP) since
+         that is what the resource reservation system would need to know.
+         Fix the source data to accommodate that.
+         Assume UDPv4 over IP for now, this is a simplification but it's good
+         enough for now.
+         While at it define a constant and use that instead of a magic number.
+         NOTE: this change basically reverts the logic of commit 529f443a6
+         (rtpsource: use payload size to estimate bitrate, 2010-03-02)
+
+2019-08-01 15:02:23 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Use empty-array safe way to cleanup GPtrArray
+         Fix assertion fail
+         GLib-CRITICAL **: g_ptr_array_remove_range: assertion 'index_ < rarray->len' failed
+
+2019-08-01 14:28:04 +0000  Marc Leeman <marc.leeman@gmail.com>
+
+       * gst/rtp/gstrtpmp4vpay.c:
+       * gst/rtp/gstrtpmp4vpay.h:
+         rtpmp4vpay: config-interval -1 send at idr
+         adjust/port from rtph264pay and allow sending the configuration data at
+         every IDR
+         The payloader was stripping the configuration data when the
+         config-interval was set to 0. The code was written in such a way !(a >
+         0) that it stripped the config when it was set at -1 (send config_data
+         as soon as possible).
+         This resulted in some MPEG4 streams where no GOP/VOP-I was detected to
+         be sent out without configuration.
+
+2019-07-27 14:21:34 -0400  Doug Nazar <nazard@nazar.ca>
+
+       * gst/matroska/matroska-demux.c:
+         matroskademux: Ignore crc32 element while peeking at cluster.
+
+2019-07-25 21:21:26 +0530  Guillaume Desmottes <guillaume.desmottes@collabora.com>
+
+       * ext/gtk/gstgtkglsink.c:
+       * ext/gtk/gstgtkglsink.h:
+         gtkglsink: fix crash when widget is resized after element destruction
+         Prevent _size_changed_cb() to be called after gtkglsink has been finalized.
+         Fix #632
+
+2019-07-26 02:45:51 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: fix reverse playback EOS conditions
+         In reverse playback, we don't want to rely on the position of the current
+         keyframe to decide a stream is EOS: the last GOP we push will start with
+         a keyframe, which position is likely to be outside of the segment.
+         Instead, let the normal seek_to_previous_keyframe mechanism do its job,
+         it works just fine.
+
+2019-07-23 01:42:02 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: fix key unit seek corner case
+         If a key unit seek is performed with a time position that matches
+         the offset of a keyframe, but not its actual PTS, we need to
+         adjust the segment nevertheless.
+         For example consider the following case:
+         * stream starts with a keyframe at 0 nanosecond, lasting 40 milliseconds
+         * user does a key unit seek at 20 milliseconds
+         * we don't adjust the segment as the time position is "over" a keyframe
+         * we push a segment that starts at 20 milliseconds
+         * we push a buffer with PTS == 0
+         * an element downstream (eg rtponviftimestamp) tries to calculate the
+         stream time of the buffer, fails to do so and drops it
+
+2019-07-25 15:08:54 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/jpeg/gstjpegdec.c:
+         jpegdec: Don't dereference NULL input state if we have no caps in TIME segments
+         Simply assume that the JPEG frame is not going to be interlaced instead
+         of crashing.
+
+2019-07-22 10:28:50 +0200  Knut Andre Tidemann <knutandre.tidemann@zenitel.com>
+
+       * gst/rtp/gstrtpopuspay.c:
+         rtp: opuspay: fix memory leak in gst_rtp_opus_pay_setcaps.
+         The src caps were never dereferenced, causing a memory leak.
+
+2019-07-12 20:51:44 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+       * gst/isomp4/qtdemux.h:
+         qtdemux: implement support for trickmode interval
+         When the seek event contains a (newly-added) trickmode interval,
+         and TRICKMODE_KEY_UNITS was requested, only let through keyframes
+         separated with the required interval
+
+2019-07-17 19:12:19 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+       * docs/meson.build:
+         meson: Don't generate doc cache when no plugins are enabled
+         Fixes gst-build with -Dauto-features=disabled
+
+2019-07-15 23:24:05 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-mux.c:
+         matroska: Port to color_{primaries,transfer,matrix}_to_iso
+         ... and remove duplicated code.
+
+2019-05-25 22:08:05 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+       * tests/check/elements/splitmux.c:
+         splitmuxsink: add the ability to mux auxilliary video streams
+         The primary video stream is used to select fragment cut points
+         at keyframe boundaries. Auxilliary video streams may be
+         broken up at any packet - so fragments may not start with a keyframe
+         for those streams.
+
+2019-06-11 23:17:30 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsrc.c:
+         splitmuxsrc: Add video_%d pad template.
+         splitmuxsrc actually supports multiple video pads. Make that clear,
+         especially since it was already creating pads named "video_0" etc.
+
+2019-07-09 23:12:45 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: fix conditions for end of segment in reverse playback
+         The time_position field of the stream is offset by the media_start
+         of its QtDemuxSegment compared to the start of the GstSegment of
+         the demuxer, take it into account when making comparisons.
+
+2019-07-09 23:06:12 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * gst/matroska/matroska-demux.c:
+         matroskademux: Fix mismatched transfer characteristic
+         TransferCharacteristics(18) should be ARIB STD-B67 (HLG)
+         See https://www.webmproject.org/docs/container/#TransferCharacteristics
+         Also map more color primaries indexes which have been handled by matroska-mux.
+
+2019-07-09 19:49:57 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * sys/v4l2/gstv4l2transform.c:
+       * sys/v4l2/gstv4l2videodec.c:
+       * sys/v4l2/gstv4l2videoenc.c:
+         v4l2: Remove misleading comments
+         gst_pad_template_new() does not take ownership of the caps
+
+2019-01-23 18:27:06 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+       * tests/check/elements/rtpsession.c:
+         rtp session: Add test for collision loopback detection
+         Ignore further collisions if the remote SSRC change with ours, it's
+         probably because someone is sending us back the packets we send out.
+
+2019-01-23 18:14:23 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+       * tests/check/elements/rtpsession.c:
+         rtpsession tests: Add test for third-party collision detection
+         Add tests to validate the code that ignores the same packets coming
+         from 2 different sources (an third-party collision).
+
+2019-01-23 17:19:15 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+       * tests/check/elements/rtpsession.c:
+         rtpsession: Add test for collision on incoming packets
+         Make sure that the collision is properly detected on incoming packets.
+
+2019-01-23 17:09:27 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+       * tests/check/elements/rtpsession.c:
+         rtpsession test: Verify that on-ssrc-collision message is emitted
+
+2019-01-23 16:58:22 -0500  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtpmanager/rtpsession.c:
+       * tests/check/elements/rtpsession.c:
+         rtpsession: Also send conflict event when sending packet
+         If the conflict is detected when sending a packet, then also send an
+         upstream event to tell the source to reconfigure itself.
+         Also ignore the collision if we see more than one collision from the same
+         remote source to avoid problems on loops.
+
+2019-04-15 16:32:03 -0700  Song Bing <bing.song@nxp.com>
+
+       * sys/v4l2/gstv4l2transform.c:
+         v4l2transform: set right buffer count.
+         Set right buffer count to avoid one buffer.
+
+2019-06-27 19:47:41 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph265pay.c:
+       * gst/rtp/gstrtph265pay.h:
+       * tests/check/elements/rtph265.c:
+         rtph265pay: Also immediately send packet if it is a suffix NAL
+         Immediately send packet if it contains any suffix NAL, this is required
+         in case they come after the VCL nal to not have to wait until the next frame.
+
+2019-06-27 19:46:01 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph265pay.c:
+         rtph265pay: Don't drop second byte of NAL header
+         At least keep 2 bytes per NAL even if the second one is 0, the
+         second byte of the NAL header could very well be 0.
+
+2019-06-26 16:42:44 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph265pay.c:
+         rtph26xpay: Avoid print when there is no bundle at end of packet
+
+2019-06-26 16:25:01 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph265pay.c:
+       * tests/check/elements/rtp-payloading.c:
+       * tests/check/elements/rtph264.c:
+       * tests/check/elements/rtph265.c:
+         rtph26xpay: Wait until there is a VCL or suffix NAL to send
+         With unit tests.
+
+2019-06-19 17:16:03 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * tests/check/elements/rtph265.c:
+         rtph265pay test: Add unit tests for aggregation
+
+2019-06-18 19:07:38 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph265pay.c:
+       * gst/rtp/gstrtph265pay.h:
+       * tests/check/elements/rtp-payloading.c:
+       * tests/check/elements/rtph265.c:
+         rtph265pay: Implement Aggregation packets
+         Align with rtph264pay
+
+2019-06-18 15:03:09 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * tests/check/elements/rtph264.c:
+         rtph264pay test: Add unit tests for aggregation
+
+2019-06-18 13:45:15 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph264pay.h:
+         rtph264pay: Report latency when in maximal aggregation mode
+
+2019-06-17 11:31:53 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph264pay.h:
+       * tests/check/elements/rtph264.c:
+         rtph264pay: Default to not adding latency when aggregating
+         Send the bundle as soon as there is one VCL unit in the packet at
+         the end of an incoming buffer.
+         The DELTA_UNIT flag is not reliable, so ignore it.
+
+2019-06-14 16:54:23 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * tests/check/elements/rtp-payloading.c:
+         rtp-payloading test: Fix working to 1.0 buffers instead of groups
+
+2019-06-13 18:07:35 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph265pay.c:
+         rtph265pay: Replace fragmentation while-loop with for-loop
+         Align with rtph264pay
+
+2019-06-13 17:42:05 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph265pay.c:
+         rtph265pay: Rename payload_len to max_fragment_size
+         Align to rtph264pay
+
+2019-06-13 17:30:08 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph265pay.c:
+         rtph265pay: Clean up _payload_nal
+         Move determining whether we need to fragment at all into the
+         fragmenter.
+         Align with rtph264pay
+
+2019-06-13 17:23:26 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph265pay.c:
+         rtph265pay: Extract sending fragments into _payload_nal_fragment
+         Align with rtph264pay
+
+2019-06-13 16:22:57 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph265pay.c:
+         rtph265pay: Extract sending a single packet into _payload_nal_single
+         Align with rtph264pay
+
+2019-06-13 16:14:31 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph265pay.c:
+         rtph265pay: Define and use FU_A_TYPE_ID
+         Align with rtph264pay
+
+2019-06-13 16:08:37 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph265pay.c:
+         rtph265pay: Use snake_case variables
+         Align with rtph264pay
+
+2019-06-13 16:04:39 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtp/gstrtph265pay.c:
+         rtph265pay: Clean up whitespace and syntax
+         Align with rtph264pay
+
+2018-07-03 19:39:25 +0200  Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+       * gst/rtp/gstrtph264pay.c:
+       * gst/rtp/gstrtph264pay.h:
+       * tests/check/elements/rtp-payloading.c:
+       * tests/check/elements/rtph264.c:
+         rtph264pay: Support STAP-A bundling
+         Add a new property "do-aggregate"* to the H.264 RTP payloader which
+         enables STAP-A aggregation as per [RFC-6184][1]. With aggregation enabled,
+         packets are bundled instead of sent immediately, up until the MTU size.
+         Bundles also end at access unit boundaries or when packets have to be
+         fragmented.
+         *: The property-name is kept generic since it might apply more widely,
+         e.g. STAP-B or MTAP.
+         [1]: https://tools.ietf.org/html/rfc6184#section-5.7
+         Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/434
+
+2018-11-05 17:15:39 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/rtp/gstrtph264pay.c:
+         rtph264pay: Fix delta-unit/discont handling when injecting SPS/PPS
+         Apply the wanted delta-unit and discont to the first packet; following
+         packets for this frame are always delta units and not discont.
+
+2018-11-05 19:03:45 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/rtp/gstrtph264pay.c:
+         rtph264pay: Replace fragmentation while-loop with for-loop
+
+2018-11-05 18:57:38 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/rtp/gstrtph264pay.c:
+         rtph264pay: Calculate the right max_fragments
+
+2018-11-05 18:36:35 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/rtp/gstrtph264pay.c:
+         rtph264pay: Rename payload_len to max_fragment_size
+
+2018-11-05 18:34:40 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/rtp/gstrtph264pay.c:
+         rtph264pay: Clean up _payload_nal_fragment
+
+2018-11-05 18:06:19 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/rtp/gstrtph264pay.c:
+         rtph264pay: Clean up _payload_nal
+         Move determining whether we need to fragment at all into the fragmenter.
+
+2018-11-05 18:04:13 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/rtp/gstrtph264pay.c:
+         rtph264pay: Clean up _payload_nal_single
+
+2018-11-05 17:55:23 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/rtp/gstrtph264pay.c:
+         rtph264pay: Extract sending fragments into _payload_nal_fragment
+
+2018-11-05 17:49:52 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/rtp/gstrtph264pay.c:
+         rtph264pay: Extract sending a single packet into _payload_nal_single
+
+2018-11-05 17:10:03 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/rtp/gstrtph264pay.c:
+         rtph264pay: Define and use FU_A_TYPE_ID
+
+2018-11-05 17:07:06 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/rtp/gstrtph264pay.c:
+         rtph264pay: Use snake_case variables
+
+2018-11-05 17:04:14 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/rtp/gstrtph264pay.c:
+         rtph264pay: Clean up whitespace and syntax
+
+2019-06-06 16:05:31 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/rtpjitterbuffer.c:
+       * gst/rtpmanager/rtpjitterbuffer.h:
+         rtpjitterbuffer: Unlock output if the queue is full
+
+2019-06-29 23:17:28 -0600  Thomas Bluemel <tbluemel@control4.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/rtpjitterbuffer.c:
+         rtpjitterbuffer: Ignore unsolicited rtx packets.
+         If an rtx packet arrives that hasn't been requested (it might
+         have been requested from prior to a reset), ignore it so that
+         it doesn't inadvertently trigger a clock skew.
+
+2019-06-29 23:16:44 -0600  Havard Graff <havard.graff@gmail.com>
+
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: Add unit test for unsolicited rtx affecting skew
+
+2019-06-13 15:45:28 -0600  Thomas Bluemel <tbluemel@control4.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/rtpjitterbuffer.c:
+       * gst/rtpmanager/rtpjitterbuffer.h:
+       * tests/check/elements/rtpbin.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: Only calculate skew or reset if no gap.
+         In the case of reordered packets, calculating skew would cause
+         pts values to be off. Only calculate skew when packets come
+         in as expected. Also, late RTX packets should not trigger
+         clock skew adjustments.
+         Fixes #612
+
+2019-07-02 21:21:05 +0300  Mart Raudsepp <mart.raudsepp@collabora.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Provide a 30 frames lead-in for MP3
+         mpegaudioparse suggests MP3 needs 10 or 30 frames of lead-in (depending on
+         mpegaudioversion, which we don't know here), thus provide at least 30 frames
+         lead-in for such cases as a followup to commit cbfa4531ee5ef.
+
+2019-05-24 10:31:39 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: max-dropout-time gets cast to int32
+         So any value over MAXINT32 gets considered as negative and is silently ignored.
+
+2019-07-02 13:00:32 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: do_seek can never be called with a NULL event
+
+2019-07-01 22:38:41 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: only adjust segment time when adjusting segment start
+         We ended up setting segment.time to segment.position when doing
+         reverse playback, which is obviously wrong.
+
+2019-07-01 13:54:13 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: unref the event in element seek handler
+
+2019-06-29 00:25:26 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: handle seek event on the element
+         Without this, the user has to wait for rtspsrc to have sent a PLAY
+         request and exposed its pads before seeking it.
+
+2019-06-26 18:03:29 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/udp/gstmultiudpsink.c:
+         multiudpsink: Add missing socket.h include
+         Without this include, macro like SO_BINDTODEVICE is not visible and
+         associated feature gets out-compiled. This also affects the support for
+         SO_SNDBUF.
+
+2019-06-24 17:35:15 +0200  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Clear new_tags if sending metadata in header
+         This avoids sending an additional metadata object right after the
+         headers.
+
+2018-06-13 14:55:29 -0700  Song Bing <bing.song@nxp.com>
+
+       * sys/v4l2/gstv4l2videodec.c:
+         v4l2videodec: Fix drain() function return type
+         Return right type for drain() function.
+
+2019-06-24 14:28:39 +0300  Mart Raudsepp <mart.raudsepp@collabora.com>
+
+       * gst/audioparsers/gstaacparse.c:
+       * gst/audioparsers/gstac3parse.c:
+       * gst/audioparsers/gstamrparse.c:
+       * gst/audioparsers/gstdcaparse.c:
+       * gst/audioparsers/gstsbcparse.c:
+       * gst/audioparsers/gstwavpackparse.c:
+         audioparsers: add back segment clipping to parsers that have lost it
+         The pre_push_frame default clipping behaviour was introduced in 2010
+         with commit 30be03004e82 and modified with commit 4163969a2422 in 2011,
+         when most parsers didn't implement a pre_push_frame yet. Not having it
+         meant that clipping was done by default. Those that did implement a
+         pre_push_frame (flacparse and mpegaudioparse) at the time, had the flag
+         adjusted as part of the 2011 refactor work.
+         All other parsers got a pre_push_frame vfunc implementation only in
+         2013, but seem to have forgot to keep the clipping behaviour, as
+         was done automatically when a pre_push_frame implementation doesn't
+         exist for the parser. aacparse lost it with commit 91d4abcea in
+         July 2013; the others in Dec 2013 as part of AUDIO_CODEC tag posting
+         in commits 6f89b430e, d2ab5199b, 29f2cae12, 753d3c23a and 292780574.
+
+2019-06-24 09:42:31 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * sys/v4l2/gstv4l2codec.c:
+         v4l2: fix compiler warning due to c99-ism
+
+2019-06-19 14:28:28 +0200  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * tests/check/elements/flvmux.c:
+         test: flvmux: Test changing caps with one sinkpad
+         These tests segfault without the preceding crash fix.
+
+2019-06-19 14:08:06 +0200  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * tests/check/elements/flvmux.c:
+         test: flvmux: Use gst_harness_sink_push_many
+         And check its return value.
+
+2019-06-19 12:31:46 +0200  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Simplify an if-else chain
+         Merge the identical branches and turn the condition around to make it
+         easier to read.
+
+2019-06-19 12:28:22 +0200  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Avoid crash when changing caps without both streams
+         mux->video_pad and mux->audio_pad can be NULL if the corresponding pad
+         has not been requested.
+
+2019-06-12 15:57:48 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtp/gstrtpgstpay.c:
+         rtpgstpay: Send caps anyway if caps are pending in the adapter but are different from the new ones
+         Otherwise it can happen that we receive a caps event, then another caps
+         event and only then buffers. We would then send out the first caps event
+         in the stream but mark buffers with the caps version of the second caps
+         event.
+
+2019-06-12 14:57:24 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtp/gstrtpgstdepay.c:
+       * gst/rtp/gstrtpgstdepay.h:
+         rtpgstdepay: Only store the current caps and drop old caps immediately
+         Otherwise it can happen that we already collected 7 caps, miss the 8th
+         caps packet (packet loss) and then re-use the 1st caps for the following
+         buffers instead of the 8th caps which will likely cause errors further
+         downstream unless both caps are accidentally the same.
+         Keeping old caps around does not seem to have any value other than
+         potentially causing errors. We would always receive new caps whenever
+         they change (even if they were previous ones) and it's very unlikely
+         that they happen to be exactly the same as the previous ones.
+         Also after having received new caps or a buffer with a next caps
+         version, no buffers with old caps version will arrive anymore.
+
+2019-06-15 02:00:43 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/rtpmanager/rtpjitterbuffer.c:
+         rtpjitterbuffer: Clear clock master before unreffing
+         Make sure to clear any master clock on the media_clock
+         before unreffing it to release the timer callback that's
+         updating the clock and keeping it reffed.
+
+2019-06-16 11:07:31 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/matroska/matroska-ids.c:
+         matroska: Initialise a video_context field to satisfy valgrind
+         Clear the mastering_display_info_present field explicitly
+         after reallocating the track context into a video context
+         to avoid uninitialised warnings in valgrind
+
+2019-06-14 17:34:31 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/multifile/gstmultifilesink.c:
+         docs: Fix link to strings
+         We can't link to #gchar* this way.
+
+2019-06-14 00:17:22 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         jitterbuffer: unset DTS on output buffers
+
+2019-05-22 21:40:52 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: set the same seqnum on flush_start / flush_stop
+         It's currently not made mandatory by aggregator, but it might
+         eventually be, and is more consistent behaviour
+         See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/977
+
+2019-06-13 11:55:04 +0200  Mikhail Fludkov <misha@pexip.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: late packets shouldn't affect PTS of the following packet
+         If, say, a rtx-packet arrives really late, this can have a dramatic
+         effect on the jitterbuffer clock-skew logic, having it being reset
+         and losing track of the current dts-to-pts calculations, directly affecting
+         the packets that arrive later.
+         This is demonstrated in the test, where a RTX packet is pushed in really
+         late, and without this patch the last packet will have its PTS affected
+         by this, where as a late RTX packet should be redundant information, and
+         not affect anything.
+
+2019-06-12 10:47:39 +0200  Mikhail Fludkov <misha@pexip.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: fix rtx delay calulation when large packet spacing
+
+2016-11-24 18:18:01 +0100  Stian Selnes <stian@pexip.com>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: Fix delay for EXPECTED timers added by gaps
+         This patch corrects the delay set on EXPECTED timers that are added when
+         processing gaps. Previously the delay could be too small so that
+         'timout + delay' was much less than 'now', causing the following retries
+         to be scheduled too early. (They were sent earlier than
+         rtx-retry-timeout after the previous timeout.)
+
+2018-11-20 16:11:12 +0100  Havard Graff <havard.graff@gmail.com>
+
+       * gst/rtpmanager/rtpstats.c:
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: don't try and calculate packet-rate if seqnum are jumping
+         Turns out that the "big-gap"-logic of the jitterbuffer has been horribly
+         broken.
+         For people using lost-events, an RTP-stream with a gap in sequencenumbers,
+         would produce exactly that many lost-events immediately.
+         So if your sequence-numbers jumped 20000, you would get 20000 lost-events
+         in your pipeline...
+         The test that looks after this logic "test_push_big_gap", basically
+         incremented the DTS of the buffer equal to the gap that was introduced,
+         so that in fact this would be more of a "large pause" test, than an
+         actual gap/discontinuity in the sequencenumbers.
+         Once the test was modified to not increment DTS (buffer arrival time) with
+         a similar gap, all sorts of crazy started happening, including adding
+         thousands of timers, and the logic that should have kicked in, the
+         "handle_big_gap_buffer"-logic, was not called at all, why?
+         Because the number max_dropout is calculated using the packet-rate, and
+         the packet-rate logic would, in this particular test, report that
+         the new packet rate was over 400000 packets per second!!!
+         I believe the right fix is to don't try and update the packet-rate if
+         there is any jumps in the sequence-numbers, and only do these calculations
+         for nice, sequential streams.
+
+2019-06-12 11:16:22 +0200  Havard Graff <havard.graff@gmail.com>
+
+       * tests/check/elements/rtpjitterbuffer.c:
+         rtpjitterbuffer: fix unused variables
+
+2019-06-12 02:42:42 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsrc.c:
+         splitmuxsrc: Protect initial pad configuration with the object lock
+         gst_splitmux_src_activate_part() configures the pad information
+         before starting the pad task, but occasionally the changes it makes
+         to the pad are not seen in the pad task because they're not
+         protected by the right locking. Use the pad's object lock to
+         protect those variables.
+
+2019-06-12 01:42:20 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsrc.c:
+         splitmuxsrc: Restart pad task on a reconfigure
+         On a reconfigure event, restart streaming on the pad so
+         that switching tracks in playbin works cleanly
+
+2019-06-11 18:40:09 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsrc.c:
+       * gst/multifile/gstsplitmuxsrc.h:
+         splitmuxsrc: Use an RW lock instead of a mutex to protect the pad list
+         Fix a deadlock around the pads list by using an RW lock to
+         allow simultaneous readers. The pad list doesn't really changes
+         except at startup and shutdown.
+
+2019-06-11 23:18:24 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsrc.c:
+         splitmuxsrc: Ignore duplicate seeks
+         Use the seqnum to ignore duplicated seek events.
+
+2019-05-29 09:20:07 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Improve debug output
+         Make the debug output less confusing by not mentioning a src
+         pad when doing calculations on the sink pad side.
+         Improve debug around why a GOP is considered overflowing a fragment
+
+2019-05-29 09:20:07 +1000  Jan Schmidt <jan@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Give internal queues useful names
+         Makes debug output more useful
+
+2019-06-05 23:13:33 +0300  Mart Raudsepp <mart.raudsepp@collabora.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Provide a 2 frames lead-in for audio decoders
+         AAC and various other audio codecs need a couple frames of lead-in to
+         decode it properly. The parser elements like aacparse take care of it
+         via gst_base_parse_set_frame_rate, but when inside a container, the
+         demuxer is doing the seek segment handling and never gives lead-in
+         data downstream.
+         Handle this similar to going back to a keyframe with video, in the
+         same place. Without a lead-in, the start of the segment is silence,
+         when it shouldn't, which becomes especially evident in NLE use cases.
+
+2019-05-28 20:14:49 +0300  Mart Raudsepp <mart.raudsepp@collabora.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: remove indent exception and reindent
+         As the indent disabling isn't playing along for a following fix,
+         remove the indent disabling and reindent in a way that doesn't
+         look too stupid.
+
+2019-03-08 14:43:20 +0000  Philippe Normand <philn@igalia.com>
+
+       * sys/v4l2/gstv4l2h264codec.c:
+         v4l2: Fix H.264 level 3 string representation
+         The string_to_level function handles "3" so the level_to_string function should
+         do the same, to prevent caps negotiation issues.
+
+2019-03-04 11:05:29 +0000  Philippe Normand <philn@igalia.com>
+
+       * sys/v4l2/Makefile.am:
+       * sys/v4l2/gstv4l2.c:
+       * sys/v4l2/gstv4l2codec.c:
+       * sys/v4l2/gstv4l2codec.h:
+       * sys/v4l2/gstv4l2fwhtenc.c:
+       * sys/v4l2/gstv4l2h263enc.c:
+       * sys/v4l2/gstv4l2h264codec.c:
+       * sys/v4l2/gstv4l2h264codec.h:
+       * sys/v4l2/gstv4l2h264enc.c:
+       * sys/v4l2/gstv4l2h264enc.h:
+       * sys/v4l2/gstv4l2h265codec.c:
+       * sys/v4l2/gstv4l2h265codec.h:
+       * sys/v4l2/gstv4l2h265enc.c:
+       * sys/v4l2/gstv4l2h265enc.h:
+       * sys/v4l2/gstv4l2jpegenc.c:
+       * sys/v4l2/gstv4l2mpeg4codec.c:
+       * sys/v4l2/gstv4l2mpeg4codec.h:
+       * sys/v4l2/gstv4l2mpeg4enc.c:
+       * sys/v4l2/gstv4l2mpeg4enc.h:
+       * sys/v4l2/gstv4l2videodec.c:
+       * sys/v4l2/gstv4l2videodec.h:
+       * sys/v4l2/gstv4l2videoenc.c:
+       * sys/v4l2/gstv4l2videoenc.h:
+       * sys/v4l2/gstv4l2vp8codec.c:
+       * sys/v4l2/gstv4l2vp8codec.h:
+       * sys/v4l2/gstv4l2vp8enc.c:
+       * sys/v4l2/gstv4l2vp8enc.h:
+       * sys/v4l2/gstv4l2vp9codec.c:
+       * sys/v4l2/gstv4l2vp9codec.h:
+       * sys/v4l2/gstv4l2vp9enc.c:
+       * sys/v4l2/gstv4l2vp9enc.h:
+       * sys/v4l2/meson.build:
+         v4l2: Profile and level probing support for encoders and decoders
+         There used to be some profile/level support in encoders. This code was moved to
+         GstV4l2Codecs and is now also used for decoders. The caps templates for the
+         H.264, H.265, MPEG4, VP8 and VP9 encoders and decoders should now reflect the
+         profiles and levels advertised by the kernel.
+
+2019-06-03 16:21:12 -0400  Aaron Boxer <aaron.boxer@collabora.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroskamux: fix typo in property description
+
+2019-06-04 13:39:00 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * tests/check/gst-plugins-good.supp:
+         supp: Ignore leaks caused by shout/sethostent
+         sethostent() seems to be using a global state and we endup with leaks from
+         that API when called through shout_init(). We had the option to only
+         ignore the shout case, but the impression is that if we have shout and
+         another sethostend user, as it's a global state, we may endup with a
+         different stack trace for the same leak. So in the end, we just ignore
+         memory allocated by sethostent in general.
+
+2019-04-30 17:28:25 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * ext/pulse/pulsedeviceprovider.c:
+         pulse-device: Hide the alsa device provider if we provide alsa devices
+
+2019-05-21 15:25:03 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpssrcdemux.c:
+       * tests/check/elements/rtpssrcdemux.c:
+         rtpssrcdemux: Avoid taking streamlock out-of-band
+         In this change we now protect the internal srcpads list using the
+         stream lock and limit usage of the internal stream lock to
+         preventing data flowing on the other src pad type while creating
+         and signalling the new pad.
+         This fixes a deadlock with RTPBin shutdown lock. These two locks would
+         end up being taken in two different order, which caused a deadlock. More
+         generally, we should not rely on a streamlock when handling out-of-band
+         data, so as a side effect, we should not take a stream lock when
+         iterating internal links.
+
+2019-05-27 18:08:54 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: Orphan buffer pool on object_stop if supported
+         Use V4L2 buffer orphaning, on recent kernels so that
+         the device can be restarted immediately with
+         a new buffer pool during renogatiation.
+
+2019-05-30 13:12:31 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         v4l2bufferpool: Free orphaned allocator resources when buffers are released
+         Allocator resources cannot be freed when a buffer pool is orphaned
+         while its buffers are in use. They should, however, be freed once those
+         buffers are no longer needed. This patch disposes of any buffers
+         belonging to an orphaned pool as they are released, and makes sure
+         that the allocator is cleaned up when the last buffer is returned.
+
+2019-05-30 11:13:07 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>
+
+       * sys/v4l2/gstv4l2bufferpool.c:
+         v4l2bufferpool: return TRUE when buffer pool orphaning succeeds
+         When trying to orphan a buffer pool, successfully return and unref
+         the pool when the pool is either successfully stopped or orphaned.
+         Indicate failure and leave the pool untouched otherwise.
+
+2019-05-31 23:04:11 +0200  Niels De Graef <niels.degraef@barco.com>
+
+       * configure.ac:
+       * gst/udp/gstmultiudpsink.c:
+       * gst/udp/gstmultiudpsink.h:
+       * gst/udp/gstudpsrc.c:
+       * meson.build:
+         meson: Bump minimal GLib version to 2.44
+         This means we can use some newer features and get rid of some
+         boilerplate code using the G_DECLARE_* macros.
+         As discussed on IRC, 2.44 is old enough by now to start depending on it.
+
+2018-09-05 21:10:51 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/gstqtmux.h:
+         qtmux: Use size of first closed caption buffer in prefill mode
+         It must be accurate for all samples to work in Final Cut properly, so
+         the best we can do is to assume that all samples are the same as the
+         first. Bigger samples are truncated, smaller samples are padded.
+
+2019-05-29 22:06:58 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/meson.build:
+       * ext/lame/gstlamemp3enc.c:
+       * ext/mpg123/gstmpg123audiodec.c:
+       * ext/taglib/gstapev2mux.cc:
+       * ext/taglib/gstid3v2mux.cc:
+       * ext/twolame/gsttwolamemp2enc.c:
+       * gst/autodetect/gstautoaudiosink.c:
+       * gst/autodetect/gstautoaudiosrc.c:
+       * gst/autodetect/gstautovideosink.c:
+       * gst/autodetect/gstautovideosrc.c:
+       * gst/dtmf/gstdtmfsrc.c:
+       * gst/dtmf/gstrtpdtmfdepay.c:
+       * gst/dtmf/gstrtpdtmfsrc.c:
+       * gst/level/gstlevel.c:
+       * gst/rtp/gstrtpL8depay.c:
+       * gst/rtp/gstrtpL8pay.c:
+       * gst/rtp/gstrtpreddec.c:
+       * gst/rtp/gstrtpredenc.c:
+       * gst/rtp/gstrtpulpfecdec.c:
+       * gst/rtp/gstrtpulpfecenc.c:
+       * gst/spectrum/gstspectrum.c:
+       * sys/v4l2/gstv4l2object.c:
+         doc: remove xml from comments
+
+2019-05-29 11:02:26 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+         docs: update plugins cache
+         And add gtk+ and qt plugins
+
+2019-05-29 10:58:40 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * ext/dv/meson.build:
+       * ext/gtk/meson.build:
+       * ext/qt/meson.build:
+       * sys/osxaudio/meson.build:
+       * sys/osxvideo/meson.build:
+       * sys/waveform/meson.build:
+         dv, gtk, qt, osxaudio, osxvideo, waveform: add to plugins list
+         Makes sure the paths for these plugins are included in the
+         uninstalled plugin paths list. And also for the docs.
+         Fixes #604
+
+2019-04-18 15:31:00 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/matroska/matroska-mux.c:
+       * gst/matroska/matroska-mux.h:
+         matroskamux: Add new property to offset all streams to start at zero
+         This takes the timestamp of the earliest stream and offsets it so that
+         it starts at 0. Some software (VLC, ffmpeg-based) does not properly
+         handle Matroska files that start at timestamps much bigger than zero.
+         Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/449
+
+2019-05-28 14:13:56 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * gst/rtp/gstrtpmp4gdepay.c:
+       * gst/rtp/gstrtpmp4gdepay.h:
+         rtpmp4gdepay: don't spam debug log for broken ADTS-in-RTP AAC
+         Print warning only once.
+
+2019-05-22 18:06:04 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Only set running time on finalizing sink element when in async-finalize mode
+         There is only a single sink element in async-finalize mode, and we would
+         keep the running time from previous fragments set in that case. As we
+         don't ever set the running time for the very last fragment on EOS, this
+         would mean that the closing time reported for the very last fragment is
+         the same as the closing time of the previous fragment.
+
+2015-03-26 13:08:32 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Remove uneeded keep-alive hack
+         The rtsp connection code has been fixed now.
+         https://bugzilla.gnome.org/show_bug.cgi?id=744209
+
+2019-05-26 17:46:06 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+         rtpjitterbuffer: Print GstClockTimeDiff as GST_STIME_FORMAT
+
+2019-05-25 19:45:02 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+         doc: update plugin cache
+
+2019-05-25 17:25:02 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * gst/videomixer/videomixer2.c:
+         videomixer: the documentation for GstVideoMixer2Pad is not exposed
+
+2019-05-25 16:56:32 +0200  Mathieu Duponchelle <mathieu@centricular.com>
+
+       * ext/gdk_pixbuf/gstgdkpixbufsink.c:
+       * ext/soup/gstsouphttpsrc.c:
+       * ext/vpx/gstvp8enc.c:
+       * ext/vpx/gstvp9enc.c:
+       * gst/isomp4/gstqtmux-doc.c:
+       * gst/isomp4/gstqtmux.c:
+       * gst/multifile/gstmultifilesrc.c:
+       * gst/rtpmanager/gstrtprtxqueue.c:
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/smpte/gstsmpte.c:
+       * gst/smpte/gstsmptealpha.c:
+       * gst/spectrum/gstspectrum.c:
+         doc: fix element section documentations
+         Element sections were not rendered anymore after the hotdoc
+         port, fixing this revealed a few incorrect links.
+
+2019-02-19 12:15:19 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: Improve RTPStorage action signal documentation
+         This is a tiny clarification as the storage was loosely named "storage".
+         This change clarify that the storage is specificaly used for received RTP
+         packets. This is unlike the storage found in rtprtxsend that stores a
+         backlog of sent RTP packets.
+
+2019-05-05 22:16:36 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-mux.c:
+         matroska: Add BT2020_10, PQ and HLG transfer functions
+         The direct use of newly added transfer functions
+
+2019-05-23 12:38:06 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * ext/aalib/meson.build:
+         aasink: Generate pkg-config file for the plugin
+
+2019-05-22 11:01:17 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * gst/multifile/gstmultifilesink.c:
+         multifilesink: Fix documentation of max-file-duration property
+         The max-file-duration property works with max-duration mode
+
+2019-05-14 17:36:14 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/rtpsession.c:
+       * tests/check/elements/rtpsession.c:
+         rtpsession: Always keep at least one NACK on early RTCP
+         We recently added code to remove outdate NACK to avoid using bandwidth
+         for packet that have no chance of arriving on time. Though, this had a
+         side effect, which is that it was to get an early RTCP packet with no
+         feedback into it. This was pretty useless but also had a side effect,
+         which is that the RTX RTT value would never be updated. So we we stared
+         having late RTX request due to high RTT, we'd never manage to recover.
+         This fixes the regression by making sure we keep at least one NACK in
+         this situation. This is really light on the bandwidth and allow for
+         quick recover after the RTT have spiked higher then the jitterbuffer
+         capacity.
+
+2019-05-16 09:14:19 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * docs/meson.build:
+         docs: Stop building the doc cache by default
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
+
+2019-05-13 22:53:59 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * docs/gst_plugins_cache.json:
+         docs: Update plugins documentation cache
+
+2019-04-23 12:28:23 -0400  Thibault Saunier <tsaunier@igalia.com>
+
+       * ext/soup/gstsouputils.c:
+       * gst/goom/flying_stars_fx.c:
+       * gst/goom/goom_tools.h:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpmux.h:
+       * sys/v4l2/gstv4l2object.c:
+         doc: Fix some docstrings
+
+2018-10-22 11:39:55 +0200  Thibault Saunier <tsaunier@igalia.com>
+
+       * Makefile.am:
+       * configure.ac:
+       * docs/Makefile.am:
+       * docs/all_index.md:
+       * docs/gst_api_version.in:
+       * docs/gst_plugins_cache.json:
+       * docs/index.md:
+       * docs/meson.build:
+       * docs/plugins/.gitignore:
+       * docs/plugins/Makefile.am:
+       * docs/plugins/gst-plugins-good-plugins-docs.sgml:
+       * docs/plugins/gst-plugins-good-plugins-sections.txt:
+       * docs/plugins/gst-plugins-good-plugins.args:
+       * docs/plugins/gst-plugins-good-plugins.hierarchy:
+       * docs/plugins/gst-plugins-good-plugins.interfaces:
+       * docs/plugins/gst-plugins-good-plugins.prerequisites:
+       * docs/plugins/gst-plugins-good-plugins.signals:
+       * docs/plugins/gst-plugins-good-plugins.types:
+       * docs/plugins/inspect/plugin-1394.xml:
+       * docs/plugins/inspect/plugin-aasink.xml:
+       * docs/plugins/inspect/plugin-alaw.xml:
+       * docs/plugins/inspect/plugin-alpha.xml:
+       * docs/plugins/inspect/plugin-alphacolor.xml:
+       * docs/plugins/inspect/plugin-apetag.xml:
+       * docs/plugins/inspect/plugin-audiofx.xml:
+       * docs/plugins/inspect/plugin-audioparsers.xml:
+       * docs/plugins/inspect/plugin-auparse.xml:
+       * docs/plugins/inspect/plugin-autodetect.xml:
+       * docs/plugins/inspect/plugin-avi.xml:
+       * docs/plugins/inspect/plugin-cacasink.xml:
+       * docs/plugins/inspect/plugin-cairo.xml:
+       * docs/plugins/inspect/plugin-cutter.xml:
+       * docs/plugins/inspect/plugin-debug.xml:
+       * docs/plugins/inspect/plugin-deinterlace.xml:
+       * docs/plugins/inspect/plugin-directsound.xml:
+       * docs/plugins/inspect/plugin-dtmf.xml:
+       * docs/plugins/inspect/plugin-dv.xml:
+       * docs/plugins/inspect/plugin-effectv.xml:
+       * docs/plugins/inspect/plugin-equalizer.xml:
+       * docs/plugins/inspect/plugin-flac.xml:
+       * docs/plugins/inspect/plugin-flv.xml:
+       * docs/plugins/inspect/plugin-flxdec.xml:
+       * docs/plugins/inspect/plugin-gdkpixbuf.xml:
+       * docs/plugins/inspect/plugin-goom.xml:
+       * docs/plugins/inspect/plugin-goom2k1.xml:
+       * docs/plugins/inspect/plugin-gtk.xml:
+       * docs/plugins/inspect/plugin-icydemux.xml:
+       * docs/plugins/inspect/plugin-id3demux.xml:
+       * docs/plugins/inspect/plugin-imagefreeze.xml:
+       * docs/plugins/inspect/plugin-interleave.xml:
+       * docs/plugins/inspect/plugin-isomp4.xml:
+       * docs/plugins/inspect/plugin-jack.xml:
+       * docs/plugins/inspect/plugin-jpeg.xml:
+       * docs/plugins/inspect/plugin-lame.xml:
+       * docs/plugins/inspect/plugin-level.xml:
+       * docs/plugins/inspect/plugin-matroska.xml:
+       * docs/plugins/inspect/plugin-monoscope.xml:
+       * docs/plugins/inspect/plugin-mpg123.xml:
+       * docs/plugins/inspect/plugin-mulaw.xml:
+       * docs/plugins/inspect/plugin-multifile.xml:
+       * docs/plugins/inspect/plugin-multipart.xml:
+       * docs/plugins/inspect/plugin-navigationtest.xml:
+       * docs/plugins/inspect/plugin-oss4.xml:
+       * docs/plugins/inspect/plugin-ossaudio.xml:
+       * docs/plugins/inspect/plugin-osxaudio.xml:
+       * docs/plugins/inspect/plugin-osxvideo.xml:
+       * docs/plugins/inspect/plugin-png.xml:
+       * docs/plugins/inspect/plugin-pulseaudio.xml:
+       * docs/plugins/inspect/plugin-qmlgl.xml:
+       * docs/plugins/inspect/plugin-replaygain.xml:
+       * docs/plugins/inspect/plugin-rtp.xml:
+       * docs/plugins/inspect/plugin-rtpmanager.xml:
+       * docs/plugins/inspect/plugin-rtsp.xml:
+       * docs/plugins/inspect/plugin-shapewipe.xml:
+       * docs/plugins/inspect/plugin-shout2.xml:
+       * docs/plugins/inspect/plugin-smpte.xml:
+       * docs/plugins/inspect/plugin-soup.xml:
+       * docs/plugins/inspect/plugin-spectrum.xml:
+       * docs/plugins/inspect/plugin-speex.xml:
+       * docs/plugins/inspect/plugin-taglib.xml:
+       * docs/plugins/inspect/plugin-twolame.xml:
+       * docs/plugins/inspect/plugin-udp.xml:
+       * docs/plugins/inspect/plugin-video4linux2.xml:
+       * docs/plugins/inspect/plugin-videobox.xml:
+       * docs/plugins/inspect/plugin-videocrop.xml:
+       * docs/plugins/inspect/plugin-videofilter.xml:
+       * docs/plugins/inspect/plugin-videomixer.xml:
+       * docs/plugins/inspect/plugin-vpx.xml:
+       * docs/plugins/inspect/plugin-waveform.xml:
+       * docs/plugins/inspect/plugin-wavenc.xml:
+       * docs/plugins/inspect/plugin-wavpack.xml:
+       * docs/plugins/inspect/plugin-wavparse.xml:
+       * docs/plugins/inspect/plugin-ximagesrc.xml:
+       * docs/plugins/inspect/plugin-y4menc.xml:
+       * docs/random/ChangeLog-0.8:
+       * docs/random/PORTED_09:
+       * docs/sitemap.txt:
+       * docs/version.entities.in:
+       * ext/aalib/meson.build:
+       * ext/cairo/meson.build:
+       * ext/flac/meson.build:
+       * ext/gdk_pixbuf/meson.build:
+       * ext/jack/meson.build:
+       * ext/jpeg/meson.build:
+       * ext/lame/meson.build:
+       * ext/libcaca/meson.build:
+       * ext/libpng/meson.build:
+       * ext/mpg123/meson.build:
+       * ext/pulse/meson.build:
+       * ext/raw1394/meson.build:
+       * ext/shout2/meson.build:
+       * ext/soup/meson.build:
+       * ext/speex/meson.build:
+       * ext/taglib/meson.build:
+       * ext/twolame/meson.build:
+       * ext/vpx/meson.build:
+       * ext/wavpack/meson.build:
+       * gst/alpha/meson.build:
+       * gst/apetag/meson.build:
+       * gst/audiofx/meson.build:
+       * gst/audioparsers/meson.build:
+       * gst/auparse/meson.build:
+       * gst/autodetect/meson.build:
+       * gst/avi/meson.build:
+       * gst/cutter/meson.build:
+       * gst/debugutils/meson.build:
+       * gst/deinterlace/meson.build:
+       * gst/dtmf/meson.build:
+       * gst/effectv/meson.build:
+       * gst/equalizer/meson.build:
+       * gst/flv/meson.build:
+       * gst/flx/meson.build:
+       * gst/goom/filters.c:
+       * gst/goom/meson.build:
+       * gst/goom2k1/meson.build:
+       * gst/icydemux/meson.build:
+       * gst/id3demux/meson.build:
+       * gst/imagefreeze/meson.build:
+       * gst/interleave/meson.build:
+       * gst/isomp4/meson.build:
+       * gst/law/meson.build:
+       * gst/law/mulaw-conversion.c:
+       * gst/level/meson.build:
+       * gst/matroska/meson.build:
+       * gst/monoscope/meson.build:
+       * gst/multifile/meson.build:
+       * gst/multipart/meson.build:
+       * gst/replaygain/meson.build:
+       * gst/rtp/meson.build:
+       * gst/rtpmanager/gstrtpptdemux.c:
+       * gst/rtpmanager/meson.build:
+       * gst/rtsp/meson.build:
+       * gst/shapewipe/meson.build:
+       * gst/smpte/meson.build:
+       * gst/spectrum/meson.build:
+       * gst/udp/meson.build:
+       * gst/videobox/meson.build:
+       * gst/videocrop/meson.build:
+       * gst/videofilter/meson.build:
+       * gst/videomixer/meson.build:
+       * gst/wavenc/meson.build:
+       * gst/wavparse/meson.build:
+       * gst/y4m/meson.build:
+       * meson.build:
+       * meson_options.txt:
+       * sys/directsound/meson.build:
+       * sys/oss/meson.build:
+       * sys/oss4/meson.build:
+       * sys/v4l2/meson.build:
+       * sys/ximage/meson.build:
+         doc: Port documentation to hotdoc
+
+2018-11-12 08:05:45 -0300  Thibault Saunier <tsaunier@igalia.com>
+
+       * gst/isomp4/gstqtmux.c:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/rtpmanager/rtpsession.c:
+         Mark some properties as DOC_SHOW_DEFAULT
+
+2018-10-22 11:39:24 +0200  Thibault Saunier <tsaunier@igalia.com>
+
+       * ext/aalib/gstaasink.c:
+       * ext/cairo/gstcairooverlay.c:
+       * ext/dv/gstdvdec.c:
+       * ext/dv/gstdvdemux.c:
+       * ext/flac/gstflacdec.c:
+       * ext/flac/gstflacenc.c:
+       * ext/flac/gstflactag.c:
+       * ext/gdk_pixbuf/gstgdkpixbufoverlay.c:
+       * ext/gdk_pixbuf/gstgdkpixbufsink.c:
+       * ext/jack/gstjackaudioclient.c:
+       * ext/jack/gstjackaudiosink.c:
+       * ext/jack/gstjackaudiosink.h:
+       * ext/jack/gstjackaudiosrc.c:
+       * ext/jpeg/gstjpegdec.c:
+       * ext/jpeg/gstjpegenc.c:
+       * ext/jpeg/gstsmokedec.c:
+       * ext/jpeg/gstsmokeenc.c:
+       * ext/libcaca/gstcacasink.c:
+       * ext/libpng/gstpngdec.c:
+       * ext/libpng/gstpngenc.c:
+       * ext/pulse/pulsesink.c:
+       * ext/pulse/pulsesrc.c:
+       * ext/raw1394/gstdv1394src.c:
+       * ext/raw1394/gsthdv1394src.c:
+       * ext/shout2/gstshout2.c:
+       * ext/soup/gstsouphttpclientsink.c:
+       * ext/soup/gstsouphttpsrc.c:
+       * ext/speex/gstspeexdec.c:
+       * ext/speex/gstspeexenc.c:
+       * ext/vpx/gstvp8dec.c:
+       * ext/vpx/gstvp8enc.c:
+       * ext/vpx/gstvp9dec.c:
+       * ext/vpx/gstvp9enc.c:
+       * ext/wavpack/gstwavpackdec.c:
+       * ext/wavpack/gstwavpackenc.c:
+       * gst/alpha/gstalpha.c:
+       * gst/alpha/gstalpha.h:
+       * gst/alpha/gstalphacolor.c:
+       * gst/apetag/gstapedemux.c:
+       * gst/audiofx/audioamplify.c:
+       * gst/audiofx/audiochebband.c:
+       * gst/audiofx/audiocheblimit.c:
+       * gst/audiofx/audiodynamic.c:
+       * gst/audiofx/audioecho.c:
+       * gst/audiofx/audiofirfilter.c:
+       * gst/audiofx/audioiirfilter.c:
+       * gst/audiofx/audioinvert.c:
+       * gst/audiofx/audiokaraoke.c:
+       * gst/audiofx/audiopanorama.c:
+       * gst/audiofx/audiowsincband.c:
+       * gst/audiofx/audiowsinclimit.c:
+       * gst/audiofx/gstscaletempo.c:
+       * gst/audioparsers/gstaacparse.c:
+       * gst/audioparsers/gstac3parse.c:
+       * gst/audioparsers/gstamrparse.c:
+       * gst/audioparsers/gstdcaparse.c:
+       * gst/audioparsers/gstflacparse.c:
+       * gst/audioparsers/gstmpegaudioparse.c:
+       * gst/audioparsers/gstsbcparse.c:
+       * gst/audioparsers/gstwavpackparse.c:
+       * gst/auparse/gstauparse.c:
+       * gst/autodetect/gstautoaudiosink.c:
+       * gst/autodetect/gstautoaudiosrc.c:
+       * gst/autodetect/gstautovideosink.c:
+       * gst/autodetect/gstautovideosrc.c:
+       * gst/avi/gstavidemux.c:
+       * gst/avi/gstavimux.c:
+       * gst/avi/gstavisubtitle.c:
+       * gst/cutter/gstcutter.c:
+       * gst/debugutils/breakmydata.c:
+       * gst/debugutils/gstcapssetter.c:
+       * gst/debugutils/gstpushfilesrc.c:
+       * gst/debugutils/gsttaginject.c:
+       * gst/debugutils/progressreport.c:
+       * gst/debugutils/rndbuffersize.c:
+       * gst/deinterlace/gstdeinterlace.c:
+       * gst/dtmf/gstdtmfsrc.c:
+       * gst/dtmf/gstrtpdtmfdepay.c:
+       * gst/dtmf/gstrtpdtmfsrc.c:
+       * gst/effectv/gstaging.c:
+       * gst/effectv/gstdice.c:
+       * gst/effectv/gstedge.c:
+       * gst/effectv/gstop.c:
+       * gst/effectv/gstquark.c:
+       * gst/effectv/gstradioac.c:
+       * gst/effectv/gstrev.c:
+       * gst/effectv/gstripple.c:
+       * gst/effectv/gstshagadelic.c:
+       * gst/effectv/gststreak.c:
+       * gst/effectv/gstvertigo.c:
+       * gst/effectv/gstwarp.c:
+       * gst/equalizer/gstiirequalizer10bands.c:
+       * gst/equalizer/gstiirequalizer3bands.c:
+       * gst/equalizer/gstiirequalizernbands.c:
+       * gst/flv/gstflvdemux.c:
+       * gst/flv/gstflvmux.c:
+       * gst/flv/gstindex.c:
+       * gst/flx/gstflxdec.c:
+       * gst/goom/filters.c:
+       * gst/goom/goom_config.h:
+       * gst/goom/goom_filters.h:
+       * gst/goom/goom_plugin_info.h:
+       * gst/goom/gstgoom.c:
+       * gst/goom/ifs.c:
+       * gst/goom/sound_tester.h:
+       * gst/goom2k1/filters.h:
+       * gst/goom2k1/goom_core.h:
+       * gst/goom2k1/gstgoom.c:
+       * gst/icydemux/gsticydemux.c:
+       * gst/id3demux/gstid3demux.c:
+       * gst/imagefreeze/gstimagefreeze.c:
+       * gst/interleave/deinterleave.c:
+       * gst/interleave/interleave.c:
+       * gst/isomp4/gstqtmoovrecover.c:
+       * gst/isomp4/gstqtmux-doc.c:
+       * gst/isomp4/gstqtmux.c:
+       * gst/isomp4/qtdemux.c:
+       * gst/law/alaw-decode.c:
+       * gst/law/alaw-encode.c:
+       * gst/law/mulaw-conversion.c:
+       * gst/law/mulaw-decode.c:
+       * gst/law/mulaw-encode.c:
+       * gst/level/gstlevel.c:
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-mux.c:
+       * gst/matroska/matroska-parse.c:
+       * gst/matroska/webm-mux.c:
+       * gst/monoscope/gstmonoscope.c:
+       * gst/multifile/gstmultifilesink.c:
+       * gst/multifile/gstmultifilesrc.c:
+       * gst/multifile/gstsplitfilesrc.c:
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsrc.c:
+       * gst/multipart/multipartdemux.c:
+       * gst/multipart/multipartmux.c:
+       * gst/replaygain/gstrganalysis.c:
+       * gst/replaygain/gstrglimiter.c:
+       * gst/replaygain/gstrgvolume.c:
+       * gst/rtp/gstrtpL16depay.c:
+       * gst/rtp/gstrtpL16pay.c:
+       * gst/rtp/gstrtpL24depay.c:
+       * gst/rtp/gstrtpL24pay.c:
+       * gst/rtp/gstrtpac3depay.c:
+       * gst/rtp/gstrtpac3pay.c:
+       * gst/rtp/gstrtpamrdepay.c:
+       * gst/rtp/gstrtpamrpay.c:
+       * gst/rtp/gstrtpbvdepay.c:
+       * gst/rtp/gstrtpbvpay.c:
+       * gst/rtp/gstrtph261depay.c:
+       * gst/rtp/gstrtph261pay.c:
+       * gst/rtp/gstrtph264depay.c:
+       * gst/rtp/gstrtph265depay.c:
+       * gst/rtp/gstrtph265pay.c:
+       * gst/rtp/gstrtpj2kdepay.c:
+       * gst/rtp/gstrtpj2kpay.c:
+       * gst/rtp/gstrtpjpegpay.c:
+       * gst/rtp/gstrtpklvdepay.c:
+       * gst/rtp/gstrtpklvpay.c:
+       * gst/rtp/gstrtpstreamdepay.c:
+       * gst/rtp/gstrtpstreampay.c:
+       * gst/rtpmanager/gstrtpbin.c:
+       * gst/rtpmanager/gstrtpdtmfmux.c:
+       * gst/rtpmanager/gstrtpjitterbuffer.c:
+       * gst/rtpmanager/gstrtpmux.c:
+       * gst/rtpmanager/gstrtpptdemux.c:
+       * gst/rtpmanager/gstrtpptdemux.h:
+       * gst/rtpmanager/gstrtprtxqueue.c:
+       * gst/rtpmanager/gstrtprtxreceive.c:
+       * gst/rtpmanager/gstrtprtxsend.c:
+       * gst/rtpmanager/gstrtpsession.c:
+       * gst/rtpmanager/gstrtpssrcdemux.c:
+       * gst/rtpmanager/rtpsession.c:
+       * gst/rtsp/gstrtpdec.c:
+       * gst/shapewipe/gstshapewipe.c:
+       * gst/smpte/gstsmpte.c:
+       * gst/smpte/gstsmptealpha.c:
+       * gst/spectrum/gstspectrum.c:
+       * gst/udp/gstmultiudpsink.c:
+       * gst/udp/gstudpsink.c:
+       * gst/udp/gstudpsrc.c:
+       * gst/videobox/gstvideobox.c:
+       * gst/videocrop/gstaspectratiocrop.c:
+       * gst/videocrop/gstvideocrop.c:
+       * gst/videofilter/gstgamma.c:
+       * gst/videofilter/gstvideobalance.c:
+       * gst/videofilter/gstvideoflip.c:
+       * gst/videomixer/videomixer2.c:
+       * gst/wavenc/gstwavenc.c:
+       * gst/wavparse/gstwavparse.c:
+       * gst/y4m/gsty4mencode.c:
+       * sys/directsound/gstdirectsoundsink.c:
+       * sys/oss/gstosssink.c:
+       * sys/oss/gstosssrc.c:
+       * sys/oss4/oss4-sink.c:
+       * sys/oss4/oss4-source.c:
+       * sys/osxaudio/gstosxaudiosink.c:
+       * sys/osxaudio/gstosxaudiosrc.c:
+       * sys/v4l2/gstv4l2radio.c:
+       * sys/v4l2/gstv4l2sink.c:
+       * sys/v4l2/gstv4l2src.c:
+       * sys/v4l2/tuner.c:
+       * sys/v4l2/tunerchannel.c:
+       * sys/v4l2/tunernorm.c:
+       * sys/waveform/gstwaveformsink.c:
+       * sys/ximage/gstximagesrc.c:
+         docs: Port all docstring to gtk-doc markdown
+
+2019-05-02 22:14:35 -0700  Thiago Santos <thiagossantos@gmail.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: do not try to send EOS with invalid seqnum
+         The second udpsrc (rtcp) might not have seen the segment event if it was
+         not enabled or if rtcp is not available on the server. So if the
+         application tries to send an EOS event it will try to set an invalid
+         seqnum to the event.
+
+2019-04-24 13:54:12 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/rtpsource.c:
+         rtpsource: Add more information to probation warning
+
+2019-04-24 13:47:54 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+       * gst/rtpmanager/rtpsession.c:
+       * tests/check/elements/rtpsession.c:
+         rtpsession: Call on-new-ssrc earlier
+         Right now, we may call on-new-ssrc after we have processed the first
+         RTP packet. This prevents properly configuring the source as some
+         property like "probation" are copied internally for use as a
+         decreasing counter. For this specific property, it prevents the
+         application from disabling probation on auxiliary sparse stream.
+         Probation is harmful on sparse streams since the probation algorithm
+         assume frequent and contiguous RTP packets.
+
+2019-02-19 13:34:49 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroskamux: Write MasteringMetadata and Max{CLL,FALL}
+         Enable muxing with HDR meta data if upstream provided it
+
+2019-02-18 23:28:50 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * gst/matroska/matroska-demux.c:
+       * gst/matroska/matroska-ids.c:
+       * gst/matroska/matroska-ids.h:
+         matroskademux: Add support parsing HDR metadata
+         Set SMPTE ST 2086 mastering-display-metadata and
+         content-light-level to caps, if any
+
+2019-02-19 18:27:23 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * gst/matroska/ebml-write.c:
+       * gst/matroska/ebml-write.h:
+       * gst/matroska/matroska-ids.h:
+       * gst/matroska/matroska-mux.c:
+       * gst/matroska/matroska-mux.h:
+       * gst/matroska/matroska-read-common.h:
+         matroska: Remove white space
+
+2019-05-01 10:00:51 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/rtp/gstrtpvrawdepay.c:
+         rtprawdepay: Don't get rid of the buffer pool on FLUSH_STOP
+         We expect there to be a pool as long as the caps are known and
+         FLUSH_STOP is not resetting the caps. Getting rid of the pool would
+         cause assertions.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/584
+
+2019-02-08 10:09:17 +0100  Danny Smith <dannys@axis.com>
+
+       * gst/rtpmanager/gstrtpbin.c:
+         rtpbin: Free storage when freeing session
+
+2019-04-25 21:52:42 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroskamux: Fix typo in error message
+
+2019-04-25 11:19:06 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+       * gst/imagefreeze/gstimagefreeze.c:
+         imagefreeze: Only set the DISCONT flag on the first buffer after segment start
+
+2019-04-24 02:38:32 +0900  okuoku <mjt@cltn.org>
+
+       * ext/jack/gstjackaudiosink.c:
+       * ext/jack/gstjackaudiosrc.c:
+         jack: Use jack_free(3) to release ports
+         Port objects acquired with jack_get_ports() need to be freed with
+         jack_free(3), not stdlib free().
+         On Windows, Jack may be linked against different libc than GStreamer
+         libraries so free()ing port objects directly might cause crash because
+         of libc mismatch.
+
+2019-04-23 10:10:01 +0100  Philippe Normand <philn@igalia.com>
+
+       * gst/audiofx/gstscaletempo.c:
+         scaletempo: Advertise interleaved layout in caps templates
+         Scaletempo doesn't support non-interleaved layout. Not explicitely stating this
+         would trigger critical warnings and a caps negotiation failure when scaletempo
+         is used as playbin audio-filter.
+         Patch suggested by George Kiagiadakis <george.kiagiadakis@collabora.com>.
+         Fixes #591
+
+2019-04-21 20:12:28 +0900  Seungha Yang <seungha.yang@navercorp.com>
+
+       * gst/matroska/meson.build:
+         meson: matroska: Ensure header dependency not only library
+         Library existence does not guarantee header.
+
+2018-11-13 13:48:11 +0100  Robert Rosengren <robertr@axis.com>
+
+       * gst/udp/gstmultiudpsink.c:
+         multidupsink: Use gst_net_utils_set_socket_tos for QoS DSCP
+         Util function in net library exists for setting QoS DSCP on socket, hence
+         use it to simplify code.
+
+2019-04-19 10:27:38 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+       * README:
+       * RELEASE:
+       * configure.ac:
+       * docs/plugins/gst-plugins-good-plugins.args:
+       * docs/plugins/inspect/plugin-1394.xml:
+       * docs/plugins/inspect/plugin-aasink.xml:
+       * docs/plugins/inspect/plugin-alaw.xml:
+       * docs/plugins/inspect/plugin-alpha.xml:
+       * docs/plugins/inspect/plugin-alphacolor.xml:
+       * docs/plugins/inspect/plugin-apetag.xml:
+       * docs/plugins/inspect/plugin-audiofx.xml:
+       * docs/plugins/inspect/plugin-audioparsers.xml:
+       * docs/plugins/inspect/plugin-auparse.xml:
+       * docs/plugins/inspect/plugin-autodetect.xml:
+       * docs/plugins/inspect/plugin-avi.xml:
+       * docs/plugins/inspect/plugin-cacasink.xml:
+       * docs/plugins/inspect/plugin-cairo.xml:
+       * docs/plugins/inspect/plugin-cutter.xml:
+       * docs/plugins/inspect/plugin-debug.xml:
+       * docs/plugins/inspect/plugin-deinterlace.xml:
+       * docs/plugins/inspect/plugin-dtmf.xml:
+       * docs/plugins/inspect/plugin-dv.xml:
+       * docs/plugins/inspect/plugin-effectv.xml:
+       * docs/plugins/inspect/plugin-equalizer.xml:
+       * docs/plugins/inspect/plugin-flac.xml:
+       * docs/plugins/inspect/plugin-flv.xml:
+       * docs/plugins/inspect/plugin-flxdec.xml:
+       * docs/plugins/inspect/plugin-gdkpixbuf.xml:
+       * docs/plugins/inspect/plugin-goom.xml:
+       * docs/plugins/inspect/plugin-goom2k1.xml:
+       * docs/plugins/inspect/plugin-gtk.xml:
+       * docs/plugins/inspect/plugin-icydemux.xml:
+       * docs/plugins/inspect/plugin-id3demux.xml:
+       * docs/plugins/inspect/plugin-imagefreeze.xml:
+       * docs/plugins/inspect/plugin-interleave.xml:
+       * docs/plugins/inspect/plugin-isomp4.xml:
+       * docs/plugins/inspect/plugin-jack.xml:
+       * docs/plugins/inspect/plugin-jpeg.xml:
+       * docs/plugins/inspect/plugin-lame.xml:
+       * docs/plugins/inspect/plugin-level.xml:
+       * docs/plugins/inspect/plugin-matroska.xml:
+       * docs/plugins/inspect/plugin-mpg123.xml:
+       * docs/plugins/inspect/plugin-mulaw.xml:
+       * docs/plugins/inspect/plugin-multifile.xml:
+       * docs/plugins/inspect/plugin-multipart.xml:
+       * docs/plugins/inspect/plugin-navigationtest.xml:
+       * docs/plugins/inspect/plugin-oss4.xml:
+       * docs/plugins/inspect/plugin-ossaudio.xml:
+       * docs/plugins/inspect/plugin-png.xml:
+       * docs/plugins/inspect/plugin-pulseaudio.xml:
+       * docs/plugins/inspect/plugin-qmlgl.xml:
+       * docs/plugins/inspect/plugin-replaygain.xml:
+       * docs/plugins/inspect/plugin-rtp.xml:
+       * docs/plugins/inspect/plugin-rtpmanager.xml:
+       * docs/plugins/inspect/plugin-rtsp.xml:
+       * docs/plugins/inspect/plugin-shapewipe.xml:
+       * docs/plugins/inspect/plugin-shout2.xml:
+       * docs/plugins/inspect/plugin-smpte.xml:
+       * docs/plugins/inspect/plugin-soup.xml:
+       * docs/plugins/inspect/plugin-spectrum.xml:
+       * docs/plugins/inspect/plugin-speex.xml:
+       * docs/plugins/inspect/plugin-taglib.xml:
+       * docs/plugins/inspect/plugin-twolame.xml:
+       * docs/plugins/inspect/plugin-udp.xml:
+       * docs/plugins/inspect/plugin-video4linux2.xml:
+       * docs/plugins/inspect/plugin-videobox.xml:
+       * docs/plugins/inspect/plugin-videocrop.xml:
+       * docs/plugins/inspect/plugin-videofilter.xml:
+       * docs/plugins/inspect/plugin-videomixer.xml:
+       * docs/plugins/inspect/plugin-vpx.xml:
+       * docs/plugins/inspect/plugin-wavenc.xml:
+       * docs/plugins/inspect/plugin-wavpack.xml:
+       * docs/plugins/inspect/plugin-wavparse.xml:
+       * docs/plugins/inspect/plugin-ximagesrc.xml:
+       * docs/plugins/inspect/plugin-y4menc.xml:
+       * meson.build:
+         Back to development
+
 === release 1.16.0 ===
 
 2019-04-19 00:23:16 +0100  Tim-Philipp Müller <tim@centricular.com>
          flacparse: Initialize variables.
          Fixes build on $#@*( macosx
 
-2010-01-11 22:41:57 +0300  Ðóñëàí Èæáóëàòîâ <lrn1986@gmail.com>
+2010-01-11 22:41:57 +0300  ������ ��������� <lrn1986@gmail.com>
 
        * gst/audioparsers/gstaacparse.c:
        * gst/audioparsers/gstamrparse.c:
          mdat atoms.  Also keep adapter/offset better in sync with upstream
          and fix some debug statements.  Fixes #587426.
 
-2009-07-06 10:40:31 +0200  Philip Jägenstedt <philipj@opera.com>
+2009-07-06 10:40:31 +0200  Philip Jgenstedt <philipj@opera.com>
 
        * gst/avi/gstavidemux.c:
          avidemux: Replace deprecated GST_DISABLE_DEBUG with correct macro. Fixes #587826