=== 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 ===

