=== release 1.20.5 ===

2022-12-19 23:34:42 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* docs/gst_plugins_cache.json:
	* gst-plugins-good.doap:
	* meson.build:
	  Release 1.20.5

2022-12-19 23:34:34 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Update ChangeLogs for 1.20.5

2022-11-14 13:53:02 +0100  Edward Hervey <edward@centricular.com>

	* gst/multifile/gstimagesequencesrc.c:
	  imagesequencesrc: Don't leak caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3597>

2022-11-16 13:33:39 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Fix regression when using hostname in the location property
	  When the address can't be parsed as an IP address, it should just be
	  treated as a hostname and used as-is.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1576
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3596>

2022-03-01 16:30:10 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Fix usage of IPv6 connections in SETUP
	  If the SETUP request returns an IPv6 server address in the Transport
	  field, we would generate an incorrect URI, and multiudpsink would fail
	  to initialize:
	  ```
	  rtspsrc gstrtspsrc.c:9780:dump_key_value:<source>    key: 'Transport', value: 'RTP/AVP;unicast;source=fe80::dc27:25ff:fe5e:bd13:8080;client_port=62696-62697;server_port=4000-4001'
	  ...
	  rtspsrc gstrtspsrc.c:4595:gst_rtspsrc_stream_configure_udp_sinks:<source> configure RTP UDP sink for fe80::dc27:25ff:fe5e:bd13:8080:4000
	  ...
	  multiudpsink gstmultiudpsink.c:1229:gst_multiudpsink_configure_client:<udpsink0> error: Invalid address family (got 23)
	  ```
	  We can't look at stream->is_ipv6 because we can't rely on the server
	  returning the right value there. In the issue reported about this,
	  server reported itself as `KuP RTSP Server/0.1`, and the SDP was:
	  ```
	  c=IN IP4
	  m=video 54608 RTP/AVP 96
	  a=rtpmap:96 H264/90000
	  ```
	  So we need to parse the string value and figure out the family
	  ourselves.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1058
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3596>

2022-05-19 15:51:03 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: Fix activation of internal pool
	  If the driver does not support VIDIOC_CREATE_BUFS ioctl, the pool
	  configuration may get changed, which requires a validation. This would
	  fail to activate a pool in a case it shouldn't normally fail unless we
	  are out of memory.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2677>

2022-12-16 01:00:46 -0600  A. Wilcox <AWilcox@Wilcox-Tech.com>

	* tests/check/elements/rtpjitterbuffer.c:
	  tests: Cast drop-messages-interval type properly
	  The rtpjitterbuffer test drop_messages_interval uses a GstClockTime for
	  the message drop interval.  This property is defined as a guint.  On
	  systems with 64-bit time_t but 32-bit uint, this can cause the
	  g_object_set function to fail to read the arguments properly.
	  Fixes: #1656
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3582>

2022-10-11 15:00:37 +0200  Edward Hervey <edward@centricular.com>

	* sys/oss4/oss4-sink.c:
	* sys/oss4/oss4-source.c:
	  oss4: Fix debug category initialization
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1456
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3577>

2022-11-30 14:32:52 +0100  Bo Elmgreen <bo.elmgreen@gmail.com>

	* ext/qt/gstqtglutility.cc:
	  qt: deactivate context if fill_info fails
	  Now the OpenGL context is deactivated if call to gst_gl_context_fill_info()
	  fails in gst_qt_get_gl_wrapcontext(), preventing that the context is left
	  activated, which could lead to invalid memory reads.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3575>

2022-12-02 12:15:34 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2src.c:
	  v4l2src: Fix crash in renegotiation
	  This regression was introduce by fix for making buffer pool thread safe. When
	  we renegotiate, the pool will be setup after we set the format. But the code
	  has been simplified to only get the pool once before, which caused a null
	  pointer deref.
	  Fixes 94ba019 ("v4l2: Fix SIGSEGV on 'change state' during 'format change'")
	  Related to !3481
	  Fixes #1626
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3504>

2022-11-28 22:26:50 +0000  Pawel Stawicki <stawel+gstreamer@gmail.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	* sys/v4l2/gstv4l2bufferpool.h:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2sink.c:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2transform.c:
	* sys/v4l2/gstv4l2videodec.c:
	* sys/v4l2/gstv4l2videoenc.c:
	  v4l2: Fix SIGSEGV on 'change state' during 'format change'
	  Ensure all access to v4l2object->pool imply taking a lock and a hard ref on the pool
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3504>

2022-12-07 09:47:49 +0100  Jacek Skiba <jacek.skiba@consult.red>

	* gst/isomp4/qtdemux.c:
	  qtdemux: exit when protection caps are not defined during PIFF parsing
	  Reproduction testcase (uses PlayReady):
	  https://developers.canal-plus.com/rx-player/upc/?appTileLocation=[object%20Object]
	  In test streams we are using PIFF box, but caps did not had
	  present GST_PROTECTION_SYSTEM_ID_CAPS_FIELD. In consequence, invalid
	  system_id was returned which caused SIGSEGV crash.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3549>

2022-12-01 10:34:10 +0100  Aleksandr Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: fix seek event leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3507>

2022-12-04 11:44:17 +0000  Philippe Normand <philn@igalia.com>

	* gst/audioparsers/gstflacparse.c:
	  flacparse: Fix handling of headers advertising 32bps
	  According to the flac bitstream format specification, the sample size in bits
	  corresponding to `111` is 32 bits per sample.
	  https://xiph.org/flac/format.html#frame_header
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3518>

2022-11-15 11:56:35 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Don't replace 404 errors with "no auth protocol found"
	  When getting a "404 Not Found" response from the DESCRIBE request, the
	  source produced a "No supported authentication protocol was found" error
	  instead of passing on the 404, which was confusing.
	  Only produce this error message when we're handling a response of "401
	  Unauthorized" without a compatible WWW-Authenticate header.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3493>

2022-11-16 10:36:32 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  Revert "rtspsrc: Only EOS on timeout if all streams are timed out/EOS"
	  This reverts commit d186e195684548f13855ba5e9ef618a0a5b8951b.
	  This unearthed a whole bunch of other issues for which lots of
	  other fixes all over the place were required, so let's revert
	  the backport into the stable branch for now.
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1530
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3271
	  Fixes #1532
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3422>

2020-09-02 10:49:40 +0100  Justin Chadwell <me@jedevc.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: use unsigned int types to store result of QT_UINT32
	  In a few cases throughout qtdemux, the results of QT_UINT32 were being
	  stored in a signed integer, which could cause subtle bugs in the case of
	  an integer overflow, even allowing the the result to equal a negative
	  number!
	  This patch prevents this by simply storing the results of this function
	  call properly in an unsigned integer type. Additionally, we fix up the
	  length checking with stsd parsing to prevent cases of child atoms
	  exceeding their parent atom sizes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3367>

2022-11-04 17:48:01 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ext/qt/gstqtglutility.cc:
	  qt: initialize GError properly in gst_qt_get_gl_wrapcontext()
	  Spotted by Claus Stovgaard.
	  Fixes #1545
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3339>

2022-11-04 11:10:52 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/gstqtmux.c:
	  qtmux: Add durations to raw audio buffers from the raw audio adapter in prefill mode
	  This ensures that a duration can also be calculated and stored for the
	  last buffer at EOS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3338>

2022-11-04 10:49:31 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/gstqtmux.c:
	  qtmux: Release object lock before posting an error message
	  GST_ELEMENT_ERROR() also takes the object lock and this would then
	  deadlock.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3338>

2022-10-21 16:23:08 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Only EOS on timeout if all streams are timed out/EOS
	  Otherwise a stream that is just temporarily inactive might time out and
	  then can never become active again because the EOS event was sent
	  already.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3271>

2022-01-21 14:21:18 +0100  Jonas Bonn <jonas@norrbonn.se>

	* gst/udp/gstmultiudpsink.c:
	  multiudpsink: allow binding to IPv6 address
	  When the sink is configured to create sockets with an explicit bind
	  address, then the created socket gets set to the udp_socket field
	  irregardless of whether the bind address indicated that the socket
	  family should be IPv4 or IPv6.  When binding to an IPv6 address, this
	  results in the following error:
	  gstmultiudpsink.c:1285:gst_multiudpsink_configure_client:<rtcpsink>
	  error: Invalid address family (got 10)
	  This patch adds a check of the address family being bound to and sets
	  the created socket to used_socket or used_socket_v6, accordingly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3183>

2022-10-14 01:23:04 +0000  Devin Anderson <danderson@microsoft.com>

	* gst/wavparse/gstwavparse.c:
	  wavparse: Avoid occasional crash due to referencing freed buffer.
	  We've seen occasional crashes in the `wavparse` module associated with
	  referencing a buffer in `gst_wavparse_chain` that's already been freed.  The
	  reference is stolen when the buffer is transferred to the adapter with
	  `gst_adapter_push` and, IIUC, assuming the source doesn't hold a reference to
	  the buffer, the buffer could be freed during interaction with the adapter in
	  `gst_wavparse_stream_headers`.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3181>

2022-10-13 00:20:45 +0000  Devin Anderson <danderson@microsoft.com>

	* gst/wavparse/gstwavparse.c:
	* tests/check/elements/wavparse.c:
	* tests/files/corruptheadertestsrc.wav:
	  wavparse: Fix crash that occurs in push mode when header chunks are corrupted in certain ways.
	  In the case that a test is provided for, the size of the `fmt ` chunk is
	  changed from 16 bytes to 18 bytes (bytes 17 - 20 below):
	  ```
	  $ hexdump -C corruptheadertestsrc.wav
	  00000000  52 49 46 46 e4 fd 00 00  57 41 56 45 66 6d 74 20  |RIFF....WAVEfmt |
	  00000010  12 00 00 00 01 00 01 00  80 3e 00 00 00 7d 00 00  |.........>...}..|
	  00000020  02 00 10 00 64 61 74 61                           |....data|
	  00000028
	  ```
	  (Note that the original file is much larger.  This was the smallest sub-file
	  I could find that would generate the crash.)
	  Note that, while the same issue doesn't cause a crash in pull mode, there's a
	  different issue in that the file is processed successfully as if it was a .wav
	  file with zero samples.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3174>

2022-10-08 01:03:13 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/multifile/gstsplitmuxpartreader.c:
	  splitmuxsrc: don't queue data on unlinked pads
	  Once a pad has returned NOT_LINKED, the part reader shouldn't let its
	  corresponding data queue run full and eventually (after 20 seconds)
	  stall playback.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3169>

2022-10-12 18:40:25 +0100  Tim-Philipp Müller <tim@centricular.com>

	* docs/gst_plugins_cache.json:
	* meson.build:
	  Back to development

=== release 1.20.4 ===

2022-10-12 16:39: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.20.4

2022-10-12 16:39:40 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Update ChangeLogs for 1.20.4

2022-09-30 18:57:01 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/multifile/gstsplitmuxpartreader.c:
	  splitmuxsrc: don't consider unlinked pads when deactivating part
	  If splitmuxsrc exposes multiple pads, but only one is linked, part pads
	  will never see an EOS event. This shouldn't prevent the part from being
	  eventually deactivated.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3148>

2022-10-06 15:02:22 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Retry SETUP with non-compliant URL resolution on "Bad Request" and "Not found"
	  Various RTSP servers/cameras assume base and control URL to be simply
	  appended instead of being resolved according to the relative URL
	  resolution algorithm as mandated by the RTSP specification.
	  To work around this, try using such a non-compliant control URL if the
	  server didn't like the URL used in the first SETUP request.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1447
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/922
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3137>

2022-09-27 13:56:54 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: guard against timestamp calculation overflow in gap event loop
	  Could possibly cause an endless loop.
	  Fixes #1400.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3085>

2022-09-02 17:21:43 +0300  Sebastian Dröge <sebastian@centricular.com>

	* tests/check/elements/rtpjitterbuffer.c:
	  rtpjitterbuffer: Add test for crash caused by removing timers twice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2996>

2022-09-02 12:20:58 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: Make it more explicit that update_rtx_timers() takes ownership of the passed in timer
	  It is not valid anymore afterwards and must not be used, otherwise an
	  already freed pointer might be used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2996>

2022-09-02 12:20:30 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: Don't shadow variable
	  While this didn't cause any problems in this context it is simply
	  confusing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2996>

2022-09-02 12:19:26 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: Change RTX timer availability checks to assertions
	  It's impossible to end up in the corresponding code without a timer for
	  RTX packets because otherwise it would be an unsolicited RTX packet and
	  we would've already returned early.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2996>

2022-09-02 12:17:39 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: Only unschedule timers for late packets if they're not RTX packets and only once
	  Timers for RTX packets are dealt with later in update_rtx_timers(), and
	  timers for non-RTX packets would potentially also be unscheduled a
	  second time from there so avoid that.
	  Also don't shadow the timer variable from the outer scope but instead
	  make use of it directly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2996>

2022-08-18 17:08:51 +0300  Raul Tambre <raul@tambre.ee>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	* tests/check/elements/rtpjitterbuffer.c:
	  rtpjitterbuffer: remove lost timer for out of order packets
	  When receiving old packets remove the running lost timer if present.
	  This fixes incorrect reporting of a lost packet even if it arrived in time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2995>

2022-08-26 18:42:44 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtp/gstrtpvp8depay.c:
	  rtpvp8depay: If configured to wait for keyframes after packet loss, also do that if incomplete frames are detected
	  This can happen if the data inside the packets is incomplete without the
	  seqnums being discontinuous because of ULPFEC being used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2988>

2022-08-24 17:30:34 +0800  Jianhui Dai <jianhui.j.dai@intel.com>

	* sys/v4l2/gstv4l2allocator.c:
	  v4l2allocator: Fix invalid imported dmabuf fd
	  Fix a typo that set userptr to dmabuf fd. It leads to failure of
	  dmabuf-import io-mode.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2940>

2022-08-23 10:28:30 +0000  zhiyuan.liu <zhiyuan.liu@seraphic-corp.com>

	* gst/isomp4/gstisoff.c:
	  isoff: Fix earliest pts field parse issue
	  earliest pts will be covered by first_offset field on version 0 case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2934>

2022-08-17 09:11:52 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxsrc.c:
	  splitmuxsrc: Stop pad task before cleanup
	  When stopping the element, make sure the pad task
	  is stopped before destroying the part readers.
	  Closes a race where the pad task might access
	  a freed pointer.
	  Also add a guard against this sort of thing
	  by holding a ref to the reader in the pad loop.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2902>

2022-08-12 20:20:43 +1000  Jan Schmidt <jan@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Avoid crash on reconfiguring.
	  When reconfiguring a stream that never created
	  an output pad, don't access a NULL GstPad pointer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2900>

2022-08-15 14:30:50 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	  v4l2bufferpool: Fix debug trace
	  The tracing of the buffer pointer was done on the secondary pointer, which
	  does not match with other traces of the same buffer. This made the trace
	  confusing and less useful.
	  Fixes #1379
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2898>

2022-08-12 13:20:01 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Consider the actual control base URI also in case the connection URI contains a query string
	  That is, get rid of unnecessary and wrong special-casing.
	  This could always use gst_rtsp_url_get_request_uri_with_control() but as
	  we only have the control base URI as string it is easier to just call
	  gst_uri_join_strings().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2877>

2022-08-12 02:20:40 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/rtpmanager/gstrtpst2022-1-fecenc.c:
	  rtpst2022-1-fecenc: Drain column packets on EOS
	  Otherwise we won't send the protection packets for the last few
	  packets when a stream ends.
	  Also send EOS on the FEC src row pad immediately, and on the FEC src
	  column pad after draining is complete. This makes it so that the FEC
	  src pads on rtpbin behave the same way as the RTCP src pads on rtpbin
	  when EOS is received on the send_rtp_sink pad.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2874>

2022-08-11 08:48:08 +0200  Edward Hervey <edward@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Don't use invalid values from failed trex parsing
	  If parsing the fragment default values (`trex` atom) failed, don't try to
	  compute a bogus sample_description_id value.
	  Fixes #1369
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2862>

2022-08-04 18:09:52 +0800  Haihua Hu <jared.hu@nxp.com>

	* gst/alpha/gstalpha.c:
	  alpha: fix stride issue when out buffer has padding on right
	  if outbuf has padding on right, need jump to next line use stride,
	  otherwise downstream element will show a wrong picture when use the
	  same stride
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2854>

2022-05-25 18:40:30 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtsp+rtmp: Forward warning added to tls-validation-flags to our users
	  With the 2.72 release, glib-networking developers have decided that
	  TLS certificate validation cannot be implemented correctly by them, so
	  they've deprecated it.
	  In a nutshell: a cert can have several validation errors, but there
	  are no guarantees that the TLS backend will return all those errors,
	  and things are made even more complicated by the fact that the list of
	  errors might refer to certs that are added for backwards-compat and
	  won't actually be used by the TLS library.
	  Our best option is to ignore the deprecation and pass the warning onto
	  users so they can make an appropriate security decision regarding
	  this.
	  We can't deprecate the tls-validation-flags property because it is
	  very useful when connecting to RTSP cameras that will never get
	  updates to fix certificate errors.
	  Relevant upstream merge requests / issues:
	  https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2214
	  https://gitlab.gnome.org/GNOME/glib-networking/-/issues/179
	  https://gitlab.gnome.org/GNOME/glib-networking/-/merge_requests/193
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2818>

2022-07-27 15:44:09 +0200  Adrian Fiergolski <adrian.fiergolski@fastree3d.com>

	* gst/videofilter/gstvideoflip.c:
	  videoflip: Fix caps negotiation when method is selected
	  The caps negotiation should respect the selected method to the test pipeline below works properly.
	  gst-launch-1.0 videotestsrc ! video/x-raw,width=320,height=600 ! videoflip method=clockwise ! video/x-raw,width=600,height=320 ! fakesink
	  Signed-off-by: Adrian Fiergolski <adrian.fiergolski@fastree3d.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2815>

2022-07-24 23:44:10 -0400  fduncanh <fduncanh@gmail.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object.c: add support for Apple's full-range bt709 colorspace variant
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2806>

2022-07-08 18:22:58 +0800  Elliot Chen <elliot.chen@nxp.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	  v4l2: fix the critical log when unreference the buffer with no data
	  In the trick mode, driver may queue a valid buffer follow by an
	  empty buffer which has no valid data to indicate EOS.For the empty
	  buffer whose memory is multi-plane, need to resize it before
	  unreference it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2794>

2022-07-15 13:22:14 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/qt/qtglrenderer.cc:
	  qt: Fix another instance of Qt/GStreamer both defining `GLsync` differently
	  In file included from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/gstglfuncs.h:87,
	  from ../gst-plugins-good-1.20.3/ext/qt/qtglrenderer.cc:14:
	  ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/glprototypes/gstgl_compat.h:40:18: error: conflicting declaration 'typedef void* GLsync'
	  40 | typedef gpointer GLsync;
	  |                  ^~~~~~
	  In file included from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtGui/qopengl.h:127,
	  from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsggeometry.h:44,
	  from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsgnode.h:43,
	  from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qsgrendererinterface.h:43,
	  from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/qquickwindow.h:44,
	  from ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtQuick/QQuickWindow:1,
	  from ../gst-plugins-good-1.20.3/ext/qt/qtglrenderer.cc:6:
	  ../gstreamer1.0-plugins-good/1.20.3-r0/recipe-sysroot/usr/include/QtGui/qopengles2ext.h:24:26: note: previous declaration as 'typedef struct __GLsync* GLsync'
	  24 | typedef struct __GLsync *GLsync;
	  |                          ^~~~~~
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2771>

2022-07-15 06:40:05 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/osxaudio/gstosxaudiodeviceprovider.c:
	* sys/osxaudio/gstosxcoreaudiohal.c:
	  osxaudio: Fix deprecation in macOS 12.0
	  kAudioObjectPropertyElementMaster has been renamed to
	  kAudioObjectPropertyElementMain
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2764>

2022-07-12 21:19:35 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxsink.c:
	  splitmuxsink: Fix memory leak
	  Fix a leak of the buffer info struct when reaching
	  EOS without data on the reference input.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2753>

2022-04-14 01:19:51 +0900  Seungha Yang <seungha@centricular.com>

	* gst/multifile/gstsplitmuxsink.c:
	* tests/check/elements/splitmuxsink.c:
	  splitmuxsink: Don't crash on EOS without buffer
	  Fix a case where upstream pushed EOS without buffers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2753>

2022-05-28 15:04:10 -0400  fduncanh <fduncanh@gmail.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: replace multiple decoder bug warnings with single one
	  Achieve this by dropping frames after a drain if the driver failed to so.
	  This works around RaspberryPi driver issue [1].
	  [1] https://github.com/raspberrypi/linux/issues/5059#issuecomment-
	  Fixes #1103
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2710>

2022-06-29 10:55:13 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  coding style: allow declarations after statement
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/
	  and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2702>

2022-06-25 19:50:10 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/meson.build:
	  tests: skip unit tests for dependency-less elements that have been disabled
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2672>

2022-06-28 01:29:06 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/dv/meson.build:
	  dv, opusparse: fix duplicate symbols in static build
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1262
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2673>

2022-06-24 12:10:02 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tests/examples/jack/meson.build:
	  examples: don't try and build jack examples if jack was disabled
	  Fixes meson build ERROR: Unknown variable "libjack_dep".
	  Fixes #1301
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2658>

2022-02-07 17:51:39 -0500  Tristan Matthews <tmatth@videolan.org>

	* gst/matroska/matroska-mux.c:
	  matroskamux: allow width+height caps changes for VP8/9
	  For VP8 and VP9, width+height changes are signalled inband.
	  Refs https://github.com/Kurento/bugtracker/issues/535 and
	  https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047/diffs?commit
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2640>

2022-02-07 16:41:40 -0500  Tristan Matthews <tmatth@videolan.org>

	* gst/matroska/matroska-mux.c:
	  matroskamux: allow width + height changes for avc3|hev1
	  For avc3 and hev1, the intent was to allow more flexibility for caps changes
	  (see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1047/diffs?commit_id=9bd8d608d5bae27ec5ff09e733f76ca32b17420c)
	  however width and resolution were previously omitted.
	  avc3 and hev1 specifically support changing stream-parameters on the fly, whereas avc1/hvc1 disallow in-band SPS.
	  This commit allows for changes to width and height for these which is in line with matroskamux's behaviour prior to 1.14.0.
	  Practically speaking, one use case where this is commonly seen is when capturing a WebRTC stream, as the browser will adapt the resolution live.
	  Suggested-by: Mathieu Duponchelle "<mathieu@centricular.com>"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2640>

2022-06-16 00:59:00 +0100  Tim-Philipp Müller <tim@centricular.com>

	* docs/gst_plugins_cache.json:
	* meson.build:
	  Back to development
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2619>

=== release 1.20.3 ===

2022-06-15 23:36:18 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	* NEWS:
	* RELEASE:
	* docs/gst_plugins_cache.json:
	* gst-plugins-good.doap:
	* meson.build:
	  Release 1.20.3

2022-06-15 23:36:10 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Update ChangeLogs for 1.20.3

2022-05-18 10:23:15 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-demux.c:
	  matroskademux: Avoid integer-overflow resulting in heap corruption in WavPack header handling code
	  blocksize + WAVPACK4_HEADER_SIZE might overflow gsize, which then
	  results in allocating a very small buffer. Into that buffer blocksize
	  data is memcpy'd later which then causes out of bound writes and can
	  potentially lead to anything from crashes to remote code execution.
	  Thanks to Adam Doupe for analyzing and reporting the issue.
	  CVE: CVE-2022-1920
	  https://gstreamer.freedesktop.org/security/sa-2022-0004.html
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1226
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2613>

2022-05-30 10:15:37 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fix integer overflows in zlib decompression code
	  Various variables were of smaller types than needed and there were no
	  checks for any overflows when doing additions on the sizes. This is all
	  checked now.
	  In addition the size of the decompressed data is limited to 200MB now as
	  any larger sizes are likely pathological and we can avoid out of memory
	  situations in many cases like this.
	  Also fix a bug where the available output size on the next iteration in
	  the zlib decompression code was provided too large and could
	  potentially lead to out of bound writes.
	  Thanks to Adam Doupe for analyzing and reporting the issue.
	  CVE: tbd
	  https://gstreamer.freedesktop.org/security/sa-2022-0003.html
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1225
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2611>

2022-05-18 11:24:37 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-read-common.c:
	  matroskademux: Fix integer overflows in zlib/bz2/etc decompression code
	  Various variables were of smaller types than needed and there were no
	  checks for any overflows when doing additions on the sizes. This is all
	  checked now.
	  In addition the size of the decompressed data is limited to 120MB now as
	  any larger sizes are likely pathological and we can avoid out of memory
	  situations in many cases like this.
	  Also fix a bug where the available output size on the next iteration in
	  the zlib/bz2 decompression code was provided too large and could
	  potentially lead to out of bound writes.
	  Thanks to Adam Doupe for analyzing and reporting the issue.
	  CVE: CVE-2022-1922, CVE-2022-1923, CVE-2022-1924, CVE-2022-1925
	  https://gstreamer.freedesktop.org/security/sa-2022-0002.html
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1225
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2611>

2022-05-18 12:00:48 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/avi/gstavidemux.c:
	  avidemux: Fix integer overflow resulting in heap corruption in DIB buffer inversion code
	  Check that width*bpp/8 doesn't overflow a guint and also that
	  height*stride fits into the provided buffer without overflowing.
	  Thanks to Adam Doupe for analyzing and reporting the issue.
	  CVE: CVE-2022-1921
	  See https://gstreamer.freedesktop.org/security/sa-2022-0001.html
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1224
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2609>

2022-05-19 04:16:25 +0000  Adam Doupe <adamdoupe@gmail.com>

	* gst/smpte/gstmask.c:
	  smpte: Fix integer overflow with possible heap corruption in GstMask creation.
	  Check that width*height*sizeof(guint32) doesn't overflow when
	  allocated user_data for mask, potential for heap overwrite when
	  inverting.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1231
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2605>

2022-06-07 17:31:43 +0200  Bastien Nocera <hadess@hadess.net>

	* ext/gtk/gtkgstglwidget.c:
	  gtk: Fix double-free when OpenGL can't be initialised
	  gtk_gl_area_get_error() doesn't return a copy of the error, but just the
	  error. If initialising OpenGL fails, then GtkGstGLWidget will consume
	  the error, and cause GTK to try and display freed memory.
	  ==50914== Invalid read of size 8
	  ==50914==    at 0x4C4CB8A: gtk_gl_area_draw_error_screen (gtkglarea.c:663)
	  ==50914==    by 0x4C4CB8A: gtk_gl_area_draw (gtkglarea.c:687)
	  ==50914==    by 0x4E061CA: gtk_widget_draw_internal (gtkwidget.c:7084)
	  ==50914==    by 0x4BAEFB1: gtk_container_propagate_draw (gtkcontainer.c:3854)
	  ==50914==    by 0x4D4B6BF: gtk_stack_render (gtkstack.c:2207)
	  ==50914==    by 0x4BB4B03: gtk_css_custom_gadget_draw (gtkcsscustomgadget.c:159)
	  ==50914==    by 0x4BBA4C4: gtk_css_gadget_draw (gtkcssgadget.c:885)
	  ==50914==    by 0x4D4D780: gtk_stack_draw (gtkstack.c:2119)
	  ==50914==    by 0x4E061CA: gtk_widget_draw_internal (gtkwidget.c:7084)
	  ==50914==    by 0x4BAEFB1: gtk_container_propagate_draw (gtkcontainer.c:3854)
	  ==50914==    by 0x4BAF0C3: gtk_container_draw (gtkcontainer.c:3674)
	  ==50914==    by 0x4E061CA: gtk_widget_draw_internal (gtkwidget.c:7084)
	  ==50914==    by 0x4BAEFB1: gtk_container_propagate_draw (gtkcontainer.c:3854)
	  ==50914==  Address 0x187a0818 is 8 bytes inside a block of size 16 free'd
	  ==50914==    at 0x48480E4: free (vg_replace_malloc.c:872)
	  ==50914==    by 0x49A5B8C: g_free (gmem.c:218)
	  ==50914==    by 0x49C1013: g_slice_free1 (gslice.c:1183)
	  ==50914==    by 0x4990DE4: g_error_free (gerror.c:870)
	  ==50914==    by 0x4990FE9: g_clear_error (gerror.c:1052)
	  ==50914==    by 0x1A489780: _get_gl_context (gtkgstglwidget.c:540)
	  ==50914==    by 0x1A4863CB: gst_gtk_invoke_func (gstgtkutils.c:39)
	  ==50914==    by 0x49A3834: g_main_context_invoke_full (gmain.c:6137)
	  ==50914==    by 0x1A486450: gst_gtk_invoke_on_main (gstgtkutils.c:59)
	  ==50914==    by 0x1A48A29E: gtk_gst_gl_widget_init_winsys (gtkgstglwidget.c:632)
	  ==50914==    by 0x1A4887E7: gst_gtk_gl_sink_start (gstgtkglsink.c:267)
	  ==50914==    by 0x6579810: gst_base_sink_change_state (gstbasesink.c:5662)
	  ==50914==  Block was alloc'd at
	  ==50914==    at 0x484586F: malloc (vg_replace_malloc.c:381)
	  ==50914==    by 0x49A9278: g_malloc (gmem.c:125)
	  ==50914==    by 0x49C1BA5: g_slice_alloc (gslice.c:1072)
	  ==50914==    by 0x49C3BCC: g_slice_alloc0 (gslice.c:1098)
	  ==50914==    by 0x499096B: g_error_allocate (gerror.c:708)
	  ==50914==    by 0x4990AF1: UnknownInlinedFun (gerror.c:722)
	  ==50914==    by 0x4990AF1: g_error_copy (gerror.c:892)
	  ==50914==    by 0x4C4B9F9: gtk_gl_area_set_error (gtkglarea.c:1036)
	  ==50914==    by 0x4C4BAF7: gtk_gl_area_real_create_context (gtkglarea.c:346)
	  ==50914==    by 0x4B21B28: _gtk_marshal_OBJECT__VOIDv (gtkmarshalers.c:2730)
	  ==50914==    by 0x4920B78: UnknownInlinedFun (gclosure.c:893)
	  ==50914==    by 0x4920B78: g_signal_emit_valist (gsignal.c:3406)
	  ==50914==    by 0x4920CB2: g_signal_emit (gsignal.c:3553)
	  ==50914==    by 0x4C4B927: gtk_gl_area_realize (gtkglarea.c:308)
	  Reproduced by running:
	  MESA_GL_VERSION_OVERRIDE=2.7 totem
	  See https://gitlab.gnome.org/GNOME/totem/-/issues/522
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2567>

2022-06-03 18:35:54 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/audioparsers/gstaacparse.c:
	  aacparse: Avoid mismatch between src_caps and output_header_type
	  If our downstream caps didn't intersect, we attempted to convert between
	  raw and ADTS stream formats, if possible. If the caps still did not
	  intersect, we then used the modified `src_caps` but left the
	  `output_header_type` unmodified.
	  This caused a mismatch between caps and actual stream format.
	  Avoid this by first copying the `src_caps` to `convcaps` for the
	  additional intersection tests, replacing `src_caps` if we succeed.
	  While we're here, clean up the code a bit and remove the `codec_data`
	  field from outgoing ADTS caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2563>

2022-06-04 10:27:09 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/flv/gstflvdemux.c:
	* gst/flv/gstflvelement.c:
	  flvdemux: Actually make use of the debug category
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2560>

2022-06-01 16:14:24 +0200  Stéphane Cerveau <scerveau@collabora.com>

	* ext/soup/gstsoup.c:
	* ext/soup/gstsoupelement.c:
	* ext/soup/gstsouploader.c:
	  soup: fix soup debug category
	  Use soup debug category in souploader
	  for soup plugin element load.
	  Inititalize properly soup utils category.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2547>

2022-05-29 20:27:38 +1000  Jan Schmidt <jan@centricular.com>

	* gst/rtpmanager/gstrtpptdemux.c:
	  rtpptdemux: Don't GST_FLOW_ERROR when ignoring invalid packets
	  https://bugzilla.gnome.org/show_bug.cgi?id=741398 changed
	  rtpptdemux in 2014 to not post a GST_ELEMENT_ERROR on the
	  bus when dropping an invalid (non-RTP) packet, but still
	  returned GST_FLOW_ERROR upstream - so the pipeline still
	  stops, but now without a useful bus error.
	  Return GST_FLOW_OK instead, so the pipeline keeps
	  running. Some old telephony equipment can send invalid
	  packets before the real RTP traffic starts.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2523>

2022-05-28 16:46:04 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/jack/gstjackaudiosrc.c:
	  jack: Always use jack_free as specified by the docs
	  Fixes a crash on Windows due to a CRT mismatch. The JACK installation
	  still uses MSVCRT, and we the Universal CRT for both MinGW and MSVC.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2515>

2022-05-26 01:21:43 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/jack/meson.build:
	  jack: Add support for detecting libjack on Windows
	  No source code changes were necessary to get the plugin working on
	  Windows with MSVC.
	  Run QJackCtl and audiotestsrc ! jackaudiosink just works.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2515>

2022-05-24 16:07:13 +0800  Hou Qi <qi.hou@nxp.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: Reset transfer in gst_v4l2_object_acquire_format()
	  get_colorspace() checks input caps transfer when mapping V4L2_XFER_FUNC_709
	  back to V4L2_COLORSPACE_BT2020 and GST_VIDEO_TRANSFER_BT2020_12. After
	  receiving source change event, decoder will G_FMT and S_FMT again. So need
	  to reset transfer when acquiring format to avoid using the old transfer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2505>

2022-05-03 11:34:15 +0200  Stéphane Cerveau <scerveau@collabora.com>

	* ext/soup/gstsoup.c:
	* ext/soup/gstsoupelement.c:
	* ext/soup/gstsoupelements.h:
	* ext/soup/gstsouphttpclientsink.c:
	* ext/soup/gstsouphttpsrc.c:
	  soup: Fix plugin/element init
	  In case of per features registration such as the
	  customizable gstreamer-full library, each
	  element should check that the soup library can be loaded to
	  facilitate the element registration.
	  Initialize the debug category properly
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2491>

2022-05-23 21:24:40 -0400  Eli Schwartz <eschwartz@archlinux.org>

	* meson.build:
	  meson: use better zlib dependency fallback
	  zlib is required, and if it isn't found it is checked several ways and
	  then forced via subproject(). This code was added in commit
	  b93e37592a3ccc0eaece1c8fef2d362b1e5fe685, to account for systems where
	  zlib doesn't have pkg-config files installed.
	  But Meson already does dependency fallback, and also, since 0.54.0, does
	  the in-between checks for find_library('z') and has_header('zlib.h') via
	  the "system" type dependency. Simplify dependency lookup by marking it
	  as required, which also makes sure that the console log doesn't
	  confusingly list "not found".
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2486>

2022-05-16 14:14:46 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/deinterlace/gstdeinterlace.c:
	  deinterlace: Clean up error handling in chain and _push_history
	  - Consistently unref the chained buffer at the end of the chain
	  function, if we're not handing it off to `gst_pad_push`. This avoids a
	  few buffer leaks in the error paths in `_chain` and `_push_history`.
	  - When mapping the video frame fails, return a flow error instead of
	  crashing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2444>

2022-05-11 15:18:42 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* ext/vpx/gstvpxenc.c:
	  vpxenc: fix crash if encoder produces unmatching ts
	  If for some reason the encoder produces frames with a pts higher than
	  the input one, we were dropping all the video encoder frames and ended
	  up crashing when trying to access the pts of a NULL pointer returned by
	  gst_video_encoder_get_oldest_frame().
	  I hit this scenario by feeding a decreasing timestamp to vp8enc which
	  seem to confuse the encoder.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2436>

2022-05-13 01:42:21 +0000  Thibault Saunier <tsaunier@igalia.com>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Avoid holding lock GST_RTP_BIN_LOCK  when emitting pad-added
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2415>

2022-05-12 17:11:38 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Don't use tfdt for parsing subsequent trun boxes
	  The timestamp in the tfdt refers to the first trun box and if there are
	  multiple trun boxes then the distance between the first timestamps will
	  grow.
	  At some point this distance reaches a threshold and triggers the
	  resetting of the first sample's timestamp of this trun box to be reset
	  to the tfdt.
	  This threshold is implemented for files where there is a jump in the
	  timeline between fragments and where this can be detected via a jump
	  between the end timestamp of the previous fragment and the tfdt of the
	  next. This behaviour is preserved.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2414>

2022-04-28 09:19:57 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2videoenc.c:
	  v4l2videoenc: Setup crop rectangle if needed
	  Hantro H1 and Rockchip VEPU2 drivers will pad the width/height to a
	  multiple of 16. In order to obtain the right JPEG size, the image needs
	  to be cropped using the S_SELECTION API. This support is added as best
	  effort since older drivers may emulate this by looking at the capture
	  queue width/height.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2392>

2021-09-30 17:56:56 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>

	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2transform.c:
	  v4l2object: rename crop function to reflect its usage
	  The gst_v4l2_object_set_crop() is used for removing buffer
	  alignment padding. Give it a name that better reflects
	  that usage.  This helps to distinguish from cropping of the
	  input image (e.g. cropping at the image sensor on a captre
	  device), which can be  unrelated to the memory buffer padding,
	  especially if scaling is involved.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2392>

2022-05-05 20:36:04 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/gstqtmux.c:
	  mp4mux: Disable aggregator's default negotiation
	  mp4mux can't negotiate caps with upstream/downstream and always outputs
	  specific caps based on the input streams. This will always happen before
	  it produces the first buffers.
	  By having the default aggregator negotiation enabled the same caps
	  would be pushed twice in the beginning, and again every time a
	  reconfigure event is received.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2381>

2022-05-05 20:24:57 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/flv/gstflvmux.c:
	  flvmux: Disable aggregator's default negotiation
	  flvmux can't negotiate caps with upstream/downstream and always outputs
	  specific caps based on the input streams. This will always happen before
	  it produces the first buffers.
	  By having the default aggregator negotiation enabled the same caps
	  would be pushed twice in the beginning, and again every time a
	  reconfigure event is received.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2381>

2022-05-03 17:27:32 +1000  Matthew Waters <matthew@centricular.com>

	* gst/wavparse/gstwavparse.c:
	  wavparse: ensure that any pending segment is sent before an EOS event is sent
	  Specifically fixes seqnum handling when an aggregator-based element
	  (audiomixer et al) is downstream and a seek is performed that
	  immediately causes an EOS from wavparse.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2369>

2021-11-12 20:13:10 +0100  Ruben Gonzalez <rgonzalez@fluendo.com>

	* docs/gst_plugins_cache.json:
	  gst_plugin_load_file: force plugin reload if diff filename
	  If a file includes a new version of a plugin that exits in the
	  registry, the output of gst-inspect is incorrect. The output has the
	  correct version but incorrect filename, and element description.
