=== release 1.22.12 ===

2024-04-29 20:09:52 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2024-02-19 21:49:21 +0800  Tim Blechmann <tim@klingt.org>

	* sys/v4l2/v4l2_calls.c:
	  v4l2: silence valgrind warning
	  Valgrind complains about uninitialized memory used in an ioctl
	  Syscall param ioctl(VKI_V4L2_G_TUNER).reserved points to uninitialised byte(s)
	  at 0x719294F: ioctl (ioctl.c:36)
	  by 0x3126A817: gst_v4l2_fill_lists (v4l2_calls.c:185)
	  by 0x3126A817: gst_v4l2_open (v4l2_calls.c:589)
	  by 0x3123F1C2: gst_v4l2_device_provider_probe_device (gstv4l2deviceprovider.c:122)
	  by 0x3123F648: gst_v4l2_device_provider_device_from_udev (gstv4l2deviceprovider.c:301)
	  by 0x3123F998: provider_thread (gstv4l2deviceprovider.c:395)
	  by 0x796FA50: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7200.4)
	  by 0x710CAC2: start_thread (pthread_create.c:442)
	  by 0x719DA03: clone (clone.S:100)
	  Address 0x44008a34 is on thread 11's stack
	  in frame #1, created by gst_v4l2_open (v4l2_calls.c:524)
	  Uninitialised value was created by a stack allocation
	  at 0x3126A024: gst_v4l2_open (v4l2_calls.c:524)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6760>

2024-04-26 09:45:22 +0800  Tim Blechmann <tim@klingt.org>

	* ext/soup/gstsouphttpsrc.c:
	  soup: fix thread name
	  thread names should be below 16char, otherwise they won't be shown on
	  linux.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6738>

2024-04-12 16:57:00 +0800  Qian Hu (胡骞) <qian.hu@mediatek.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: fix wrong full_range offset when parsing colr box
	  use colr_data[18] >> 7 to get full range information, instead
	  of colr_data[17] >> 7
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6641>

2024-04-07 19:39:58 +0900  Jimmy Ohn <yongjin.ohn@lge.com>

	* ext/pulse/pulsedeviceprovider.c:
	  pulsedeviceprovider: Add is_default_device_name function and missing lock
	  Add is_default_device_name function to simplify compare device type
	  name and fix the missing lock when accessing default_sink_name and
	  default_source_name.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6640>

2024-04-04 13:21:44 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Don't re-use a variable for a completely different purpose temporarily
	  During RTP-Info synchronization, clock_base was temporarily switched
	  from the actual clock-base to the base RTP time and then back some lines
	  later.
	  Instead directly work with the base RTP time. The comment about using a
	  signed variable for convenience doesn't make any sense because all
	  calculations done with the value are unsigned.
	  Similarly, rtp_clock_base was overridden with the rtp_delta when
	  calculating it, which was fine because it is not used anymore
	  afterwards. Instead, introduce a new variable `rtp_delta` to make this
	  calculation clearer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6639>

2024-04-04 13:19:18 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Convert clock-base to extended RTP timestamp correctly
	  It's not in the same period as the current RTP base time but always in
	  the very first period. This avoids using it again at a much later time.
	  The code in question is only triggered with rtcp-sync=rtp-info.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6639>

2024-04-04 13:11:54 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: Use an extended RTP timestamp for the clock-base
	  It is compared to other extended RTP timestamps all over rtpjitterbuffer
	  and since 4df3da3bab8 the initial extended RTP timestamp is not equal
	  anymore to the plain RTP time.
	  Continue passing a non-extended RTP timestamp via the `sync` signal for
	  backwards compatibility. It will always be a timestamp inside the first
	  extended timestamp period anyway.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6639>

2024-04-01 14:41:21 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/audioparsers/gstwavpackparse.c:
	  wavpackparse: Use an unsigned integer for the block size calculations
	  It's never negative.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6564>

2024-04-01 14:36:19 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/audioparsers/gstwavpackparse.c:
	  wavpackparse: Fix potential integer overflow on ID_ODD_SIZE blocks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6564>

2024-04-01 14:33:05 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/audioparsers/gstwavpackparse.c:
	* gst/audioparsers/gstwavpackparse.h:
	  wavpackparse: Explicitly handle ID_WVX_NEW_BITSTREAM
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6564>

2024-03-29 11:14:54 +0900  Elliot Chen <elliot.chen@nxp.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: fix error in calculating padding bottom for tile format
	  This is a regression while porting to arbitrary tile dimensions
	  introduced in !3424.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6565>

2024-03-28 19:49:46 +0000  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/elements/rtpred.c:
	  tests: rtpred: fix out-of-bound writes
	  Don't write more data to the buffer than we allocated
	  space for.
	  Fixes #3312
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6479>

2024-03-20 00:07: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/6408>

=== release 1.22.11 ===

2024-03-19 22:01:08 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2023-04-27 22:12:15 +0800  Haihua Hu <jared.hu@nxp.com>

	* sys/v4l2/gstv4l2src.c:
	  v4l2src: fix cannot reuse current caps when fixate caps in negotiation
	  when regotiation happens, v4l2src will check if it can reuse current caps,
	  but we need check if current caps is subset of all query caps from downstream
	  instead of check it with query caps one by one.
	  Assuming that the current caps is not the subset of first caps from query caps,
	  it will go to try fmt. when try fmt success, v4l2src will make pending_set_fmt
	  to TRUE and going to reset.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6393>

2024-03-13 13:39:21 +0100  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: remove 'deprecated' flag from the 'push-backchannel-sample' signal
	  It seems that it was added by accident when copying from push-backchannel-buffer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6366>

2024-03-11 10:39:27 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/mpg123/gstmpg123audiodec.c:
	  mpg123audiodec: Correctly handle the case of clipping all decoded samples
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3365
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6360>

2024-01-31 00:32:22 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Don't invoke close when stopping if we've started cleanup
	  When we're doing a state change from PLAYING to NULL, first we invoke
	  gst_rtspsrc_loop_send_cmd_and_wait (..., CMD_CLOSE, ...) during
	  PAUSED_TO_READY which will schedule a TEARDOWN to happen async on the
	  task thread.
	  The task thread will call gst_rtspsrc_close(), which will send the
	  TEARDOWN and once it's complete, it will call gst_rtspsrc_cleanup()
	  without taking any locks, which frees src->streams.
	  At the same time however, the state change in the app thread will
	  progress further and in READY_TO_NULL it will call gst_rtspsrc_stop()
	  which calls gst_rtspsrc_close() a second time, which accesses
	  src->streams (without a lock again), which leads to simultaneous
	  access of src->streams, and a segfault.
	  So the state change and the cleanup are racing, but they almost always
	  complete sequentially. Either the cleanup sets src->streams to NULL or
	  _stop() completes first. Very rarely, _stop() can start while
	  src->streams is being freed in a for loop. That causes the segfault.
	  This is unlocked access is unfixable with more locking, it just leads
	  to deadlocks. This pattern has been observed in rtspsrc a lot: state
	  changes and cleanup in the element are unfixably racy, and that
	  foundational issue is being addressed separately via a rewrite.
	  The bandage fix here is to prevent gst_rtspsrc_stop() from accessing
	  src->streams after it has already been freed by setting src->state to
	  INVALID.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6346>

2024-02-16 18:11:07 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/rtp/gstrtpgstpay.c:
	  rtpgstpay: flush on EOS
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6294>

2023-08-11 13:06:24 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtp/gstrtpgstpay.c:
	* gst/rtp/gstrtpgstpay.h:
	  rtpgstpay: Delay pushing of event packets until the next buffer
	  And also re-timestamp them with the current buffer's PTS.
	  Not doing so keeps the timestamps of event packets as
	  GST_CLOCK_TIME_NONE or the timestamp of the previous buffer, both of
	  which are bogus.
	  Making sure that (especially) the first packet has a valid timestamp
	  allows putting e.g. the NTP timestamp RTP header extension on it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6294>

2024-02-26 19:17:27 -0600  Elizabeth Figura <zfigura@codeweavers.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Do not set channel-mask to zero
	  Leave it uninitialized, so that the downstream decoder will initialize it appropriately. Setting it to zero is wrong.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6288>

2024-03-01 02:44:57 +1100  Jan Schmidt <jan@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Parse Speed/Scale before Range in responses
	  Parse the speed and scale in the server's response
	  *before* the range, so that the range start/stop
	  are swapped (or not swapped) correctly based
	  on the server's actual chosen values. Otherwise,
	  the old rate from the segment is used - what the
	  last seek asked for, but not necessarily what
	  the server chooses.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6287>

2024-02-29 12:06:25 +1100  Jan Schmidt <jan@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Handle queries and events with no manager
	  When doing direct output with no session manager, we still
	  want to respond to queries and events from downstream, so
	  install the handlers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6287>

2024-02-29 11:14:47 +1100  Jan Schmidt <jan@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: return NO_PREROLL on PLAYING->PAUSED too
	  When transitioning back to PAUSED and rtspsrc is live, return
	  NO_PREROLL so the pipeline knows to skip preroll here too.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6287>

2024-02-24 11:07:26 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Consider 503 Service Not Available when handling broken control urls
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6272>

2024-02-23 11:45:50 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/soup/meson.build:
	* meson_options.txt:
	  soup: Re-add soup-lookup-dep option
	  It's still useful on Linux since it ensures that the tests are going
	  to be built, since they use the same dep lookup as the plugin now.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6198>

2024-02-21 13:45:47 +0100  Arnaud Vrac <avrac@freebox.fr>

	* ext/adaptivedemux2/meson.build:
	  adaptivedemux2: fix build with recent meson
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6198>

2024-02-21 02:30:11 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemuxelement.c:
	* ext/adaptivedemux2/meson.build:
	* ext/soup/gstsoupelement.c:
	* ext/soup/gstsouphttpsrc.c:
	* ext/soup/gstsouploader.c:
	* ext/soup/gstsouploader.h:
	* ext/soup/gstsouputils.h:
	* ext/soup/meson.build:
	* meson_options.txt:
	* tests/check/meson.build:
	  soup: Link to libsoup in all cases on non-Linux
	  We have unsolvable issues on macOS because of this, and the feature
	  was added specifically for issues that occur on Linux distros since
	  they ship both libsoup 2.4 and 3.0.
	  Everyone else should just pick one and use it, since you cannot mix
	  the two in a single process anyway.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1171
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6198>

2024-02-05 22:39:29 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tests/check/meson.build:
	  good/tests: Don't enable soup tests if soup is disabled
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3268
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6198>

2024-01-10 19:10:55 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/soup/gstsouploader.c:
	  soup: Avoid using GUri before GLib 2.66
	  Let's use gpointer for now
	  Fixes: #3169
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6198>

2023-12-06 11:24:35 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/adaptivedemux2/downloadhelper.c:
	* ext/soup/gstsouploader.c:
	* ext/soup/gstsouploader.h:
	* ext/soup/stub/soup.h:
	  adaptivedemux2: Parse cookies in downloadhelper
	  We need to parse any cookie headers, otherwise we end up
	  sending back attributes likes "Secure" and "httponly" which break
	  some servers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6198>

2023-03-20 11:20:30 +0100  Edward Hervey <edward@centricular.com>

	* gst/rtp/gstrtph264pay.c:
	* gst/rtp/gstrtph265pay.c:
	  plugins: Fix wrong enum usage
	  gcc 13 now detects conflicting enum usages. Fix the various cases where it was wrong
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6234>

2024-02-22 20:35:28 +0900  Seungha Yang <seungha@centricular.com>

	* ext/jpeg/gstjpegdec.c:
	  jpegdec: Fix progressive/interlaced detection
	  If input height and parsed one are identical, do not consider it as interlaced
	  Fixing below pipeline:
	  gst-launch-1.0 videotestsrc ! video/x-raw,format=I420,width=640,height=10 \
	  ! jpegenc ! jpegparse ! jpegdec ! videoconvert ! autovideosink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6229>

2024-02-26 23:14:54 +0900  Seungha Yang <seungha@centricular.com>

	* ext/jpeg/gstjpegdec.c:
	  jpegdec: Remove trailing white space
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6229>

2024-02-27 14:22:58 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Increase rank to PRIMARY for autoplug purposes
	  This affects autoplug by gst_element_make_from_uri() in, for example,
	  uridecodebin. The element should've already been PRIMARY rank, but it
	  was NONE because gst_element_make_from_uri() doesn't ignore NONE rank
	  elements when searching for element factories, unlike decodebin.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/502
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6231>

2024-02-17 23:33:26 +1100  Jan Schmidt <jan@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Reset combined flows after a seek before restarting
	  After a flushing seek, rtspsrc doesn't reset the last_ret value for
	  streams, so might immediately shut down again when it resumes pushing
	  buffers to pads due to a cached `GST_FLOW_FLUSHING` result
	  Prevent a stored flushing value from immediately stopping
	  playback again by resetting pad flows before (re)starting
	  playback.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6216>

2024-02-13 16:27:38 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.22.10 ===

2024-02-13 14:39:08 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2023-05-11 20:01:45 +0200  Piotr Brzeziński <piotr@centricular.com>

	* sys/osxvideo/osxvideosink.m:
	  macos: Set activation policy in osxvideosink and glimagesink
	  Upon creating a window, glimagesink and osxvideosink now set the policy to
	  NSApplicationActivationPolicyRegular, which lets us show an icon in the Dock
	  for convenience and appear in the top menu bar like other apps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6103>

2024-01-25 20:13:51 +0100  Jonas Kvinge <jonas@jkvinge.net>

	* ext/taglib/meson.build:
	  meson: Set cpp_std to c++17 for TagLib
	  TagLib uses C++17 as of version 2.0.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6097>

2024-02-04 14:00:01 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/elements/souphttpsrc.c:
	  test: souphttpsrc: update test_icy_stream url
	  The old URL would result in multiple redirects, which
	  causes memory leaks with old versions of libsoup as
	  used on the CI.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6049>

2024-01-25 00:18:12 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.22.9 ===

2024-01-24 18:21:13 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2024-01-22 17:01:19 -0500  Dan Searles <Dan.Searles@garmin.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: fix ttl setting for udpsink[1]
	  Fix ttl setting being incorrectly applied to udpsink[0] rather
	  than to udpsink[1].
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5967>

2024-01-22 12:18:25 -0500  Dan Searles <Dan.Searles@garmin.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: set multicast-iface on udpsinks
	  Copy rtspsrc property multicast-iface to its udpsinks to
	  allow messages over those sinks back to the server to work (and
	  prevent 'Network unreachable' warnings).
	  Closes: #3239
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5967>

2023-12-06 20:42:32 -0800  Xavier Claessens <xavier.claessens@collabora.com>

	* sys/v4l2/gstv4l2src.c:
	  v4l2src: Consider framerate during caps selection
	  This simplifies the way it picks the closest caps to preference and take into
	  consideration the framerate to avoid picking high resolution at 5fps or so.
	  Simply calculate a "distance" of caps A and B from the preference and put
	  closest first, sorting by framerate first.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5956>

2024-01-12 12:51:27 +0000  Philippe Normand <philn@igalia.com>

	* ext/vpx/gstvpxdec.c:
	  vpxdec: Use appropriate domain and code for decoding errors
	  STREAM domain and DECODE error is commonly used in other decoders. ENCODE is for
	  encoders.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5918>

2023-11-16 11:42:27 +0530  Sanchayan Maity <sanchayan@asymptotic.io>

	* gst/rtpmanager/gstrtphdrext-clientaudiolevel.c:
	  rtphdrext-clientaudiolevel: Fix level value being written by the extension
	  When level value is greater than 127, it was being clamped but this clamped
	  value was not the one being actually used. For level values greater than 127
	  this resulted in an incorrect value being used. As an example, a level value
	  of 187, after and'ed with 0x7F, it would result in 0x3B being reported as the
	  level value.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5894>

2023-12-22 12:56:33 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpsession.c:
	  rtpsession: Only warn once if configured latency needs to be known but isn't yet
	  Otherwise we would warn about this once for every single packet until
	  the LATENCY event is received.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5874>

2023-12-18 11:03:57 +0900  Chao Guo <chao.guo@nxp.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: clear old fds in poll when closing v4l2object
	  When reopening a v4l2 device, the v4l2object->poll will include some old fds,
	  which was assigned to this device before. If the pipeline opens multiple v4l2
	  devices, the old fd may been assigned to other v4l2 devices when reopening
	  devices.
	  This will cause the timing of the pipeline become confusing when polling devices,
	  leading functional abnormalities.
	  Therefore, when closing v4l2object, remove the old fds in poll to ensure that the
	  pipeline timing is normal.
	  Signed-off-by: Chao Guo <chao.guo@nxp.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5840>

2023-12-18 13:52:12 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.22.8 ===

2023-12-18 12:09:37 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2023-12-15 15:19:35 -0500  Arun Raghavan <arun@asymptotic.io>

	* gst/rtp/gstrtpchannels.c:
	  rtp: Fix incorrect RTP channel order lookup by name
	  The g_ascii_strcasecmp() logic is inverted, since it returns 0 on equality.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5817>

2023-04-29 16:20:13 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/matroska/matroska-demux.c:
	* tests/check/elements/matroskademux.c:
	  matroska-demux: fix accumulated base offset in segment seeks
	  When doing a segment seek, the base offset in the new segment
	  would be increased by segment.position which is basically the
	  timestamp of the last packet. This does not include the duration
	  of the last packet though, so might be slightly shorter than the
	  actual duration of the clip or the requested segment.
	  Increase the base offset by the segment duration instead when
	  accumulating segments, which is more correct as it doesn't cut
	  off the last frame and makes the effective loop segment duration
	  consistent with the actual duration returned from a duration
	  query.
	  In case a segment stop was specified it's also possible that
	  some data was sent beyond the stop that's necessary for decoding
	  so the base offset increment should be based on that then and
	  not on the timestamp of the last buffer pushed out.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5787>

2023-12-05 09:25:22 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/isomp4/qtdemux_tags.c:
	* meson.build:
	  qtdemux: fix bug report URL
	  Using PACKAGE_BUGREPORT as in other modules.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5786>

2023-12-01 14:51:49 +0900  Hosang Lee <hosang10.lee@lge.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Don't overflow sample index
	  Don't reduce sample index if it is already at 0.
	  Assigning -1 to a guint32 variable causes unexpected behavior.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5751>

2023-12-01 15:05:41 +0900  Hosang Lee <hosang10.lee@lge.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fix reverse playback for pcm audio stream
	  Some raw lpcm or adpcm may have larger sample sizes than the max
	  buffer size value set.
	  Trimming the buffer causes bogus size error on reverse playback.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5745>

2023-04-21 09:58:36 +0800  jeri.li <jeri.li@mediatek.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	  v4l2bufferpool: add lock as atomic operation for seek
	  When seek flush, gst v4l2 buffer pool flush is not atomic which will
	  lead double enqueue buffer (qbuf) issue, and v4l2 buffer pool qbuf is
	  also not atomic which will lead no free buffer found in the pool.
	  1. add lock for calculate enqueue number in streamon function
	  2. add lock for v4l2 capture end streamoff in pool flush function
	  3. lock the whole funciton of v4l2 buffer pool qbuf, then the buffer
	  pool index and qbuf operation are atomic
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5695>

2023-06-07 14:38:18 +0200  Robin Gustavsson <robin.gustavsson@spiideo.com>

	* gst/rtp/gstrtpklvdepay.c:
	* tests/check/elements/rtp-payloading.c:
	  rtpklvdepay: Recover after invalid fragmented KLV unit
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5686>

2023-06-29 15:20:29 +0200  Piotr Brzeziński <piotr@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Ignore raw audio streams when adjusting seek
	  Because we treat raw audio chunks/samples as keyframes, they were interfering
	  with seek time adjustment.
	  Became apparent when the accompanying video stream was I-frame only,
	  for example ProRes.
	  Since raw audio streams can be seeked freely, it's fine to just ignore them here,
	  giving priority to the real keyframes in the video stream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5674>

2023-10-12 17:23:00 +0100  Tim-Philipp Müller <tim@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtp/gstrtpac3depay.c:
	  rtpac3depay: should output audio/x-ac3 not audio/ac3
	  audio/x-ac3 is the canonical media format in GStreamer.
	  audio/ac3 is sometimes accepted as input (e.g. in rtpac3pay
	  or ac3parse), but shouldn't be output.
	  Fixes #3038.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5662>

2023-11-14 15:36:34 +0900  Dongyun Seo <dongyun.seo@lge.com>

	* gst/audioparsers/gstdcaparse.c:
	  dcaparse: keep upstream buffer meta
	  Some audio decoders cannot decode DTS stream if there is no
	  valid timestamp. So, keep upstream buffer meta.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5664>

2023-11-13 14:57:09 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.22.7 ===

2023-11-13 11:04:22 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2023-10-04 11:09:37 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ext/adaptivedemux2/downloadhelper.c:
	* ext/adaptivedemux2/downloadrequest.c:
	* ext/adaptivedemux2/downloadrequest.h:
	  adaptivedemux2: Do not submit_transfer when cancelled
	  There is a race condition where transfer has not been submitted yet while the
	  request is cancelled which leads to the transfer state going back to
	  `DOWNLOAD_REQUEST_STATE_OPEN` and the user of the request to get signalled about
	  its completion (and the task actually happening after it was cancelled) leading
	  to assertions and misbehaviours.
	  To ensure that this race can't happen, we start differentiating between the
	  UNSENT and CANCELLED states as in the normal case, when entering `submit_request`
	  the state is UNSENT and at that point we need to know that it is not because
	  the request has been cancelled.
	  In practice this case lead to an assertion in
	  `gst_adaptive_demux2_stream_begin_download_uri` because in a previous call to
	  `gst_adaptive_demux2_stream_stop_default` we cancelled the previous request and
	  setup a new one while it had not been submitted yet and then got a `on_download_complete`
	  callback called from that previous cancelled request and then we tried to do
	  `download_request_set_uri` on a request that was still `in_use`, leading to
	  something like:
	  ```
	  #0: 0x0000000186655ec8 g_assert (request->in_use == FALSE)assert.c:0
	  #1: 0x00000001127236b8 libgstadaptivedemux2.dylib`download_request_set_uri(request=0x000060000017cc00, uri="https://XXX/chunk-stream1-00002.webm", range_start=0, range_end=-1) at downloadrequest.c:361
	  #2: 0x000000011271cee8 libgstadaptivedemux2.dylib`gst_adaptive_demux2_stream_begin_download_uri(stream=0x00000001330f1800, uri="https://XXX/chunk-stream1-00002.webm", start=0, end=-1) at gstadaptivedemux-stream.c:1447
	  #3: 0x0000000112719898 libgstadaptivedemux2.dylib`gst_adaptive_demux2_stream_load_a_fragment [inlined] gst_adaptive_demux2_stream_download_fragment(stream=0x00000001330f1800) at gstadaptivedemux-stream.c:0
	  #4: 0x00000001127197f8 libgstadaptivedemux2.dylib`gst_adaptive_demux2_stream_load_a_fragment(stream=0x00000001330f1800) at gstadaptivedemux-stream.c:1969
	  #5: 0x000000011271c2a4 libgstadaptivedemux2.dylib`gst_adaptive_demux2_stream_next_download(stream=0x00000001330f1800) at gstadaptivedemux-stream.c:2112
	  ```
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5611>

2023-10-09 09:11:47 +0000  Johan Adam Nilsson <johan.adam.nilsson@gmail.com>

	* gst/wavparse/gstwavparse.c:
	  wavparse: fix buffer leak with adtl tag
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3020
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5597>

2023-10-24 18:20:34 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/libpng/gstpngenc.c:
	  pngenc: mark output frames as I-frames
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5564>

2023-10-24 18:12:44 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/libpng/gstpngenc.c:
	* ext/libpng/gstpngenc.h:
	  pngenc: output one frame only in snapshot mode
	  In snapshot mode pngenc should output exactly one frame
	  and then return FLOW_EOS to upstream. If upstream sends
	  more input frames before shutting down, it should keep
	  returning FLOW_EOS but not output any more encoded frames.
	  After a flushing seek it should output frames again though.
	  Fixes #3069.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5564>

2023-10-17 15:24:22 +0200  Matthias Fuchs <matthias1.fuchs@zeiss.com>

	* ext/qt/gstqtsrc.cc:
	  qmlglsrc: sync on the streaming thread
	  After rendering a QML scene the qmlglsrc element copies the contents of
	  the scene to a GStreamer buffer. This happens on the Qt render thread.
	  Then it attaches a sync point to the destination buffer. This sync point
	  must be awaited by other threads which use the buffer later on. The
	  current implementation relies on the downstream elements to wait for the
	  sync point. However, there are situation where this does not work. The
	  GstBaseTransform e.g. copies the buffer metadata (which overwrites the
	  sync point without waiting for it) *before* waiting for the sync point.
	  This commit waits for the sync point inside the qmlglsrc element before
	  sending it downstream. The wait command is issued on the streaming
	  thread with the pipeline OpenGL context, i.e. it will synchronize with
	  the GStreamer OpenGL thread.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5515>

2023-10-12 16:05:18 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* gst/multifile/gstimagesequencesrc.c:
	  imagesequencesrc: fix regular image deadlock
	  With one regular image file path provided (without %05d),
	  the element was stuck in a dead loop counting the frames:
	  gst_image_sequence_src_count_frames
	  This allows to display any image file out of the element
	  for a given number of buffers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5487>

2023-10-11 14:47:33 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/flv/gstflvmux.c:
	  flvmux: set the src segment position as running time
	  We were already converting the pad last timestamp to running time but
	  not the segment position.
	  This segment position is used by gst_aggregator_simple_get_next_time()
	  to compute the waiting time when aggregating.
	  Those waiting times were wrong in my live pipeline using the system
	  clock, resulting in the aggregator to never wait at all.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5465>

2023-10-11 09:36:11 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: Fix tiled formats stride conversion
	  While adding arbitrary tile support, a round up operation was badly
	  converter. This caused the Y component of the stride to be 0. This
	  eventually lead to a crash in glupoad preceded by the following
	  assertion.
	  gst_gl_buffer_allocation_params_new: assertion 'alloc_size > 0' failed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5463>

2023-09-28 18:03:31 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/flac/gstflacenc.c:
	  flacenc: Correctly handle up to 255 cue entries
	  The counter was using a signed 8 bit integer, which was overflowing
	  after 127 entries. That was then passed as an unsigned 32 bit integer to
	  libflac, which caused it to be converted to a huge unsigned number.
	  That then caused an invalid memory access inside libflac.
	  As a bonus, signed integer overflow is undefined behaviour.
	  Instead, use an unsigned 8 bit integer. Once this overflows the existing
	  code already catches it and stops adding the cue. While FLAC__metadata_object_cuesheet_insert_track()
	  takes an unsigned 32 bit integer for the track number, FLAC__StreamMetadata_CueSheet_Track is
	  limiting it to an unsigned 8 bit integer.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2921
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5436>

2023-09-26 16:48:10 +0000  Florian Zwoch <fzwoch@gmail.com>

	* ext/adaptivedemux2/downloadhelper.c:
	  adaptivedemux2: Call GTasks's return functions for blocking tasks
	  Gio/Task states the following:
	  If a GTask has been constructed and its callback set, it is an error to
	  not call g_task_return_*() on it. GLib will warn at runtime if this
	  happens (since 2.76).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5414>

2023-09-27 08:48:03 +0200  Albert Sjölund <alberts@axis.com>

	* ext/soup/gstsouphttpsrc.c:
	  souphttpsrc: Chain finalize call to parent
	  GstSoupSession finalize does not chain parent finalize,
	  causing it to leak memory, shown under g freeze notify.
	  In finalize method, ensure all branches call to parent
	  finalize.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5402>

2023-09-22 16:57:28 +0900  Hou Qi <qi.hou@nxp.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: Correctly free caps to avoid memory leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5388>

2023-09-20 19:41: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/5371>

=== release 1.22.6 ===

2023-09-20 18:10:57 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2023-09-19 09:14:31 +0200  Olivier Blin <olivier.blin@softathome.com>

	* ext/pulse/pulsedeviceprovider.c:
	  pulsedeviceprovider: fix incorrect usage of GST_ELEMENT_ERROR
	  The provider is not a GStreamer element.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5354>

2023-09-05 16:56:44 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: object: Handle video helper return value
	  gst_video_info_set_interlaced_format() can return an error if the
	  width/height causes integer overflow. Handle this case, so that we can
	  fail cleanly. This has been experienced while testing an in-progress
	  driver.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5319>

2023-09-05 16:51:24 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	  v4l2: bufferpool: Avoid warnings on empty last buffer
	  Some drivers will push an buffer flagged LAST but empty. In decoder
	  case, this results in an "producing too many buffer" warning, even
	  though the result is entirely correct. Detect this case in order to
	  signal EOS earlier and avoid this warning.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5319>

2023-09-05 16:15:19 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	  v4l2: bufferpool: Do not resize compressed buffer
	  Avoid resizing compressed buffer to their maximum size. This fixes a
	  regression that caused valid but very large streams to be generated.
	  Fixes #2953
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5319>

2023-09-07 17:23:37 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: Avoid integer overflow in max saveable packets calculation with negative offset
	  The timestamp offset can be negative, and it can be a bigger negative
	  number than the latency introduced by the rtpjitterbuffer so the overall
	  timeout offset can be negative.
	  Using the negative offset for calculating how many packets can still
	  arrive in time when encountering a lost packet in an equidistant stream
	  would then overflow and instead of considering fewer packets lost a lot
	  more packets are considered lost.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5318>

2023-08-22 09:57:14 +0800  Ming Qian <ming.qian@nxp.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: clear format lists if source change event is received
	  If decoder notify a source change event when the capture format is
	  changed, not the resolution changed.
	  then gst_v4l2_object_acquire_format will retuen false due to
	  unsupported format.
	  we need to clear the format lists in the source change flow,
	  and reenumerate format list
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5223>

2023-07-25 15:14:11 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2allocator.c:
	  v4l2: allocator: Don't close foreign dmabuf
	  Imported dmabuf are not being duped, so they should never be closed. Instead,
	  we ensure their live time by having strong reference on their original
	  buffer. This should fix potential flickering due to dmabuf being closed
	  too early.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5217>

2023-07-20 19:13:36 +0200  Jan Alexander Steffens (heftig) <heftig@archlinux.org>

	* ext/qt/meson.build:
	  qt: Unbreak build with qt-egl enabled but viv_fb missing
	  Avoids an error message when the feature is explicitly enabled:
	  ERROR: Feature qt-egl cannot be enabled: gstreamer-gl-viv_fb-1.0 is required
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5200>

2023-08-07 14:18:21 +0800  Wang Chuan <ouchuanm@outlook.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  gstadaptivedemux: fix memory leak
	  GstQuery leaks when using invalid url
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5156>

2023-08-04 15:11:05 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/qt/meson.build:
	* ext/qt6/meson.build:
	  meson: Fix searching of qt5/qt6 tools with qmake
	  If the pkg-config files are broken, we want to ensure that qmake is
	  used. This can easily happen on macOS with the official Qt binaries.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5149>

2023-07-12 12:37:34 +0200  Alicia Boya García <aboya@igalia.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fix premature EOS when some files are played in push mode
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2771
	  This EOS branch exists so that if a seek with a stop is made, qtdemux
	  stops accepting bytes from the sink after the entire requested playback
	  range is demuxed, as otherwise we could keep download content that is
	  not being used.
	  This patch fixes two flaws that were present in that EOS check:
	  1) A comparison was made between track time and movie time without conversion.
	  This made the check trigger early in files with edit lists. This patch fixes
	  this by converting the track PTS to movie PTS (stream time) for the check.
	  2) To avoid sending a EOS prematurely when the segment stop is within a GOP and
	  B-frames are present, the check for EOS should only be done for keyframes. I
	  gather this was already the intention with the existing code, but because it
	  used `stream->on_keyframe` instead of the local variable `keyframe` the old
	  code was checking if the *previous* frame was a keyframe.
	  It's interesting to note that these two flaws in the old code mask each other
	  in most cases: the track PTS will have reached the movie end PTS, but EOS would
	  only be sent if the previous frame was a keyframe. A simple case where they
	  wouldn't mask each other, reproducing the bug, is a sequence of 3 frame GOPs
	  with structure I-B-P.
	  The following validateflow tests have been added to future-proof the
	  fix:
	  * validate.test.mp4.qtdemux_ibpibp_non_frag_pull.default
	  * validate.test.mp4.qtdemux_ibpibp_non_frag_push.default
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5114>

2023-06-22 10:10:43 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	  v4l2: Fix support for left and top padding
	  In the current implementation, we support for most pixel format left
	  and top padding by changing the offset in the video meta. Though, to
	  align driver bytesused to the offset, we recalculate the offset, which
	  removed the modification we did before.
	  Instead, save the plane size, and truncate the driver reported bytesused
	  to the expected size, which ensures that the offsets still match. This
	  should also fix issues were the buffer size ended up bigger then the
	  pool size due to driver introduced padding.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5132>

2023-07-25 15:15:58 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/videofilter/gstvideoflip.c:
	  videoflip: fix concurrent access when modifying the tag list
	  We were checking if the tag list is writable, but it may actually be
	  shared through the same event (tee upstream or multiple consumers).
	  Fix a bug where multiple branches have a videoflip element checking the
	  taglist. The first one was changing the orientation back to rotate-0
	  which was resetting the other instances.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5099>

2023-07-21 12:48:08 +0200  Xabier Rodriguez Calvar <calvaris@igalia.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: attach cbcs crypt info at the right moment
	  Before it was always added but that can cause issues when the stream begins
	  unencrypted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5096>

2023-07-14 08:28:10 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/soup/meson.build:
	* meson_options.txt:
	  meson: Ensure that soup plugin is built on Windows
	  The libpsl subproject wasn't building successfully and CI didn't
	  notice because:
	  1. The plugin wasn't explicitly enabled
	  2. Even when the plugin is explicitly enabled, the dep is not required
	  at build time when not building a static plugin
	  So fix all of these issues.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4890>

2023-07-20 16:57:47 +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/5082>

=== release 1.22.5 ===

2023-07-20 15:22:48 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2023-02-15 17:32:39 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Don't set a referer when updating playlists
	  In the same way we don't for regular playlists in the base class.
	  If there is a referer specified by the app/user, the downloadhelper will set it
	  accordingly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5057>

2023-02-15 18:06:36 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	  adaptivedemux2: Don't blindly set the main manifest URI as referer
	  There's no guarantee it will *actually* be the URI which refered to what we are
	  downloading. It could be a stream URI or anything else.
	  Instead of putting something wrong, put no (specific) referer as a better choice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5057>

2023-07-11 17:00:57 +0200  Bastien Nocera <hadess@hadess.net>

	* ext/gtk/gtkgstbasewidget.c:
	  gtk: Fix critical caused by pointer movement when stream is getting ready
	  This check fixes a critical warning that can happen when a pointer motion
	  happens and the video doesn't have its width/height information available.
	  GStreamer-Video-CRITICAL **: gst_video_center_rect: assertion 'src->h != 0' failed
	  #0  g_logv (log_domain=0x7ffff705e176 "GStreamer-Video", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>) at ../../../../Projects/jhbuild/glib/glib/gmessages.c:1422
	  #1  0x00007ffff7e1a81d in g_log (log_domain=<optimized out>, log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7ffff7e77a9d "%s: assertion '%s' failed") at ../../../../Projects/jhbuild/glib/glib/gmessages.c:1460
	  #2  0x00007ffff7e1b749 in g_return_if_fail_warning (log_domain=<optimized out>, pretty_function=<optimized out>, expression=<optimized out>) at ../../../../Projects/jhbuild/glib/glib/gmessages.c:2930
	  #3  0x00007ffff701d90b in gst_video_sink_center_rect (src=..., dst=..., result=result@entry=0x7fffffffc6d0, scaling=scaling@entry=1) at ../../../../Projects/jhbuild/gstreamer/subprojects/gst-plugins-base/gst-libs/gst/video/gstvideosink.c:105
	  #4  0x00007fffe5652dbb in _fit_stream_to_allocated_size (result=0x7fffffffc6d0, allocation=0x7fffffffc6c0, base_widget=0x9396f0) at ../../../../Projects/jhbuild/gstreamer/subprojects/gst-plugins-good/ext/gtk/gtkgstbasewidget.c:326
	  #5  gtk_gst_base_widget_display_size_to_stream_size (base_widget=base_widget@entry=0x9396f0, x=1207.7109375, y=811.84765625, stream_x=stream_x@entry=0x7fffffffc720, stream_y=stream_y@entry=0x7fffffffc728) at ../../../../Projects/jhbuild/gstreamer/subprojects/gst-plugins-good/ext/gtk/gtkgstbasewidget.c:344
	  #6  0x00007fffe5651a4b in gst_gtk_base_sink_navigation_send_event (navigation=0x5ff990, event=0x178a730) at ../../../../Projects/jhbuild/gstreamer/subprojects/gst-plugins-good/ext/gtk/gstgtkbasesink.c:340
	  #7  0x00007fffe5652432 in gtk_gst_base_widget_motion_event (widget=<optimized out>, event=event@entry=0x1f14b60) at ../../../../Projects/jhbuild/gstreamer/subprojects/gst-plugins-good/ext/gtk/gtkgstbasewidget.c:404
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5051>

2023-07-13 16:27:05 +0200  Michael Tretter <m.tretter@pengutronix.de>

	* sys/v4l2/gstv4l2videoenc.c:
	  v4l2videoenc: remove empty sink_query
	  The sink_query() function simply calls the sink_query() function of the parent
	  videoencoder class. Remove the override to simply directly call the parent's
	  function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5036>

2023-07-13 16:16:44 +0200  Michael Tretter <m.tretter@pengutronix.de>

	* sys/v4l2/gstv4l2videoenc.c:
	  v4l2videoenc: replace custom QUERY_CAPS handling with getcaps callback
	  The videoencoder base class uses getcaps() to ask a subclass for the caps in its
	  sink_query_default() implementation.
	  Replace the custom handling of the QUERY_CAPS in the v4l2videoenc with an
	  implementation of getcaps() that returns the caps that are supported by the
	  v4l2videoenc to return these caps in the query.
	  This getcaps() implementation also calls the provided proxy_getcaps(), which
	  sends a caps query to downstream. This fixes the v4l2videoenc element to respect
	  limits of downstream elements in a sink query.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5036>

2023-07-11 21:41:46 +0200  Carlos Rafael Giani <crg7475@mailbox.org>

	* meson.build:
	  gl: Take into account viv-fb vs. viv_fb naming in meson scripts
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4959>

2023-05-16 21:24:44 +1000  Matthew Waters <matthew@centricular.com>

	* ext/qt/gstqtglutility.cc:
	* ext/qt/meson.build:
	* meson.build:
	  gl: provide a pkg-config/gir file for the viv-fb backend
	  Required to be able to generate coherent bindings for window system
	  specific APIs due to limitations in gobject-introspection.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4959>

2023-07-10 22:45:49 +0900  Seungha Yang <seungha@centricular.com>

	* ext/qt6/qt6glitem.cc:
	  qt6: Set sampler filtering method
	  QQuickItem::smooth property doesn't seem to be propagated to
	  newly created QSGSimpleTextureNode automatically.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2793
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5016>

2023-07-09 17:44:03 +0200  David Craven <david@craven.ch>

	* gst/matroska/matroska-read-common.c:
	  matroska: demux: Strip signal byte from encrypted blocks
	  Removes the signal byte when the frame is unencrypted to
	  be consistent with when the frame is encrypted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5014>

2023-06-26 17:10:33 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2: videodec: Don't wait for src_ch if active
	  If the capture pool is already active, like when handling gaps at the
	  start of a stream, do not setup the decoder to wait for src_ch event.
	  Otherwise the decoder will endup waiting for that at the wrong moment
	  and exit the decoding thread unexpectedly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4996>

2023-06-26 17:08:57 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2: videodec: Move pool setup inside negotiate()
	  Move all the pool configuration inside the negotiate() virtual function.
	  This allow settting up a pool with default format whenever the base
	  class wants to start without input data, like gaps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4996>

2023-07-06 17:44:48 +0800  Hou Qi <qi.hou@nxp.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: correctly register v4l2mpeg2dec
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4992>

2023-07-07 12:33:37 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/videofilter/gstvideoflip.c:
	  videoflip: fix critical when tag list is not writable
	  Fix this pipeline where the tag list is not writable:
	  gst-launch-1.0 videotestsrc ! taginject tags="image-orientation=rotate-90" ! videoflip video-direction=auto \
	  ! autovideosink
	  GStreamer-CRITICAL **: 12:34:36.310: gst_tag_list_add: assertion 'gst_tag_list_is_writable (list)' failed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4990>

2023-07-06 14:27:42 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* sys/v4l2/gstv4l2src.c:
	  v4l2src: handle resolution change when buffers are copied
	  When buffers are copied then GST_V4L2_FLOW_RESOLUTION_CHANGE is returned by
	  gst_v4l2_buffer_pool_process() so do renegotiation here as well.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4985>

2023-07-04 23:11:53 +0900  Seungha Yang <seungha@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Fix crash when is-live=false
	  The pad's parent (i.e., rtspsrc) can be nullptr since we add pads
	  later.
	  Co-authored-by: Jan Schmidt <jan@centricular.com>
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2751
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4971>

2023-07-04 10:57:01 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux-util.c:
	  hlsdemux2: Ensure processed webvtt ends with empty new line
	  Parsers downstream will use empty new lines to detect where an entry
	  ends. Failure to have a newline would cause the entry to be either
	  discarded or (wrongly) concatenated with the next entry
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2752
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4970>

2023-06-21 17:05:47 +0200  Edward Hervey <edward@centricular.com>

	* gst/matroska/matroska-demux.c:
	  matroska-demux: Properly handle early time-based segments
	  Refusing an incoming segment in < GST_MATROSKA_READ_STATE_DATA should only be
	  done if the incoming segment is not in GST_FORMAT_TIME.
	  In GST_FORMAT_TIME, we are just storing the values and returning, so we can
	  invert the order of the checks.
	  Fixes proper segment propagation in matroska/webm DASH use-cases
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4922>

2023-02-10 15:26:20 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Handle early SEEKING query
	  No pads are present yet, but we can still answer the query
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4922>

2023-02-09 17:22:34 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Fix non-accurate seeking
	  If no accurate positioning was required, default to snap to the previous segment
	  for improved responsiveness
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4922>

2023-02-09 14:54:27 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Handle return in seek handling
	  Various code path were repeating the same logic, and risk forgetting a lock
	  release.
	  Unify all of them
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4922>

2023-02-09 14:45:01 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Move API lock usage
	  It is not needed so early
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4922>

2023-02-08 17:24:18 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-private.h:
	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Handle early key-unit seek
	  Is a seek is done on stream-collection post, there are no selected streams
	  yet. Therefore none would be chosen to adjust the key-unit seek.
	  If no streams are selected, fallback to a default stream (i.e. one which has
	  track(s) with GST_STREAM_FLAG_SELECT).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4922>

2023-02-08 12:02:45 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-track.c:
	  adaptivedemux2: Fix early seeking
	  When seeking is handled by the collection posting thread, there is a possibility
	  that some leftover data will be pushed by the stream thread.
	  Properly detect and reject those early segments (and buffers) by comparing it to
	  the main segment seqnum
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4922>

2023-06-06 11:34:03 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/videofilter/gstvideoflip.c:
	  videoflip: update orientation tag in auto mode
	  The frames are flipped according to the tag orientation so it's no longer accurate.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4796>

2023-06-20 14:56:44 +0200  François Laignel <francois@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: opus: set entry as sampled
	  ... otherwise streams with constant size samples defined with a single
	  `sample_size` for all samples in the `stsz` box fall in the category
	  `chunks_are_samples` in `qtdemux_stbl_init`, overriding the actual
	  sample count.
	  `FOURCC_soun` would set this automatically for `compression_id == 0xfffe`,
	  however `compression_id` is read from the Audio Sample Entry box at an offset
	  marked as "pre-defined" in some version of the spec and set to 0 both by
	  GStreamer and FFmpeg for opus streams.
	  Considering the stream `sampled` flag is set explicitely by other fourcc
	  variants, doing so for opus seems consistent.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4908>

2023-06-20 19:10:38 +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/4907>

=== release 1.22.4 ===

2023-06-20 17:42:25 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2023-06-08 19:12:54 +0200  Jonas Kvinge <jonas@jkvinge.net>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Allow data dash+xml manifest for uri
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4853>

2023-06-13 13:20:16 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/audioparsers/gstflacparse.c:
	  flacparse: Avoid integer overflow in available data check for image tags
	  If the image length as stored in the file is some bogus integer then
	  adding it to the current byte readers position can overflow and wrongly
	  have the check for enough available data succeed.
	  This then later can cause NULL pointer dereferences or out of bounds
	  reads/writes when actually reading the image data.
	  Fixes ZDI-CAN-20775
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2661
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4897>

2023-06-19 15:11:30 +0200  François Laignel <francois@centricular.com>

	* gst/isomp4/qtdemux.c:
	* gst/isomp4/qtdemux_dump.c:
	* gst/isomp4/qtdemux_dump.h:
	* gst/isomp4/qtdemux_types.c:
	  qtdemux: parse Opus and dOps as qtdemux nodes and add size checks
	  This allows checking the nodes conformity and dumping parsed values.
	  Note: Audio Sample Entry version parsing and offset handling is handled as part
	  of `FOURCC_soun` common processing and in `qtdemux_parse_node`.
	  Also, only read `stream_count` and `coupled_count` when
	  `channel_mapping_family` != 0. See:
	  https://opus-codec.org/docs/opus_in_isobmff.html#4.3.2
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4891>

2023-06-16 10:29:28 +0200  François Laignel <francois@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: fix byte order for opus extension and version field type
	  The "Encapsulation of Opus in ISO Base Media File Format" [1] specifications,
	  § 4.3.2 Opus Specific Box, indicates that data must be stored as big-endian.
	  [1] https://opus-codec.org/docs/opus_in_isobmff.html#4.3.2
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4891>

2023-06-16 10:02:16 +0200  François Laignel <francois@centricular.com>

	* gst/isomp4/atoms.c:
	  qtmux: fix byte order for opus extension
	  The "Encapsulation of Opus in ISO Base Media File Format" [1] specifications,
	  § 4.3.2 Opus Specific Box, indicates that data must be stored as big-endian.
	  In `build_opus_extension`, `gst_byte_writer_put*_le ()` variants were used,
	  causing audio streams conversion to Opus in mp4 to offset samples due to the
	  PreSkip field incorrect value (29ms early in our test cases).
	  [1] https://opus-codec.org/docs/opus_in_isobmff.html#4.3.2
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4891>

2023-05-30 15:10:11 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/isomp4/gstqtmux.c:
	* gst/isomp4/qtdemux.c:
	  isomp4: Fix (E)AC-3 channel count handling
	  The muxer used a fixed value of 2 channels because the TR 102 366 spec
	  says they're to be ignored. However, the demuxer still trusted them,
	  resulting in bad caps.
	  Make the muxer fill in the correct channel count anyway (FFmpeg already
	  does) and make the demuxer ignore the value.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4773>

2023-04-20 17:31:32 -0400  Daniel Morin <daniel.morin@collabora.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	  v4l2src: fix support for bayer format
	  - Define a new function that identify if the v4l2object is raw based
	  on pixel format
	  - Only consider setting delta flag on buffer if the video is not raw.
	  Sponsored by Living Optics Ltd.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4867>

2023-06-12 19:24:15 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/elements/rtpbin_buffer_list.c:
	  tests: rtpbin_buffer_list: fix possible unaligned read on 32-bit ARM
	  Fixes #2666
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4855>

2023-05-30 17:52:34 +0900  ekwange <ekwange@gmail.com>

	* sys/v4l2/v4l2_calls.c:
	  v4l2: Change to query only up to V4L2_CID_PRIVATE_BASE+V4L2_CID_MAX_CTRLS
	  Fix to prevent infinite querying.
	  There are devices that exceed V4L2_CID_PRIVATE_BASE+V4L2_CID_MAX_CTRLS
	  but do not return EINVAL.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4851>

2023-06-05 07:29:57 +0200  Jochen Henneberg <jh@henneberg-systemdesign.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Cleanup code for next pending command
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4799>

2023-06-05 06:50:55 +0200  Jochen Henneberg <jh@henneberg-systemdesign.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Do not try send dropped get/set parameter
	  If the set_get_param_q has been emptied we have to reset the cached
	  pending command to CMD_LOOP as we will not have the request parameters
	  anymore.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4799>

2023-06-06 09:24:37 +0800  Hou Qi <qi.hou@nxp.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: treat MPEG 1 format as MPEG 2
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4787>

2023-05-18 14:23:49 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/qt6/gstqt6glutility.cc:
	* ext/qt6/meson.build:
	  meson: Support building qml6glsink on win32
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4762>

2023-05-03 21:05:54 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/qt/meson.build:
	* ext/qt6/meson.build:
	* meson_options.txt:
	  meson: Add more qt options and eliminate all automagic
	  The qt5 and qt6 plugins will now correctly error out if you enable the
	  option, and you can also now explicitly ensure that wayland, x11,
	  eglfs support is actually functional by enabling the options. It was
	  too easy to build non-functional support for these.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4776>

2023-01-11 01:11:06 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/qt/meson.build:
	  meson: Add build_rpath for qt5 plugin on macOS
	  Without this, the plugin cannot be loaded in a devenv because the
	  RPATH is not added to the plugin dylib. This RPATH will be stripped on
	  install, which is what we want.
	  When deploying apps, people are supposed to use `macdeployqt` to
	  create an AppBundle that bundles Qt for you and sets the RPATHs
	  correctly to point to that bundled Qt.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4776>

2023-06-01 16:21:47 +0200  Piotr Brzeziński <piotr@centricular.com>

	* ext/libpng/gstpngdec.c:
	  pngdec: Fix 16bit RGB images display
	  Due to the alpha value being inserted with _BEFORE, we were ending up
	  with ARGB instead of RGBA, thus displaying completely wrong colours.
	  According to libpng's manual, "to add an opaque alpha channel, use filler=0xff
	  or 0xffff and PNG_FILLER_AFTER which will generate RGBA pixels".
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4759>

2023-05-29 17:01:01 +1000  Matthew Waters <matthew@centricular.com>

	* ext/qt/qtglrenderer.cc:
	  qt/glrenderer: don't attempt to use QWindow from non-Qt main thread
	  Use QObject::deleteLater() to schedule deletion in the main thread.
	  Remove the moveToThread of the QWindow.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4744>

2023-05-24 16:17:46 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* gst/flv/gstflvmux.c:
	  flvmux: use the correct timestamp to calculate wait times
	  Since c0bf793c05cf793aa18a8548cda702625e388115 ("flvmux: Set PTS based on
	  running time") the timestamp of the output buffer is already in running
	  time. So using that for 'srcpad->segment.position' does not work correctly
	  because gst_aggregator_simple_get_next_time() will convert it again with
	  gst_segment_to_running_time().
	  This means that the timestamp returned by
	  gst_aggregator_simple_get_next_time() may be incorrect. For example, if
	  flvmux is added to a already runinng pipeline then the timestamp is too
	  small and gst_aggregator_wait_and_check() returns immediately. As a result,
	  buffers may be muxed in the wrong order.
	  To fix this, use the PTS of the incoming buffer instead of the outgoing
	  buffer. Also add the duration as get_next_time() is supposed to return the
	  timestamp of the next buffer, not the current one.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4734>

2020-08-31 16:38:48 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* ext/jpeg/gstjpegdec.c:
	  jpegdec: be stricter when detecting interlaced video
	  There are broken(?) mjpeg videos that are incorrectly detected as
	  interlaced. This happens because 'info.height > height' (e.g. 1088 > 1080).
	  In the interlaced case info.height is approximately 'height * 2' but not
	  exactly because height is a multiple of DCTSIZE. Make the check more
	  restrictive but take the rounding effect into account.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4717>

2020-08-31 16:12:33 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* ext/jpeg/gstjpegdec.c:
	  jpegdec: decode the correct number of lines for interlaced frames
	  For interlaced jpeg, gst_jpeg_dec_decode_direct() is called twice, once for each
	  field. In this case, stride[n] is plane_stride[n] * 2 to ensure that only every
	  other line is written. So the loop must stop at height / num_fields.
	  If the frame is really interlaced then continuing beyound this, is not harmful,
	  because jpeg_read_raw_data() will do nothing and return 0, so am info message is
	  printed.
	  However, if the frame is not actually interlaced, just misdetected as interlaced
	  then there is still data available from the second half of the frame. Now
	  line[0][j] is set to the scratch buffer. If the scratch buffer is not allocated
	  (because the height is a multiple of v_samp[0] * DCTSIZE) then the result is a
	  segfault due to a null-pointer dereference.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4717>

2023-05-05 15:12:46 +0800  YURI FEDOSEEV <yuri.fedoseev@helixleisure.com>

	* sys/v4l2/gstv4l2videoenc.c:
	  v4l2videoenc: support force keyframe event in v4l2 encoder
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4702>

2023-05-19 12:36:19 +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/4679>

=== release 1.22.3 ===

2023-05-19 09:23:19 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2023-05-06 11:17:43 +0800  Shengqi Yu <shengqi.yu@mediatek.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: fix some errors in probe_caps_for_fromat
	  1, there is a mistake when print stepwise.max_height, fix it
	  2, modify the calculation of width and height under the step wise
	  condition
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4672>

2023-05-18 11:58:51 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2allocator.c:
	* sys/v4l2/gstv4l2bufferpool.c:
	* sys/v4l2/gstv4l2videodec.c:
	  v4l2: videodec: Fix stalls on empty buffer
	  Drivers may signal end of sequence using an empty buffer and LAST buffer
	  set, or just an empty buffer on certain legacy implementation. When this
	  occured, we'd send GST_V4L2_FLOW_LAST_BUFFER were the code expected
	  GST_FLOW_EOS. Stop abusing GST_FLOW_EOS and port all the code to the new
	  GST_V4L2_FLOW_LAST_BUFFER.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4671>

2023-05-15 19:10:39 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxpartreader.c:
	  splitmuxsrc: Make PTS contiguous by preference
	  Make splitmuxsrc deal better with stream reordering by
	  making the largest observed PTS contiguous in the
	  next fragment. Previously, it selected DTS, but then
	  aligned that with the segment start of the next fragment,
	  which holds PTS values - leading to glitches in
	  streams that don't have PTS = DTS at the start.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4660>

2023-05-15 11:45:12 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/gstqtmux.c:
	  qtmux: Fix extraction of CEA608 data from S334-1A packets
	  The index is already incremented by 3 every iteration so multiplying it
	  by 3 additionally on each array access is doing it twice and does not
	  work.
	  This caused invalid files to be created if there's more than one CEA608
	  triplet in a buffer, and out of bounds memory reads.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4645>

2023-05-05 18:27:14 +0200  Piotr Brzeziński <piotr@centricular.com>

	* sys/osxvideo/osxvideosink.m:
	  osxvideosink: fix deadlock upon closing output window
	  Invoking gst_osx_video_sink_osxwindow_destroy() can currently cause a deadlock
	  because showFrame() keeps trying to get the same lock as well. Moving the lock
	  closer to where it's actually needed seems to be enough to fix the issue for now.
	  Reported-by: Alexande B <abobrikovich@gmail.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4627>

2023-05-11 16:25:11 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/elements/qtdemux.c:
	* tests/files/editlists.mp4.gz.gz:
	  qtdemux: add unit test for edit list regression
	  File is the mp4 file from #2549 with the mdat atom
	  zeroed out and compressed. We compress twice because
	  apparently compressing 5MB of zeroes effectively in
	  one run is too difficult for gzip.
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2549
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4605>

2023-05-05 19:41:34 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/isomp4/qtdemux.c:
	  Revert "qtdemux: fix conditions for end of segment in reverse playback"
	  This reverts commit 9deb3c27acd4161f810cd782f03bcdaccf2643c7.
	  The test case that was described in the associated MR
	  (https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/262)
	  remains adequately fixed by a related MR that was merged later
	  (https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/275).
	  It introduced incorrect logic that broke edit lists as described in
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2549
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2549
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4605>

2023-05-09 17:28:49 +0200  François Laignel <francois@centricular.com>

	  rtpmanager/rtsession: data race leading to critical warnings
	  This is a fix for a data race leading to:
	  > GLib-CRITICAL: g_hash_table_foreach:
	  >   assertion 'version == hash_table->version' failed
	  Identified sequence:
	  * `rtp_session_on_timeout` acquires the lock on `session` and proceeds with its
	  processing.
	  * `rtp_session_process_rtcp` is called (debug log : received RTCP packet) and
	  attempts to acquire the lock on `session`, which is still held by
	  `rtp_session_on_timeout`.
	  * as part of an hash table iterator, `rtp_session_on_timeout` transitively
	  invokes `source_caps` which releases the lock on `session` so as to call
	  `session->callbacks.caps`.
	  * Since `rtp_session_process_rtcp` was waiting for the lock to be released, it
	  succeeds in acquiring it and proceeds with `rtp_session_process_rr` which
	  transitively calls `g_hash_table_insert` via `add_source`.
	  * After `source_caps` re-acquires the lock and gives the control flow back to
	  `rtp_session_on_timeout`, the hash table iterator is changed, resulting in the
	  assertion failure.
	  This commits copies `sess->ssrcs[sess->mask_idx]` and iterates on the copy so
	  the iterator is not affected by a concurrent change due to the lock being
	  released in the `source_caps` callback.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4585>

2023-05-09 14:37:25 +0100  Philippe Normand <philn@igalia.com>

	* docs/gst_plugins_cache.json:
	* gst/dtmf/gstrtpdtmfdepay.c:
	  rtpdtmfdepay: Classify as RTP element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4584>

2023-05-09 14:36:56 +0100  Philippe Normand <philn@igalia.com>

	* docs/gst_plugins_cache.json:
	* gst/dtmf/gstrtpdtmfsrc.c:
	  rtpdtmfsrc: Classify as RTP source
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4584>

2023-05-01 14:01:02 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2deviceprovider.c:
	  v4l2: device provider: Fix GMainLoop leak
	  On very quick start/stop, the mainloop may never be run. As a side
	  effect, our idle stop function is not really being ran, so we can't rely
	  on that to free the main loop. Simply unref the mainloop when the
	  thread have completely stop.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4539>

2023-05-03 13:21:23 +0200  Xabier Rodriguez Calvar <calvaris@igalia.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: emit no-more-pads after pruning old pads
	  If we don't do that, clients can rely on this signal to see the final pad
	  topology but it won't be the real one as some of them will disappear after
	  emitting that signal. This can happen after injecting a different init segment.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4557>

2023-05-03 15:42:01 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/videofilter/gstvideoflip.c:
	  videoflip: fix setting of method property at construction time
	  Since c2f890ab, element properties are gathered from the parse-launch
	  line and passed at object construction.
	  This caused the following issue to happen in videoflip:
	  * videoflip installed a CONSTRUCT property named method, now deprecated
	  * videoflip now also overrides that property with a video-direction
	  property
	  GObject construction causes method to be set first at construct time,
	  with the user-provided value, then video-direction with the default
	  value.
	  The user-provided value was thus overridden, causing a regression.
	  Fix by not installing the properties as CONSTRUCT, and explicitly
	  implementing constructed() instead in order to ensure that we do still
	  call gst_video_flip_set_method() at least once during construction.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2529
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4551>

2023-05-01 14:14:25 +0200  François Laignel <francois@centricular.com>

	  rtpmanager/rtsession: race conditions leading to critical warnings
	  While testing the [implementation for insertable streams] in `webrtcsink` &
	  `webrtcsrc`, I encountered critical warnings, which turned out to result from
	  two race conditions in `rtpsession`. Both race conditions produce:
	  > GLib-CRITICAL: g_hash_table_foreach:
	  >   assertion 'version == hash_table->version' failed
	  This commit fixes one of the race conditions observed.
	  In its simplest form, the test consists in 2 pipelines and a Signalling server:
	  * pipelines_sink: audiotestsrc ! webrtcsink
	  * pipelines_src: webrtcsrc ! appsrc
	  1. Set `pipelines_sink` to `Playing`.
	  2. The Signalling server delivers the `producer_id`.
	  3. Initialize `pipelines_src` to establish a session with `producer_id`.
	  4. Set `pipelines_src` to `Playing`.
	  5. Wait for a buffer to be received by the `appsrc`.
	  6. Set `pipelines_src` to `Null`.
	  7. Set `pipelines_sink` to `Null`.
	  The race condition happens in the following sequence:
	  * `webrtcsink` runs a task to periodically retrieve statistics from `webrtcbin`.
	  This transitively ends up executing `rtp_session_create_stats`.
	  * `pipelines_sink` is set to `Null`.
	  * In `Paused` to `Ready`, `gst_rtp_session_change_state()` calls
	  `rtp_session_reset()`.
	  * The assertion failure occurs when `rtp_session_reset` is called while
	  `rtp_session_create_stats` is executing.
	  This is because `rtp_session_create_stats` acquires the lock on `session` prior
	  to calling `g_hash_table_foreach`, but `rtp_session_reset` doesn't acquire the
	  lock before calling `g_hash_table_remove_all`.
	  Acquiring the lock in `rtp_session_reset` fixes the issue.
	  [implementing insertable streams support]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1176
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4532>

2023-04-26 15:58:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	* sys/v4l2/gstv4l2bufferpool.h:
	* sys/v4l2/gstv4l2videodec.c:
	  v4l2: pool: Flush events on capture queue
	  Unfortunately streamoff does not flush the events, and this can cause all
	  sort of issues. Flush events on capture queue. We also return
	  GST_V4L2_FLOW_RESOLUTION_CHANGE in case a resolution change was seen.
	  This allow skipping streamon(capture) on flush, which could lead to a
	  configuration miss-match, or failure if the buffers aren't of the right
	  size.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4525>

2023-04-21 13:33:11 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2: videodec: Detect flushes while setting up the capture
	  As we missed the fact we were flushing, we could create and activate
	  that buffer pool, and wait on it, causing a hang. We detect that we
	  are flushing by checking the related pad state.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4525>

2023-04-21 13:30:43 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	  v4l2: bufferpool: Don't copy buffer when flushing
	  Threshold handling can race with flushing operation. This can lead to
	  avoidable buffer copies. Simply check and return the flushing status.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4525>

2023-04-19 14:19:13 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	* sys/v4l2/gstv4l2videodec.h:
	  v4l2: videodec: Don't forcibly drain on resolution changes
	  Let the driver detects the change and reconfigure the capture side
	  transparently from there. This avoid reallocation of the output buffers,
	  and eliminates the need to stop and restart the capture task. This is
	  only happening if the driver have support for this, otherwise the old
	  behaviour is maintained.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4525>

2023-04-18 11:42:06 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2: videodec: Remove the spurious srccaps probe
	  We don't need to probe the srccaps in set_format() anymore, this
	  handled already in the capture thread while setting up the capture
	  queue.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4525>

2023-04-17 16:10:34 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2: videodec: Improve few logs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4525>

2023-04-17 16:07:21 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2: videodec: Only warn of incomplete drain on success
	  We may have hit an error, or just flushing in order to stop the thread,
	  in which case, not having drain everything is expected and not a
	  driver bug.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4525>

2023-04-17 16:05:35 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	  v4l2: bufferpool: Don't assert when orphaning is not needed
	  This may happen when shutting down and should not cause
	  any harm. This removes the associated assert when shutting
	  down the pipeline, notably with CTRL+C.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4525>

2023-04-14 18:54:22 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	* sys/v4l2/gstv4l2videodec.h:
	  v4l2: videodec: Wait for source change event
	  Stop doing capture buffer allocation based on guesses
	  and wait for the source change event when available.
	  Unlike stateless decoder, the stateful decoder is not aware of
	  the coded resolution, and this may lead to the wrong result
	  even when using TRY_FMT.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4525>

2023-04-14 22:22:06 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	* sys/v4l2/gstv4l2bufferpool.h:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	  v4l2: object: Move the GstPoll into v4l2object
	  Moves the GstPoll from the buffer pool into v4l2object. This will be
	  needed to poll for events before the pool has been created.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4525>

2023-04-14 23:38:34 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: object: Fix bogus debug objects pointers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4525>

2023-04-14 09:53:15 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	* sys/v4l2/gstv4l2videodec.h:
	  v4l2: videodec: Move the capture setup into the processing loop
	  In previous implementation that job was split between handle_frame and
	  the processing loop and it wasn't clear if this mechanism was race
	  free. The capture setup would also be tried for every buffer, which was
	  not necessary.
	  This also simplify the handling of SRC_CH event, dropping the unneeded
	  atomic boolean.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4525>

2023-04-14 09:51:39 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2: videodec: Ensure object is inactive on failure
	  Sprinkle stop() calls in error case to guaranty that the capture object
	  is inactive on failure. Not doing so could allow some code to be called
	  in unexpected (and possibly undefined) conditions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4525>

2023-04-27 16:33:25 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/multifile/gstsplitmuxsink.c:
	  Revert "splitmuxsink: Avoid assertion when WAITING_GOP_COLLECT on reference context"
	  This reverts commit f29c19be5821d26a6b7682d0c69ff31d0815e072. If this is
	  called for the reference context then we would run into an infinite
	  loop, which is not really better than an assertion.
	  By fixing up DTS to never be ahead of the PTS in the previous commit
	  this situation should be impossible to hit now.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4515>

2023-04-27 16:29:53 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/multifile/gstsplitmuxsink.c:
	  splitmuxsink: Catch invalid DTS to avoid running into problems later
	  DTS > PTS makes no sense, so we clamp DTS to the PTS. Also if there's a
	  PTS but no DTS, then assume that PTS=DTS to make sure we're not working
	  with a much older DTS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4515>

2023-04-27 13:00:42 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Fix handling of `*` control path
	  Regression introduced by 7f9d689572843ff9e0b8a92128034a8fc4a14d96.
	  Thanks to Tristan Matthews for reporting this.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4503>

2023-04-17 11:36:55 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* ext/adaptivedemux2/dash/gstmpdclient.c:
	  dash: mpdclient: fix divide by 0 if segment has no duration
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4441>

2023-04-17 09:28:43 +0200  Edward Hervey <edward@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fix av1C parsing
	  This is a regression introduced by
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3882
	  The av1c codec configuration parsing would always fail due to an off-by-one
	  error, the content of an atom starting at offset 8 (i.e. the 9th byte) and not
	  9 (the 10th byte).
	  Also introduce a break in order to not get stray warnings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4435>

2023-04-12 12:47:02 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/multifile/gstimagesequencesrc.c:
	* gst/multifile/gstmultifilesrc.c:
	  multifile: error out if no filename was set
	  Fixes #2483
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4429>

2023-04-06 08:55:46 +0200  Matthias Fuchs <matthias1.fuchs@zeiss.com>

	* ext/qt/qtwindow.cc:
	  qtwindow: unref caps in destructor
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4418>

2023-04-12 17:18:13 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	  v4l2: Fix use after free of fmtdesc part 2
	  Add missing code in merge commit e890e6e8d8bd
	  ("v4l2: Fix use after free of fmtdesc"). The v4l2object code was
	  missing.
	  Related to https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4317
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4426>

2023-04-12 17:18:13 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2: Fix use after free of fmtdesc
	  The decoder needs to force another enumeration of the format. For
	  this it was clearing the v4l2object insternal list, leaving a fmtdesc
	  pointer pointing to freed memory. This patch clears the fmtdesc pointer
	  that has just been free. It also makes sure the probe function does not
	  use the cached formats list. The probe function will restore the current
	  fmtdesc pointer based on the currently configured pixelformat.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4426>

2023-03-31 10:32:54 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	* sys/v4l2/gstv4l2videodec.c:
	  v4l2: videodec: Prefer acquired caps over anything downstream
	  As we don't have anything smart in the fixation process, we may endup with
	  a format that has a lower bitdepth, even if downstream can handle higher
	  depth. it is notably the case when negotiating with deinterlace, which places
	  is non-passthrough caps before its passthrough one. This makes the generic
	  fixation prefer the formats natively supported by deinterlace element over
	  the HW 10bit format. As some HW can downscale 10bit to 8bit, this can break
	  10bit decoding.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4426>

2023-03-31 10:31:07 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2: videodec: Remove leading space in comment
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4426>

2023-03-03 18:40:22 +0000  Jan Alexander Steffens (heftig) <heftig@archlinux.org>

	* docs/gst_plugins_cache.json:
	* gst/multifile/gstimagesequencesrc.c:
	  imagesequencesrc: Properly set default location
	  Noticed this because the generic_states test kept segfaulting at random.
	  GLibC 2.37 can crash when NULL is supplied as a format string.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4425>

2023-04-11 17:54:23 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: fix critical when using an unsupported URI
	  adaptivedemux2 only supports http(s), trying to use it with, say,
	  file:// was raising a CRITICAL in libsoup.
	  Fix #2476
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4421>

2023-04-12 00:31:17 +0100  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.22.2 ===

2023-04-11 17:29:28 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2023-04-04 09:21:47 +0200  Edward Hervey <edward@centricular.com>

	* gst/rtpmanager/rtptwcc.c:
	* tests/check/elements/rtpsession.c:
	  twcc: Better handle duplicate packets
	  The previous code would only check if two packets in a row were duplicates. If
	  not (i.e. a packet is a duplicate of a packet received slightly before) the code
	  would generate completely bogus FCI because it assumes there were no duplicates
	  present in the array.
	  In order to be efficient, just store all received packets and remove the
	  duplicates just before the FCI is generated once the array of observations have
	  been sorted by seqnum.
	  Fixes TWCC usage with moderate to high packet duplication.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4378>

2022-11-04 22:04:21 +0100  Alexande B <abobrikovich@gmail.com>

	* sys/osxvideo/cocoawindow.m:
	  osxvideosink: fix broken aspect ration and frame drawing region
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4346>

2023-04-04 19:23:14 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Skip PTs with caps incompatible to the global caps
	  Otherwise empty caps are created while all following code assumes that
	  the caps will have exactly one structure, and then run into assertions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4343>

2023-03-28 15:29:46 +0800  Shengqi Yu <shengqi.yu@mediatek.com>

	* docs/gst_plugins_cache.json:
	* sys/v4l2/gstv4l2object.c:
	  v4l2object: Add support for YVU420M format
	  This is a multi-planar format with planes non contiguous in memory. It
	  is intended to be used only in drivers and applications that support the
	  multi-planar API.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4318>

2023-03-23 16:40:54 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst/rtp/gstrtpjpegdepay.c:
	  rtpjpegdepay: fix logic error when checking if an EOI is present
	  We wouldn't add the missing EOI marker if the frame ended with
	  either 0xFF NN or 0xNN D9.
	  Fixes #2407
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4269>

2023-03-20 16:35:45 +0100  Piotr Brzeziński <piotr@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fix seek adjustment with SNAP_AFTER flag
	  With GST_SEEK_FLAG_SNAP_AFTER present, the previous version would
	  adjust seek time based on the keyframe farthest away from desired_time.
	  This was incorrect, because we always want the *earliest* suitable keyframe
	  to seek to, not the last one.
	  With this fix, in case of the SNAP_AFTER, we now look for the closest keyframe
	  that can be found after desired_time. Behaviour for SNAP_BEFORE should remain
	  unchanged.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4251>

2023-01-31 16:02:03 +0100  Michael Tretter <m.tretter@pengutronix.de>

	* docs/gst_plugins_cache.json:
	* sys/v4l2/gstv4l2object.c:
	  v4l2object: mark jpeg as parsed
	  Assuming that V4L2 CAPTURE devices always use one buffer per JPEG image, we can
	  always mark JPEGs provided by a V4L2 element as parsed.
	  The V4L2 elements require that JPEG images sent to V4L2 OUTPUT devices must
	  always be parsed.
	  This is necessary to link a V4L2 CAPTURE device with a V4L2 OUTPUT device
	  without explicitly marking the stream as parsed or adding a jpegparse into the
	  pipeline.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4247>

2023-03-17 17:13:39 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-read-common.c:
	  matroskademux: Make gst_byte_reader_get_data() usage less confusing
	  This is effectively the same behaviour but retrieving 0 bytes of data is
	  confusing to read.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4221>

2023-03-17 16:48:51 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/flac/gstflacenc.c:
	  flacenc: Fix mapping of GStreamer image tag type to FLAC image tag type
	  These enums are not compatible so just casting them does not work.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4221>

2023-03-17 16:32:45 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* sys/oss/gstossaudio.c:
	* sys/oss/gstosshelper.c:
	  plugins: Fix various trivial clang compiler warnings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4221>

2023-03-10 13:10:16 -0500  Arun Raghavan <arun@asymptotic.io>

	* docs/gst_plugins_cache.json:
	* gst/matroska/matroska-mux.c:
	  matroskamux: Set rate/channels in Opus template caps
	  For some reason these were missed, and if caps didn't have them, we would emit
	  an invalid Matroska file with a 0 value for Sampling Frequency or channels.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2354
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4172>

2023-03-10 12:06:08 -0500  Arun Raghavan <arun@asymptotic.io>

	* gst/rtp/gstrtpopusdepay.c:
	  rtpopusdepay: Assume 48 kHz if sprop-maxcapturerate is missing
	  This matches 7587, section 6.1:
	  >   sprop-maxcapturerate:  a hint about the maximum input sampling rate
	  >      [...]
	  >      bandwidths (Table 1).  By default, the sender is assumed to have
	  >      no limitations, i.e., 48000.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2354
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4172>

2023-03-06 19:56:08 +0000  Matt Feury <mattfeury@gmail.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Consider "451: Parameter Not Understood" when handling broken control urls
	  similar to https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3854
	  it seems that some implementations return this when
	  the server does not implement URL handling correctly
	  this fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2334
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4129>

2023-03-04 16:13:04 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.22.1 ===

2023-03-04 13:42:32 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2023-03-03 08:21:08 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	  adaptivedemux2: Fix buffering treshold initialization
	  Properly initialize the stream default recommended buffering threshold so that
	  a default (10s) value is used until the subclass can provide a proper value
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2064
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4105>

2023-02-23 11:18:44 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Use the correct vfunc for the `push-backchannel-sample` action signal
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/446
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4056>

2023-02-22 22:18:48 +0900  Seungha Yang <seungha@centricular.com>

	* gst/isomp4/gstqtmux.c:
	  qtmux: Fix assertion on caps update
	  GstQTMuxPad.configured_caps should be protected since it's
	  updated from streaming thread and accessed in aggregate thread
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4055>

2023-02-22 11:52:21 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/fur.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/ka.po:
	* po/ky.po:
	* po/lt.po:
	* po/lv.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	* po/zh_HK.po:
	* po/zh_TW.po:
	  gst-plugins-good: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4041>

2023-02-02 16:48:05 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/gstqtmux.c:
	  qtmux: Implement writing of `av1C` version 1 box
	  Version 0 is ancient and not specified in any documents. Take it
	  directly from the `codec_data` if presents or otherwise try to construct
	  a reasonably looking `av1C` box.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4027>

2023-02-02 16:28:47 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Drop av1C version 0 parsing and implement version 1 parsing
	  The av1C box is optional so dropping parsing does not break anything
	  fundamentally, and there seems to be no historical record how version 0
	  even looks like while the comments and the parsing disagreed with each
	  other.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4027>

2023-02-01 12:09:52 +0100  Enrique Ocaña González <eocanha@igalia.com>

	* gst/isomp4/qtdemux.c:
	* gst/isomp4/qtdemux.h:
	  qtdemux: Don't emit GstSegment correcting start time when in MSE mode
	  When using qtdemux in a pipeline that should only work as a pure demuxer (not
	  for actual playback), qtdemux shouldn't emit new GstSegments to correct
	  the start time (jump to the future) to ensure that the user experiences no
	  playback delay. By doing so, it's generating the wrong segments when an append
	  of data from the past happens. When that happens, downstream elements such as
	  parsers (eg: aacparse) may clip those buffers laying before the GstSegment and
	  create problems on the GStreamer client app (eg: WebKit).
	  Getting buffers clipped out because of the wrong GstSegments started becoming
	  a problen when this commit was introduced:
	  ab6e49e9cc audioparsers: add back segment clipping to parsers that have lost it
	  This clipping makes test DASH shaka 35 from MVT tests[1] to fail in
	  WebKitGTK/WPE (at least) and can potentially cause a number of other problems
	  in the WebKit Media Source Extensions (MSE) code.
	  Note that this new behaviour of not emitting new GstSegments only makes sense
	  when qtdemux is being used as a pure demuxer and not as part of a regular
	  pipeline. This is why the variant field has been added. When equal to
	  VARIANT_MSE_BYTESTREAM, it will make qtdemux behave differently in push mode,
	  taking decisions that meet the expectations for an MSE-like processing mode.
	  This kind of tweaks have been done in the past for MSS streams, for instance.
	  That code has been refactored to use VARIANT_MSS_FRAGMENTED now, instead of
	  its own dedicated boolean flag.
	  Co-authored by: Alicia Boya García <ntrrgc@gmail.com>
	  ...who suggested to use "variant: mse-bytestream" in the caps to identify that
	  mode, as proposed in her unmerged patch:
	  https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/467
	  [1] https://github.com/rdkcentral/mvt
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3990>

2023-02-10 15:43:45 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Handle moov atom length=0 case by reading until the end
	  Previously it would fail to demux the file by trying to read G_MAXUINT64
	  bytes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3938>

2023-02-10 15:35:15 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fix guint vs gsize type confusion
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3938>

2023-01-31 16:56:18 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Also consider "Method Not Valid In This State" error in broken control URL handling workaround
	  Some servers send a 455 error instead of any reasonable error when using
	  a correctly constructed control URL.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3864>

2023-01-31 16:44:10 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/rtpmanager/gstrtpptdemux.c:
	  rtpptdemux: set different stream-id on each src pad
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3866>

2023-01-31 15:28:22 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/rtpmanager/gstrtpssrcdemux.c:
	  rtpssrcdemux: set different stream-id on each src pad
	  All the RTP src pads were sharing the same stream-id while each actually
	  carry a different stream.
	  This was causing problem for example when funneling the streams together
	  and then trying to split them using 'streamiddemux'.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3866>

2023-01-25 00:52:28 +0000  Pawel Stawicki <stawel+gstreamer@gmail.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2h264dec: Fix Raspberry Pi4 will not play video in application
	  Ensure object v4l2object->pool will be released by
	  correctly releasing the temporary thread-safety lock
	  Fixes issue #1729
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3815>

2023-01-24 22:50:37 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/rtp/gstrtpredenc.c:
	  redenc: fix setting of extension ID for twcc
	  1 was previously hardcoded in, and the bug went under the radar because
	  webrtcsink hardcodes the number too.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3812>

2023-01-23 12:01:00 +0100  David Svensson Fors <davidsf@axis.com>

	* gst/udp/gstudpsrc.c:
	  udpsrc: GstSocketTimestampMessage only for SCM_TIMESTAMPNS
	  Deserialize socket control messages as GstSocketTimestampMessage only
	  if (level, type) is (SOL_SOCKET, SCM_TIMESTAMPNS).
	  Without this patch, messages with types SCM_RIGHTS or SCM_CREDENTIALS
	  could be deserialized as GstSocketTimestampMessage instead of
	  GUnixFDMessage or GUnixCredentialsMessage from gio.
	  Fixes #1736
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3777>

2023-01-25 16:46:42 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.22.0 ===

2023-01-23 19:29:34 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2023-01-23 16:27:56 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/hr.po:
	* po/ro.po:
	* po/zh_CN.po:
	  gst-plugins-good: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773>

2023-01-17 17:51:16 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/matroska/matroska-demux.c:
	* gst/matroska/matroska-mux.c:
	* gst/matroska/webm-mux.c:
	  matroska: Add `stream-format = (string) obu-stream` to AV1 caps
	  Anything else is not allowed in Matroska/WebM.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3740>

2023-01-17 17:50:27 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/isomp4/gstqtmuxmap.c:
	* gst/isomp4/qtdemux.c:
	  isomp4: Add `stream-format = (string) obu-stream` to AV1 caps
	  Anything else is not allowed in MP4.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3740>

2023-01-17 15:04:10 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/isomp4/fourcc.h:
	* gst/isomp4/qtdemux.c:
	* gst/isomp4/qtdemux_types.c:
	  qtdemux: Add basic support for AVC-Intra video
	  AVC-Intra is a range of H.264-compliant intra-only codecs from
	  Panasonic. The codes and descriptions have been taken from VLC.
	  The (encumbered) sample I have here produces byte-stream H.264,
	  including SPS and PPS and no `avcC` box.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3739>

=== release 1.21.90 ===

2023-01-13 19:08:48 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2023-01-12 14:32:30 -0500  Olivier Crête <olivier.crete@ocrete.ca>

	* gst/rtp/gstrtpopuspay.c:
	  rtopuspay: Use GstStaticCaps to cache parsed caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674>

2023-01-12 14:25:52 -0500  Olivier Crête <olivier.crete@ocrete.ca>

	* gst/rtp/gstrtpopuspay.c:
	* tests/check/elements/rtpopus.c:
	  rtopuspay: Ignore the stereo parameter in multiopus caps
	  Also add unit tests for the various variants
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674>

2023-01-03 18:55:24 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst/rtp/gstrtpopuspay.c:
	  rtpopuspay: Leave original caps as-is
	  This should make it work if someone specifies stereo with MULTIOPUS
	  somehow.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674>

2023-01-03 18:06:56 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst/rtp/gstrtpopuspay.c:
	  rtpopuspay: Return upstream channel filter based on OPUS vs MULTICAPS
	  Only allow 1 or 2 channels if the caps are OPUS, or 3+ if they are
	  MULTIOPUS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674>

2023-01-03 17:44:37 -0500  Olivier Crête <olivier.crete@collabora.com>

	* docs/gst_plugins_cache.json:
	* gst/rtp/gstrtpopusdepay.c:
	* gst/rtp/gstrtpopuspay.c:
	  rtpopus: Put MULTIOPUS in all caps
	  The RTP payload encoding-name are always in caps in GStreamer.
	  In SDP, they are not case-sensitive, but since caps are, we need to pick
	  a caps, and we picked upper-case along time ago.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674>

2023-01-11 15:41:09 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/LINGUAS:
	* po/af.po:
	* po/az.po:
	* po/bg.po:
	* po/ca.po:
	* po/cs.po:
	* po/da.po:
	* po/de.po:
	* po/el.po:
	* po/en_GB.po:
	* po/eo.po:
	* po/es.po:
	* po/eu.po:
	* po/fi.po:
	* po/fr.po:
	* po/fur.po:
	* po/gl.po:
	* po/hr.po:
	* po/hu.po:
	* po/id.po:
	* po/it.po:
	* po/ja.po:
	* po/ka.po:
	* po/ky.po:
	* po/lt.po:
	* po/lv.po:
	* po/mt.po:
	* po/nb.po:
	* po/nl.po:
	* po/or.po:
	* po/pl.po:
	* po/pt_BR.po:
	* po/ro.po:
	* po/ru.po:
	* po/sk.po:
	* po/sl.po:
	* po/sq.po:
	* po/sr.po:
	* po/sv.po:
	* po/tr.po:
	* po/uk.po:
	* po/vi.po:
	* po/zh_CN.po:
	* po/zh_HK.po:
	* po/zh_TW.po:
	  gst-plugins-good: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711>

2023-01-11 14:53:39 +0000  Tim-Philipp Müller <tim@centricular.com>

	* scripts/dist-translations.py:
	* scripts/meson.build:
	  Fix translation pot files when creating dist tarballs
	  Add version as per Translation Project requirements and
	  also add a .pot file without the ABI suffix.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711>

2023-01-07 20:03:31 +0100  Marek Vasut <marex@denx.de>

	* ext/jpeg/gstjpegdec.c:
	  jpegdec: Disable libjpeg-turbo SIMD acceleration support for now
	  The libjpeg-turbo SIMD acceleration support suffers from multiple
	  unresolved cornercases. Disable the libjpeg-turbo for now until
	  those cornercases are resolved.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3694>

2022-08-07 14:23:04 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux: Consider starting stream time in presentation offset
	  When calculating the presentation offset for CMAF input in live
	  playback, subtract the stream_time of the fragment from the
	  calculated presentation offset, so that the first fragment
	  is played at running time zero.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3680>

2022-12-22 21:23:39 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/qt/meson.build:
	* ext/qt6/meson.build:
	* meson_options.txt:
	  meson: Add an option to select the method for finding Qt
	  This is needed by Cerbero, since we want to force the use of qmake to
	  find Qt on non-Linux platforms.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3628>

2022-12-26 23:00:18 +0900  Seungha Yang <seungha@centricular.com>

	* ext/gtk/gstgtkbasesink.c:
	  gtkbasesink: Fix widget leak
	  gst_gtk_base_sink_get_widget() will increase refcount and it should
	  be released after use
	  Fixing regression introduced by the commit
	  941c0e81ddf5c0ad6a9fac59b1d6bf7723025434
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3644>

2022-12-27 23:33:31 +0900  Seungha Yang <seungha@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Fix string leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3645>

2022-12-27 23:26:48 +0900  Seungha Yang <seungha@centricular.com>

	* gst/rtpmanager/rtptimerqueue.c:
	  rtptimerqueue: Fix memory leak
	  Should chain up to parent's finalize
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3645>

2022-12-22 11:16:26 +0100  Patricia Muscalu <patricia@axis.com>

	* gst/isomp4/gstqtmux.c:
	  qtmux: Fix buffer leak in fragment_buffers
	  When pushing buffers from one of the sink pads fail,
	  make sure that all buffers added to fragment_buffers on other pads
	  are freed as well.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3624>

2022-09-19 21:11:39 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/isomp4/atoms.c:
	  qtmux: For video with N/1001 framerates use N as timescale instead of centiframes
	  This is recommended by various specifications for such framerates, while
	  for integer framerates we continue using centiframes to allow for some
	  more accuracy.
	  Using N means that no rounding error accumulates, eventually leading to
	  outputting a packet with a different duration.
	  Some tools such as MediaInfo determine that a stream is variable
	  framerate if any packet has a different duration than the others, and
	  there is no reason I can see for not using the full 4 bytes of
	  resolution that the mp4 timescale offers.
	  Example problematic pipeline:
	  ```
	  videotestsrc num-buffers=5001 ! video/x-raw,framerate=60000/1001,width=320,height=240 ! \
	  videoconvert ! x264enc bitrate=80000 speed-preset=1 tune=zerolatency ! h264parse ! \
	  video/x-h264,profile=high-10 ! mp4mux ! filesink location="result2.mp4"
	  ```
	  This results in a media file that MediaInfo detects as variable
	  framerate because the 5000th packet has duration 99 instead of 100.
	  With this patch, the timescale is 60000 and all packets have duration
	  1001.
	  Related issue for context: https://bugzilla.gnome.org/show_bug.cgi?id=769041
	  Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3049>

2022-12-21 02:37:58 +1100  Jan Schmidt <jan@centricular.com>

	* ext/qt/qtwindow.cc:
	  qmlglsrc: Handle HiDPI scaling
	  When calculating the capture framebuffer size, include
	  any device scaling applied to the rendered framebuffer
	  Fixes only capturing part of the window when there is
	  a global scale factor.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3612>

2022-12-21 02:32:41 +1100  Jan Schmidt <jan@centricular.com>

	* ext/qt/qtwindow.cc:
	  qmlglsrc: Unmap buffer before adding sync meta
	  Adding a sync meta to a GstBuffer requires that it
	  be writable. Mapping the buffer with the video frame API
	  holds an extra ref on the buffer, so unmap before
	  trying to modify it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3612>

2022-12-21 02:31:05 +1100  Jan Schmidt <jan@centricular.com>

	* ext/qt/gstqtsrc.cc:
	  qmlglsrc: Stop when basesrc calls unlock()
	  Instead of stopping capture when the state changes,
	  handle other cases of basesrc stopping capture by - such
	  as handling an EOS event - by implementing an unlock()
	  method
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3612>

2022-12-16 17:27:33 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Always use `tfdt` if available in BYTE segments
	  This reverts the decision from
	  https://bugzilla.gnome.org/show_bug.cgi?id=754230
	  where it was decided that we rather play safe and only use the `tfdt` if
	  it is "significantly different" to the sum of sample durations.
	  As the specification says
	  If the time expressed in the track fragment decode time (‘tfdt’) box
	  exceeds the sum of the durations of the samples in the preceding
	  movie and movie fragments, then the duration of the last sample
	  preceding this track fragment is extended such that the sum now
	  equals the time given in this box.
	  we have to use the `tfdt` in general to allow for it to signal gaps in
	  the stream.
	  A muxer producing fragments might not yet know the full duration of the
	  last sample of a previous fragment if the next fragment starts with a
	  gap, and knowing the actual start of the next fragment would potentially
	  require to violate latency requirements.
	  Additionally, the existence of `tfdt` allows to avoid accumulating
	  rounding errors from summing up the durations.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3586>

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/3580>

2022-12-13 12:23:56 +0100  Thibault Saunier <tsaunier@igalia.com>

	* ext/qt/qtitem.cc:
	* ext/qt6/qt6glitem.cc:
	  base:navigation: Cleanup navigation key modifiers enum
	  We were exposing the 'ALT' modifier as if we were guaranteeing its
	  accuracy but truth is we were only exposing configuration dependent
	  values.
	  Make the API simpler for now, the same way as Gtk3 was exposing it, and
	  when we have time to guarantee more values by making them take backends
	  configuration into account, we will expose those values in a accurate
	  way.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1402
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3565>

2022-12-09 11:35:25 +0100  Xabier Rodriguez Calvar <calvaris@igalia.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Clear protection events when we get new ones
	  If we keep the old events they can be end up being passed to the app, that could
	  discard the protection information because it has been seen before.
	  Drive by improvement: use g_queue_clear_full instead of foreach+clear for
	  protection events.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3547>

2022-05-22 10:46:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/jpeg/gstjpegdec.c:
	  jpegdec: Enable packetized if sink caps contains parsed as true.
	  jpegdec is capable to parse input frames, but if jpegparse is before,
	  there's no need to reparse frames. This patch configure jpegdec as
	  packetized, skipping parsing, if negotiated sink caps has the boolean
	  field 'parsed' as true.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2464>

2022-09-27 09:44:51 +0000  Henry Hoegelow <henry@hoegelow.com>

	* ext/pulse/pulsesink.c:
	  pulsesink: Fix occasional period of silence on resume
	  According to comment in gst_pulsering_stream_latency_cb, latency updates
	  happen every 100 ms. The code in gst_pulsering_stream_latency_cb does
	  not care about the actual state of the ringbuffer, pbuf->acquired or
	  not.
	  Thus, every 100 ms the ringbuf->segdone may be set, even though the
	  object itself might be in 'destroyed' state. On next
	  gst_pulseringbuffer_acquire the segdone is not touched, so playback may
	  resume with invalid/wrong segdone value. This finally leads to a period
	  of silence playing after resuming the pipeline.
	  The problem was found on 'not-yet-released'-hardware and so far was not
	  reproducible on desktop computer.
	  Removing the callback as long as the ringbuffer is not in 'acquired'
	  state solves the problem reliably on the hardware device that the issue
	  was detected on.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3082>

2021-05-14 23:06:43 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtp/gstrtpvp9depay.c:
	* gst/rtp/gstrtpvp9depay.h:
	  rtpvp9depay: expose keyframe-related properties
	  This simply brings in the wait-for-keyframe and request-keyframe
	  properties from rtpvp8depay.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/909>

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/3535>

2022-12-05 10:55:57 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Don't allow stream selection while switching periods
	  The stream selection is done on the currently outputting tracks, but in order to
	  (de)activate the backing streams we can only do it if the input and output
	  period are identical.
	  Fixes crash when doing stream selection during period migration
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3525>

2022-12-05 02:29:08 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.21.3 ===

2022-12-05 01:28:21 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2022-12-04 12:25:41 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Remove ChangeLog files from git repository
	  This information is tracked fully in the git repository, so
	  no point having the ChangeLog duplicate it, and it interferes
	  with grepping the repository.
	  We are going to create the ChangeLogs on the fly when generating
	  tarballs going forward (with a limited history), since it's still
	  valuable for tarball consumers to be able to easily see a list of
	  recent changes.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/73
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3521>

2022-11-07 00:10:39 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	* scripts/gen-changelog.py:
	  meson: Generate ChangeLog files for release tarballs on dist
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3521>

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/3517>

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/3513>

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/3500>

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

	* ext/qt/gstqtglutility.cc:
	* ext/qt6/gstqt6glutility.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/3492>

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/3481>

2022-11-22 11:32:57 -0500  Matt Crane <matt@standard.ai>

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpbin.h:
	* gst/rtpmanager/gstrtpsession.c:
	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtpsession.h:
	  rtpsession: Support disabling late adjustment of ntp-64 header ext
	  Currently in rtp_session_send_rtp(), the existing ntp-64 RTP header
	  extension timestamp is updated with the actual NTP time before sending
	  the packet. However, there are some circumstances where we would like
	  to preserve the original timestamp obtained from reference timestamp
	  buffer metadata.
	  This commit provides the ability to configure whether or not to update
	  the ntp-64 header extension timestamp with the actual NTP time via the
	  update-ntp64-header-ext boolean property. The property is also exposed
	  via rtpbin. Default property value of TRUE will preserve existing
	  behavior (update ntp-64 header ext with actual NTP time).
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1580
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3451>

2022-10-06 17:08:54 +1100  Matthew Waters <matthew@centricular.com>

	* ext/meson.build:
	* ext/qt6/gstplugin.cc:
	* ext/qt6/gstqml6glsink.cc:
	* ext/qt6/gstqml6glsink.h:
	* ext/qt6/gstqsg6glnode.cc:
	* ext/qt6/gstqsg6glnode.h:
	* ext/qt6/gstqt6element.cc:
	* ext/qt6/gstqt6elements.h:
	* ext/qt6/gstqt6gl.h:
	* ext/qt6/gstqt6glutility.cc:
	* ext/qt6/gstqt6glutility.h:
	* ext/qt6/meson.build:
	* ext/qt6/qt6glitem.cc:
	* ext/qt6/qt6glitem.h:
	* meson_options.txt:
	* tests/examples/meson.build:
	* tests/examples/qt6/meson.build:
	* tests/examples/qt6/qmlsink/main.cpp:
	* tests/examples/qt6/qmlsink/main.qml:
	* tests/examples/qt6/qmlsink/meson.build:
	* tests/examples/qt6/qmlsink/play.pro:
	* tests/examples/qt6/qmlsink/qmlsink.qrc:
	  add new plugin for Qt 6 rendering inside a QML scene
	  - Based heavily on the existing Qt5 integration however:
	  - The sharing of OpenGL resources is slightly different
	  - The integration with the scengraph is a bit different
	  - Wayland, XCB and KMS have been smoke tested.  Android, MacOS/iOS,
	  Windows may or may not work.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3281>

2022-11-21 15:35:58 +0800  Elliot Chen <elliot.chen@nxp.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: bypass check some transfer types in colorimetry
	  v4l2 will report fail for some streams whose colorimetry value such as 2:4:8:3.
	  Can bypass check these transfer types in colorimetry to avoid error.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3440>

2022-10-27 17:30:28 +0200  Johan Sternerup <johast@axis.com>

	* gst/rtpmanager/rtpsession.c:
	* tests/check/elements/rtpsession.c:
	  Use the correct SSRC(s) when routing a RTCB FB FIR
	  Previously we tried to route an incoming RTCP FB FIR to the correct ssrc
	  using the "media source" component of the RTCP FB message. However,
	  according to RFC5104 (section 4.3.1.2) the "media source" SHALL be set
	  to 0. Instead the ssrc(s) in use are propagated via the FCI data. Now
	  a specific GstForceKeyUnit event is sent for every ssrc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3292>

2022-11-23 16:37:40 +1100  Jan Schmidt <jan@centricular.com>

	* gst/rtpmanager/rtpsource.c:
	  rtpsource: Track the seqnum for senders
	  RTP source statistics are tracked for local senders by
	  treating them as a receiver of their own outbound packets.
	  Accordingly, track the highest packet seqnum so that the
	  packets-lost calculation generates a sensible number instead
	  of always reporting -$number_of_packets_sent
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3454>

2022-11-22 21:57:16 +1100  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/meson.build:
	  adaptivedemux2: Add GStreamer to the deps list
	  Explicitly dep on GStreamer so as not to accidentally
	  link to the system version in a git build
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3453>

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/3414>

2022-11-21 17:24:38 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	  adaptivedemux2: Don't leak caps in debug statements
	  Instead just directly use the stream object (which will report the caps)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3443>

2022-11-21 17:23:44 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	  adaptivedemux2: Don't leak tags
	  If we got them from GstStream, we should unref them when done
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3443>

2022-11-21 17:23:10 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux: Use gst_clear_tag_list_where applicable
	  Clearer and ensures fields are reset
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3443>

2022-11-21 15:11:21 +0100  Edward Hervey <edward@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Don't leak sticky events
	  We have incremented the reference 2 lines above, and
	  gst_pad_store_sticky_event() does not take a reference, therefore release it
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3443>

2022-11-15 21:42:34 +1100  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemuxutils.c:
	  adaptivedemux2: Fix sticky event storage.
	  Use the new gst_event_type_to_sticky_ordering() method to retrieve
	  the order that sticky events should be sent / stored in, instead
	  of assuming it's the event type value.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3387>

2022-11-15 13:50:13 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	* sys/v4l2/gstv4l2object.c:
	  video: Add arbitrary tile dimensions support
	  In current tile representation, only tiles with power of two
	  width and height in bytes are supported. This limitation
	  prevents adding more complex tiles formats.
	  In this patch, we deprecate tile_ws and tile_hs from GstVideoFormatInfo and
	  replace if with an array of GstVideoTileInfo. Each plane tiles are then
	  described with their pixels width/height, line stride and total size.
	  The helper gst_video_format_info_get_tile_sizes() that depends on the
	  deprecated API is also being removed. This can simply be removed as it wasn't
	  in any stable release yet.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3424>

2022-09-09 13:13:32 +0300  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/multifile/gstsplitmuxsink.c:
	  splitmuxsink: Avoid assertion when WAITING_GOP_COLLECT on reference context
	  I have seen a backtrace out in the wild where this happened. Maybe after
	  receiving EOS and stream-start on the reference context.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3005>

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/3428>

2022-05-03 18:36:54 +0200  Enrique Ocaña González <eocanha@igalia.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	* ext/adaptivedemux2/hls/gsthlsdemux.h:
	  hlsdemux2: Expose EXT-X-PROGRAM-DATE-TIME as tags.
	  This allows an application to use timestamps associated
	  with fragments.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1417>

2022-11-17 20:59:35 +1100  Matthew Waters <matthew@centricular.com>

	* gst/isomp4/atoms.c:
	  qtmux: use trun with multiple entries in more cases
	  The only case where we definitely need to write a new trun is when the
	  data_offset value does not match the end of the list of entries.
	  Needing multiple trun atoms is required when interleaving multiple
	  streams together.
	  All other cases can be covered by adding more entries to the existing
	  trun atom.
	  Fixes playback of fragemented mp4 in ffplay and chrome.
	  Using e.g. mp4mux fragment-duration=1000 fragment-mode=dash-or-mss
	  and
	  mp4mux fragment-duration=1000 fragment-mode=first-moov-then-finalise
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3426>

2022-10-26 07:04:32 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Notify that we are streams-aware
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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/3420>

2022-11-13 19:19:41 -0500  F. Duncanh <fduncanh@gmail.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: Fixes three H.264/HEVC ITU conformance tests
	  Postpone the cleanup of any consecutive sequence of lost frames
	  which starts at frame 0, until frame 100 is dequeued from driver.
	  This allows fluster tests JVT/CVWP2_TOSHIBA_E, JVC/CVWP3_TOSHIBA_E
	  and HEVC/POC_A_Bossen_3 that sends out-of-order frames to successfully
	  complete  (e.g., test of Amphion vpu driver).
	  Fixes #1569
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3398>

2022-11-15 17:26:18 +0200  Sebastian Dröge <sebastian@centricular.com>

	* tests/check/elements/rtpjitterbuffer.c:
	  rtpjitterbuffer: Add test for rescheduling timers to negative times
	  This tests the changes introduced by 4d3b8d1129d8b863e4156cd0334e93257b9d0cc4
	  for issue #571.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3416>

2022-09-07 11:07:40 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: Reschedule timers when updating their offset
	  As EXPECTED timers are skipped the order of the timers relative to each
	  other can change if there are EXPECTED timers and rescheduling needs to
	  happen.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1422
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3416>

2022-11-15 21:22:17 +0530  Sanchayan Maity <sanchayan@asymptotic.io>

	* gst/wavparse/gstwavparse.c:
	  wavparse: Do not run all typefinders for all output
	  In order to figure out if the "raw" audio contained within the wav
	  container is actually DTS, wavparse calls the typefinder helper
	  except that means it runs all typefinders.
	  Since it only cares about checking for DTS, we should only run the
	  audio/x-dts typefinder (if present). Commit 858e516 did not really
	  fix things.
	  Use the new type helper with the caps to fix this.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3417>

2022-11-14 21:19:12 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Consistently set seqnums on events
	  Set udpsrc seqnums on all events sent to the udpsrc's, and before
	  forwarding events out of rtspsrc set the latest seek seqnum on them if
	  any.
	  Also produce a consistent seqnum in rtspsrc from the very beginning.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3409>

2022-11-14 19:14:27 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Make segment event writable before overriding the seqnum and use the proper API to do so
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3409>

2022-11-14 19:10:05 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Intercept and handle events when using no manager too
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3409>

2022-11-14 19:08:54 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Don't blindly copy over sticky events from manager pad to external source pad
	  This would get around the code that modifies some events when they go
	  through the ghost pad's proxypad. Instead go via the event function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3409>

2022-11-14 19:03:21 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Don't make udpsrc segment events writable just to retrieve their seqnum
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3409>

2022-11-14 18:40:56 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtsp/gstrtspsrc.c:
	  rtspsrc: Reset EOS flag also on FLUSH_STOP and not only on ssrc-active
	  Also don't bother not sending EOS if EOS was sent already:
	  gst_pad_push_event() takes care of that for us already.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3409>

2022-11-15 13:38:18 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ext/gdk_pixbuf/gstgdkpixbufoverlay.c:
	  gdkpixbufoverlay: fix docs - changing images at runtime is supported
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3415>

2022-11-13 08:38:25 +0100  Edward Hervey <edward@centricular.com>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: Unlock timer waits on flushing
	  If there is a pending EOS wait for example, we would never unblock on flushing
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3401>

2021-10-14 11:56:58 +0200  Rafał Dzięgiel <rafostar.github@gmail.com>

	* tests/check/elements/dash_mpd.c:
	  tests: Add DASH MPD baseURL with query test
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147>

2021-10-14 10:12:51 +0200  Rafał Dzięgiel <rafostar.github@gmail.com>

	* ext/adaptivedemux2/dash/gstmpdparser.c:
	  mpdparser: Fix missing baseURL query
	  When no initializationURL or mediaURL, return baseURL that also
	  contains original URI query if available. This fixes a problem
	  where URI query was being omitted in the HTTP requests.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147>

2021-10-14 10:09:31 +0200  Rafał Dzięgiel <rafostar.github@gmail.com>

	* ext/adaptivedemux2/dash/gstmpdclient.c:
	* ext/adaptivedemux2/dash/gstmpdparser.c:
	* ext/adaptivedemux2/dash/gstmpdparser.h:
	  mpdparser: Be consistent about returning duplicated URL
	  Instead of returning a "const gchar" or a "gchar" that should not be freed, always
	  return a duplicated string as those functions were used together with g_strdup anyway.
	  This is needed to prepare support for returning modified strings in next commit.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147>

2021-10-14 10:18:40 +0200  Rafał Dzięgiel <rafostar.github@gmail.com>

	* ext/adaptivedemux2/dash/gstmpdparser.c:
	  mpdparser: Return correct mediaURL value
	  This fixes a problem where get_mediaURL was returning NULL when segmentURL
	  was unavailable instead of baseURL as a fallback.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147>

2022-11-14 12:51:19 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/matroska/matroska-demux.c:
	  matroskademux: Handle element's duration query.
	  This is small regression from commit f7abd81a.
	  When calling `gst_element_query()` no pad is associated with that query, but the
	  current code always forwards the query to the associated pad, which is NULL in
	  previous case. This patch checks for the pad before forwarding the query.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3404>

2022-11-13 12:18:54 +0100  Rafał Dzięgiel <rafostar.github@gmail.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Fix parent object leak
	  gst_object_get_parent() method is transfer-full, thus unref is needed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3396>

2022-10-10 19:58:12 +0100  Colin Kinloch <colin.kinloch@collabora.com>

	* gst/videobox/gstvideobox.c:
	* gst/videocrop/gstvideocrop.c:
	  videocrop, videobox: Simplify navigation event handling and support touch events
	  Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053>

2022-09-19 18:06:44 +0100  Colin Kinloch <colin.kinloch@collabora.com>

	* gst/videofilter/gstvideoflip.c:
	  videoflip: Use gst_video_orientation_from_tag to parse orientation
	  Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053>

2022-11-09 12:04:08 +0000  Christian Wick <c.wick@mail.de>

	* docs/gst_plugins_cache.json:
	* gst/rtsp/gstrtspsrc.c:
	* gst/rtsp/gstrtspsrc.h:
	* tests/examples/rtsp/test-onvif.c:
	  rtspsrc: Introduce new action signal `push-backchannel-sample` with correct ownership semantics
	  Signals are not supposed to take ownership of their arguments but only
	  borrow them for the scope of the signal emission.
	  The old action signal `push-backchannel-buffer` is now marked deprecated.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3363>

2022-11-08 02:08:08 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.21.2 ===

2022-11-07 23:53:59 +0000  Tim-Philipp Müller <tim@centricular.com>

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

2022-11-07 23:53:57 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Update ChangeLogs for 1.21.2

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

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

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

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

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

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

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

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

2022-11-03 14:08:57 +0100  Edward Hervey <edward@centricular.com>

	* gst/multifile/gstimagesequencesrc.c:
	  imagesequencesrc; Fix leaks
	  * The path was leaked
	  * The custom buffer was never freed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>

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

	* gst/isomp4/qtdemux.c:
	  qtdemux: Fix cenc-related leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>

2022-11-03 14:06:58 +0100  Edward Hervey <edward@centricular.com>

	* gst/deinterlace/gstdeinterlace.c:
	  deinterlace: Don't leak metas
	  There is no correlation between the frame being NULL and the metas not being
	  present.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>

2022-10-31 16:08:23 +0100  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-period.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Fix collection leaks
	  * The collection on the period was never unreffed
	  * The collection in the message handler was never unreffed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>

2022-11-05 03:23:43 +1100  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/mss/gstmssdemux.c:
	  mssdemux2: Update for adaptivedemux2 refactoring
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>

2022-11-03 01:48:08 +1100  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/dash/gstdashdemux.c:
	* ext/adaptivedemux2/gstadaptivedemux-private.h:
	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux-stream.h:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/gstadaptivedemux.h:
	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  adaptivedemux2: Move stream_seek() to the Stream class
	  Move the last stream specific vfunc from the demux
	  class to the stream class.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>

2022-08-21 04:31:53 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/dash/gstdashdemux.c:
	* ext/adaptivedemux2/gstadaptivedemux-private.h:
	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux-stream.h:
	* ext/adaptivedemux2/gstadaptivedemux-types.h:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/gstadaptivedemux.h:
	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  adaptivedemux2: Refactor stream methods into the stream
	  Unlike the legacy elements, GstAdaptiveDemuxStream is a GObject now,
	  so a bunch of things that were actually stream methods on the
	  parent demux object can directly become stream methods now.
	  Move the stream class out to a header of its own.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>

2022-06-07 14:36:24 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	* ext/adaptivedemux2/hls/m3u8.h:
	  hlsdemux2/m3u8: Implement EXT-X-GAP parsing
	  Read the EXT-X-GAP tag and set is_gap on the segment.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>

2022-06-07 14:13:39 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2/m3u8: Refactor parsing for readability
	  Small readability improvements in the parsing code
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>

2022-10-14 06:21:41 +1100  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/downloadrequest.c:
	* ext/adaptivedemux2/downloadrequest.h:
	  adaptivedemux2/downloadhelper: Remove return val for download_request_add_buffer()
	  The function can't actually fail, and the only caller
	  was ignoring the result anyway, so remove the return value.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>

2022-10-14 06:20:06 +1100  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/downloadhelper.c:
	  adaptivedemux2/downloadhelper: Add debug output of response headers
	  Dump the HTTP response headers at TRACE level
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>

2022-10-14 06:19:11 +1100  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/downloadhelper.c:
	  adaptivedemux2/downloadhelper: Don't mark transfer as complete/error if cancelled.
	  If the state of the download request was reset to UNSENT,
	  it was cancelled. Don't update the state to COMPLETE or ERRORED
	  in on_read_ready().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>

2022-10-14 06:17:00 +1100  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/downloadhelper.c:
	  adaptivedemux2/downloadhelper: Ignore spurious read failure
	  Sometimes g_input_stream_read_all_finish() can return
	  0 bytes, but still succeed (return TRUE) and have more
	  data available later. Only finish the transfer
	  if it returns 0 bytes *and* FALSE with no error.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>

2022-10-14 06:15:45 +1100  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/downloadhelper.c:
	* ext/adaptivedemux2/downloadrequest.c:
	* ext/adaptivedemux2/downloadrequest.h:
	  adaptivedemux2/downloadhelper: Fix function name
	  Fix a typo in the name of function download_request_despatch_progress()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>

2022-10-12 02:14:32 +1100  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-private.h:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Remove scheduler_lock mutex
	  Remove the old unused scheduler_lock
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>

2022-10-11 03:20:11 +1100  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Hold tracks lock accessing input_period
	  The input_period is protected by the TRACKS_LOCK,
	  so make sure to hold that when accessing it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>

2022-08-16 23:01:46 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux.h:
	  adaptivedemux2: Add state checks and clean up obsolete variables
	  The cancelled flag was only set in the stream finalize()
	  method, after all activity on the stream has stopped anyway.
	  Replace uses of cancelled with checks on the stream state.
	  Remove the replaced flag, which was checked but never set
	  to TRUE anywhere any more.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3314>

2022-10-30 20:28:25 +0900  Seungha Yang <seungha@centricular.com>

	* docs/gst_plugins_cache.json:
	* ext/vpx/gstvp9dec.c:
	* ext/vpx/gstvp9enc.c:
	* ext/vpx/gstvpxenc.c:
	  vpx: Complete high bitdepth vp9 en/decoding support
	  Adding 12bits variant formats to en/decoder, and high bitdepth
	  4:4:4 (except for GBR) encoding support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3298>

2022-10-30 20:03:10 +0900  Seungha Yang <seungha@centricular.com>

	* ext/vpx/gstvp9dec.c:
	* ext/vpx/gstvp9enc.c:
	* ext/vpx/gstvpxcompat.h:
	* ext/vpx/gstvpxdec.h:
	* ext/vpx/gstvpxenc.h:
	  vpx: Define formats for compatibility
	  ifdef for enum values never work. Instead, define new enum type
	  and use it
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3298>

2022-10-27 23:57:58 +1100  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2: m3u8: Use PDT to offset stream time when aligning playlist
	  When matching segments across playlists with Program-Date-Times,
	  use the difference in segment PDTs to adjust the stream time
	  that's being transferred. This can fix cases where the
	  segment boundaries don't align across different streams
	  and the first download gets thrown away once the PTS
	  is seen and found not to match.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3309>

2022-11-01 02:17:46 +1100  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	* ext/adaptivedemux2/hls/gsthlsdemux.h:
	  hlsdemux2: Download new header when it changes
	  Check whether the init file / MAP data for a segment
	  is different to the current data and trigger an
	  update if so. Previously, the header would only
	  be checked in HLS after switching bitrate or
	  after a seek / first download.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3307>

2022-11-01 01:41:35 +1100  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	* ext/adaptivedemux2/hls/m3u8.h:
	  m3u8: Expose GstM3U8InitFile methods
	  Exposure ref/unref methods for the GstM3U8InitFile type,
	  and add a gst_m3u8_init_file_equal() comparison method.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3307>

2022-10-21 17:24:41 +0200  Edward Hervey <edward@centricular.com>

	* docs/gst_plugins_cache.json:
	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/gstadaptivedemux.h:
	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	* ext/adaptivedemux2/hls/m3u8.c:
	* ext/adaptivedemux2/hls/m3u8.h:
	  adaptivedemux2: Improve minimum buffering threshold
	  Previously the minimum buffering threshold was hardcoded to a specific
	  value (10s). This is suboptimal this an actual value will depend on the actual
	  stream being played.
	  This commit sets the low watermark threshold in time to 0, which is an automatic
	  mode. Subclasses can provide a stream `recommended_buffering_threshold` when
	  update_stream_info() is called.
	  Currently implemented for HLS, where we recommended 1.5 average segment
	  duration. This will result in buffering being at 100% when the 2nd segment has
	  been downloaded (minus a bit already being consumed downstream)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3240>

2022-10-28 18:57:44 +0530  Sanchayan Maity <sanchayan@asymptotic.io>

	* gst/wavparse/gstwavparse.c:
	  wavparse: Speed up type finding for DTS
	  In order to figure out if the "raw" audio contained within the wav
	  container is actually DTS, right now we call the typefinder helper
	  which runs all typefinders.
	  Speed up this type finding process by specifying the extension.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3294>

2022-10-25 13:30:15 +1100  Matthew Waters <matthew@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/isomp4/gstqtmuxmap.c:
	  mp4mux: enable muxing VP9 streams
	  As specified in https://www.webmproject.org/vp9/mp4/
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3260>

2022-10-25 13:28:26 +1100  Matthew Waters <matthew@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/isomp4/atoms.c:
	* gst/isomp4/atoms.h:
	* gst/isomp4/gstqtmux.c:
	* gst/isomp4/gstqtmuxmap.c:
	  qtmux: add support for writing vpcC box for VP9
	  Increases compatibility for VP9 in .mov in at least VLC.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3260>

2022-10-04 18:21:15 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ext/adaptivedemux2/dash/gstdashdemux.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	  dashdemux2: Fix the way we determine current_position after seeks
	  Without that the current_position was off after seeks, potentially
	  leading to not properly push a last fragment when a `.stop` time was
	  set.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159>

2022-09-20 15:32:52 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ext/adaptivedemux2/dash/gstmpdclient.c:
	  dash: Fix computing `repeat_index` when seeking in stream with a start !=0 on the first fragment
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159>

2022-09-22 11:20:55 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/matroska/matroska-demux.c:
	  matroskademux: Let upstream handle seeking/duration query in time if possible
	  So proper response are given for dash streams
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159>

2022-09-21 15:01:39 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/matroska/matroska-demux.c:
	* gst/matroska/matroska-demux.h:
	  matroskademux: Start support for upstream segments in TIME format
	  So we can use matroskademux for dash webm dash streams.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159>

2022-01-24 16:49:52 +0100  Jakub Adam <jakub.adam@collabora.com>

	* sys/ximage/gstximagesrc.c:
	  ximagesrc: grab the server while capturing screen image
	  Makes sure screen resolution doesn't change in the middle of the
	  process.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1562>

2021-12-17 14:57:57 +0100  Jakub Adam <jakub.adam@collabora.com>

	* sys/ximage/gstximagesrc.c:
	* sys/ximage/gstximagesrc.h:
	  ximagesrc: change video resolution when X11 screen gets resized
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1562>

2022-10-23 20:32:35 +0100  Tim-Philipp Müller <tim@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/meson.build:
	* gst/xingmux/gstxingmux.c:
	* gst/xingmux/gstxingmux.h:
	* gst/xingmux/meson.build:
	* gst/xingmux/plugin.c:
	* meson_options.txt:
	* tests/check/elements/xingmux.c:
	* tests/check/elements/xingmux_testdata.h:
	* tests/check/meson.build:
	  xingmux: move from gst-plugins-ugly to gst-plugins-good
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/415
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3251>

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

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

2022-10-18 16:51:39 +1100  Matthew Waters <matthew@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtp/gstrtpulpfecdec.c:
	* gst/rtp/gstrtpulpfecdec.h:
	  rtpulpfecdec: add property for passthrough
	  Support for enabling and disabling decoding of FEC data decoding on
	  packet loss events and unconditional seqnum rewriting of packets.
	  See
	  https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/581
	  for background.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3212>

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

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

2022-10-13 11:21:42 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* docs/gst_plugins_cache.json:
	  riff: Mark jpeg as parsed
	  This is needed so that autoplugging works with avidemux and JPEG decoders that
	  need parsed sink caps (eg rockchip 'mppjpegdec' decoder). It also works fine
	  with 'jpegdec' decoder regardless.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3175>

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

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

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

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

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

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

2022-10-03 20:28:47 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpsession.c:
	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtpsession.h:
	* gst/rtpmanager/rtpsource.c:
	* gst/rtpmanager/rtpsource.h:
	  rtpsource: Don't do probation for RTX sources
	  Disable probation for RTX sources as packets will arrive very
	  irregularly and waiting for a second packet usually exceeds the deadline
	  of the retransmission.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/181
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>

2022-10-03 19:58:38 +0300  Sebastian Dröge <sebastian@centricular.com>

	* tests/examples/rtp/client-rtpaux.c:
	  rtp: examples: client-rtpaux: Provide correct caps by payload type and RTX pt map by session
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>

2019-01-25 17:04:50 -0500  George Kiagiadakis <george.kiagiadakis@collabora.com>

	* tests/check/elements/rtpsession.c:
	  tests/check/rtpsession: extend test_internal_sources_timeout
	  to verify that rtx SSRCs do not BYE after timeout
	  See https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/360
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>

2022-10-03 19:12:55 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtpsource.c:
	* gst/rtpmanager/rtpsource.h:
	  rtpsession: Remember the corresponding media SSRC for RTX sources
	  This allows timing out the RTX source and sending BYE for it when the
	  actual media source belonging to it is timed out.
	  This change only applies to sending sources from this session.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/360
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>

2022-10-03 19:20:14 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtpsource.c:
	* gst/rtpmanager/rtpsource.h:
	  rtpsource: Rename rtp_source_update_caps to rtp_source_update_send_caps
	  To make it clear that this is only used for sending RTP sources.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>

2022-10-03 13:48:36 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpsession.c:
	  rtpsession: Rename gst_rtp_session_sink_setcaps to gst_rtp_session_setcaps_recv_rtp
	  to make it clearer that this is for setting receiver caps and to make it
	  more consistent with gst_rtp_session_setcaps_send_rtp.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3112>

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

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

2022-10-04 03:57:31 +0100  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.21.1 ===

2022-10-04 01:14:01 +0100  Tim-Philipp Müller <tim@centricular.com>

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

2022-10-04 01:13:59 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ChangeLog:
	  Update ChangeLogs for 1.21.1

2022-07-27 11:19:50 +0200  Edward Hervey <edward@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Don't stop task when resetting
	  This is a regression that was introduced in
	  cca2f555d14b5751f7f9d466b66127544dad5138 (yes, 9 years ago).
	  The only place where a demuxer streaming thread should be stopped is when the
	  sinkpad is deactivated from pull mode (i.e. PAUSED->READY).
	  Attempting to stop the task in this function would cause this to happen when a
	  FLUSH_STOP or STREAM_START event is received... which can cause deadlocks.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3109>

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

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

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

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

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

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

2022-09-27 00:08:41 +1000  Jan Schmidt <jan@centricular.com>

	* tests/check/elements/dash_mpd.c:
	  dashdemux2: fix mpd unit test expectations
	  Update unit test for some mpd cases that were reporting
	  timestamps including the period start time, while
	  dashdemux2 expects that it needs to add the period
	  start time itself.
	  Fix the tests to not expect the period start time
	  to be included.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3025>

2022-08-23 23:12:44 +0900  Junsoo Park <junsoo81.park@lge.com>

	* ext/adaptivedemux2/dash/gstmpdclient.c:
	  dashdemux2: Set timestamp relative to period start
	  These values will be referred to as timestamp relative to period start
	  so need to subtract period start time from the values.
	  Fixes a problem with determining the start position when playing Live content
	  with SegmentTimeline, presentationTimeOffset and a non-0 period start time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3025>

2022-09-22 19:02:10 +0200  Jakub Adam <jakub.adam@collabora.com>

	* ext/vpx/gstvp9dec.c:
	* ext/vpx/gstvp9enc.c:
	  vp9: check if libvpx supports high bit depth
	  Detect at runtime if libvpx is compiled with --enable-vp9-highbitdepth
	  and enable 10bit video formats in element caps accordingly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3067>

2022-09-21 19:19:45 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	  meson: Use implicit builtin dirs in pkgconfig generation
	  Starting with Meson 0.62, meson automatically populates the variables
	  list in the pkgconfig file if you reference builtin directories in the
	  pkgconfig file (whether via a custom pkgconfig variable or elsewhere).
	  We need this, because ${prefix}/libexec is a hard-coded value which is
	  incorrect on, for example, Debian.
	  Bump requirement to 0.62, and remove version compares that retained
	  support for older Meson versions.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061>

2022-09-21 00:26:38 +0900  Seungha Yang <seungha@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemuxutils.c:
	  adaptivedemux2: Always wake up loop thread on unpause
	  Otherwise loop thread will sleep forever because
	  GstAdaptiveDemuxLoop.paused flag update is not signalled
	  when loop was marked as stopped already from other thread.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3057>

2022-09-16 02:01:58 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-period.c:
	* ext/adaptivedemux2/gstadaptivedemux-private.h:
	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux-track.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/gstadaptivedemux.h:
	  adaptivedemux2: Rework input download wakeups
	  Change the way streams are woken up to download more data.
	  Instead of checking the level on tracks that are being
	  output as data is dequeued, calculate a 'wakeup time'
	  at which it should download more data, and wake up
	  the stream when the global output position crosses
	  that threshold.
	  For efficiency, compute the earliest wakeup time
	  for all streams and store it on the period, so the
	  output loop can quickly check only a single value
	  to decide if something needs waking up.
	  Does the same buffering as the previous method,
	  but ensures that as we approach the end of
	  one period, the next period continues incrementally
	  downloading data so that it is fully buffered when
	  the period starts.
	  Fixes issues with multi-period VOD content where
	  download of the second period resumes only after
	  the first period is completely drained.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3055>

2022-09-15 09:04:10 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Handle negative time mappings
	  Some servers can return playlists with "old" media playlists and different
	  Discont Sequence.
	  In those cases, the segment stream times would be negative when creating a new
	  time mapping. In order to properly handle such scenarios, shift the values to
	  stored accordingly to end up with non-negative reference stream time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3054>

2022-09-19 20:48:01 +0300  Mart Raudsepp <mart@leio.tech>

	* ext/shout2/meson.build:
	  shout: fix minimum requirement to libshout >= 2.4.3
	  commit e64c6f0b93ced added usage of the SHOUT_USAGE_UNKNOWN symbol, but this
	  became available in the Icecast-libshout 2.4.3 release, not 2.4.2
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3048>

2022-08-31 11:13:06 +0800  Elliot Chen <elliot.chen@nxp.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: add cap negotiation fail check in the capture configuration change
	  The capture configuration change may cause negotiation fail.
	  Need to check it to avoid enter the endless loop.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2960>

2022-08-29 10:17:45 -0400  Thibault Saunier <tsaunier@igalia.com>

	* docs/meson.build:
	  doc: Do not build plugins to build the doc
	  It is not actually necessary
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2954>

2022-09-15 12:14:56 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/meson.build:
	  tests: add a few more orc tests
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3029>

2022-09-14 10:15:41 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2: Fix crash on live playlist with single entry
	  If there is a single entry, we would end up computing a minimum distance of 0,
	  and would therefore read entries from after the segment array
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3024>

2021-03-24 14:20:18 -0500  Zebediah Figura <z.figura12@gmail.com>

	* meson.build:
	  meson: Build with -Wl,-z,nodelete to prevent unloading of dynamic libraries and plugins
	  GLib made the unfortunate decision to prevent libgobject from ever being
	  unloaded, which means that now any library which registers a static type
	  can't ever be unloaded either (and any library that depends on those,
	  ad nauseam).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/778>

2022-09-13 00:56:53 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Always check bitrate in live
	  When advancing fragment in live, it's normal to return
	  GST_FLOW_EOS when playing at the live edge of the available
	  fragments. In that case, we still want to adjust bitrate
	  dynamically.
	  Fixes issue with dashdemux2 where the current bitrate of
	  each adaptation set is changed to the lowest one when
	  updating the mpd for a live stream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3020>

2022-09-12 14:18:47 -0400  Matt Crane <matt@standard.ai>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: Fix calculation of reference timestamp metadata
	  Add support for RTCP SRs that contain RTP timestamps later than the
	  current timestamps in the RTP stream packet buffers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3019>

2022-09-08 17:06:26 +0000  Filip Hanes <filip@hanes.tech>

	* docs/gst_plugins_cache.json:
	* ext/libpng/gstpngenc.c:
	  pngenc: lower minimum width and height to 1x1
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3003>

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

	* ext/adaptivedemux2/dash/gstxmlhelper.c:
	* tests/check/elements/dash_mpd.c:
	  dashdemux2: Remove bogus limitation checks for duration fields
	  Just like for the seconds field, there are no limitations on the hours and
	  minutes fields. The specification for xml schema duration fields doesn't forbid
	  specifying durations with only (huge) minutes or hours values.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2951>

2022-08-21 03:37:40 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/dash/gstdashdemux.c:
	* ext/adaptivedemux2/dash/gstdashdemux.h:
	* ext/adaptivedemux2/dash/gstmpdclient.c:
	* ext/adaptivedemux2/dash/gstmpdclient.h:
	  dashdemux2: Preserve current representation on live manifest updates
	  When updating a manifest during live playback, preserve the current
	  representation for each stream.
	  During update_fragment_info, if the current representation changed
	  because it couldn't be matched, trigger a caps change and new
	  header download.
	  This reverts commit e0e1db212fd0df2239583b9099fc4361adeded05
	  and reapplies "dashdemux: Fix issue when manifest update sets slow start
	  without passing necessary header & caps changes downstream" with
	  changes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2920>

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

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

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

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

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

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

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

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

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

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

2022-07-05 16:15:19 +0200  Patricia Muscalu <patricia@axis.com>

	* gst/rtp/gstrtph265pay.c:
	* gst/rtp/gstrtph265pay.h:
	* tests/check/elements/rtph265.c:
	  rtph265: keep delta unit flag
	  Without this patch all buffers that pass the payloader
	  are marked as non-delta-unit buffers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2969>

2022-09-01 15:11:31 -0400  Thibault Saunier <tsaunier@igalia.com>

	* ext/aalib/meson.build:
	* ext/cairo/meson.build:
	* ext/dv/meson.build:
	* ext/flac/meson.build:
	* ext/gdk_pixbuf/meson.build:
	* ext/gtk/meson.build:
	* ext/jack/meson.build:
	* ext/jpeg/meson.build:
	* ext/lame/meson.build:
	* ext/libpng/meson.build:
	* ext/mpg123/meson.build:
	* ext/pulse/meson.build:
	* ext/qt/meson.build:
	* ext/shout2/meson.build:
	* ext/speex/meson.build:
	* ext/taglib/meson.build:
	* ext/twolame/meson.build:
	* ext/vpx/meson.build:
	* ext/wavpack/meson.build:
	* gst/alpha/meson.build:
	* gst/apetag/meson.build:
	* gst/audiofx/meson.build:
	* gst/audioparsers/meson.build:
	* gst/auparse/meson.build:
	* gst/autodetect/meson.build:
	* gst/avi/meson.build:
	* gst/cutter/meson.build:
	* gst/debugutils/meson.build:
	* gst/deinterlace/meson.build:
	* gst/dtmf/meson.build:
	* gst/effectv/meson.build:
	* gst/equalizer/meson.build:
	* gst/flv/meson.build:
	* gst/flx/meson.build:
	* gst/goom/meson.build:
	* gst/goom2k1/meson.build:
	* gst/icydemux/meson.build:
	* gst/id3demux/meson.build:
	* gst/imagefreeze/meson.build:
	* gst/interleave/meson.build:
	* gst/isomp4/meson.build:
	* gst/law/meson.build:
	* gst/level/meson.build:
	* gst/matroska/meson.build:
	* gst/monoscope/meson.build:
	* gst/multifile/meson.build:
	* gst/multipart/meson.build:
	* gst/replaygain/meson.build:
	* gst/rtp/meson.build:
	* gst/rtpmanager/meson.build:
	* gst/rtsp/meson.build:
	* gst/shapewipe/meson.build:
	* gst/smpte/meson.build:
	* gst/spectrum/meson.build:
	* gst/udp/meson.build:
	* gst/videobox/meson.build:
	* gst/videocrop/meson.build:
	* gst/videofilter/meson.build:
	* gst/videomixer/meson.build:
	* gst/wavenc/meson.build:
	* gst/wavparse/meson.build:
	* gst/y4m/meson.build:
	* meson.build:
	* sys/directsound/meson.build:
	* sys/osxaudio/meson.build:
	* sys/osxvideo/meson.build:
	* sys/rpicamsrc/meson.build:
	* sys/v4l2/meson.build:
	* sys/waveform/meson.build:
	* sys/ximage/meson.build:
	  meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
	  Removing some copy pasted code
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>

2022-09-01 11:51:48 -0400  Thibault Saunier <tsaunier@igalia.com>

	* docs/meson.build:
	  meson: Namespace the plugins_doc_dep/libraries variables
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>

2022-08-31 18:44:14 -0400  Thibault Saunier <tsaunier@igalia.com>

	* meson.build:
	  meson: Rename plugins list and make them "dependency" objects
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>

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

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

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

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

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

	* docs/meson.build:
	* meson.build:
	  docs: disable in static build
	  Following gst-plugins-base, disable docs if static_build
	  in:
	  - gstreamer
	  - gst-plugins-good
	  - gst-plugins-ugly
	  - gst-libav
	  - gstreamer-vaapi
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2529>

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

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

2022-07-22 13:41:17 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/isomp4/qtdemux.c:
	  playback: add onvif metadata caps to raw caps
	  + remove encoding from x-onvif-metadata caps output by qtdemux
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2889>

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

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

2022-08-18 16:36:45 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* ext/adaptivedemux2/downloadhelper.c:
	  adaptivedemux2: Fix download helper with libsoup 3.0.x
	  libsoup 3.0.x dispatches using a single source attached when the session
	  is created, so we need to create the session with the same context that
	  our download thread is later using.
	  2.74 or 3.1 will dispatch a response using the context which sent the
	  request. However, for any context other than the one that created the
	  session, this will also create and destroy sources, so there's still
	  some slight performance benefit.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1384
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2913>

2022-08-18 09:48:15 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Implement send_event() vfunc
	  Handle select-streams and seek events in an element
	  level send_event() vfunc, so they can be received
	  before any source pads are created.
	  This allows preferred streams to be selected before
	  segment downloading starts.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2912>

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

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

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

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

2022-08-16 19:01:19 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Set parsed=true on ONVIF Timed Metadata caps
	  Inside MP4 the metadata must be properly parsed into frames and in
	  order.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2897>

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

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

2022-08-12 21:57:25 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Fix for period switching in live streams
	  When playing live, it's possible that one stream reaches
	  the end of the available playback window and goes to sleep
	  waiting for a manifest update, and the manifest update
	  introduces a new period. In that case, the sleeping
	  stream needs to wake up and go 'properly' EOS before we
	  can advance the input to the new period.
	  Accordingly, make sure that a stream's last_ret value
	  is not marked as EOS if it's just sleeping waiting for a live
	  manifest update.
	  Also fix the output loop to go back and re-check if it's
	  time to switch to the next period after dequeuing and
	  discarding an EOS event.
	  https://livesim.dashif.org/livesim/periods_20/testpic_2s/Manifest.mpd
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2895>

2022-08-11 09:34:58 +0900  Hosang Lee <hosang10.lee@lge.com>

	* ext/adaptivedemux2/mss/gstmssdemux.c:
	  mssdemux2: Use gsturi structure to form fragment urls
	  Utilize gsturi to form fragment url paths.
	  A token query may contain the string "manifest" and this would lead
	  to improper url creations.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2859>

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

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

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

	* gst/isomp4/fourcc.h:
	* gst/isomp4/qtdemux.c:
	* gst/isomp4/qtdemux.h:
	* gst/isomp4/qtdemux_types.c:
	  qtdemux: Add reference timestamp meta with UTC times based on the ONVIF Export File Format CorrectStartTime box to outgoing buffers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2525>

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

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Fix reference leak of variant stream
	  When switching back to the previous variant stream
	  in gst_hls_demux_change_playlist(), fix a couple of
	  paths that would leak a reference to the previous
	  variant.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>

2022-08-11 05:07:10 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Don't leak the datetime in time map structs
	  Add a function to clean up GstHLSTimeMap structs
	  and free the ref on the optional associated GDateTime
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>

2022-08-11 05:03:10 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Fix typefind leak and invalid memory access
	  When typefinding aggregates incoming data to a pending
	  typefind buffer and then succeeds in typefinding, it
	  leaks the aggregated buffer, and leaves the caller
	  accessing an unreffed buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>

2022-08-11 05:36:15 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2: m3u8: Fix memory leaks on parsing
	  Fix memory leaks when parsing of an m3u8 file is
	  incomplete, with EXTINF or EXT-X-PROGRAM-DATE-TIME
	  directives, but no segment url.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>

2022-08-11 00:59:50 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2: m3u8: Fix memory leak
	  Clear the GValue holding intermediate GstStructure field
	  data.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>

2022-08-11 01:01:07 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemuxutils.c:
	  adaptivedemux2: Fix uninitialised memory usage in debug
	  Fix printing uninitialised memory by clearing the
	  GstAdaptiveDemuxClock structure when allocating.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2873>

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

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

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

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

2022-08-09 09:42:23 +0200  Piotr Brzeziński <piotr@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/videofilter/gstvideoflip.c:
	  videoflip: Add support for 10/12bit planar formats
	  Implements support for I420, I422 and Y444 in 10/12 bit LE/BE variants.
	  I422 is handled separately from the rest, as it needs to consider
	  the endianness of the current format during most transforms.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2788>

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

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

2022-08-09 00:12:58 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Requeue header buffer when restarting fragment
	  When returning GST_ADAPTIVE_DEMUX_FLOW_RESTART_FRAGMENT
	  for the first segment data, we might need to requeue the
	  header.
	  This was leading to occasional prerolling stalls on
	  HLS live streams with renditions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2849>

2022-08-07 20:56:49 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Fix buffer leak when resynching
	  Unref the buffer in gst_hls_demux_handle_buffer() when
	  returning GST_ADAPTIVE_DEMUX_FLOW_LOST_SYNC
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2849>

2022-08-04 23:54:27 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemuxutils.c:
	  adaptivedemux2: Fix a small race on shutdown
	  Make sure gst_adaptive_demux_loop_cancel_call()
	  never tries to operate on an invalidated main context. Make
	  sure to clear the main context pointer while holding the lock,
	  and to check it in gst_adaptive_demux_loop_cancel_call()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2847>

2022-07-22 03:32:39 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	  adaptivedemux2-stream: Silence a compiler warning
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>

2022-07-28 04:17:26 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-private.h:
	  adaptivedemux2: Move internal FLOW_SWITCH return value.
	  Move the internal-only FLOW_SWITCH custom return value
	  to GST_FLOW_CUSTOM_SUCCESS+2 to avoid collision with
	  GST_ADAPTIVE_DEMUX_FLOW_LOST_SYNC
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>

2022-07-20 10:57:41 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.h:
	  adaptivedemux2: Modify custom sync loss flow return
	  Make it a custom sucess and not an error
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>

2022-07-12 10:44:51 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2: Always check DSN if required
	  We don't want to consider the candidate as being before the playlist if the DSN
	  don't match
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>

2022-07-11 10:31:42 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  adaptivedemux2/hlsdemux2: Handle loss of sync when dowloading.
	  Media playlist updates and fragment downloads happen in an interleaved
	  fashion. When a media playlist update fails *while* a segment is being
	  downloaded, this means we lost synchronization.
	  Properly propagate and handle this
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>

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

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Fix initial playlist setup.
	  There is now only a single case where we setup the initial playlist to 0, which
	  is for the very first variant stream.
	  Rendition streams will have the initial playlist "synchronized" against the
	  variant stream media playlist.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>

2022-07-08 10:44:51 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Handle loss of synchronization in live
	  Loss of synchronization happens when the updated media playlist has no
	  relationship to the previous ones. This could happen because of network issues,
	  server issues, etc...
	  When this happens, we take no chance and "reset" ourselves so that we can "seek
	  back to live" against the new updated playlists.
	  Since this happens at the "media playlist update" level, make sure the custom
	  flow return is propagated up.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>

2022-07-08 10:40:33 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Handle synchronously to lost sync
	  We are already in the main scheduler thread, therefore we can do the "seek back
	  to live" directly. This also avoids other pending actions to take place.
	  Also handle the loss of sync when doing manifest updates.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>

2022-07-06 11:44:57 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Prune time maps when possible
	  Add a new method to prune unused time mappings (i.e. which aren't used by any
	  current media playlist).
	  Do that when doing flushing seeks. Could be used in other places later too.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>

2022-06-13 15:26:22 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2: Allow DSN mismatches when re-syncing playlists
	  Some providers provide completely incompatible DSN across bitrates/renditions,
	  but do keep MSN consistent.
	  If we fail to synchronize playlist with DSN, retry without the DSN taken into
	  account.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>

2022-07-12 01:58:30 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Fixes for period switching in the output loop
	  Close some race conditions in switching to the next period,
	  by ensuring the tracks are completely drained first and by
	  not outputting EOS events to the output source pad
	  if there is another period pending.
	  Fixes Manifest_MultiPeriod_1080p.mpd some more.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>

2022-07-12 01:55:54 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	  adaptivedemux2: stream: Set period has_next_period flag before EOS
	  Before sending EOS, update the period's has_next_period
	  flag and/or create the next period. This closes a race
	  where the output loop might receive the EOS event
	  and either push it downstream (causing premature EOS),
	  or receive it and try and switch to the next period
	  before that period is completely set up.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>

2022-07-12 01:24:31 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/gstadaptivedemux.h:
	  adaptivedemux2: period: Rename 'closed' flag to 'has_next_period'
	  The flag is used to tell the output loop that a
	  next period is present, since the output loop
	  can't call the gst_adaptive_demux_has_next_period()
	  method.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>

2022-07-01 02:07:05 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Recheck for a pending track on drain
	  When a track is completely drained and EOS, but
	  there's a pending track on the slot loop again
	  to switch to that track.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>

2022-07-01 02:05:36 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-period.c:
	  adaptivedemux2: Check stream selected instead of state
	  When combining stream flows, ignore streams that
	  are not selected, instead of checking whether
	  the stream state has changed yet.
	  Fixes another issue with dashdemux2 where it fails to
	  change to the next period when playing content with
	  several video, audio and text streams, as with
	  Manifest_MultiPeriod_1080p.mpd when seeking to 730
	  just before the end of the first period.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>

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

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

2022-07-22 14:51:11 +0200  Mark Nauwelaerts <mnauw@users.sourceforge.net>

	* gst/videobox/gstvideobox.c:
	  videobox: avoid dropping caps fields for passthrough caps transform
	  Fixes potential negotiation failure in case downstream element
	  is a bit picky regarding the fields in question.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2786>

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

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

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

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

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

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

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

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

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

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

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

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

2022-06-24 13:32:34 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/rtpjitterbuffer.c:
	  rtpjitterbuffer: Fix calculation of RFC7273 RTP time period start
	  This has to be based directly on the current estimated clock time and
	  has to allow for negative period starts.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2655>

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

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

2022-06-30 15:15:22 +0000  Thibault Saunier <tsaunier@igalia.com>

	* gst/rtpmanager/gstrtprtxreceive.c:
	* gst/rtpmanager/gstrtprtxsend.c:
	* tests/check/elements/rtprtx.c:
	  rtprtx: Fix copying extension headers
	  There was a typo leading to reading memory from the buffer we were
	  writing to.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2696>

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

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

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

	* tests/check/elements/udpsink.c:
	  tests: udpsink: make test work in environments without IPv6
	  Part-fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/939
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2659>

2022-05-28 16:47:42 -0400  fduncanh <fduncanh@gmail.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: replace multiple decoder bug warnings by a single warning (warning due to incorrectly dropped frames at initial caps adjustment)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2517>

2022-06-29 00:51:28 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-period.c:
	  adaptivedemux2: Ignore stopped stream flow state
	  When calculating the combined stream flow state
	  for a period, don't consider stopped streams.
	  Fixes switching to the next period in DASH streams
	  with multiple video/audio/subtitle streams.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2684>

2022-06-29 01:25:41 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	  adaptivedemux2: Clean up stream parsebins on finalize
	  Remove the parsebin for a stream from the overall
	  bin when cleaning up the stream, to avoid
	  keeping around old ones when moving between periods
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>

2022-06-24 02:54:22 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/gstadaptivedemuxutils.c:
	  adaptivedemux2: Fix memory leaks and use-after-free
	  Fix various small memory leaks, and an invalid
	  access to GstEvent after giving away the ref
	  via gst_pad_push_event()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>

2022-06-24 02:57:54 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux-util.c:
	  hlsdemux2: Fix potential segfault
	  Fix a potential segfault if we receive a ISO-FF stream
	  with moof before moov.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>

2022-06-24 02:57:03 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2: Fix memory leaks
	  Clean up various memory leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>

2022-06-23 19:24:03 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Free current_segment on finalize
	  Avoid a memory leak by making sure to release the
	  current segment on exit if non-NULL
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2676>

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

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

2022-06-22 03:35:03 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-track.c:
	  adaptivedemux2: track: Fix buffering time calc before output
	  Use the lowest track input time as the output
	  time when calculating track buffering levels
	  before anything has been dequeued.
	  Fixes multi-period DASH not advancing to the
	  next period in some cases.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2650>

2022-06-22 03:34:19 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-period.c:
	* ext/adaptivedemux2/gstadaptivedemux-track.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/gstadaptivedemux.h:
	  adaptivedemux2: track: Add period number to most debug statements
	  Store the period number the track belongs to, and
	  add it in various debug statements
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2650>

2022-06-22 03:30:16 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	  adaptivedemux2: stream: Don't take TRACKS_LOCK when sending EOS event
	  The stream tracks list can't change while we're
	  iterating it from the scheduling thread,
	  and the event handler immediately takes the
	  tracks lock, causing a deadlock.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2650>

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

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Improve media playlist updates
	  * When dealing with rendition streams, we attempt to synchronize the media
	  playlist against the variant stream. This helps with speeding up the correct
	  initial fragment search and avoids issues when streams at activated at a much
	  later time.
	  * Also add checks for variant stream existence before attempting to use them
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>

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

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Only seek on selected streams
	  When handling seeks, there is no need to seek on unselected streams. If they
	  later get activated they will be properly seek onto
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>

2022-06-08 09:33:22 +0200  Edward Hervey <edward@centricular.com>

	* tests/check/elements/hlsdemux_m3u8.c:
	  tests: check: Update hlsdemux2 tests for playlist changes
	  We no longer do auto-magic fallbacks when synchronizing a disconnected
	  playlist. It is handled at a higher level.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>

2022-06-03 10:25:34 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2: Fix debug return statement
	  Due to latest commits res could have been NULL.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>

2022-06-02 09:46:22 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2: No longer re-add segments from before the playlist
	  When updating playlists, there is a possibility that the playlists don't
	  perfectly align, but the last entry of the previous playlist is *just* before
	  the first entry of the new playlist.
	  In those cases, we still can transfer the timing information from one playlist
	  to another, but we do not want to return that segment as being the matching one.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>

2022-06-01 15:45:23 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: Use variant stream as support for synchronizing playlists
	  When matching playlists, there is a possibility that rendition streams will not
	  have been updated in time (for example because that stream started later, or
	  playback was paused). This would cause several playback failures and seeking
	  failures.
	  In order to still fall back on our feet, attempt to synchronize that rendition
	  playlist against the current variant playlist. This will attempt to match the
	  stream time using SN/DNS/PDT/...
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>

2022-05-23 15:51:23 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	* ext/adaptivedemux2/hls/m3u8.c:
	* ext/adaptivedemux2/hls/m3u8.h:
	  hlsdemux2: Detect synchronization loss
	  If we have been updating too slowly and have gone out of the current live
	  window, inform the baseclass accordingly.
	  This is different from the case where we have been updating quicker than what
	  the server provides.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>

2022-05-23 15:48:16 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	  hlsdemux2: More improvement/fixes to position tracking
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>

2022-05-23 15:43:04 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-private.h:
	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/gstadaptivedemux.h:
	  adaptivedemux2: Handle loss of synchronization
	  Add a new custom GstFlowReturn so that subclasses can notify that they have lost
	  live synchronization.
	  When that happens, do a flushing seek back to the live position
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>

2022-05-23 09:11:24 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Fix SNAP seek handling
	  * Since only flushing seeks are allowed, the "current" position is always the
	  global output position (and not "some" stream current position).
	  * In terms of figuring out to which stream to "snap" to, we can send it to any
	  selected stream. Removes the requirement of this function to a specific output
	  pad.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>

2022-05-17 07:16:48 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	* ext/adaptivedemux2/hls/gsthlsdemux.h:
	  hlsdemux2: Fix position tracking
	  Remove the "pending advance" hack and instead rely on the base stream current
	  position to track our position (instead of a potentially NULL "current
	  segment").
	  Also ensure the media playlists are always refreshed with valid stream time,
	  even if there is no current segment.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>

2022-05-17 07:11:17 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	* ext/adaptivedemux2/hls/m3u8.h:
	  hlsdemux2: Add a new method to synchronize two media playlist
	  This allows transfering the stream time of the playlist to an updated
	  variant/rendition.
	  This allows updating that information without having a "current segment"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>

2022-05-17 07:07:23 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: Initialize and use stream start/current position
	  The stream start and current position would be properly set when seeking or
	  activating a stream after playback started. But it would never be properly
	  initialized.
	  Set it to NONE initially to indicate to subclasses that no position has been
	  tracked yet. This will allow them to detect initial stream usage.
	  Futhermore, once the initial streams setup is done, make sure that it is set to
	  a valid initial value:
	  * The minimum stream time in live
	  * Or else the period start
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2679>

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

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

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

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

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

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

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

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

2022-06-17 14:02:54 +0200  Marc Leeman <m.leeman@televic.com>

	* gst/rtpmanager/rtpsession.c:
	  rtpsession: properly initialise favor-new property
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2625>

2022-05-27 11:20:06 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux-util.c:
	  hlsdemux2: Look for mpegts synchronization point further
	  Some mpeg-ts streams have extra data at the beginning. While it's not ideal, we
	  should be able to cope with it.
	  Therefore increase the initial search window for at least 4 consecutive
	  synchronization points to 1kB.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2626>

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

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

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

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

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

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

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

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

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

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

2022-06-14 23:03:26 +0200  Piotr Brzeziński <piotr@centricular.com>

	* ext/adaptivedemux2/dash/gstmpd-prelude.h:
	* ext/adaptivedemux2/dash/gstmpdhelper.h:
	* ext/adaptivedemux2/dash/gstmpdnode.h:
	* ext/adaptivedemux2/dash/gstmpdparser.h:
	* ext/adaptivedemux2/dash/gstxmlhelper.h:
	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	* ext/adaptivedemux2/hls/gsthlselement.c:
	* ext/adaptivedemux2/hls/gsthlselements.h:
	* ext/adaptivedemux2/hls/m3u8.c:
	* ext/adaptivedemux2/mss/gstmss-prelude.h:
	* ext/adaptivedemux2/mss/gstmssdemux.c:
	* ext/adaptivedemux2/mss/gstmssdemux.h:
	* ext/adaptivedemux2/mss/gstmssfragmentparser.h:
	* ext/adaptivedemux2/mss/gstmssmanifest.h:
	* ext/soup/gstsouploader.c:
	* ext/soup/gstsouploader.h:
	* tests/check/elements/hlsdemux_m3u8.c:
	  adaptivedemux2: Prevent duplicate symbols on static builds
	  Uses prelude header files with #defines to rename DASH and MSS
	  symbols duplicated in their old standalone versions.
	  Also redefines soup-related functions when building it for
	  adaptivedemux2 to prevent symbol conflicts there.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2534>

2022-05-12 02:51:00 +1000  Jan Schmidt <jan@centricular.com>

	* ext/adaptivedemux2/gstadaptivedemux-track.c:
	* ext/adaptivedemux2/gstadaptivedemux.h:
	  adaptivedemux2: Improve reverse playback buffering.
	  In reverse playback, store the lowest running time in each GOP
	  as the input_time for buffering purposes. That means we end up
	  storing at least a complete GOP before declaring buffering
	  100%
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2510>

2022-04-08 23:06:09 +1000  Jan Schmidt <jan@centricular.com>

	* docs/gst_plugins_cache.json:
	* ext/adaptivedemux2/gstadaptivedemux-private.h:
	* ext/adaptivedemux2/gstadaptivedemux-track.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	  adaptivedemux2: reverse playback running times
	  Account for running time moving non-monotonically in
	  reverse playback by tracking the highest running time
	  seen at each point.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2510>

2022-04-06 12:56:30 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.h:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	* gst/rtpmanager/gstrtpst2022-1-fecenc.c:
	* gst/udp/gstudpelement.c:
	* meson.build:
	  Bump GLib requirement to >= 2.62
	  Can't require 2.64 yet because of
	  https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/323
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2568>

2022-06-08 14:11:57 +0200  Marc Leeman <m.leeman@televic.com>

	* docs/gst_plugins_cache.json:
	* gst/udp/gstmultiudpsink.c:
	  fix trivial distination -> destination
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2573>

2022-04-21 12:47:31 +0200  Ignacio Casal Quinteiro <qignacio@amazon.com>

	* sys/osxaudio/gstosxcoreaudiohal.c:
	  osxaudio: remove usage of goto
	  It is easier to follow the code without the goto now
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>

2022-03-30 12:59:46 +0200  Ignacio Casal Quinteiro <qignacio@amazon.com>

	* sys/osxaudio/gstosxcoreaudiohal.c:
	  osxaudio: support hidden devices
	  macOS features hidden devices. These are devices that will
	  not be shown in the macOS UIs and that cannot be retrieved
	  without having the specific UID of the hidden device. There
	  are cases when you might want to have a hidden device, for example
	  when having a virtual speaker that forwards the data to a virtual
	  hidden input device from which you can then grab the audio.
	  The blackhole project supports these hidden devices and
	  this patch provides a way that if the device id is a hidden
	  device it will use it instead of check the hardware list of devices
	  to understand if the device is valid.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>

2022-04-20 18:12:02 +0200  Ignacio Casal Quinteiro <qignacio@amazon.com>

	* sys/osxaudio/gstosxcoreaudiohal.c:
	  osx: fix indent
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>

2022-03-30 12:48:02 +0200  Ignacio Casal Quinteiro <qignacio@amazon.com>

	* sys/osxaudio/gstosxcoreaudiohal.c:
	  osxaudio: iterate device only if needed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>

2022-03-30 09:59:59 +0200  Ignacio Casal Quinteiro <qignacio@amazon.com>

	* sys/osxaudio/gstosxcoreaudiohal.c:
	  osxaudio: reduce scope of default device id variable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2251>

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

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

2022-06-06 12:31:52 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/flv/gstflvdemux.c:
	* gst/flv/gstflvdemux.h:
	  flvdemux: Make use of the streams API if used in a streams-aware bin
	  This allows adding audio/video streams after 6s.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2559>

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

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

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

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

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

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

2022-05-29 06:05:27 +0900  Seungha Yang <seungha@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hlsdemux2: Adjust debug log level
	  HLS manifest might not be represented by a single common caps
	  when different codecs are mixed in a playlist, but it
	  does not seem to be a critical issue we need to warn.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2516>

2022-05-02 16:55:34 +0200  Stéphane Cerveau <scerveau@collabora.com>

	* ext/adaptivedemux2/dash/gstdashdemux.c:
	* ext/adaptivedemux2/dash/gstdashdemux.h:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/gstadaptivedemuxelement.c:
	* ext/adaptivedemux2/gstadaptivedemuxelements.h:
	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	* ext/adaptivedemux2/hls/gsthlsdemux.h:
	* ext/adaptivedemux2/meson.build:
	* ext/adaptivedemux2/mss/gstmssdemux.c:
	* ext/adaptivedemux2/mss/gstmssdemux.h:
	* ext/adaptivedemux2/plugin.c:
	  adaptivedemux2: fix plugin/element init
	  In case of per features registration such as the
	  customizable gstreamer-full library, each
	  element should check that the soup library can be loaded to
	  facilitate the element registration.
	  Initialize the debug categories properly
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2348>

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

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

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

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

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

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

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

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

2022-05-25 13:00:58 +0200  Piotrek Brzeziński <piotr@centricular.com>

	* gst/cutter/gstcutter.c:
	* gst/cutter/gstcutter.h:
	  cutter: Include running/stream-time in messages
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2490>

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

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

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

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

2022-05-19 16:33:47 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: Fix missing handling of resolution-change
	  The pool process function may poll and get the resolution-change event
	  whenever it is not possible to share our buffers. This typically happen
	  when downstream does not support GstVideoMeta.
	  Not handling this would cause the decoder thread to exit silently and the
	  pipeline to stall.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2457>

2022-05-19 16:39:14 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: Downgrade to info resolution-change trace
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2457>

2022-05-23 20:23:38 +0100  Tim-Philipp Müller <tim@centricular.com>

	* ext/shout2/gstshout2.c:
	* ext/shout2/gstshout2.h:
	* ext/shout2/meson.build:
	  shout2: fix compiler warnings and bump req to libshout >= 2.4.2
	  Fix compiler warnings with latest libshout version (2.4.6).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2473>

2022-05-14 14:58:04 +0200  László Károlyi <laszlo@karolyi.hu>

	* docs/gst_plugins_cache.json:
	* ext/shout2/gstshout2.c:
	* ext/shout2/gstshout2.h:
	  shout2send: Adding send-title-info and user-agent options
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2420>

2022-05-19 11:47:57 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/qtdemux.c:
	* gst/isomp4/qtdemux.h:
	  qtdemux: Add support for ONVIF XML Timed MetaData
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2453>

2022-05-19 11:30:20 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/fourcc.h:
	* gst/isomp4/qtdemux_dump.c:
	* gst/isomp4/qtdemux_types.c:
	  qtdemux: Add parsing/dumping of nmhd / metx boxes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2453>

2022-05-19 11:06:31 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/fourcc.h:
	* gst/isomp4/qtdemux.c:
	  qtdemux: Parse styp box for informational purposes
	  And include some more details in the debug logs for the ftyp box too.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2453>

2022-05-10 16:20:46 +0800  Hou Qi <qi.hou@nxp.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: set default resolution if caps has no such information
	  Output may attemp to set the width and height to zero values if
	  caps has no such information, which will cause capture get invalid
	  dimensions. Then decoder reports negotiation failure.
	  So need to set default resolution if caps has no such information.
	  Real values can be set again until source change event is signaled.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2400>

2022-05-17 05:21:19 +1000  Jan Schmidt <jan@centricular.com>

	* gst/multifile/gstsplitmuxpartreader.c:
	  splitmuxsrc: Re-queue sticky events after probing.
	  When processing the first event after probing the
	  file and being activated, requeue sticky events
	  as there's no requirement that demuxers send tag
	  and other events again after a seek - that's
	  why they're sticky.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2432>

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

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

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

	* gst/multifile/gstsplitmuxsink.c:
	* gst/multifile/gstsplitmuxsink.h:
	  splitmuxsink: When flushing, exit handle_mq_input quickly
	  If we just break the loop, we might run into the `gop != NULL` assert
	  that follows it. Rather, exit immediately with flushing flow.
	  Also use this flushing mechanism when we release a pad. This avoids
	  having an extra flag.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1030>

2021-01-26 16:33:25 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/multifile/gstsplitmuxsink.c:
	  splitmuxsink: Avoid deadlock on release, harder
	  Unlock after broadcasting and wait for the pad to be free before
	  relocking the muxer, giving the input probe a chance to react to our
	  broadcast.
	  Improves the fix from
	  https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/838.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1030>

2022-05-16 19:31:18 +0900  Shingo Kitagawa <shingogo@hotmail.co.jp>

	* gst/wavparse/gstwavparse.c:
	  wavparse: fix typo in debug message
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2425>

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

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

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

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

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

	* ext/vpx/gstvpxenc.c:
	* ext/vpx/gstvpxenc.h:
	  vpxenc: enforce strictly increasing pts
	  From vpx_codec_encode() documentation:
	  "The presentation time stamp (PTS) MUST be strictly increasing."
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2405>

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

	* ext/vpx/gstvpxenc.c:
	  vpxenc: conver input pts to running time
	  The input pts needs to be strictly increasing, see vpx_codec_encode() doc, so convert it to
	  running time as we don't want to reset the encoder for each segment.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2405>

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

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

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

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

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

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

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

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

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

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

2022-04-29 23:33:47 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: Free CNAME/SSRC mappings on finalize and PAUSED->READY
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2336>

2022-04-29 23:13:15 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpmanager: Refactor RTCP packet loops to fix control flow
	  Mixing C loops with switch statements is a bad idea as break has a
	  different meaning in both. Breaking inside the switch statements wrongly
	  caused further loop iterations.
	  Instead use goto to get out of the loop and continue to do another loop
	  iteration, and never ever use break except for the end of a case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2336>

2022-04-28 00:58:30 +0900  Seungha Yang <seungha@centricular.com>

	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: Initialize variables
	  Avoid use of uninitialized variable
	  Fixing MSVC warning
	  gstrtpjitterbuffer.c(4733) : warning C4700: uninitialized local variable 'have_sdes' used
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2315>

2022-04-28 10:49:55 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/mss/gstmssdemux.c:
	  mssdemux2: Don't expose/use streams we can't handle yet
	  Avoids issues further down
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2319>

2022-04-28 10:46:34 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/mss/gstmssdemux.c:
	* ext/adaptivedemux2/mss/gstmssmanifest.c:
	* ext/adaptivedemux2/mss/gstmssmanifest.h:
	  mssdemux2: Ensure stream/track uniqueness
	  If there is more than one track of the same type (say audio), we would end up
	  creating several stream/types with the same name.
	  Instead use the MSS stream name property to make them unique
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2319>

2022-04-27 12:24:23 +0900  dongil.park <dongil.park@lge.com>

	* gst/wavparse/gstwavparse.c:
	  wavparse: Unset DISCONT buffer flag for divided into multiple buffers in push mode
	  In push mode (streaming), if the received chunk buffer size from _chain is bigger
	  than output buffer size, the flags of the divided-buffers are propagated to the
	  DISCONT flag from first received chunk buffer. This unexpected buffers contained DISCONT
	  flags are abnormally transformed when changing the sampling rate by audioresample element.
	  So unset unnecessary DISCONT flag before pad_push().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2305>

2022-04-26 22:17:51 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: add the reference timestamp meta in more situations
	  Previously, we only added it when actually performing synchronization
	  based on the NTP time.
	  The information can be useful downstream in other situations too, and
	  we can compute a NTP time as soon as we get a sender report with the
	  relevant information.
	  Co-authored-by: Mathieu Duponchelle <mathieu@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2252>

2022-04-20 17:35:29 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtp/gstrtpgstpay.c:
	* gst/rtp/gstrtpgstpay.h:
	  rtpgstpay: Don't push packets before the first input buffer is received
	  It's not possible to create a valid RTP timestamp for them, which would
	  cause a potentially very big RTP timestamp discontinuity between those
	  first packets (created from initial events) and the packet based on the
	  first input buffer.
	  As a side-effect, also simplify the packet aggregation code a bit and
	  work with only a single level of buffer lists.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1157
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2250>

2022-04-22 12:19:03 +0200  Havard Graff <havard@pexip.com>

	* gst/rtpmanager/rtptwcc.c:
	  rtptwcc: don't map the buffer twice
	  ...and use the pt extracted rather than the one from RTPPacketInfo
	  when logging.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2271>

2022-04-22 02:41:16 +0000  Thibault Saunier <tsaunier@igalia.com>

	* gst/rtpmanager/rtpsession.c:
	  rtpsession: Emit "notify::stats" when we update stats from RR or SR
	  Sensibily optimizing caching the pspecs and using them directly
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2266>

2022-04-23 01:57:53 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/rtp/gstrtpredenc.c:
	* gst/rtp/gstrtpredenc.h:
	  rtpredenc: quieten warning about ignoring header extensions
	  Turn it into a FIXME, and only log once
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2279>

2021-02-01 10:36:42 +0100  Havard Graff <havard.graff@gmail.com>

	* gst/rtpmanager/gstrtprtxsend.c:
	* tests/check/elements/rtprtx.c:
	  rtprtxsend: mark RTX buffers with GST_RTP_BUFFER_FLAG_RETRANSMISSION
	  It is useful for elements downstream from rtxsend to know if the RTP
	  buffer they are dealing with is an RTX buffer or not.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2272>

2022-04-19 18:40:31 -0400  Tristan Matthews <tmatth@videolan.org>

	* docs/gst_plugins_cache.json:
	* gst/isomp4/gstqtmux.c:
	  mp4mux: fix spelling
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2241>

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

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

2022-04-18 18:20:00 +0900  Camilo Celis Guzman <camilo@pexip.com>

	* tests/check/elements/rtphdrextsdes.c:
	  rtphdrextsdes: fixup test trying to g_free a local variable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2235>

2022-04-21 11:47:55 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/m3u8.c:
	  hls/m3u8: Fix starting segment for live playlist
	  RFC 8216 6.3.3 "Playing the Media Playlist File" : states that for live media
	  playlists "the client SHOULD NOT choose a segment that starts less than three
	  target durations from the end of the Playlist file"
	  This is an off-by-one error. Since we are looking for the "index" of the
	  segment, we need to subtract 1 from the searched position.
	  Ex: For a playlist with 12 entries, we want to start playback on the 9th segment
	  ... which is at index 8.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2259>

2022-04-20 14:50:35 +0200  Edward Hervey <edward@centricular.com>

	* ext/adaptivedemux2/hls/gsthlsdemux-util.c:
	  hls: Relax webvtt checks
	  If no hour field is present (which is allowed), the remaining data can be less
	  than 15 character.
	  Fix time translation failures if the hour field wasn't present
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2248>

2022-04-20 10:53:16 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpfunnel.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	* gst/rtpmanager/gstrtpsession.c:
	* gst/rtpmanager/gstrtputils.c:
	* gst/rtpmanager/gstrtputils.h:
	* gst/rtpmanager/meson.build:
	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtptwcc.c:
	  rtpmanager: Move some duplicated constant and helper function to a single place
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>

2022-04-18 16:22:50 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpbin/rtpjitterbuffer: Don't parse RTCP SRs twice unless needed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>

2022-04-18 11:50:48 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpjitterbuffer: Add property to throttle handling of RTCP SR / NTP-64 syncing
	  This proxies the "rtcp-sync-interval" property of rtpbin.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>

2022-04-11 19:14:43 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtpsession.h:
	  rtpsession: Handle RTCP-SR-REQ (RFC6051) RTCP feedback message
	  This causes an RTCP SR to be sent at the earliest possible time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>

2022-04-11 19:25:43 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpbin/rtpjitterbuffer: Allow syncing to an SR without CNAME if the CNAME is already known
	  The RTCP SR packet might be without SDES in case of a reduced-size RTCP
	  packet. For syncing purposes the CNAME is needed but it might be known
	  already from an earlier RTCP packet or out of band, via the SDP for
	  example.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>

2022-04-07 18:59:07 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	  rtpbin/jitterbuffer: Use inband 64-bit NTP timestamps according to RFC6051 for faster synchronization
	  When signalled via the caps that the header extension is used, it will
	  be read and used in the same way as the RTP/NTP time mapping from RTCP
	  SRs.
	  If the CNAME of the stream's SSRC is provided out of band via e.g. the
	  SDP then this allows streams to be synchronized immediately on the first
	  packet instead of having to wait for the first RTCP SR to arrive.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/383
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>

2022-04-09 11:00:52 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpsession.c:
	  rtpsession: Only add send latency to the running time if it is actually known
	  Otherwise we can't know the running time yet if rtcp-sync-send-time is
	  set, and have to wait until the latency is known later.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>

2022-04-06 15:39:14 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/gstrtpsession.c:
	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtpsession.h:
	* gst/rtpmanager/rtpstats.h:
	  rtpsession: Update 64-bit NTP header extensions with the actual NTP time in senders
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>

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

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtphdrext-ntp.c:
	* gst/rtpmanager/gstrtphdrext-ntp.h:
	* gst/rtpmanager/gstrtpmanager.c:
	* gst/rtpmanager/meson.build:
	  rtpmanager: Add header extension implementation for the 64-bit RFC6051 NTP header extension
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>

2022-03-25 10:18:34 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* meson.build:
	  Always define ENABLE_NLS
	  GLib guarantees libintl API is always available, provided by
	  proxy-libintl as last resort. GLib itself unconditionally define
	  ENABLE_NLS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028>

2022-03-25 10:20:24 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* gst-libs/gst/gettext.h:
	* gst-libs/gst/gst-i18n-plugin.h:
	  Delete unused i18n headers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028>

2022-03-25 09:59:23 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/mss/gstmssdemux.c:
	* ext/flac/gstflacdec.c:
	* ext/flac/gstflacelement.c:
	* ext/jack/gstjackaudiosink.c:
	* ext/jack/gstjackaudiosrc.c:
	* ext/jpeg/gstjpegdec.c:
	* ext/lame/gstlamemp3enc.c:
	* ext/lame/plugin.c:
	* ext/libpng/gstpngdec.c:
	* ext/pulse/gstpulseelement.c:
	* ext/pulse/pulsesink.c:
	* ext/shout2/gstshout2.c:
	* ext/soup/gstsoup.c:
	* ext/soup/gstsoupelement.c:
	* ext/soup/gstsouphttpsrc.c:
	* ext/twolame/gsttwolamemp2enc.c:
	* ext/wavpack/gstwavpackelement.c:
	* gst/apetag/gstapedemux.c:
	* gst/avi/gstavidemux.c:
	* gst/avi/gstavielement.c:
	* gst/avi/gstavimux.c:
	* gst/icydemux/gsticydemux.c:
	* gst/id3demux/gstid3demux.c:
	* gst/isomp4/gstisomp4element.c:
	* gst/isomp4/isomp4-plugin.c:
	* gst/isomp4/qtdemux.c:
	* gst/multifile/gstsplitmuxsrc.c:
	* gst/rtsp/gstrtspelement.c:
	* gst/rtsp/gstrtspsrc.c:
	* gst/wavparse/gstwavparse.c:
	* sys/oss/gstossaudio.c:
	* sys/oss/gstossaudioelement.c:
	* sys/oss/gstosshelper.c:
	* sys/oss/gstosssink.c:
	* sys/oss/gstosssrc.c:
	* sys/oss4/oss4-audio.c:
	* sys/oss4/oss4-sink.c:
	* sys/oss4/oss4-source.c:
	* sys/osxaudio/gstosxaudioringbuffer.c:
	* sys/rpicamsrc/gstrpicamsrcdeviceprovider.c:
	* sys/v4l2/gstv4l2.c:
	* sys/v4l2/gstv4l2bufferpool.c:
	* sys/v4l2/gstv4l2element.c:
	* sys/v4l2/gstv4l2fwhtenc.c:
	* sys/v4l2/gstv4l2h263enc.c:
	* sys/v4l2/gstv4l2h264enc.c:
	* sys/v4l2/gstv4l2h265enc.c:
	* sys/v4l2/gstv4l2jpegenc.c:
	* sys/v4l2/gstv4l2mpeg4enc.c:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2radio.c:
	* sys/v4l2/gstv4l2sink.c:
	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2transform.c:
	* sys/v4l2/gstv4l2videodec.c:
	* sys/v4l2/gstv4l2videoenc.c:
	* sys/v4l2/gstv4l2vp8enc.c:
	* sys/v4l2/gstv4l2vp9enc.c:
	* sys/v4l2/v4l2_calls.c:
	* sys/ximage/gstximagesrc.c:
	  Replace gst-i18n-*.h with gi18n-lib.h
	  GLib guarantees libintl is always present, using proxy-libintl as
	  last resort. There is no need to mock gettex API any more.
	  This fix static build on Windows because G_INTL_STATIC_COMPILATION must
	  be defined before including libintl.h, and glib does it for us as part
	  as including glib.h.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028>

2022-04-19 09:52:51 +0100  Tim-Philipp Müller <tim@centricular.com>

	* tests/check/elements/dash_mpd.c:
	  tests: dash_mpd: fix linker issues with non-optimizing compilers
	  undefined reference to `download_request_take_buffer'
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2117#note_1344646
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2228>

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

	* docs/gst_plugins_cache.json:
	  gst_plugin_load_file: force plugin reload if diff filename
	  If a file includes a new version of a plugin that exits in the
	  registry, the output of gst-inspect is incorrect. The output has the
	  correct version but incorrect filename, and element description.
	  This seems to have also fixed some documentation issues.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1344>

2022-03-11 17:11:50 +0100  Edward Hervey <edward@centricular.com>

	* docs/gst_plugins_cache.json:
	* docs/meson.build:
	* ext/adaptivedemux2/dash/gstdash_debug.h:
	* ext/adaptivedemux2/dash/gstdashdemux.c:
	* ext/adaptivedemux2/dash/gstdashdemux.h:
	* ext/adaptivedemux2/dash/gstmpdadaptationsetnode.c:
	* ext/adaptivedemux2/dash/gstmpdadaptationsetnode.h:
	* ext/adaptivedemux2/dash/gstmpdbaseurlnode.c:
	* ext/adaptivedemux2/dash/gstmpdbaseurlnode.h:
	* ext/adaptivedemux2/dash/gstmpdclient.c:
	* ext/adaptivedemux2/dash/gstmpdclient.h:
	* ext/adaptivedemux2/dash/gstmpdcontentcomponentnode.c:
	* ext/adaptivedemux2/dash/gstmpdcontentcomponentnode.h:
	* ext/adaptivedemux2/dash/gstmpddescriptortypenode.c:
	* ext/adaptivedemux2/dash/gstmpddescriptortypenode.h:
	* ext/adaptivedemux2/dash/gstmpdhelper.c:
	* ext/adaptivedemux2/dash/gstmpdhelper.h:
	* ext/adaptivedemux2/dash/gstmpdlocationnode.c:
	* ext/adaptivedemux2/dash/gstmpdlocationnode.h:
	* ext/adaptivedemux2/dash/gstmpdmetricsnode.c:
	* ext/adaptivedemux2/dash/gstmpdmetricsnode.h:
	* ext/adaptivedemux2/dash/gstmpdmetricsrangenode.c:
	* ext/adaptivedemux2/dash/gstmpdmetricsrangenode.h:
	* ext/adaptivedemux2/dash/gstmpdmultsegmentbasenode.c:
	* ext/adaptivedemux2/dash/gstmpdmultsegmentbasenode.h:
	* ext/adaptivedemux2/dash/gstmpdnode.c:
	* ext/adaptivedemux2/dash/gstmpdnode.h:
	* ext/adaptivedemux2/dash/gstmpdparser.c:
	* ext/adaptivedemux2/dash/gstmpdparser.h:
	* ext/adaptivedemux2/dash/gstmpdperiodnode.c:
	* ext/adaptivedemux2/dash/gstmpdperiodnode.h:
	* ext/adaptivedemux2/dash/gstmpdprograminformationnode.c:
	* ext/adaptivedemux2/dash/gstmpdprograminformationnode.h:
	* ext/adaptivedemux2/dash/gstmpdreportingnode.c:
	* ext/adaptivedemux2/dash/gstmpdreportingnode.h:
	* ext/adaptivedemux2/dash/gstmpdrepresentationbasenode.c:
	* ext/adaptivedemux2/dash/gstmpdrepresentationbasenode.h:
	* ext/adaptivedemux2/dash/gstmpdrepresentationnode.c:
	* ext/adaptivedemux2/dash/gstmpdrepresentationnode.h:
	* ext/adaptivedemux2/dash/gstmpdrootnode.c:
	* ext/adaptivedemux2/dash/gstmpdrootnode.h:
	* ext/adaptivedemux2/dash/gstmpdsegmentbasenode.c:
	* ext/adaptivedemux2/dash/gstmpdsegmentbasenode.h:
	* ext/adaptivedemux2/dash/gstmpdsegmentlistnode.c:
	* ext/adaptivedemux2/dash/gstmpdsegmentlistnode.h:
	* ext/adaptivedemux2/dash/gstmpdsegmenttemplatenode.c:
	* ext/adaptivedemux2/dash/gstmpdsegmenttemplatenode.h:
	* ext/adaptivedemux2/dash/gstmpdsegmenttimelinenode.c:
	* ext/adaptivedemux2/dash/gstmpdsegmenttimelinenode.h:
	* ext/adaptivedemux2/dash/gstmpdsegmenturlnode.c:
	* ext/adaptivedemux2/dash/gstmpdsegmenturlnode.h:
	* ext/adaptivedemux2/dash/gstmpdsnode.c:
	* ext/adaptivedemux2/dash/gstmpdsnode.h:
	* ext/adaptivedemux2/dash/gstmpdsubrepresentationnode.c:
	* ext/adaptivedemux2/dash/gstmpdsubrepresentationnode.h:
	* ext/adaptivedemux2/dash/gstmpdsubsetnode.c:
	* ext/adaptivedemux2/dash/gstmpdsubsetnode.h:
	* ext/adaptivedemux2/dash/gstmpdurltypenode.c:
	* ext/adaptivedemux2/dash/gstmpdurltypenode.h:
	* ext/adaptivedemux2/dash/gstmpdutctimingnode.c:
	* ext/adaptivedemux2/dash/gstmpdutctimingnode.h:
	* ext/adaptivedemux2/dash/gstxmlhelper.c:
	* ext/adaptivedemux2/dash/gstxmlhelper.h:
	* ext/adaptivedemux2/downloadhelper.c:
	* ext/adaptivedemux2/downloadhelper.h:
	* ext/adaptivedemux2/downloadrequest.c:
	* ext/adaptivedemux2/downloadrequest.h:
	* ext/adaptivedemux2/gstadaptivedemux-period.c:
	* ext/adaptivedemux2/gstadaptivedemux-private.h:
	* ext/adaptivedemux2/gstadaptivedemux-stream.c:
	* ext/adaptivedemux2/gstadaptivedemux-track.c:
	* ext/adaptivedemux2/gstadaptivedemux.c:
	* ext/adaptivedemux2/gstadaptivedemux.h:
	* ext/adaptivedemux2/gstadaptivedemuxutils.c:
	* ext/adaptivedemux2/gstadaptivedemuxutils.h:
	* ext/adaptivedemux2/gstisoff.c:
	* ext/adaptivedemux2/gstisoff.h:
	* ext/adaptivedemux2/hls/gsthlsdemux-util.c:
	* ext/adaptivedemux2/hls/gsthlsdemux.c:
	* ext/adaptivedemux2/hls/gsthlsdemux.h:
	* ext/adaptivedemux2/hls/gsthlselement.c:
	* ext/adaptivedemux2/hls/gsthlselements.h:
	* ext/adaptivedemux2/hls/m3u8.c:
	* ext/adaptivedemux2/hls/m3u8.h:
	* ext/adaptivedemux2/hls/meson.build:
	* ext/adaptivedemux2/meson.build:
	* ext/adaptivedemux2/mss/gstmssdemux.c:
	* ext/adaptivedemux2/mss/gstmssdemux.h:
	* ext/adaptivedemux2/mss/gstmssfragmentparser.c:
	* ext/adaptivedemux2/mss/gstmssfragmentparser.h:
	* ext/adaptivedemux2/mss/gstmssmanifest.c:
	* ext/adaptivedemux2/mss/gstmssmanifest.h:
	* ext/adaptivedemux2/plugin.c:
	* ext/meson.build:
	* ext/soup/gstsouploader.c:
	* ext/soup/gstsouploader.h:
	* meson_options.txt:
	* tests/check/elements/dash_mpd.c:
	* tests/check/elements/hlsdemux_m3u8.c:
	* tests/check/meson.build:
	  New HLS, DASH and MSS adaptive demuxer elements
	  This provides new HLS, DASH and MSS adaptive demuxer elements as a single plugin.
	  These elements offer many improvements over the legacy elements. They will only
	  work within a streams-aware context (`urisourcebin`, `uridecodebin3`,
	  `decodebin3`, `playbin3`, ...).
	  Stream selection and buffering is handled internally, this allows them to
	  directly manage the elementary streams and stream selection.
	  Authors:
	  * Edward Hervey <edward@centricular.com>
	  * Jan Schmidt <jan@centricular.com>
	  * Piotrek Brzeziński <piotr@centricular.com>
	  * Tim-Philipp Müller <tim@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2117>

2022-04-15 09:53:19 +0800  Hou Qi <qi.hou@nxp.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: copy colorimetry values to output_state caps
	  This is to avoid transcoding negotiation fail between v4l2h265dec
	  and v4l2h264enc caused by colorimetry mismatch.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2192>

2022-04-14 20:10:46 +1000  Brad Hards <bradh@frogmouth.net>

	* tests/interactive/equalizer-test.c:
	* tests/interactive/gdkpixbufoverlay-test.c:
	* tests/interactive/gdkpixbufsink-test.c:
	* tests/interactive/meson.build:
	* tests/interactive/test-accurate-seek.c:
	* tests/interactive/test-oss4.c:
	* tests/interactive/test-segment-seeks.c:
	* tests/interactive/videobox-test.c:
	* tests/interactive/videocrop-test.c:
	* tests/interactive/videocrop2-test.c:
	* tests/interactive/ximagesrc-test.c:
	* tests/meson.build:
	  tests: rename 'icles' subdir to be more descriptive
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2178>

2022-04-07 11:12:47 +1000  Havard Graff <havard.graff@gmail.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: fix leak of channel_mapping
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2179>

2022-04-13 10:17:15 +0800  Ming Qian <ming.qian@nxp.com>

	* docs/gst_plugins_cache.json:
	  doc: Update cache after NV12_8L128 and NV12_10BE_8L128 addition
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2158>

2022-04-12 14:15:01 +0800  Ming Qian <ming.qian@nxp.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: Add NV12_8L128 in gst_v4l2_object_get_caps_info
	  It should be included in
	  <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2158>

2022-04-12 10:35:26 +0800  Ming Qian <ming.qian@nxp.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2: Add a missed break
	  Fix a typo that miss a break in the switch statement
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2158>

2022-04-11 13:40:56 +0200  Robert Rosengren <robertr@axis.com>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Fix division by zero when using ts-offset-smoothing-factor
	  avg_ts_offset may cause division by zero when calculating potential
	  overflow protection. This fix will avoid the division.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2151>

2022-04-06 09:46:30 -0400  Tristan Matthews <tmatth@videolan.org>

	* gst/rtp/gstrtpopusdepay.c:
	  rtpopusdepay: assume 2 channels if sprop-stereo is missing
	  Fixes #1064
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2125>

2022-03-11 15:13:21 +0100  Matthias Fuchs <matthias1.fuchs@zeiss.com>

	* ext/qt/gstqtsrc.cc:
	* ext/qt/qtwindow.cc:
	* ext/qt/qtwindow.h:
	  qmlglsrc: Fix deadlock when stopping
	  This fix makes sure that streaming thread stops waiting when the
	  qmlglsrc element transitions from playing to paused.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2115>

2022-03-14 17:20:38 +0100  Matthias Fuchs <matthias1.fuchs@zeiss.com>

	* ext/qt/qtwindow.cc:
	  qmlglsrc: Fix missing depth & stencil buffer
	  Qt Quick primitives which have some kind of alpha blending
	  (transparency, rounded corners) are z-sorted by Qt and rendered in the
	  correct order. For opaque primitives Qt relies on the OpenGL depth
	  buffer to correctly determine the visibility of stacked elements.
	  This change enables the depth buffer to make sure that opaque primitives
	  are correctly z-stacked.
	  https://doc.qt.io/qt-6/qtquick-visualcanvas-scenegraph-renderer.html#opaque-primitives
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2114>

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

	* gst/rtpmanager/rtpstats.h:
	  rtpstats: Remove non-existing twcc field docs from RTPPacketInfo and add missing field docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2121>

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

	* gst/rtpmanager/rtpsession.h:
	  rtpsession: Remove unused twcc fields from the struct
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2121>

2022-03-30 11:06:02 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* meson.build:
	  Use gmodule-no-export-2.0
	  We don't need `-Wl,--export-dynamic`, that's used only for executables
	  that needs to export an API to be used by plugins they load.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>

2022-03-25 15:00:20 -0400  Xavier Claessens <xavier.claessens@collabora.com>

	* ext/qt/meson.build:
	* ext/soup/meson.build:
	* gst/imagefreeze/meson.build:
	* gst/rtsp/meson.build:
	* gst/shapewipe/meson.build:
	* meson.build:
	* tests/check/meson.build:
	  Remove glib and gobject dependencies everywhere
	  They are part of gst_dep already and we have to make sure to always have
	  gst_dep. The order in dependencies matters, because it is also the order
	  in which Meson will set -I args. We want gstreamer's config.h to take
	  precedence over glib's private config.h when it's a subproject.
	  While at it, remove useless fallback args for gmodule/gio dependencies,
	  only gstreamer core needs it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031>

2022-03-31 23:41:41 +0200  Thibault Saunier <tsaunier@igalia.com>

	* gst/debugutils/gstnavigationtest.c:
	  navigation: Rename parse_state to parse_modifier_state
	  `parse_state` sounds a bit weird and `parse_modifier_state` is clearer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2087>

2022-03-26 01:02:02 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/soup/meson.build:
	  meson: Add some messages when selecting libsoup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2032>

2022-03-26 00:59:12 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/soup/gstsouphttpsrc.c:
	  soup: Fix usage of symbols / defines that are gone in libsoup3
	  I am not sure about the SOUP_MESSAGE_OVERWRITE_CHUNKS change, but it
	  was definitely already broken when using libsoup-3.0 in a shared
	  build. souphttpsrc probably needs to be ported from SoupMessage to
	  SoupServerMessage when using libsoup-3.0.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1111
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2032>

2022-03-26 00:56:04 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/soup/gstsouploader.c:
	* ext/soup/gstsouploader.h:
	  soup: Fix pre-processor macros in souploader for libsoup-3.0
	  Some of the preprocessor conditionals in the loader were very broken
	  with libsoup-3.0 + --default-library=static
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1111
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2032>

2022-03-28 18:12:03 +1100  Matthew Waters <matthew@centricular.com>

	* sys/osxaudio/gstosxcoreaudio.c:
	  osxcoreaudio: fix unused-but-set warning
	  ../sys/osxaudio/gstosxcoreaudio.c:480:18: error: variable 'interleaved' set but not used [-Werror,-Wunused-but-set-variable]
	  gboolean sign, interleaved;
	  ^
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2046>

2022-03-28 10:10:45 +0300  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst_plugins_cache.json:
	  video-format: Move NV12_8L128 into the correct position in GST_VIDEO_FORMATS_ALL
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2045>

2022-03-28 13:35:17 +1100  Matthew Waters <matthew@centricular.com>

	* gst/deinterlace/tvtime/tomsmocomp/SearchLoopTop.inc:
	  deinterlace: silence unused-but-set werror from imported code
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2042>

2022-03-28 09:50:38 +1100  Matthew Waters <matthew@centricular.com>

	* sys/osxvideo/osxvideosink.m:
	  osxvideosink: fix unused-but-set-variable warning
	  ../sys/osxvideo/osxvideosink.m:859:11: error: variable 'data' set but not used [-Werror,-Wunused-but-set-variable]
	  guint8 *data, *readp, *writep;
	  ^
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2040>

2022-03-25 11:42:03 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst/debugutils/gstnavigationtest.c:
	* gst/debugutils/gstnavigationtest.h:
	  navigationtest: Add some support for modifiers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010>

2022-03-18 16:59:32 +0000  Thibault Saunier <tsaunier@igalia.com>

	* ext/gtk/gtkgstbasewidget.c:
	* ext/qt/qtitem.cc:
	  navigation: Add support for key Modifiers in all relevant events
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010>

2021-11-17 17:27:13 +1100  Matthew Waters <matthew@centricular.com>

	* gst/rtpmanager/gstrtpptdemux.c:
	  rtpptdemux: fix leak of caps when ignoring a pt
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2025>

2022-02-23 12:53:04 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

	* ext/qt/qtitem.cc:
	* ext/qt/qtitem.h:
	  qt: Add touch event support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-02-21 20:16:06 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

	* ext/gtk/gtkgstbasewidget.c:
	  gtk: Add touch event support
	  Add a handler for touch events to gtkbasewidget.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-02-02 15:46:57 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

	* docs/gst_plugins_cache.json:
	* gst/debugutils/gstnavigationtest.c:
	* gst/debugutils/gstnavigationtest.h:
	  navigationtest: Display touchscreen events, log all events
	  Represents touchscreen events as a trail of black squares, one for each
	  reported position. Additionally, this adds the `display-mouse` and
	  `display-touch` properties to toggle visibility of mouse/touchscreen
	  events, since touchscreens often emulate mouse events, as well as
	  logging for all received navigation events.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-02-14 16:08:23 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

	* ext/gtk/gstgtkbasesink.c:
	* ext/gtk/gtkgstbasewidget.c:
	* ext/qt/gstqtsink.cc:
	* ext/qt/qtitem.cc:
	* ext/qt/qtitem.h:
	* gst/debugutils/gstnavigationtest.c:
	* gst/debugutils/gstnavseek.c:
	* gst/videobox/gstvideobox.c:
	* gst/videocrop/gstvideocrop.c:
	* gst/videofilter/gstvideoflip.c:
	  all: Use new navigation interface and API
	  Use and implement the new navigation interface in all relevant sink elements,
	  and use API functions everywhere instead of directy accessing the event structure.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-03-18 15:20:49 +0100  Stéphane Cerveau <scerveau@collabora.com>

	* gst/wavparse/gstwavparse.c:
	* tests/check/elements/wavparse.c:
	  wavparse: handle query in any parse state
	  In order to create the stream_id, we need to
	  pass the query to the default query handler.
	  If the parse state is different from GST_WAVPARSE_DATA
	  the query should be passed to the default query
	  handler.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1987>

2020-09-13 02:17:59 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/flv/gstflvmux.c:
	  flvmux: Clean up aggregate's control flow
	  This unifies exits to go through a single out label. It mostly
	  simplifies how EOS is handled.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1035>

2022-03-18 16:34:38 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/gst_plugins_cache.json:
	  doc: Update cache after NV12_8L128 addition
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379>

2021-10-19 14:41:04 +0800  Ming Qian <ming.qian@nxp.com>

	* sys/v4l2/ext/videodev2.h:
	* sys/v4l2/gstv4l2object.c:
	  v4l2: Add NV12_8L128 and NV12_10BE_8L128
	  These formats are used by i.MX 8QXP/8QM VPU.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379>

2021-09-09 23:43:33 +1000  Matthew Waters <matthew@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtprtxreceive.c:
	* gst/rtpmanager/gstrtprtxreceive.h:
	* gst/rtpmanager/gstrtprtxsend.c:
	* gst/rtpmanager/gstrtprtxsend.h:
	* tests/check/elements/rtprtx.c:
	  rtpmanager/rtx: implement initial support for reading/writing rid extensions
	  Two RTP Header extensions are very relevant for rtprtxsend/receive.
	  1. "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id": will always be removed
	  2. "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id": will be written
	  instead of the "rtp-stream-id" header extension.
	  Currently it's only a simple replacement of one header extension for
	  another however a future change would only add the relevant extension
	  based on some heuristics (like, video frames only on one of the rtp key
	  frame buffers, or only until the rtx ssrc has been validated by the peer)
	  in order to reduce the required bandwidth.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759>

2021-08-25 16:59:40 +1000  Matthew Waters <matthew@centricular.com>

	* tests/check/elements/rtphdrextsdes.c:
	* tests/check/meson.build:
	  test: add tests for sdes-based RTP header extensions
	  mid, stream id and repaired stream id.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759>

2021-08-25 16:58:16 +1000  Matthew Waters <matthew@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtphdrext-repairedstreamid.c:
	* gst/rtpmanager/gstrtphdrext-repairedstreamid.h:
	* gst/rtpmanager/gstrtphdrext-streamid.c:
	* gst/rtpmanager/gstrtphdrext-streamid.h:
	* gst/rtpmanager/gstrtpmanager.c:
	* gst/rtpmanager/meson.build:
	  rtpmanager: add support for RFC8852 (rid) RTP header extensions
	  Both for regular RID and for adding on a repaired (RTX) etc stream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759>

2021-08-25 16:38:44 +1000  Matthew Waters <matthew@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtphdrext-mid.c:
	* gst/rtpmanager/gstrtphdrext-mid.h:
	* gst/rtpmanager/gstrtpmanager.c:
	* gst/rtpmanager/meson.build:
	  rtpmanager: add support for writing RFC8843 (BUNDLE mid) RTP header extension
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1759>

2022-03-18 19:33:00 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/videocrop/gstvideocrop-private.h:
	* gst/videocrop/gstvideocrop.c:
	* gst/videocrop/gstvideocrop.h:
	  videocrop: Add support for v210
	  Like UYVY and similar formats this is rounding down to the start of the
	  previous macro-pixel to not mix up the different components.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1988>

2022-03-18 19:06:05 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/videocrop/gstvideocrop.c:
	  videocrop: Use GST_ROUND_DOWN_2 instead of re-defining a local version
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1988>

2022-03-18 19:03:57 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/videocrop/gstvideocrop.c:
	* gst/videocrop/gstvideocrop.h:
	  videocrop: Rename PACKED_COMPLEX to PACKED_YVYU
	  It's not handling any kind of complex packed format, only formats that
	  are like YVYU.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1988>

2022-03-18 13:42:27 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	  meson: Bump all meson requirements to 0.60
	  Lots of new warnings ever since
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977>

2022-03-15 15:44:17 +0900  Sangchul Lee <sc11.lee@samsung.com>

	* gst/rtpmanager/rtpjitterbuffer.c:
	  rtpjitterbuffer: Fix invalid memory access in rtp_jitter_buffer_pop()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1973>

2022-03-14 16:19:33 +0800  Hou Qi <qi.hou@nxp.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: set frame duration according to framerate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1953>

2022-03-15 13:49:09 +0000  Tim-Philipp Müller <tim@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtsp/gstrtspsrc.c:
	* gst/rtsp/gstrtspsrc.h:
	  rtspsrc: proxy new "add-reference-timestamp-meta" property from rtpjitterbuffer
	  When syncing to an RFC7273 clock this will add the original
	  reconstructed reference clock timestamp to buffers in form
	  of a GstReferenceTimestampMeta.
	  This is useful when we want to process or analyse data based
	  on the original timestamps untainted by any local adjustments,
	  for example reconstruct AES67 audio streams with sample accuracy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1964>

2022-03-15 11:56:28 +0000  Tim-Philipp Müller <tim@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpbin.h:
	  rtpbin: proxy new "add-reference-timestamp-meta" property from rtpjitterbuffer
	  When syncing to an RFC7273 clock this will add the original
	  reconstructed reference clock timestamp to buffers in form
	  of a GstReferenceTimestampMeta.
	  This is useful when we want to process or analyse data based
	  on the original timestamps untainted by any local adjustments,
	  for example reconstruct AES67 audio streams with sample accuracy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1964>

2022-03-15 01:35:17 +0000  Tim-Philipp Müller <tim@centricular.com>

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtpjitterbuffer.c:
	* gst/rtpmanager/rtpjitterbuffer.c:
	* gst/rtpmanager/rtpjitterbuffer.h:
	  rtpjitterbuffer: add "add-reference-timestamp-meta" property
	  When syncing to an RFC7273 clock this will add the original
	  reconstructed reference clock timestamp to buffers in form
	  of a GstReferenceTimestampMeta.
	  This is useful when we want to process or analyse data based
	  on the original timestamps untainted by any local adjustments,
	  for example reconstruct AES67 audio streams with sample accuracy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1964>

2022-03-15 09:49:59 +0800  Hou Qi <qi.hou@nxp.com>

	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec: safely retrun from video_dec_loop with stream unlock
	  This is to avoid decoder hang when doing trick play between
	  different resolutions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1960>

2022-03-14 13:59:37 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtpmanager/rtpjitterbuffer.c:
	  rtpjitterbuffer: Improve accuracy of RFC7273 clock time calculations
	  Previously the result of the calculations included inaccuracies caused
	  by the NTP clock estimation, which caused the timestamps to jitter
	  +/- 1/clockrate.
	  By reorganizing the calculations it is possible to get rid of this
	  inaccuracy and calculate deterministic and exact packet timestamps based
	  on the actual NTP clock as long as the estimation is not off by more
	  than 2**31 clockrate units.
	  The only remaining inaccuracy that is introduced now is caused by the
	  conversion from the NTP clock to the pipeline clock.
	  Also split up debug output, demote many messages to the trace debug
	  level and output more intermediate results.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1955>

2022-03-14 12:29:04 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/rtpmanager/rtpsession.c:
	* gst/rtpmanager/rtptwcc.c:
	  twcc: Add some logging to debug TWCC feedback
	  This should allow people to debug when TWCC feedback is not enabled
	  because they haven't set the extmap in the caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1952>

2022-03-14 13:45:36 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/rtpmanager/gstrtpsession.c:
	  twcc: Note that packet-loss-pct can count reordering as loss
	  This is difficult to encounter in ordinary networks, but is
	  encountered when using tc-netem to add random delays to packets, and
	  also when your UDP stream is bonded over multiple links with varying
	  characteristics.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1952>

2017-08-11 16:33:23 +0200  Havard Graff <havard.graff@gmail.com>

	* gst/rtpmanager/gstrtprtxsend.c:
	* tests/check/elements/rtprtx.c:
	  rtprtxsend: don't require clock-rate in caps
	  For multiplexing, the rtpstreams you are multiplexing might not use
	  the same clock-rate.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1881>

2016-11-04 11:47:20 +0100  Havard Graff <havard.graff@gmail.com>

	* gst/rtpmanager/gstrtprtxsend.c:
	* tests/check/elements/rtprtx.c:
	  rtprtxsend: don't start the task unless we are doing rtx
	  The rtxsend element can do pass-through when not enabled (no pt-map set)
	  and in those cases there is no point in starting an additional task
	  that does absolutely nothing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1880>

2016-06-27 14:28:06 +0200  Havard Graff <havard.graff@gmail.com>

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtprtxreceive.c:
	* gst/rtpmanager/gstrtprtxreceive.h:
	  rtprtxreceive: add ssrc-map property
	  Mirroring the rtxsend, this allows the application to "pre-map" the
	  retransmission-ssrcs to the "real" ssrc, if this information is known.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1878>

2019-09-08 15:54:08 +0200  Carlos Rafael Giani <crg7475@mailbox.org>

	* ext/mpg123/gstmpg123audiodec.c:
	* ext/mpg123/gstmpg123audiodec.h:
	* gst/audioparsers/gstmpegaudioparse.c:
	* tests/check/elements/mpg123audiodec.c:
	* tests/files/sine-1009ms-1ch-32000hz-gapless-with-lame-tag.mp3:
	  mpg123: Add gapless playback support
	  Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1028>

2019-09-07 19:15:42 +0200  Carlos Rafael Giani <crg7475@mailbox.org>

	* gst/audioparsers/gstmpegaudioparse.c:
	* gst/audioparsers/gstmpegaudioparse.h:
	* tests/check/elements/mpegaudioparse.c:
	  mpegaudioparse: Support gapless playback
	  Gapless playback is handled by adjusting buffer timestamps & durations
	  and by adding GstAudioClippingMeta.
	  Support for "Frankenstein" streams (= poorly stitched together streams)
	  is also added, so that gapless playback support doesn't prevent those
	  from being properly played.
	  Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1028>

2022-03-11 10:32:42 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/deinterlace/tvtime/scalerbob.c:
	  deinterlace: scalerbob: Reduce latency to 0
	  We only need the current field, just like `linear`.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1926>

2022-03-12 17:13:48 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/deinterlace/yadif.c:
	  yadif: Fix CHECK macro for YUY2 format
	  Used to make comb artifacts for videotestsrc pattern=ball for YUY2
	  format only (not AYUV).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1938>

2022-03-10 17:03:45 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>

	* docs/gst_plugins_cache.json:
	  doc: New cropping parameters added to v4l2src
	  v4l2src add several new parameters to control cropping of
	  the captured video stream.  Update the doc cache to reflect
	  this.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1089>

2021-10-15 18:33:50 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>

	* tests/examples/v4l2/meson.build:
	* tests/examples/v4l2/v4l2src-crop.c:
	  examples: v4l2: Add v4l2src crop example
	  Add a simple utility to illustrate how to set input cropping on v4l2src.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1089>

2021-10-14 17:22:19 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>

	* sys/v4l2/gstv4l2src.c:
	* sys/v4l2/gstv4l2src.h:
	  v4l2src: Add support for cropping at capture source input
	  Add properties to control input cropping in the V4L2 device.
	  The input cropping is applied before composing the result to the
	  capture buffer.  By default the capture size will be set to the same
	  size as the crop region, but it can be scaled to a different output
	  frame size if supported by the V4L2 device.
	  If scaling is not supported, the cropped image will
	  be composed as is into the top-left corner of the capture buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1089>

2021-10-13 17:33:12 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>

	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	  v4l2object: Add function to get crop regions from device
	  Get the current crop bounding region from the V4L2 device so
	  that it can be provided to applications and used to validate
	  crop settings. Also make the default crop region available so
	  that it can be used to reset the crop when appropriate.
	  Uses the selection API when available with fallback to the crop
	  API for older kernels.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1089>

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

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

2022-03-10 18:43:45 +0900  Sangchul Lee <sc11.lee@samsung.com>

	* gst/rtp/gstrtpvp8depay.c:
	  rtpvp8depay: Fix crash when making 'GstRTPPacketLost' custom event
	  This patch fixes a seg.fault in gst_structure_new() with warnings as below.
	  GLib-GObject-WARNING **:
	  ../gobject/gtype.c:4330: type id '0' is invalid
	  GLib-GObject-WARNING **:
	  can't peek value table for type '<invalid>' which is not currently referenced
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1918>

2022-03-04 18:58:56 +0100  Tomasz Andrzejak <andreiltd@gmail.com>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: allow FEC elements with Always pads
	  This patch enable picking up FEC decoder or enocder that have
	  static repair packets pad.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1860>

2022-03-09 12:17:11 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/soup/gstsouploader.c:
	  soup: Load the runtime library, not the development library
	  libsoup-2.4.so / libsoup-3.0.so are symlinks installed by development
	  packages, they are not available at runtime.
	  Also eliminate G_MODULE_SUFFIX since it's not useful for us, and is
	  actually incorrect on macOS anyway.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1071
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1899>

2019-07-10 17:21:01 +0200  Edward Hervey <edward@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Propagate stick events downstream when creating pads
	  If upstream provided a stream collection event before any pads were created,
	  make sure it's propagated downstream when pads are created.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1891>

2021-02-01 16:07:08 +0100  Havard Graff <havard.graff@gmail.com>

	* gst/rtpmanager/gstrtprtxsend.c:
	  rtprtxsend: if no rtx is present, don't expose a rtx-ssrc in caps
	  The point here is that rtpsession will create a new rtpsource when
	  the field "rtx-ssrc" is present, and when not doing rtx, that means
	  a random ssrc will create a new rtpsource that will be included in RTCP
	  messages for the current session.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1882>

2016-06-22 14:48:59 +0200  Havard Graff <havard.graff@gmail.com>

	* gst/rtpmanager/gstrtprtxsend.c:
	  rtprtxsend: don't process or warn if no map is set
	  This makes it more gentle when doing "pass-through"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1879>

2016-08-23 19:06:49 +0200  Mikhail Fludkov <misha@pexip.com>

	* gst/rtpmanager/gstrtprtxreceive.c:
	* tests/check/elements/rtprtx.c:
	  rtprtxreceive: fix crash when RTX payload has zero length
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1875>

2016-06-26 22:25:46 +0200  Havard Graff <havard.graff@gmail.com>

	* gst/rtpmanager/gstrtprtxreceive.c:
	  rtprtxreceive: allow passthrough and non-rtp buffers
	  To avoid mapping rtp buffers when RTX is not in use, and to not
	  do a full error on receiving a non-rtp buffer, since you have no control
	  of what a rouge sender might send you.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1874>

2021-02-08 21:40:19 +0100  Havard Graff <havard@pexip.com>

	* gst/rtpmanager/gstrtprtxreceive.c:
	* gst/rtpmanager/gstrtprtxreceive.h:
	* gst/rtpmanager/gstrtprtxsend.c:
	* gst/rtpmanager/gstrtprtxsend.h:
	  rtprtx: don't access type-system per buffer
	  When doing only a single stream of audio/video this hardly matters,
	  but when doing many at the same time, the fact that you have to get
	  a hold of the glib global type-system lock every time you process a buffer,
	  means that there is a limit to how many streams you can process in
	  parallel.
	  Luckily the fix is very simple, by doing a cast rather than a full
	  type-check.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1873>

2020-02-10 14:37:30 +0100  Havard Graff <havard@pexip.com>

	* tests/check/elements/rtprtx.c:
	  rtprtx: signed/unsigned and style fixes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1872>

2022-03-03 13:47:05 +0800  Hou Qi <qi.hou@nxp.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	  v4l2bufferpool: Fix race condition between qbuf and pool streamoff
	  There is a chance that pool->buffers[index] sets BUFFER_STATE_QUEUED, but
	  it has not been queued yet which makes pool->buffers[index] still NULL.
	  At this time, if pool_streamff release all buffers with BUFFER_STATE_QUEUED
	  state regardless of whether the buffer is NULL or not, it will cause segfault.
	  To fix this, also check buffer when streamoff release buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1842>

2022-03-03 14:22:10 +0800  Hou Qi <qi.hou@nxp.com>

	* gst/flv/gstflvmux.c:
	  flvmux: Add protection when unref GstFlvMuxPad
	  This is to avoid gst_object_unref: assertion 'object != NULL' failed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1843>

2022-03-04 14:57:30 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/gst_plugins_cache.json:
	  doc: AV1 demuxers now expose their alignment
	  Update the chache accordingly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837>

2022-03-02 16:31:24 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/matroska/matroska-demux.c:
	* gst/matroska/matroska-mux.c:
	  matroska: Fix AV1 alignment to TU
	  Matroska stores AV1 in temporal unit, so that all OBU sharing the same
	  timestamp are put together. This was previously just assumed, which isn't
	  safe now that we have more alignments.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837>

2022-03-02 16:24:38 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/isomp4/gstqtmuxmap.c:
	* gst/isomp4/qtdemux.c:
	  isomp4: Fix AV1 default alignment
	  ISOMP4 store TU (temporal units) worth of AV1. Expose this in the
	  caps to reduce overhead in the parser, and in the muxer to avoid
	  storing frames split in the wrong way.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1837>

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

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

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

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

2022-03-04 15:36:20 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/deinterlace/gstdeinterlace.c:
	  deinterlace: Prevent race between _set_method and latency query
	  It's possible that the method is being manipulated while downstream
	  queries our latency, leading to crashes.
	  Prevent that from happening.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1854>

2022-03-03 23:04:36 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/soup/gstsouploader.c:
	  soup: Fix static build with MSVC
	  ../ext/soup/gstsouploader.c(818): error C4098: '_soup_session_send_async': 'void' function returning a value
	  It's technically a false warning, but that's how MSVC works, so fix
	  it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>

2022-03-03 00:37:57 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/soup/meson.build:
	  soup: Fix pkgconfig generation and documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>

2022-03-02 23:22:39 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/soup/meson.build:
	  soup: Fix static build when default_library=both
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1007
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>

2022-03-02 23:11:09 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/soup/meson.build:
	  soup: Don't error out in static build unless option is enabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>

2022-02-27 15:45:01 +0100  Philippe Normand <philn@igalia.com>

	* ext/soup/gstsouploader.c:
	  soup: Lookup libsoup dylib files on Apple platforms
	  Fixes #1007
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1805>

2021-10-15 15:32:22 +0900  Damian Hobson-Garcia <dhobsong@igel.co.jp>

	* sys/v4l2/gstv4l2object.c:
	  v4l2src: Reset the compose window to the default after setting format
	  When the size of V4L2 capture or output is changes with VIDIOC_S_FMT,
	  the device is only required to update the compisition window to fit
	  inside the new frame size.  This can result in captured data only being
	  updated on a portion of the frame after a resize.
	  Update the composition window to the default value determined by the
	  V4L2 device driver whenever the format is changed to make sure that
	  all image data is composed to its full size.
	  Fixes #765
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1806>

2022-03-01 20:59:30 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-mux.c:
	  matroska-mux: Handle pixel-aspect-ratio caps field correctly when checking caps equality
	  Not having this field is equivalent with it being 1/1 so consider
	  it like that. The generic caps functions are not aware of these
	  semantics and would consider the caps different, causing a negotiation
	  failure when caps are changing from caps with to caps without or the
	  other way around.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1826>

2022-03-01 20:56:43 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/matroska/matroska-mux.c:
	  matroska-mux: Handle multiview-mode/flags caps fields correctly when checking caps equality
	  Not having these fields is equivalent with them being mono/0 so consider
	  them like that. The generic caps functions are not aware of these
	  semantics and would consider the caps different, causing a negotiation
	  failure when caps are changing from caps with to caps without or the
	  other way around.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1826>

2022-02-27 03:17:26 +1100  Jan Schmidt <jan@centricular.com>

	* gst/matroska/matroska-mux.c:
	  matroska-mux: If a stream has a TITLE tag, use it for the name.
	  If a title tag is pushed to a pad, store it as the Track name.
	  This means that players will use it as the human readable
	  description of the track, instead of something generic like 'Video'
	  or 'Subtitle'
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1798>

2022-02-27 02:39:28 +1100  Jan Schmidt <jan@centricular.com>

	* gst/matroska/matroska-demux.c:
	* gst/matroska/matroska-demux.h:
	  matroskademux: Don't parse Tracks element twice
	  If the tracks element was parsed from the SeekEntry, don't
	  parse it a second time and recreate tracks, as this
	  loses any tags that were read using the seek table.
	  If a genuinely new Tracks element is found, do read that
	  as it is needed for MSE support.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1798>

2022-02-23 11:10:11 +0100  Sebastian Fricke <sebastian.fricke@collabora.com>

	* README.md:
	  Maintain build instructions at a single location
	  Do not maintain similar build instructions within each gst-plugins-*
	  subproject and the subproject/gstreamer subproject. Use the build
	  instructions from the mono-repository and link to them via hyperlink.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1743>

2022-03-01 00:12:56 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/deinterlace/x86/yadif.asm:
	  yadif.asm: Fix improper usage of LOAD macro
	  LOAD macro relies in m7 being zero for interleaving purposes. Using LOAD
	  on the m7 register makes it interleave with its new content instead of
	  with 0.
	  The effect of this bug was bobbing on some static lines that appeared
	  over fast-moving content.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1816>

2022-03-01 00:12:33 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/deinterlace/x86/yadif.asm:
	  yadif.asm: Typo fixes in comments
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1816>

2022-02-28 20:39:11 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/deinterlace/yadif.c:
	  yadif: Fix bug in C implementation of CHECK
	  It was different compared to the corresponding part in both ffmpeg and
	  the asm implementation. Fixing this makes videotestsrc pattern=spokes
	  not jump at all when not using the asm optimisations.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1816>

2021-10-19 16:10:06 +0800  Ming Qian <ming.qian@nxp.com>

	* sys/v4l2/gstv4l2videodec.c:
	* sys/v4l2/gstv4l2videodec.h:
	  v4l2videodec : enable resolution change
	  The dynamic resolution changes when
	  the sequence starts when the decoder detects a coded frame with one or
	  more of the following parameters different from those previously
	  established (and reflected by corresponding queries):
	  1.coded resolution (OUTPUT width and height),
	  2.visible resolution (selection rectangles),
	  3.the minimum number of buffers needed for decoding,
	  4.bit-depth of the bitstream has been changed.
	  Although gstreamer parser has parsed the stream resolution.
	  but there are some case that we need to handle resolution change event.
	  1. bit-depth is different from the negotiated format.
	  2. the capture buffer count can meet the demand
	  3. there are some hardware limitations that the decoded resolution may
	  be larger than the display size. For example, the stream size is
	  1920x1080, but some vpu may decode it to 1920x1088.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1381>

2021-10-26 10:03:42 +0800  Ming Qian <ming.qian@nxp.com>

	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	* sys/v4l2/gstv4l2videodec.c:
	  v4l2videodec : refactor the setup process of capture
	  v4l2videodec do some refactoring so that it can support
	  dynamic resolution change event.
	  1.wrap the setup process of capture as a function,
	  as decoder need setup the capture again when
	  dynamic resolution change event is received.
	  2.move the function "remove_padding"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1381>

2022-02-22 11:18:53 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/rtp/gstrtpac3pay.c:
	* gst/rtp/gstrtpamrpay.c:
	* gst/rtp/gstrtpdvpay.c:
	* gst/rtp/gstrtpg723pay.c:
	* gst/rtp/gstrtpg729pay.c:
	* gst/rtp/gstrtpgstpay.c:
	* gst/rtp/gstrtph261pay.c:
	* gst/rtp/gstrtph263pay.c:
	* gst/rtp/gstrtph263ppay.c:
	* gst/rtp/gstrtph264pay.c:
	* gst/rtp/gstrtph265pay.c:
	* gst/rtp/gstrtpj2kpay.c:
	* gst/rtp/gstrtpjpegpay.c:
	* gst/rtp/gstrtpklvpay.c:
	* gst/rtp/gstrtpmp4apay.c:
	* gst/rtp/gstrtpmp4gpay.c:
	* gst/rtp/gstrtpmp4vpay.c:
	* gst/rtp/gstrtpmpapay.c:
	* gst/rtp/gstrtpmpvpay.c:
	* gst/rtp/gstrtpreddec.c:
	* gst/rtp/gstrtpvp8pay.c:
	* gst/rtp/gstrtpvp9pay.c:
	* gst/rtp/gstrtpvrawpay.c:
	* gst/rtp/rtpulpfeccommon.c:
	* tests/check/elements/rtpred.c:
	  rtp: In payloaders map the RTP marker flag to the corresponding buffer flag
	  This allows downstream of a payloader to know the RTP header's marker
	  flag without first having to map the buffer and parse the RTP header.
	  Especially inside RTP header extension implementations this can be
	  useful to decide which packet corresponds to e.g. the last packet of a
	  video frame.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1776>

2021-12-06 12:49:18 -0500  Joseph Donofry <rubberduckie3554@gmail.com>

	* sys/osxaudio/gstosxaudiodeviceprovider.c:
	  osxaudiosrc: Support a device as both input and output
	  osxaudiodeviceprovider now probes devices more than once to determine
	  if the device can function as both an input AND and output device.
	  Previously, if the device provider detected that a device had any output
	  capabilities, it was treated solely as an Audio/Sink.  This causes issues
	  that have both input and output capabilities (for example, USB interfaces
	  for professional audio have both input and output channels).  Such devices
	  are now listed as both an Audio/Sink as well as an Audio/Source.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1385>

2022-02-24 20:28:23 +0530  Sanchayan Maity <sanchayan@asymptotic.io>

	* docs/gst_plugins_cache.json:
	* gst/rtp/gstrtpldacpay.c:
	* gst/rtp/gstrtpldacpay.h:
	  rtp: ldac: Set frame count information in payload
	  The RTP payload seems to be required as it carries the frame count
	  information. Also, gst_rtp_base_payload_allocate_output_buffer had
	  the second argument incorrect.
	  Strangely some devices like Shanling MP4 and Sony XM3 would still
	  work without this while some like the Sony XM4 do not.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1797>

2022-02-21 11:37:26 -0500  Xavier Claessens <xavier.claessens@collabora.com>

	* ext/vpx/meson.build:
	* gst/equalizer/meson.build:
	* gst/isomp4/meson.build:
	  devenv: Add some missing GStreamer specific env variables
	  This should make "meson devenv" closer to what "gst-env.py" sets.
	  - GST_VALIDATE_SCENARIOS_PATH
	  - GST_VALIDATE_APPS_DIR
	  - GST_OMX_CONFIG_DIR
	  - GST_ENCODING_TARGET_PATH
	  - GST_PRESET_PATH
	  - GST_PLUGIN_SCANNER
	  - GST_PTP_HELPER
	  - _GI_OVERRIDES_PATH
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1768>

2022-02-25 12:44:26 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/deinterlace/tvtime/greedyh.c:
	  deinterlace: greedyh: Stop adding 2 to cur_field_idx
	  Just a simplification.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>

2022-02-24 17:36:40 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/deinterlace/tvtime/greedyh.c:
	  deinterlace: greedyh: Use _plane in _packed, fix planar formats
	  This greatly reduces code duplication. It also exposed the cause for
	  planar formats not being properly deinterlaced:
	  The planar path was missing the initial offset adjustment that the
	  packed path did to `L2` and `L2P` in the case of an even field, which
	  caused it to select the wrong weave lines every other field.
	  Add those offsets in `_plane`.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1047
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>

2022-02-25 12:39:31 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/deinterlace/tvtime/greedyh.c:
	  deinterlace: greedyh: Rename _planar_plane to _plane
	  As well as `i` to `plane`.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>

2022-02-25 12:36:17 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/deinterlace/tvtime/greedyh.c:
	  deinterlace: greedyh: Move code from _planar into _planar_plane
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>

2022-02-25 12:30:21 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/deinterlace/tvtime/greedyh.c:
	  deinterlace: greedyh: Move _planar_plane upwards
	  In preparation of refactoring. No functional change.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1790>

2022-02-22 10:13:28 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/rtpmanager/rtpsource.c:
	  rtpsource: fix rtp_source_get_nack_deadlines doc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1775>

2022-02-21 13:27:06 +1100  Matthew Waters <matthew@centricular.com>

	* gst/rtp/gstrtpulpfecenc.c:
	  ulpfecenc: slightly safer dispose impl
	  Technically dispose can be called more than once (even if gstelement is
	  not actually set up to do that) so need to protect against that.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1761>

2022-02-21 13:24:07 +1100  Matthew Waters <matthew@centricular.com>

	* gst/rtp/gstrtpulpfecenc.c:
	  ulpfecenc: fix unmatched free() call
	  One must always match a g_slice_new with a g_slice_free and a g_new with
	  a g_free.  This was not the case for the internal ctx struct.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1761>

2021-11-09 17:37:24 +1100  Matthew Waters <matthew@centricular.com>

	* gst/rtp/gstrtpulpfecenc.c:
	  rtpulpfecenc: add some debug logging
	  Like, what configuration we are using or whether a fec packet is
	  generated.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1761>

2022-02-18 15:23:13 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst/matroska/matroska-demux.c:
	  matroska-demux: Emit a warning when no codec data found
	  It is bad if an mkv file does not have codec data for the ProRes
	  variant, so we should emit a warning. ffmpeg does the same thing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1739>

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

	* docs/gst_plugins_cache.json:
	  doc: Add NV12_16L32S into the cache
	  Autogenerated by CI
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>

2022-01-26 10:06:50 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2transform.c:
	  v4l2transform: Handle caps changes
	  As this element is single threaded, we only need to stop the objects to
	  allow changing the format again. Fixes assertion notably on shutdown and
	  on some other situation where the format may be set twice without
	  actually activating the element.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>

2022-01-26 09:55:09 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  v4l2object: Avoid crash on early failure
	  This happens while an external error lead to an early shutdown.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>

2022-01-25 14:34:32 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2object.c:
	  video4linux2: Add MM21 support
	  This enables mtk-vcodec and MDP driver from mainline Linux kernel.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>

2022-01-25 14:08:47 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2/gstv4l2bufferpool.c:
	* sys/v4l2/gstv4l2object.c:
	* sys/v4l2/gstv4l2object.h:
	  Port plugins to gst_video_format_info_extrapolate_stride()
	  This reduces code duplication and simplify addition of new
	  pixel formats into related plugins.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>

2022-02-02 12:49:29 +0100  Rouven Czerwinski <rouven@czerwinskis.de>

	* sys/v4l2/gstv4l2tuner.c:
	  gstv4l2tuner: return NULL if no norm set
	  If the video4linux device supports norms but has no norm set, norm is
	  returned as an uninitialized variable after the ioctl call, leading to
	  gst_v4l2_tuner_get_norm_by_std_id() returning a random norm from the
	  supported norms. Catch this case and instead return NULL to indicate
	  that no norm is setup.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1625>

2022-01-14 23:42:27 -0600  Tim Mooney <Tim.Mooney@ndsu.edu>

	* sys/v4l2/ext/types-compat.h:
	  v4l2: include <sys/ioccom.h> on Illumos
	  Needed for _IOR/_IORW
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1524>

2022-02-17 17:36:22 +0100  Sebastian Wick <sebastian.wick@redhat.com>

	* gst/matroska/matroska-demux.c:
	  matroska: default prores fourcc apcn
	  If there is no codec private data for prores it should default to Apple
	  ProRes 422 Standard Definition (apcn). Can be tested with
	  strobe_scientist.mkv from
	  https://developers.google.com/media/vp9/hdr-encoding
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1734>

2021-11-16 17:35:25 +0900  Seungha Yang <seungha@centricular.com>

	* gst/isomp4/qtdemux.c:
	  qtdemux: Do not send unnecessary GAP events
	  Each stream may have its own segment timeline
	  (i.g., different segment.start or segment.base)
	  depending on edit-list and composition-to-decode atom.
	  Make sure whether time position of a stream has been actually
	  far behind than that of current target stream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1352>

2021-10-01 20:27:28 +0900  Seungha Yang <seungha@centricular.com>

	* meson.build:
	  meson: Do hard build error for some MSVC warnings
	  Handle various MSVC warnings as errors for development version.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1006>

2021-04-08 12:18:09 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/isomp4/gstqtmux.c:
	  qtmux: Don't post an error message if pushing a sample failed with FLUSHING
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1711>

2022-02-11 21:35:54 +0100  Heiko Becker <heirecka@exherbo.org>

	* ext/lame/meson.build:
	  meson: Don't build lame plugin with -Dlame=disabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1686>

2022-02-11 23:55:57 +0100  Marek Vasut <marex@denx.de>

	* ext/jpeg/gstjpegdec.c:
	  jpegdec: Pull row_stride from GST_VIDEO_FRAME_PLANE_STRIDE()
	  The libjpeg-turbo internal state might not be correctly initialized for
	  the first frame in a stream, pull the frame stride from gstreamer frame
	  metadata instead, which is correct even for the first frame, and which
	  makes this code consistent with the surrounding lines.
	  Fixes: e6d83d8f96 ("jpegdec: Support libjpeg-turbo colorspace conversion")
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1687>

2022-02-11 23:44:24 +0100  Marek Vasut <marex@denx.de>

	* ext/jpeg/gstjpegdec.c:
	  jpegdec: Call gst_jpeg_turbo_parse_ext_fmt_convert() before jpeg_start_decompress()
	  It is imperative that the libjpeg-turbo state is properly initialized
	  before jpeg_start_decompress() is called. Make sure cinfo.out_color_space
	  and cinfo.raw_data_out are set to their final values matching their peer
	  caps before calling jpeg_start_decompress().
	  Fixes: e6d83d8f96 ("jpegdec: Support libjpeg-turbo colorspace conversion")
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1687>

2022-02-11 23:44:20 +0100  Marek Vasut <marex@denx.de>

	* ext/jpeg/gstjpegdec.c:
	  jpegdec: Factor out gst_jpeg_turbo_parse_ext_fmt_convert()
	  Pull out peer caps checking code into gst_jpeg_turbo_parse_ext_fmt_convert().
	  This code is used by libjpeg-turbo extras to determine whether peer is capable
	  of handling buffers into which libjpeg-turbo can directly decode data. This
	  kind of check must be performed before jpeg_start_decompress() is called in
	  gst_jpeg_dec_prepare_decode() as well as in gst_jpeg_dec_negotiate(), hence
	  the common code.
	  This commit does modify the code a little to make it easier to call from both
	  call sites without much duplication, hence the extra `if (*clrspc)` test.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1687>

2022-02-11 23:29:27 +0100  Marek Vasut <marex@denx.de>

	* ext/jpeg/gstjpegdec.c:
	  Revert "jpegdec: only allow conversions from RGB"
	  This reverts commit 2aa2477208c029b0e1b8232d69f4f99a3bf1d473.
	  The commit is completely wrong, libjpeg-turbo is perfectly capable
	  of decoding I420 (YUV) to RGB. The test case provided alongside the
	  aforementioned commit passes without this revert because it decodes
	  image of JCS_YCrCb color space, so the new `if (clrspc == JCS_RGB)`
	  condition is false on that image, and the libjpeg-turbo decoding
	  does not get used. The real bug is hidden by that commit.
	  The real problem is in the call order of gst_jpeg_dec_prepare_decode()
	  and gst_jpeg_dec_negotiate(). The gst_jpeg_dec_prepare_decode() calls
	  jpeg_start_decompress() which sets up internal state of the libjpeg,
	  however, neither cinfo.out_color_space nor cinfo.raw_data_out are
	  set correctly yet. Those two are set up in gst_jpeg_dec_negotiate()
	  which is called a bit later. Therefore, the real fix is the set up
	  cinfo.out_color_space and cinfo.raw_data_out before calling
	  jpeg_start_decompress(). This is however a separate patch.
	  Fixes: 2aa2477208 ("jpegdec: only allow conversions from RGB")
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1687>

2022-02-01 14:28:24 +0100  Bastien Nocera <hadess@hadess.net>

	* ext/gtk/gtkgstglwidget.c:
	  gtk: Fix rotation not being applied when paused
	  The video wouldn't be redrawn immediately when a rotation was applied
	  but the pipeline was paused, as no new buffers were scheduled to be
	  displayed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1618>

2022-02-01 14:26:02 +0100  Bastien Nocera <hadess@hadess.net>

	* ext/gtk/gtkgstbasewidget.c:
	* ext/gtk/gtkgstbasewidget.h:
	  gtk: Add a way to queue redrawing the base GTK widget
	  This will be used to request a redraw of the GTK widget should the
	  display be changed using properties not directly handled by the base GTK
	  widget, but by one of its descendants.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1618>

2022-01-18 17:53:30 +0100  Robert Rosengren <robertr@axis.com>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: Safer ts-offset-smoothing-factor calculation
	  Protect the ts-offset-smoothing-factor calculation from overflow. Output
	  warning and fallback to ts-offset if it is detected.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1409>

2021-11-23 09:03:28 +0100  Robert Rosengren <robertr@axis.com>

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpbin.h:
	  rtpbin: add ts-offset-smoothing-factor property
	  Add property to set the TS offset smoothing factor and set default value
	  to not use it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1409>

2019-02-26 16:39:55 +0100  Danny Smith <dannys@axis.com>

	* gst/rtpmanager/gstrtpbin.c:
	  rtpbin: applied smoothing to jittery sender time-stamps
	  Applying a moving average filter to the timestamp offsets
	  for smoothing jittery and preventing aggressive skew handling.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1409>

2018-05-29 16:24:02 +0200  Danny Smith <dannys@axis.com>

	* docs/gst_plugins_cache.json:
	* gst/rtpmanager/gstrtpbin.c:
	* gst/rtpmanager/gstrtpbin.h:
	  rtpbin: added option for setting min_ts_offset in ntp-sync mode
	  Constantly updating the ts_offset results in audiable glitches
	  when streaming audio using ntp-sync=true. By requiring a minimum
	  offset before updating ts_offset this can be mitigated. Added a
	  parameter which can be used to set min_ts_offset in ntp-sync mode.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1409>

2022-02-04 11:15:47 +0000  Tim-Philipp Müller <tim@centricular.com>

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

=== release 1.20.0 ===

