dwww Home | Show directory contents | Find package

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

Generated by dwww version 1.15 on Sat May 18 13:30:46 CEST 2024.