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:
        * gst-plugins-base.doap:
        * meson.build:
          Release 1.22.0

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

        * po/af.po:
        * po/az.po:
        * po/bg.po:
        * po/ca.po:
        * po/cs.po:
        * po/da.po:
        * po/de.po:
        * po/el.po:
        * po/en_GB.po:
        * po/eo.po:
        * po/es.po:
        * po/eu.po:
        * po/fi.po:
        * po/fr.po:
        * po/fur.po:
        * po/gl.po:
        * po/hr.po:
        * po/hu.po:
        * po/id.po:
        * po/it.po:
        * po/ja.po:
        * po/ka.po:
        * po/lt.po:
        * po/lv.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:
          gst-plugins-base: update translations
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773>

2023-01-22 00:52:56 +0100  Ruben Gonzalez <rgonzalez@fluendo.com>

        * ext/gl/gstglvideomixer.c:
          glvideomixer: Fixing error with mouse navigation events when no pixel-aspect-ratio
          Handling mouse navigation events in glvideomixer element, if no
          pixel-aspect-ratio info in the caps, an assertion error is produced
          inside gst_util_fraction_multiply because default denominator is zero.
          Error fixed:
          ```
          (gst-launch-1.0:102654): GStreamer-CRITICAL **: 00:47:51.598: gst_util_fraction_multiply: assertion 'b_d != 0' failed
          ```
          Simple pipeline to reproduce the issue:
          ```
          gst-launch-1.0 -v glvideomixer name=mix ! glimagesinkelement  gltestsrc  ! mix.sink_0
          ```
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3766>

2023-01-20 09:59:06 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
        * gst/playback/gstparsebin.c:
        * gst/playback/gstplaybin3.c:
        * gst/playback/gsturidecodebin3.c:
        * gst/playback/gsturisourcebin.c:
          playback: New playback elements are no longer experimental
          The API is not expected to change and it has been used extensively since 1.18.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3761>

2023-01-19 16:35:08 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Remove failing stream from selection
          If no decoder is present for a given stream, remove it from the requested
          selection.
          Fixes #1581 and #1662
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3754>

2023-01-19 16:27:57 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3-parse.c:
          decodebin3: Don't intercept queries if no parsebin present
          If we don't use a parsebin, we forward the queries as-is from upstream. There is
          no reconfiguration possible within identity.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3754>

2023-01-19 16:25:51 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
        * gst/playback/gsturisourcebin.c:
          decodebin3: Don't insert parsebin if input is already parsed
          This is a temporary workaround until we find a generic solution to indicate that
          a stream has already been "parsed".
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3754>

2023-01-09 11:36:38 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

        * tools/gst-play.c:
          gst-play: add --no-position
          It can be useful to reduce or remove the clutter in logs due to those
          queries when debugging.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3698>

2023-01-18 16:39:03 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/gl/gstglupload.c:
          gleglimage: Fix GL_OES_EGL_image_external name in debug trace
          There is a debug log when this extension is missing, but it was
          reporting the wrong extension name, which was confusing.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3748>

2023-01-16 11:43:37 +0100  Michiel Konstapel <github@konstapel.nl>

        * ext/gl/gstglvideomixer.c:
          glvideomixer: don't clear pad->geometry_change when setting an identical value
          Closes #1715
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3733>

2023-01-14 16:16:49 +0000  Tim-Philipp Müller <tim@centricular.com>

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: clear subitem if suburi is set to NULL
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1649
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3730>

2023-01-16 15:55:56 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

        * gst-libs/gst/gl/gstglcontext.c:
          gl: Fix crash in cocoa due to race in gst_gl_context_activate()
          We create a new context in `gst_gl_context_create_thread()` and then
          activate it on the current thread. Thereafter we assume that the
          current thread continues to be the active thread for that context and
          call `gst_gl_context_fill_info()` which asserts that the current
          thread is the active thread.
          However, if at the same time a different thread calls
          `send_message_async()`, it will call into
          `gst_gl_window_cocoa_send_message_async()` which will schedule the
          message to be invoked using GCD. That anonymous function will also
          call `gst_gl_context_activate()`, which creates a race, which can lead
          to:
          ```
          gst_gl_context_fill_info: assertion 'context->priv->active_thread == g_thread_self ()' failed
          ```
          Fix it by using `gst_gl_context_thread_add()` to invoke `fill_info()`
          on the context.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3732>

2023-01-14 16:16:39 +0530  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/gl/cocoa/gstglcaopengllayer.h:
        * gst-libs/gst/gl/cocoa/gstglcaopengllayer.m:
        * gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
          gl/cocoa: Store a weak reference to the `GstGLWindow` instead of the `GstGLContext`
          We can't rely on the `GstGLContext` to stay alive and need to keep track
          of it. For that we keep track of the `GstGLWindow` in a weak reference
          to avoid a reference cycle, and get the corresponding `GstGLContext`
          whenever needed.
          With contributions from Nirbheek Chauhan.
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1697
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3729>

=== release 1.21.90 ===

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

        * NEWS:
        * RELEASE:
        * gst-plugins-base.doap:
        * meson.build:
          Release 1.21.90

2023-01-13 16:39:51 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Cleanup on failure
          This ensures there is a source present/valid *ONLY* in PAUSED and above.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3720>

2023-01-13 16:37:03 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Unset locked state
          Some elements still had it in failure cases
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3720>

2023-01-13 16:34:45 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: Handle state synchronization failures
          Properly reset and remove the failing urisourcebin if we failed bringing them up
          to the same state as ourselves.
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1708
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3720>

2023-01-12 14:39:20 -0300  Thibault Saunier <tsaunier@igalia.com>

        * gst-libs/gst/gl/gstglbasefilter.c:
          glbasefilter: Copy metas when they only contain they "video" tag
          Same logic as in `GstVideoFilter`
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3716>

2023-01-11 17:30:09 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Fix global group-id handling
          The goal of the "global" group-id is to fix new inputs that do not come from the
          same "source" as others. In order to ensure all "current" streams have the same
          group-id we distribute the first valid group-id to all streams.
          This commit fixes two issues with that:
          * When inputs are unlinked they weren't always properly resetted (it would only
          work if parsebin is used, which is no longer the default in
          uridecodebin3/playbin3).
          * When computing the global group-id, take into account unset
          group-id (i.e. GST_GROUP_ID_INVALID).
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1698
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3712>

2023-01-11 15:41:03 +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/lt.po:
        * po/lv.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:
          gst-plugins-base: 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-10 11:19:12 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

        * gst/playback/gstdecodebin3.c:
          decodebin3: ensure recalculate_group_id() is called with INPUT lock
          This function uses main_input and current_group_id which are protected
          by the input lock.
          Some calls were already safe but not all.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3702>

2022-12-21 15:35:21 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: fix stream leak
          GstSourcePad owns the GstStream but was not unreffing it when being
          disposed.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3617>

2022-12-21 10:44:40 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

        * gst/playback/gstdecodebin3.c:
          decodebin3: fix dead lock when removing pad
          gst_element_remove_pad() is triggering a call to
          gst_decodebin3_input_pad_unlink() which needs the input lock as well,
          resulting in a dead lock.
          Fix #1667
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3614>

2023-01-11 12:17:13 +0200  Sebastian Dröge <sebastian@centricular.com>

        * tools/gst-device-monitor.c:
        * tools/gst-discoverer.c:
        * tools/gst-play.c:
          tools: Use `gst_macos_main()` on macOS
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1673
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3709>

2023-01-10 13:06:37 +0000  Tim-Philipp Müller <tim@centricular.com>

        * tests/interactive/test-effect-switch.c:
          tests: interactive: test-effect-switch: use autovideosink
          Also works on Windows.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3703>

2023-01-09 01:24:57 +0000  Tim-Philipp Müller <tim@centricular.com>

        * tools/gst-play.c:
          gst-play: fix command line option string formatting
          Add missing space to translated string.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3696>

2023-01-04 21:37:55 +0100  Mathieu Duponchelle <mathieu@centricular.com>

        * docs/meson.build:
          docs: explicitly declare gir build dependencies
          As the path to the gir file is passed to hotdoc.generate_doc() and
          not the build target itself, meson doesn't know about the dependency.
          In turn, as the CI doesn't build everything before building the
          documentation target, some gir files might not exist, for instance
          in the case of gst-rtsp-server, causing the output documentation to
          be empty.
          The error occurred silently because hotdoc accepts wildcards for
          *-sources arguments, thus it won't warn about a missing gir file as
          it is legitimate for glob matching to resolve to nothing.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3686>

2023-01-06 18:09:02 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst/typefind/gsttypefindfunctions.c:
          typefindfunctions: Add missing length check to XML typefinder
          Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54811
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3690>

2023-01-06 14:37:31 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst/typefind/gsttypefindfunctions.c:
          typefindfunctions: Reduce XML typefinder minimum data size from 64 to 32 bytes
          64 bytes makes the typefinder fail on very small XML documents on which
          it succeeded previously.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3690>

2023-01-05 17:59:41 +0200  Sebastian Dröge <sebastian@centricular.com>

        * ext/opus/gstopusdec.c:
          opusdec: Try harder to negotiate the upstream channels/rate preferences
          It might be possible to fulfill those but not with the first caps
          structure. Instead of just fixating the first caps structure, check if
          the preference can be fulfilled by any of the structures as the first
          step.
          Without this the following pipeline negotiates to mono after the
          decoder because opusenc only has a single channel in its first caps
          structure.
          gst-launch-1.0 audiotestsrc ! audio/x-raw,channels=2 ! opusenc \
          ! queue ! opusdec ! queue ! opusenc ! fakesink
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3689>

2023-01-05 17:35:02 +0200  Sebastian Dröge <sebastian@centricular.com>

        * ext/opus/gstopusenc.c:
          Revert "opusenc: Reverse channel order in template caps"
          This reverts commit cdf411e82d7e437e5de138492b6e75e5513686ee. It causes
          pipelines to unnecessarily negotiate to 8 channels.
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1688
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3689>

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

        * gst-libs/gst/audio/gstaudioutilsprivate.c:
          audioenc/dec: Avoid adding temporary structure
          As a minor optimisation
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3673>

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

        * gst-libs/gst/audio/gstaudioutilsprivate.c:
          audioenc/dec: Preserve downstream caps preference in get caps
          This should fix pipelines such as this one to work as expected
          ... ! opusenc ! capsfilter caps='audio/x-opus,
          channels=1; audio/x-opus, channels=2' ! ...
          The expectation is that the encoder will propose the first structure
          before the second one to the source.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3673>

2022-12-23 16:15:49 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst/typefind/gsttypefindfunctions.c:
          typefindfunctions: Check for the SVG namespace URL in addition to `<svg` and the doctype
          Finding the SVG namespace URL gives a clear indication that this is
          actually an SVG file while the `<svg>` tag only gives a likely
          indication as it's rather short.
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1540
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3631>

2022-12-23 17:25:06 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst/typefind/gsttypefindfunctions.c:
          typefindfunctions: Make XML typefinder more strict
          If a XMLDec is found, check also for its end. Similarly, check for the
          end of the XML tag we're looking for and make sure that the following
          characters are valid.
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1536
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3632>

2022-12-30 08:44:35 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Fix parsebin handling
          The goal of !3601 was to make sure we don't end up with non-streams-aware
          adaptive demuxers. Since we know that parsebin is streams-aware, just remember
          that and handle them that way.
          Fixes issues with some scenarios where parsebin might add pads *before* the
          collection is posted on the bus
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1675
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3658>

2022-12-29 16:02:38 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: Fix handling of "expected" pads
          The number of expected pads was:
          * Defaulting to 1
          * Or being overriden by GST_MESSAGE_STREAMS_SELECTED
          This fails if upstream isn't a selectable source and has multiple streams, and
          would therefore cause failures with multi-stream gapless playback
          Fixes #1672
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3658>

2022-12-29 16:01:07 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: Avoid repeatedly calling the blocking probe
          When skipping an event, we want to unref it and say we handled it. This avoids
          being repeatedly called for the same (sticky) events.
          The events will be properly propagated once the pad is linked.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3658>

2022-12-29 15:58:24 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: Handle multiple pending pad block probes
          It is quite possible to have the blocking probe called from different streaming
          threads when all expected pads are present.
          * Notify all waiters by using g_cond_broadcast instead of g_cond_signal
          * Properly remove the probe after waiting
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3658>

2022-12-29 11:02:10 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/gl/gstglcontext.c:
          gl: Mark `gst_gl_context_new_wrapped()` return value as `nullable`
          If a GL context is requested for which no API support is compiled in
          then `NULL` is returned.
          Also remove a useless `NULL` check: `g_object_new()` can't possibly
          return `NULL`, ever.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3656>

2022-12-24 23:41:52 -0500  F. Duncanh <fduncanh@gmail.com>

        * gst-libs/gst/gl/meson.build:
          plugins-base/tests/check/meson.build: add omitted Wayland dependence
          SUSE places Wayland include files in /usr/include/wayland, and needs
          a Cflag added to wayland_client_deps by pkg-config, which is added to
          gl_winsys_deps: add this as a dependency in gstgl_dep to fix issue.
          Fixes #1607
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3638>

2022-12-29 03:52:42 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

        * gst-libs/gst/gl/meson.build:
          meson: Add gstreamer-gl-1.0 pkgconfig vars to internal dependency
          So we can fetch gl_winsys, gl_platforms, etc directly using
          gst_gl_dep.get_variable() when building gstreamer as a subproject, or
          when building gst-plugins-rs's gtk4 plugin.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3654>

2022-12-13 08:58:43 -0500  Xavier Claessens <xavier.claessens@collabora.com>

        * meson.build:
          Fix API visibility macros
          This copies the logic from GLib discussed there:
          https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2936
          Beside being simpler, it also fix all public symbols being annotated
          with dllexport when doing a static build, as discovered there:
          https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3540#note_1678335
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3567>

2022-12-19 11:49:32 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Modify check for streams-aware adaptive demuxers
          Using the "GstBin" flags to check if an adaptive demuxer is streams-aware isn't
          a good idea since it prevents using elements which aren't bins.
          Instead we see if a collection was posted by the demuxer by the time a pad is
          added.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3601>

2022-12-19 15:22:15 +0100  Philipp Zabel <p.zabel@pengutronix.de>

        * gst/videoconvertscale/gstvideoconvertscale.c:
          videoconvertscale: fix valid_tags NULL-terminated array of strings
          The valid_tags array of strings must be NULL-terminated,
          as it is passed to the g_strv_contains() function.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3603>

2022-12-19 14:24:06 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: fix typo in doc
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3602>

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

        * gst-libs/gst/video/navigation.h:
          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-11-30 04:04:09 +0000  Matthew Waters <matthew@centricular.com>

        * gst-libs/gst/gl/gstglupload.c:
          glupload: add CAN_ACCEPT_RAW to all dma-buf uploaders
          Fixes cases where a dma-buf would be uploaded using direct-dma-buf
          into an external-oes texture (using video/x-raw caps) and then
          attempting to reconfigure the same source.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3486>

2022-06-03 11:40:35 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

        * docs/plugins/gst_plugins_cache.json:
        * ext/gl/gstglvideomixer.c:
          glvideomixer: override sink pad template
          Allow us to pass the GType of its pad and so
          improve the documentation when inspecting glvideomixer.
          Fix #1253
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2527>

2022-12-12 13:43:30 +0000  Philippe Normand <philn@igalia.com>

        * gst-libs/gst/video/video-format.h:
          video-format: Add macro checking for validity of GstVideoFormatInfo
          Mostly to maintain consistency with the GST_AUDIO_FORMAT_INFO_IS_VALID_RAW
          macro.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2800>

2022-07-27 09:39:52 +0100  Philippe Normand <philn@igalia.com>

        * gst-libs/gst/audio/audio-format.c:
        * gst-libs/gst/audio/audio-format.h:
          audio-format: Add macro checking for validity of GstAudioFormatInfo
          `gst_audio_format_info_fill_silence()` not properly checking the validity of its
          input may lead it into an infinite loop.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2800>

2022-12-11 17:36:53 +0000  Tim-Philipp Müller <tim@centricular.com>

        * ext/pango/gsttimeoverlay.c:
          timeoverlay: fix pad leak
          Spotted by Jiri Uncovsky.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1336>

2022-12-07 14:49:05 +0200  Sebastian Dröge <sebastian@centricular.com>

        * ext/pango/gsttextrender.c:
          textrender: Negotiate caps on a GAP event if none were negotiated yet
          Otherwise downstream wouldn't have received a segment event either and
          wouldn't know what to do with the gap event
          And also forward any pending segment event.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3541>

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

        * 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:
        * gst-plugins-base.doap:
        * meson.build:
          Release 1.21.3

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

        * ChangeLog:
        * docs/random/ChangeLog-0.8:
          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-02 15:52:56 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: Protect against NULL uri/suburi
          Fixes #1625
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3511>

2022-11-30 09:26:48 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: Always store pending buffering messages
          Fixes #1586
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3487>

2022-11-30 20:48:28 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

        * ext/opus/gstopusdec.c:
          opusdec: Use proper guint/guint8 type conversion
          Do not cast, that might yield wrong results.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3494>

2022-11-30 20:47:11 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

        * ext/opus/gstopusdec.c:
          opusdec: Negotiate default to 2 channels
          In that place, dec->n_channels can still theoretically be 0. Default to
          2 in that case.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3494>

2022-11-30 20:46:05 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

        * ext/opus/gstopusenc.c:
          opusenc: Reverse channel order in template caps
          We want to make it so that we prefer a higher, not lower, number of
          channels. Otherwise, this pipeline would convert from 2 to 1 channels:
          gst-launch-1.0 audiotestsrc ! audio/x-raw,channels=2 ! opusenc ! queue ! opusdec ! queue ! opusenc ! fakesink
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3494>

2022-11-28 16:05:16 +0000  Philippe Normand <philn@igalia.com>

        * gst-libs/gst/audio/gstaudiodecoder.h:
          audiodecoder: Make data processing errors non-fatal by default
          The previous default value of `max-errors` was too small and would potentially trigger the
          decoder to emit errors too often for most cases.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3478>

2022-11-30 10:27:27 +0000  Philippe Normand <philn@igalia.com>

        * gst-libs/gst/video/gstvideodecoder.h:
          videodecoder: Make data processing errors non-fatal by default
          The previous default value of `max-errors` was too small and would potentially trigger the
          decoder to emit errors too often for most cases.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3478>

2022-11-29 14:02:55 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/sdp/gstsdpmessage.c:
          sdpmessage: Annotate SDP message parameters for `parse_uri()` and `parse_buffer()` correctly
          They are not actually `out` parameters but must be allocated and
          initialized to a valid SDP message by the caller. Just allocating them
          without initialization will cause memory corruptions because the
          functions will try to clear/append to the existing SDP message.
          As such they should be just marked as `transfer none`.
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1605
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3484>

2022-11-28 10:19:20 +0100  Ignacio Casal Quinteiro <qignacio@amazon.com>

        * gst-libs/gst/sdp/gstsdpmessage.c:
          sdp: use g_strdup instead of strdup
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3475>

2022-11-25 10:01:06 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * ext/gl/gstglimagesink.c:
          glimagesink: Fix render rect assertion
          Whenever the surface is resized before the stream is negotiated, we endup
          with an assertion in libgstvideo.
          gst_video_center_rect: assertion 'src->h != 0' failed
          This fixes it, by following the style aready in place, which is to ensure
          surfaces have a minimum size of 1x1.
          Fixes #1139
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3467>

2022-11-26 09:23:59 +0100  Tim-Philipp Müller <tim@centricular.com>

        * gst-libs/gst/audio/gstaudiofilter.c:
        * gst/audioconvert/gstaudioconvert.c:
        * gst/audioresample/gstaudioresample.c:
          audioconvert, audioresample, audiofilter: fix divide by 0 for input buffer without caps
          gst-launch-1.0 audiotestsrc ! udpsink host=127.0.0.1
          gst-launch-1.0 udpsrc ! audioconvert ! autoaudiosink
          would crash with a floating point exception when clipping the input
          buffer owing to a division by zero because no caps event was received.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3469>

2022-08-09 10:26:00 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: propagate about-to-finish for new inputs
          If the pending next urisourcebin is already draining, make sure we propagate it
          when activating it.
          Fixes gapless playback of small entries
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1588
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3457>

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

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: Remove old fixme
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3457>

2022-08-09 16:31:26 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
        * gst/playback/gsturidecodebin3.c:
          (uri)decodebin3: Ensure group-id consistency
          Make sure that group-id of a given play item are made consistent from the
          start (sources) and all the way through the output.
          This ensures that we can reliably detect that we have switched to the next play
          item on the output of decodebin3 (and we can therefore properly free/release it)
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3457>

2022-08-09 10:42:22 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: Fix shutdown procedures in probe
          When shutting down, we want to remove the urisourcebin blocking probes ... but
          we also want to propagate a GST_FLOW_FLUSHING upstream (and not
          GST_FLOW_NOT_LINKED) to make the upstream task gracefully stop instead of
          posting an error message.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3457>

2022-08-05 16:58:08 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Properly reset when going back to READY
          Clear the remaining stream-related fields when going from PAUSED to READY, and
          use when disposing.
          Fixes various issues when re-using decodebin3/playbin3
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3457>

2022-08-05 10:37:23 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Don't output bogus GST_MESSAGE_STREAMS_SELECTED
          When `is_selection_done` is called, it checks that all the requested streams are
          present in the active stream list ...
          ... except there could very well be a (about to be removed) stream from the
          previous selection present.
          Therefore filter the list of streams we add to the message by the streams which
          are actually requested.
          Fixes issues when switching between different stream types (ex: video-only to
          audio-only).
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3457>

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

        * ext/ogg/gstoggdemux.c:
          oggdemux: Don't leak pending seek event
          Make sure any pending seek event is released when going back down to READY.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3443>

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

        * gst/playback/gstparsebin.c:
          parsebin: Don't leak parsepad list on shutdown
          Free it as it is down in other cases
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3443>

2022-11-21 18:47:50 +0200  Sebastian Dröge <sebastian@centricular.com>

        * ext/pango/gsttextrender.c:
        * ext/pango/gsttextrender.h:
          textrender: Don't pass plaintext as pango markup to Pango
          Otherwise e.g. & in the text will cause Pango to complain about invalid
          markup and render the text incorrectly.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3445>

2022-11-21 18:43:54 +0200  Sebastian Dröge <sebastian@centricular.com>

        * ext/pango/gsttextrender.c:
          textrender: Don't blindly forward all events
          Use gst_pad_event_default(), which does the right thing by default.
          Especially it does not forward text/x-plain caps downstream.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3445>

2022-11-16 11:47:54 -0500  Matt Crane <matt@standard.ai>

        * gst-libs/gst/rtp/gstrtpbasedepayload.c:
          rtpbasedepayload: Drop redundant reference timestamp buffer meta in RTP depayloaders
          Currently, when rtspsrc property add-reference-timestamp-metadata=true,
          a downstream rtph264depay element will attach multiple copies of the
          same GstReferenceTimestampMeta to the depayloaded media buffers. This
          can have signficant performance impacts further downstream in a pipeline
          like the following:
          rtspsrc add-reference-timestamp-metadata=true ! rtph264depay ! h264parse ! ... ! rtph264pay ! ...
          For example, if there are 10 packet buffers for a frame of RTP H.264
          video, each of those packet buffers will contain the same reference
          timestamp meta. The rtph264depay element will then attach all 10
          metadata to the depayloaded frame. And then later when we payload the
          frame buffer again for proxying, we now have 10 more buffers each with
          10 instance of the same metadata. Allocating/deallocating 100+ instances
          of metadata @ 30fps for multiple streams has a pretty large performance
          impact.
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1578
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3431>

2022-11-16 15:17:24 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/video/video-frame.c:
          video-frame: Avoid using tile width
          The tile width in pixel is not always available. Notably for
          8L128 10bit format, the tile is 8x128 bytes, and the pixel
          format is fully packed. That means that the tile contains at
          least 6 pixels per line, but it also hold some bits of the
          pixel from the same line on the previous or next tile.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3424>

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

        * gst-libs/gst/gl/egl/gsteglimage.c:
        * gst-libs/gst/gl/gstglcolorconvert.c:
        * gst-libs/gst/gl/gstglmemory.c:
        * gst-libs/gst/gl/gstglutils.c:
        * gst-libs/gst/video/video-format.c:
        * gst-libs/gst/video/video-format.h:
        * gst-libs/gst/video/video-frame.c:
        * gst-libs/gst/video/video-info.c:
        * gst-libs/gst/video/video-tile.h:
        * gst/rawparse/gstrawvideoparse.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-11-18 14:24:30 +0100  Mathieu Duponchelle <mathieu@centricular.com>

        * gst-libs/gst/audio/gstaudioaggregator.c:
        * gst-libs/gst/video/gstvideoaggregator.c:
          aggregator: Implement force_live API
          Setting force_live lets aggregator behave as if it had at least one of
          its sinks connected to a live source, which should let us get rid of the
          fake live test source hack that is probably present in dozens of
          applications by now.
          + Expose API for subclasses to set and get force_live
          + Expose force-live properties in GstVideoAggregator and GstAudioAggregator
          + Adds a simple test
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3008>

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

        * gst/playback/gstdecodebin2.c:
          decodebin2: Minor debug fix for decodepad
          decodedad might have their name changed when exposing, causing a race when
          trying to get their name without taking a lock. Just use GST_PTR_POINTER in
          debug statements instead
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3428>

2022-11-14 14:18:30 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Remove un-needed define
          This code hasn't use GValueArray in ages
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-14 14:17:25 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Use a non-buffering multiqueue for non-streamable URI
          Even though buffering is not required, we need to ensure we are dealing with the
          interleave (if any) before pushing the elementary streams further downstream.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-10 10:27:48 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Minor doc fix
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-01 04:38:53 +1000  Jan Schmidt <jan@centricular.com>

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: Don't leak EOS event
          Make sure to unref the EOS event in all code paths
          when returning GST_PAD_PROBE_HANDLED
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-07-21 16:43:47 +0200  Edward Hervey <edward@centricular.com>

        * docs/plugins/gst_plugins_cache.json:
        * gst/playback/gstplaybin3.c:
        * gst/playback/gsturidecodebin3.c:
        * tools/gst-play.c:
          playbin3: Move gapless to uridecodebin3
          This was the intention from the start, just took me a few years *cough* to
          actually implement it properly.
          Gapless is handled by re-using as much as possible the same decoders and sinks
          if present, and only pre-rolling switching at the sources level (with buffering
          if/when needed).
          In order to enable "gapless" playback, the "next" uri should be set at any time
          between the moment the `about-to-finish` signal is emitted and the moment the
          current play item is done. Previously this could only be done with the signal
          emission.
          This new implementation also allows "Instantaneous URI switching". This allows a
          much faster way of switching playback entries while re-using as many elements as
          possible. To enable this set `instant-uri` property to TRUE, the default being
          FALSE.
          API: instant-uri properties
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-10 07:16:11 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstplaybin3.c:
          playbin3: Remove unused code
          This was never used, and if ever it's needed at some point for reference it's
          available in gstplaybin.c
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-14 09:54:24 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Clear input collection when linked again
          The previous collection no longer applies to this input
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-14 09:37:28 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Improve collection merging
          If the collections are the same, don't merge them
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

        * gst/playback/gstdecodebin3-parse.c:
        * gst/playback/gstdecodebin3.c:
          decodebin3: doc cleanup
          Remove old/invalid FIXME and cleanup some logs
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

        * gst/playback/gstdecodebin3.c:
          decodebin3: Remove unused variable
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-10 09:13:35 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Allow re-using inputs
          DecodebinInput (and their backing parsebin or identity) are no longer released
          when the corresponding sinkpad is unlinked, but when it's released.
          The parsebin element will be resetted:
          * If incoming caps are incompatible (was the case before)
          * Or when unlinking and it was previously pull-based
          This opens the way to use decodebin3 with changing inputs (i.e. gapless)
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-09 16:51:51 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: use urisourcebin parse-streams property
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-09 16:44:18 +0100  Edward Hervey <edward@centricular.com>

        * docs/plugins/gst_plugins_cache.json:
        * gst/playback/gsturisourcebin.c:
          urisourcebin: Improve buffering handling
          Introduce the option to have the streams be parsed with `parsebin` for
          compatible sources (i.e. which are eligible for buffering in the same way as
          before this commit).
          By parsing the inputs directly, this allows more accurate buffering control:
          * Instead of relying on potential bitrate information coming from somewhere
          * and *without* being linked downstream
          If `parse-streams` is activated and the stream is eligible for buffering, then a
          `multiqueue` will be used on the output of `parsebin` in order to handle the
          buffering.
          API: `parse-streams`
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-09 10:33:22 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstparsebin.c:
          parsebin: avoid bogus processing
          If a parsebin pad is already exposed, don't try to rename it or cause extra
          processing which isn't needed
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-09 10:26:41 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3-parse.c:
        * gst/playback/gstdecodebin3.c:
          decodebin3: Avoid parsebin usage if not needed
          If the incoming streams are already parsed, there is no need to add yet-another
          parsebin to process it *IF* that stream is compatible with a decoder or the
          decodebin3 output caps.
          This only applies if all the following conditions are met:
          * The incoming stream can *NOT* do pull-based scheduling
          * The incoming stream provides a `GstStream` and `GstStreamCollection`
          * The caps are compatible with either the decodebin3 output caps or a decoder
          input
          If all those conditions are met, a identity element is used instead of a
          parsebin element and the same code paths are taken.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-09 10:18:25 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3-parse.c:
          decodebin3: DecodebinInputStream: Hold a ref to srcpad
          And move the locking outside of the input stream creation function
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-07 10:01:57 +0100  Edward Hervey <edward@centricular.com>

        * docs/plugins/gst_plugins_cache.json:
        * gst/playback/gsturisourcebin.c:
          urisourcebin: Bring high-watermark level in sync with legacy values
          It was always 60%. For some reason this crept in during the initial urisourcebin
          refactoring.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-07 09:49:02 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Don't leak collection when releasing inputs
          And refactor the function slightly for clarity
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-05 09:20:03 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Protect input freeing with the input lock
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-05 09:16:41 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3-parse.c:
        * gst/playback/gstdecodebin3.c:
          decodebin3: Refactor parsebin output handling
          * Instead of creating temporary `PendingPad` structures, always create a
          DecodebinInputStream for every pad of parsebin
          * Remove never used `pending_stream` field from DecodebinInputStream
          * When unblocking a given DecodebinInput (i.e. wrapping a parsebin), also make
          sure that other parsebins from the same GstStreamCollection are unblocked
          since they come from the same source
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-05 09:19:29 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Store GstStreamCollection from upstream
          If upstream provides stream collection, use/store them as soon as possible
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-01 10:30:19 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Move adaptive demuxer handling into ChildSrcPadInfo
          It's part of that chain of elements
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-01 09:53:36 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Only remove components in PAUSED->READY
          With the refactoring, we are guaranteed the components are only created in PAUSED
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-11-01 09:49:39 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Refactor ChildSrcPadInfo and OutputSlot usage
          Make an explicit topology/tree of structures:
          * ChildSrcPadInfo is created for each source element source pad
          * ChildSrcPadInfo contains the chain of optional elements specific to that
          pad (ex: typefind)
          * A ChildSrcPadInfo links to one or more OutputSlot, which contain what is
          specific to the output (i.e. optional buffering and ghostpad)
          * No longer use GObject {set|get}_data() functions to store those structures and
          instead make them explicit
          * Pass those structures around explicitely in each function/callback
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-31 06:13:31 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Remove duplicate call
          We ensure sources are removed in PAUSED->READY->NULL. No need to call it when
          creating the source.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-27 14:30:30 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Remove pending pad handling
          This was needed to support the legacy handling of changing streams (add new
          pads, send EOS and remove old pads).
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-27 11:47:56 +0200  Edward Hervey <edward@centricular.com>

          urisourcebin: Only expose pads once activation has completed
          The following problem could happen:
          * Thread 1 : urisourcebin gets activated from READY->PAUSED
          * Thread 2 : some element causes a pad to be added to urisourcebin , which gets
          linked downstream, which decides to activate upstream to pull-based.
          * That requires "activating" the pads from PUSH to NONE, and then from NONE to PULL
          * Thread 1 : the base class state change handlers checks if all pads are
          activated
          The issue is that since going form PUSH to PULL requires going through NONE,
          there is a window during which:
          * Thread 1 : The pad was set to NONE (before being set to PULL)
          * Thread 2 : The base class activates that pad (to PUSH)
          * Thread 1 : The attempt to "activate" to PULL fails (silently or not)
          This is very racy, so in order to avoid that, we make sure that we only add pads
          once the transition from READY->PAUSED in the parent classes is done.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Only allow streams-aware adaptive demuxer
          We no longer want to deal with elements that use the old-style of stream
          switching and instead expose/remove streams as they appear/disappear
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Simplify initial information collection
          When iterating existing pads of a source, directly handle them:
          * Raw pads are handled directly
          * Pads without caps are connected to a typefind
          * Other pads are handled via `handle_new_pad()`
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Use iterator function where applicable
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-25 11:13:49 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Document and rename fields
          Removes ambiguity when reading the code
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Remove unused lock/list
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-25 10:46:40 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Check for live source when generating element
          Instead of at a later stage
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-19 12:28:41 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Streamline demuxer removal
          And since remove_source also removes the dmeuxer, we no longer need to call it
          in addition
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

2022-10-19 11:03:03 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Clarify function name and arguments
          * The "need_queue" variable is only used in one place, move it there
          * Clarify the fact the function also exposes raw_pads
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Error out if a source doesn't expose pads
          Looks like this fell through the cracks. If a source element doesn't have
          dynamic pads and doesn't provide any source pad ... we should properly error
          out.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2784>

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

        * gst-libs/gst/pbutils/codec-utils.c:
          pbutils: Fix vp9 mime mapping when caps when no chroma-site.
          It's possible to have 4:2:0 chroma format without chroma-site in caps, but it
          isn't validated by the current code. This patch fixes it.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3405>

2022-11-14 20:38:09 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/video/gstvideodecoder.c:
          videodecoder: Consider having output data when the subclass drops a frame
          The subclass might drop a frame for QoS reasons (e.g. vpxdec) and if all
          frames are dropped because of that it wouldn't make sense to post an
          error message on EOS.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3408>

2022-11-14 07:26:25 +0100  Edward Hervey <edward@centricular.com>

        * ext/ogg/gstoggdemux.c:
          oggdemux: Don't leak incoming EOS event
          If we're going to drop it ... then do drop it :)
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3400>

2022-11-12 11:35:58 +0100  Edward Hervey <edward@centricular.com>

        * gst-libs/gst/pbutils/encoding-profile.c:
          pbutils/encoding-profile: Streamline cleanup
          Cleanup all local variables in one place, and ensure failure cases go through there.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

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

        * gst/playback/gststreamsynchronizer.c:
          streamsynchronizer: Don't leak the syncstream object
          It was leaked when breaking out early when handling GST_EVENT_STREAM_START
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

2022-11-12 10:00:01 +0100  Edward Hervey <edward@centricular.com>

        * gst/encoding/gstencodebasebin.c:
          encodebasebin: Don't leak muxer pad
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

2022-11-12 09:58:41 +0100  Edward Hervey <edward@centricular.com>

        * gst-libs/gst/pbutils/encoding-profile.c:
          pbutils/encoding-profile: Don't leak string array
          It was never freed
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3390>

2022-11-10 09:49:41 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst/rawparse/gstrawvideoparse.c:
          rawvideoparse: Fix support for sub-sampled tile
          This element was missed as it does not use the new helpers to calculate the
          plane size. The code is relatively simple though, so adding support for
          subsample tiles was easy enough.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3385>

2022-11-08 17:47:10 +0000  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/gl/gstglcolorconvert.c:
        * gst-libs/gst/gl/gstglupload.c:
          gstgl: Fix handling of padded tile formats
          When a tile format is padded and imported as DMABuf, the stride
          contains the information about the actual width and height in
          number of tiles. This information is needed by the detiling shader
          in order accuratly calculate the location of pixels. To fix that,
          we also copy the offset and strides into the otuput format and
          the converter will ensure that the shader is recompiled whenever
          the stride changes.
          This fixes video corruptions observed when decoding on MT8195
          with videos that aren't not aligned to 64bytes in width.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3365>

2022-11-08 22:42:58 +0800  Talha Khan <talha@averred.net>

        * docs/plugins/gst_plugins_cache.json:
        * gst/videoconvertscale/gstvideoconvert.c:
        * gst/videoconvertscale/gstvideoconvertscale.c:
          videoconvert, videoscaleconvert: fix element description
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3362>

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

        * 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:
        * gst-plugins-base.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

2022-11-07 20:31:25 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/pbutils/gstdiscoverer-types.c:
          discoverer: Annotate `DiscovererInfo::get_audio_streams()` and others with the concrete stream info type
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3353>

2022-11-05 07:34:27 +0100  Edward Hervey <edward@centricular.com>

        * gst/subparse/gstsubparse.c:
          subparse: Fix non-closed tag handling.
          Unclear what the goal was, but we could end up reading way past the next_tag.
          Instead just move everything from after the end tag ('>') to the next_tag.
          Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53040
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3340>

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

        * gst/playback/gstparsebin.c:
          parsebin: Fix leak
          Release the reference on the collection which was given to us when extracting it
          from the event/message.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>

2022-10-13 22:15:58 +0530  Sanchayan Maity <sanchayan@asymptotic.io>

        * gst/playback/gstplaybin3.c:
          playbin3: Fix missing pad unref
          GST_TRACERS="leaks" GST_DEBUG="GST_TRACER:7,leaks:6" gst-play-1.0 --use-playbin3 test.mkv
          When running a pipeline like above, leaks are observed.
          0:00:56.882419132 240637 0x5562c528ccc0 TRACE             GST_TRACER :0:: object-alive, type-name=(string)GstConcatPad, address=(gpointer)0x7efd7c0d20a0, description=(string)<'':sink_0>, ref-count=(uint)1, trace=(string);
          0:00:56.882429131 240637 0x5562c528ccc0 TRACE             GST_TRACER :0:: object-alive, type-name=(string)GstConcatPad, address=(gpointer)0x7efd7c0d2be0, description=(string)<'':sink_0>, ref-count=(uint)1, trace=(string);
          0:00:56.882437056 240637 0x5562c528ccc0 TRACE             GST_TRACER :0:: object-alive, type-name=(string)GstConcatPad, address=(gpointer)0x7efd7c0d3720, description=(string)<'':sink_0>, ref-count=(uint)1, trace=(string);
          gst_element_release_request_pad does not unref the pad. It needs to
          be followed by gst_object_unref. Doing that fixes the above leaks.
          Use g_ptr_array_new_with_free_func with gst_object_unref as the free
          function to unref the pad after release.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3177>

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

        * gst-libs/gst/pbutils/codec-utils.c:
          pbutils: add correct mime mapping for vp9
          Based on https://www.webmproject.org/vp9/mp4/#codecs-parameter-string
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3260>

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

        * gst-libs/gst/app/gstappsrc.c:
        * gst-libs/gst/audio/gstaudiodecoder.c:
        * gst-libs/gst/audio/gstaudioencoder.c:
        * gst-libs/gst/video/gstvideoencoder.c:
          core/base: Only post latency messages if the latency values have actually changed
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1525
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3282>

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

        * gst-libs/gst/video/gstvideodecoder.c:
          videodecoder: Only post latency message if it changed
          Posting latency messages causes a full and potentially expensive latency
          recalculation of the pipeline. While subclasses should check whether the latency
          really changed or not before calling this function, we ensure that we do not
          post such messages if it didn't change.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3282>

2022-10-26 10:25:43 +0200  Daniels Umanovskis <du@axentia.se>

        * sys/ximage/ximagesink.c:
        * sys/xvimage/xvcontext.c:
          ximagesink, xvimagesink: set the _NET_WM_PID atom on the window
          This makes it easier for X11 window management to work with windows created by these sinks
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3267>

2022-10-25 09:39:07 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/gl/gstgldisplay.c:
        * gst-libs/gst/gl/gstglshader.c:
        * gst-libs/gst/pbutils/gstdiscoverer.c:
        * gst-libs/gst/rtsp/gstrtspconnection.c:
        * gst-libs/gst/rtsp/gstrtspmessage.c:
        * gst-libs/gst/sdp/gstmikey.c:
          Fix various warnings from gobject-introspection
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3261>

2022-10-21 21:50:01 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

        * gst-libs/gst/gl/cocoa/gstgl_cocoa_private.h:
        * gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m:
        * gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
          gl/vulkan: Fix static linking on macOS
          duplicate symbol '__invoke_on_main' in:
          /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstvulkan-1.0.a(cocoa_gstvkwindow_cocoa.m.o)
          /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstgl-1.0.a(cocoa_gstglwindow_cocoa.m.o)
          ld: 1 duplicate symbol for architecture x86_64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          Also make the same change in iOS for consistency.
          Continuation of https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1132
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3242>

2022-10-04 05:39:51 +0100  Matthew Waters <matthew@centricular.com>

        * gst-libs/gst/gl/meson.build:
          build/gl: fix automatic dispmanx detection for rpi4
          rpi4 doesn't contain dispmanx but still contains bcm_host.pc which
          confuses the configure detection.  Add an explicit check for
          EGL_DISPMANX_WINDOW_T to ensure that we only build with dispmanx when
          the types are available.
          Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/893
          Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/952
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3230>

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

        * gst-libs/gst/gl/gstglcontextconfig.c:
          docs/glcontextconfig: rename title to not be GstGLContext
          Can be confusing havint two pages that both have GstGLContext as the
          title.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3227>

2022-07-06 21:45:24 +0300  Jordan Petridis <jordan@centricular.com>

        * ext/cdparanoia/meson.build:
          cdparanoia: Ignore compiler warning coming from the cdparanoia header
          When trying to build the plugin, GCC starts complaining about issues
          with one of the cdparanoia headers and it block us from being able
          to build the plugin with Werror.
          The current warning in the header look like this:
          ```
          [1/2] Compiling C object subprojects/gst-plugins-base/ext/cdparanoia/libgstcdparanoia.so.p/gstcdparanoiasrc.c.o
          In file included from ../subprojects/gst-plugins-base/ext/cdparanoia/gstcdparanoiasrc.h:37,
          from ../subprojects/gst-plugins-base/ext/cdparanoia/gstcdparanoiasrc.c:31:
          /usr/include/cdda/cdda_interface.h:164:3: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
          164 |   "Success",
          |   ^~~~~~~~~
          ...
          /usr/include/cdda/cdda_interface.h:163:14: warning: ‘strerror_tr’ defined but not used [-Wunused-variable]
          163 | static char *strerror_tr[]={
          |              ^~~~~~~~~~~
          [2/2] Linking target subprojects/gst-plugins-base/ext/cdparanoia/libgstcdparanoia.so
          ```
          Last release of cdparanoia was in 2008, so our best bet for the
          time is to ignore the warnings.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2722>

2022-10-17 14:43:42 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/sdp/gstmikey.c:
        * gst-libs/gst/sdp/gstsdpmessage.c:
          sdp: Add/fix various annotations
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

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

        * gst-libs/gst/tag/gstid3tag.c:
        * gst-libs/gst/tag/gstvorbistag.c:
        * gst-libs/gst/tag/gstxmptag.c:
        * gst-libs/gst/tag/id3v2.c:
        * gst-libs/gst/tag/lang.c:
        * gst-libs/gst/tag/licenses.c:
        * gst-libs/gst/tag/tags.c:
          tag: Add/fix various annotations
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

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

        * gst-libs/gst/allocators/gstdmabuf.c:
        * gst-libs/gst/allocators/gstfdmemory.c:
          allocators: Add/fix various annotations
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-15 12:16:01 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/gl/cocoa/gstgldisplay_cocoa.m:
        * gst-libs/gst/gl/egl/gsteglimage.c:
        * gst-libs/gst/gl/egl/gstgldisplay_egl.c:
        * gst-libs/gst/gl/egl/gstgldisplay_egl_device.c:
        * gst-libs/gst/gl/gstglbasememory.c:
        * gst-libs/gst/gl/gstglbasememory.h:
        * gst-libs/gst/gl/gstglbufferpool.c:
        * gst-libs/gst/gl/gstglcolorconvert.c:
        * gst-libs/gst/gl/gstglcontext.c:
        * gst-libs/gst/gl/gstgldisplay.c:
        * gst-libs/gst/gl/gstglformat.c:
        * gst-libs/gst/gl/gstglshader.c:
        * gst-libs/gst/gl/gstglsl.c:
        * gst-libs/gst/gl/gstglviewconvert.c:
        * gst-libs/gst/gl/viv-fb/gstgldisplay_viv_fb.c:
        * gst-libs/gst/gl/wayland/gstgldisplay_wayland.c:
        * gst-libs/gst/gl/x11/gstgldisplay_x11.c:
          gl: Add/fix various annotations
          And fix a memory leaks in gst_gl_display_egl_new() error cases.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-15 00:19:53 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/pbutils/codec-utils.c:
        * gst-libs/gst/pbutils/descriptions.c:
        * gst-libs/gst/pbutils/encoding-profile.c:
        * gst-libs/gst/pbutils/encoding-target.c:
        * gst-libs/gst/pbutils/gstdiscoverer-types.c:
        * gst-libs/gst/pbutils/gstdiscoverer.c:
        * gst-libs/gst/pbutils/missing-plugins.c:
          pbutils: Add/fix various annotations
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-15 00:00:03 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/rtp/gstrtcpbuffer.c:
        * gst-libs/gst/rtp/gstrtpbasedepayload.c:
        * gst-libs/gst/rtp/gstrtpbasepayload.c:
        * gst-libs/gst/rtp/gstrtpbuffer.c:
        * gst-libs/gst/rtp/gstrtphdrext.c:
        * gst-libs/gst/rtp/gstrtpmeta.c:
        * gst-libs/gst/rtp/gstrtppayloads.c:
          rtp: Add/fix various annotations
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-14 23:52:40 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/rtsp/gstrtspconnection.c:
        * gst-libs/gst/rtsp/gstrtspdefs.c:
        * gst-libs/gst/rtsp/gstrtspmessage.c:
        * gst-libs/gst/rtsp/gstrtsptransport.c:
        * gst-libs/gst/rtsp/gstrtspurl.c:
          rtsp: Add/fix various annotations
          Also initialize out parameters so that they don't have an undefined
          value in case of errors.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

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

        * gst-libs/gst/app/gstappsink.c:
        * gst-libs/gst/app/gstappsrc.c:
          app: Add/fix various annotations
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-14 22:04:00 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/audio/audio-channel-mixer.c:
        * gst-libs/gst/audio/audio-converter.c:
        * gst-libs/gst/audio/audio-info.c:
        * gst-libs/gst/audio/audio-resampler.c:
        * gst-libs/gst/audio/audio.c:
        * gst-libs/gst/audio/gstaudiobasesink.c:
        * gst-libs/gst/audio/gstaudiobasesrc.c:
        * gst-libs/gst/audio/gstaudiodecoder.c:
        * gst-libs/gst/audio/gstaudioencoder.c:
          audio: Add/fix various annotations
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-14 21:59:43 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/video/gstvideodecoder.c:
        * gst-libs/gst/video/gstvideoencoder.c:
        * gst-libs/gst/video/gstvideometa.c:
        * gst-libs/gst/video/gstvideotimecode.c:
        * gst-libs/gst/video/video-anc.c:
        * gst-libs/gst/video/video-anc.h:
        * gst-libs/gst/video/video-converter.c:
        * gst-libs/gst/video/video-format.c:
        * gst-libs/gst/video/video-info.c:
        * gst-libs/gst/video/video-multiview.c:
        * gst-libs/gst/video/video-overlay-composition.c:
        * gst-libs/gst/video/video-sei.h:
          video: Add/fix various annotations
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194>

2022-10-17 13:01:53 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Fix usage of raw and non-raw source provider
          The computation in analyze_source was wrong, and would state that the element
          has "all raw source pads" if it had at least one.
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1029
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3199>

2022-10-17 18:38:43 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/rtp/gstrtpbuffer.c:
        * tests/check/libs/rtp.c:
          rtpbuffer: Initialize extended timestamp to the first wraparound period
          This allows correct handling of wrapping around backwards during the
          first wraparound period and avoids the infamous "Cannot unwrap, any
          wrapping took place yet" error message.
          It allows makes sure that for actual timestamp jumps a valid value is
          returned instead of 0, which then allows the caller to handle it
          properly. Not having this can have the caller see the same timestamp (0)
          for a very long time, which for example can cause rtpjitterbuffer to
          output the same timestamp for a very long time.
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1500
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3202>

2022-10-14 16:12:45 +0200  Edward Hervey <edward@centricular.com>

        * tools/gst-play.c:
          gst-play: Don't leak the stream collection
          We are given a reference to the collection when parsing it from the
          message. Just store it (instead of referencing it again).
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3186>

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

        * docs/plugins/gst_plugins_cache.json:
        * gst-libs/gst/riff/riff-media.c:
          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-07 11:46:29 -0300  Thibault Saunier <tsaunier@igalia.com>

        * gst/videorate/gstvideorate.c:
          videorate: Do not close segment when getting a same segment twice
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3059>

2022-09-14 16:39:48 -0300  Thibault Saunier <tsaunier@igalia.com>

        * gst/videorate/gstvideorate.c:
        * gst/videorate/gstvideorate.h:
        * tests/validate/meson.build:
        * tests/validate/videorate/fill_segment_after_caps_changed_before_eos.validatetest:
        * tests/validate/videorate/fill_segment_after_caps_changed_before_eos/flow-expectations/log-videorate-sink-expected:
        * tests/validate/videorate/fill_segment_after_caps_changed_before_eos/flow-expectations/log-videorate-src-expected:
          videorate: Handle closing segment on EOS right after caps event
          The scenario is what we try in the tests:
          - we have a segment with .stop set
          - some frame(s) flow
          - we get a CAPS event
          - we get an EOS (before getting buffers after the CAPS event)
          in that case, without that patch, the segment is not properly closed
          which is not correct. In this patch we keep track of previous caps until
          a new buffer arrives, this way in that situation we set previous caps
          again, and close the segment with the previous buffer.
          Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1352
          in this specific case
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3059>

2022-08-22 16:33:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/gl/egl/gsteglimage.c:
          opengl: Fix usage of eglCreate/DestroyImage
          The implementation was inconsistent between create and destroy. EGLImage
          creation and destruction is requires for EGL 1.5 and up, while
          otherwise the KHR version is only available if EGL_KHR_image_base
          feature is set. Not doing these check may lead to getting a function
          pointer to a stub, which is notably the case when using apitrace.
          Fixes #1389
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2925>

2022-10-06 16:23:56 +0200  Aleksandr Slobodeniuk <aslobodeniuk@fluendo.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: allow to call "dispose" multiple times
          https://docs.gtk.org/gobject/concepts.html#reference-counts-and-cycles
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3135>

2022-10-06 13:03:26 +0200  Aleksandr Slobodeniuk <aslobodeniuk@fluendo.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: fix mutex leaks
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3126>

2022-10-03 15:20:53 -0300  Thibault Saunier <tsaunier@igalia.com>

        * gst/playback/gstdecodebin3-parse.c:
          decodebin3: Do not try to plug a decoder on raw formats
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3123>

2022-10-06 00:00:59 +0900  Seungha Yang <seungha@centricular.com>

        * gst-libs/gst/video/gstvideosink.c:
          videosink: Don't return unknown end-time from get_times()
          ... in case of reverse playback. Otherwise basesink will not
          wait for clock
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3121>

2021-07-02 16:22:04 +0800  Haihao Xiang <haihao.xiang@intel.com>

        * gst-libs/gst/gl/egl/gsteglimage.c:
          eglimage: fix Y412_LE DMABuf import support
          This fixed the error below:
          GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp !
          "video/x-raw(memory:DMABuf),format=Y412_LE" ! glimagesink
          0:00:00.063737691 576978 0x557c11266920 ERROR             gleglimage
          gsteglimage.c:577:_drm_rgba_fourcc_from_info: Unsupported format for
          DMABuf.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1389>

2021-07-02 16:01:19 +0800  Haihao Xiang <haihao.xiang@intel.com>

        * gst-libs/gst/gl/egl/gsteglimage.c:
          eglimage: add Y410 DMABuf import support
          This fixed the error below:
          GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp ! \
          "video/x-raw(memory:DMABuf),format=Y410" ! glimagesink
          0:00:00.040553883 576732 0x55be9b35f920 ERROR             gleglimage
          gsteglimage.c:577:_drm_rgba_fourcc_from_info: Unsupported format for
          DMABuf.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1389>

2021-07-02 20:31:22 +0800  Haihao Xiang <haihao.xiang@intel.com>

        * gst-libs/gst/gl/egl/gsteglimage.c:
          eglimage: add Y212_LE / Y212_BE DMABuf import support
          This fixed the error below:
          GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp \
          ! "video/x-raw(memory:DMABuf),format=Y212_LE" ! glimagesink
          0:00:00.148086281 575148 0x562a6d36d920 ERROR             gleglimage
          gsteglimage.c:555:_drm_rgba_fourcc_from_info: Unsupported format for
          DMABuf.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1389>

2021-07-02 15:37:19 +0800  Haihao Xiang <haihao.xiang@intel.com>

        * gst-libs/gst/gl/egl/gsteglimage.c:
          eglimage: add Y210 DMABuf import support
          This fixed the error below:
          GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp ! \
          "video/x-raw(memory:DMABuf),format=Y210" ! glimagesink
          0:00:00.039881627 571365 0x56245eba6920 ERROR             gleglimage
          gsteglimage.c:549:_drm_rgba_fourcc_from_info: Unsupported format for
          DMABuf
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1389>

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

        * 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:
        * gst-plugins-base.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-10-01 02:33:49 +1000  Jan Schmidt <jan@centricular.com>

        * gst/playback/gstplaysink.c:
        * gst/playback/gstplaysinkaudioconvert.c:
        * gst/playback/gstplaysinkaudioconvert.h:
          playsink: Hold a reference to the soft volume element
          Always hold a reference to the soft volume element
          provided by the playsinkaudioconvert bin helper, the
          same as when volume is provided by a sink element,
          or the soft volume element gets unreffed too soon.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3108>

2022-10-01 04:51:21 +1000  Jan Schmidt <jan@centricular.com>

        * sys/xvimage/xvimageallocator.c:
          xvimagesink: Don't leak XvShmImage
          If allocating an XvShmImage generates an X error, but
          still returns some allocated memory, make sure to free it
          so it doesn't leak.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3100>

2022-10-01 04:49:16 +1000  Jan Schmidt <jan@centricular.com>

        * sys/xvimage/xvcontext.c:
          xvimagesink: Zero initialize mask array
          Clear the stack array before setting bits to pass to
          XISelectEvents(). Fixes spurious crash from an X error:
          X Error of failed request:  BadValue (integer parameter out of range for operation)
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3100>

2022-10-01 04:47:31 +1000  Jan Schmidt <jan@centricular.com>

        * sys/xvimage/xvcontext.c:
          xvimagesink: Don't leak temporary
          Use a stack variable instead of a temporarily
          malloced variable that wasn't being freed
          properly. Fixes a small leak of a GstXvTouchDevice
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3100>

2022-10-01 04:41:06 +1000  Jan Schmidt <jan@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Make sure event is writable before modifying
          Make sure we're operating on a private copy of an event when
          modifying it.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3107>

2022-10-01 04:40:09 +1000  Jan Schmidt <jan@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Make sure event is writable before modifying.
          Make sure we're operating on a private copy of an event before
          modifying it.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3107>

2022-10-01 04:37:05 +1000  Jan Schmidt <jan@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Don't lose a ref on EOS event
          Make sure not to give away the ref on the final EOS
          event for which the probe handler is returning GST_PAD_PROBE_REMOVE
          when pushing the event manually.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3107>

2022-09-30 00:10:25 +0100  Tim-Philipp Müller <tim@centricular.com>

        * gst-libs/gst/pbutils/descriptions.c:
        * tests/check/libs/pbutils.c:
          pbutils: descriptions: add meta/x-klv
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3094>

2022-09-30 00:07:07 +0100  Tim-Philipp Müller <tim@centricular.com>

        * gst-libs/gst/pbutils/descriptions.c:
        * tests/check/libs/pbutils.c:
          pbutils: descriptions: fix gst_pb_utils_get_caps_description_flags()
          And add a little unit test.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3094>

2022-09-29 09:39:15 +0100  James Cowgill <james.cowgill@blaize.com>

        * gst-libs/gst/tag/gstxmptag.c:
          xmptag: Call gst_tag_register_musicbrainz_tags during init
          We need to call this to register the MusixBrainz tags before we use
          them in an XMP schema.
          Fixes this critical when attempting to run jpegparse on a JPEG
          containing MusicBrainz XMP tags:
          GStreamer-CRITICAL **: 20:41:07.885: gst_tag_get_type: assertion 'info != NULL' failed
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3092>

2022-09-29 14:36:38 +0300  Sebastian Dröge <sebastian@centricular.com>

        * tests/interactive/test-effect-switch.c:
          test-effect-switch: Fix some memory leaks and make effect element ownership clearer
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3091>

2018-03-28 17:54:15 +0200  Philipp Zabel <p.zabel@pengutronix.de>

        * gst-libs/gst/audio/gstaudiodecoder.c:
        * gst-libs/gst/audio/gstaudioencoder.c:
        * gst-libs/gst/video/gstvideodecoder.c:
        * gst-libs/gst/video/gstvideoencoder.c:
          buffer: drop parent meta in deep copy/foreach_metadata
          The purpose of a deep buffer copy is to be able to release the source
          buffer and all its dependencies. Attaching the parent buffer meta to
          the newly created deep copy needlessly keeps holding a reference to the
          parent buffer.
          The issue this solves is the fact you need to allocate more
          buffers, as you have free buffers being held for no reason. In the good
          cases it will use more memory, in the bad case it will stall your
          pipeline (since codecs often need a minimum number of buffers to
          actually work).
          Fixes #283
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2928>

2022-09-27 13:41:37 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Fix memory issues with active selection list
          This had a couple of issues:
          * The backing strings (from GstStream) could disappear
          * The actual list wasn't properly reset/freed when decodebin3 was re-used
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3083>

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-06 17:25:50 -0400  Thibault Saunier <tsaunier@igalia.com>

        * docs/plugins/gst_plugins_cache.json:
        * gst/videorate/gstvideorate.c:
        * gst/videorate/gstvideorate.h:
        * tests/validate/meson.build:
        * tests/validate/videorate/duplicate_on_eos.validatetest:
        * tests/validate/videorate/duplicate_on_eos/flow-expectations/log-videorate-sink-expected:
        * tests/validate/videorate/duplicate_on_eos/flow-expectations/log-videorate-src-expected:
        * tests/validate/videorate/duplicate_on_eos_disbaled.validatetest:
        * tests/validate/videorate/duplicate_on_eos_disbaled/flow-expectations/log-videorate-sink-expected:
        * tests/validate/videorate/duplicate_on_eos_disbaled/flow-expectations/log-videorate-src-expected:
        * tests/validate/videorate/duplicate_on_eos_half_sec.validatetest:
        * tests/validate/videorate/duplicate_on_eos_half_sec/flow-expectations/log-videorate-sink-expected:
        * tests/validate/videorate/duplicate_on_eos_half_sec/flow-expectations/log-videorate-src-expected:
          videorate: Add a `max-closing-segment-duplication-duration` property
          This allows users to let videorate fully fill the segments when received
          EOS or on new segment, removing an arbitrary limit of 25 duplicates which
          might not be what the user wants (for example on low FPS stream in GES,
          that sometimes leaded to broken behavior)
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3000>

2022-09-12 09:46:43 -0400  Xavier Claessens <xavier.claessens@collabora.com>

        * tools/meson.build:
          meson: Set install_tag on some targets
          Trying to follow recommendation from Meson documentation:
          https://mesonbuild.com/Installing.html#installation-tags
          Move tools into 'bin' or 'bin-devel' categories to keep only libs and
          plugins in the default 'runtime' category. This simplifies distribution
          of GStreamer application skipping parts that are not needed, similarly
          to what Cerbero does by hardcoding huge list of files.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3017>

2022-09-19 08:54:15 +0200  Edward Hervey <edward@centricular.com>

        * gst-libs/gst/video/video-converter.c:
          video-converter: Fix doc
          Argument names weren't correct
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3043>

2022-09-09 16:57:18 -0400  Thibault Saunier <tsaunier@igalia.com>

        * gst/playback/gstdecodebin2.c:
          decodebin2: Do not fail if one of the decoders isn't able to output the requested format
          when expose-all=False
          When trying to find an decoder in that case, we loop over the different
          decoder factories, and check that it outputs a format that matches the
          requested one (through the :caps property), but if we find a decoder
          that do match but later on some other don't we end up failing
          autopluging. This patch ensures that we still plug the decoder that can
          work.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3011>

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

        * gst-libs/gst/gl/meson.build:
          gl:meson: Minor typo fix
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2954>

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-07 10:36:09 -0400  Thibault Saunier <tsaunier@igalia.com>

        * docs/plugins/gst_plugins_cache.json:
        * gst-libs/gst/pbutils/gstdiscoverer.c:
        * gst/playback/gsturidecodebin.c:
          discoverer: Fix discovering source that expose raw audio/video
          Exposes a "uridecodebin:post-stream-topology" property as the discoverer
          needs to have topology information about all streams so we need
          `uridecodebin` to always plug decodebins for that case.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3009>

2022-09-07 17:11:08 -0400  Thibault Saunier <tsaunier@igalia.com>

        * gst/playback/gsturidecodebin.c:
          uridecodebin: Fix some property documentation syntax
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3009>

2022-09-07 10:39:21 -0400  Thibault Saunier <tsaunier@igalia.com>

        * gst/playback/gsturidecodebin.c:
        * tests/validate/meson.build:
        * tests/validate/uridecodebin/expose_raw_pad_caps.validatetest:
          uridecodebin: Ensure that pads caps are set before exposing them
          We are supposed to guarantee that pads that are exposed have the caps
          set, but for sources that have pad with "all raw caps" templates, we end
          up exposing pads that don't have caps set yet, which can break code (in
          GES for example).
          To avoid that we let uridecodebin plug a `decodebin` after such pads and
          let decodebin to handle that for us. In the end the only thing that
          decodebin does in those cases is to wait for pads to be ready and expose
          them, after that `uridecodebin` will expose those pads.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3009>

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-07-06 04:18:37 +0900  Seungha Yang <seungha@centricular.com>

        * gst-libs/gst/video/video-format.c:
          video-format: Workaround MSVC build error
          ../gst-libs/gst/video/video-format.c(6779): error C2219: syntax error:
          type qualifier must be after '*'
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2719>

2022-09-07 16:35:38 +1000  Matthew Waters <matthew@centricular.com>

        * gst/subparse/mpl2parse.c:
          subparse: fix crash when parsing invalid timestamps in mpl2
          Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49245
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2989>

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

        * ext/alsa/meson.build:
        * ext/cdparanoia/meson.build:
        * ext/gl/meson.build:
        * ext/libvisual/meson.build:
        * ext/ogg/meson.build:
        * ext/opus/meson.build:
        * ext/pango/meson.build:
        * ext/theora/meson.build:
        * ext/vorbis/meson.build:
        * gst/adder/meson.build:
        * gst/app/meson.build:
        * gst/audioconvert/meson.build:
        * gst/audiomixer/meson.build:
        * gst/audiorate/meson.build:
        * gst/audioresample/meson.build:
        * gst/audiotestsrc/meson.build:
        * gst/compositor/meson.build:
        * gst/encoding/meson.build:
        * gst/gio/meson.build:
        * gst/overlaycomposition/meson.build:
        * gst/pbtypes/meson.build:
        * gst/playback/meson.build:
        * gst/rawparse/meson.build:
        * gst/subparse/meson.build:
        * gst/tcp/meson.build:
        * gst/typefind/meson.build:
        * gst/videoconvertscale/meson.build:
        * gst/videorate/meson.build:
        * gst/videotestsrc/meson.build:
        * gst/volume/meson.build:
        * meson.build:
        * sys/ximage/meson.build:
        * sys/xvimage/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:
        * gst-libs/gst/allocators/meson.build:
        * gst-libs/gst/app/meson.build:
        * gst-libs/gst/audio/meson.build:
        * gst-libs/gst/fft/meson.build:
        * gst-libs/gst/gl/meson.build:
        * gst-libs/gst/pbutils/meson.build:
        * gst-libs/gst/riff/meson.build:
        * gst-libs/gst/rtp/meson.build:
        * gst-libs/gst/rtsp/meson.build:
        * gst-libs/gst/sdp/meson.build:
        * gst-libs/gst/tag/meson.build:
        * gst-libs/gst/video/meson.build:
        * 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-31 14:50:38 +0000  Ádám Balázs <broothy@gmail.com>

        * gst/audioconvert/gstaudioconvert.c:
          gstaudioconvert: doc: Fix mix-matrix example
          mix-matrix should contain float elements, modify the example to do so
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2966>

2022-08-30 14:29:41 +0200  Rafael Caricio <rafael@caricio.com>

        * gst-libs/gst/pbutils/gstaudiovisualizer.c:
          audiovisualizer: fix buffer mapping to not increase refcount
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2953>

2022-08-23 19:12:17 +0300  Sebastian Dröge <sebastian@centricular.com>

        * sys/ximage/ximagesink.c:
        * sys/xvimage/xvimagesink.c:
          x(v)imagesink: Don't create invalid GstNavigationModifierType by simply passing through X11 event states
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2931>

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

        * docs/plugins/gst_plugins_cache.json:
        * gst/playback/gstrawcaps.h:
          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 16:02:31 +0200  Mathieu Duponchelle <mathieu@centricular.com>

        * gst/videoconvertscale/gstvideoconvertscale.c:
          videoconvert: fix passthrough on equivalent transfer
          When the input info and output info are equal, except for the
          transfer functions that are *not* equivalent, we need to set up
          a converter as we won't be passthrough.
          Fixes an assertion in that case.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2929>

2022-08-17 12:53:02 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

        * gst-libs/gst/video/video-converter.c:
        * gst-libs/gst/video/video-converter.h:
        * tests/check/libs/video.c:
          base: video-converter: add accessors for input and output formats
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2905>

2022-08-05 20:52:19 +0900  Seungha Yang <seungha@centricular.com>

        * docs/plugins/gst_plugins_cache.json:
        * gst/videoconvertscale/gstvideoconvert.c:
        * gst/videoconvertscale/gstvideoconvertscale.c:
        * gst/videoconvertscale/gstvideoconvertscale.h:
        * gst/videoconvertscale/gstvideoscale.c:
          videoconvert,videoscale: Do conversion in videoconvert and scaling in videoscale
          Keep behaving the same as before videoconvertscale port
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2778>

2022-08-05 20:16:00 +0900  Seungha Yang <seungha@centricular.com>

        * docs/plugins/gst_plugins_cache.json:
        * gst/videoconvertscale/gstvideoconvert.c:
        * gst/videoconvertscale/gstvideoconvertscale.c:
        * gst/videoconvertscale/gstvideoconvertscale.h:
        * gst/videoconvertscale/gstvideoscale.c:
        * tests/validate/convertscale/convert_disable_scale.validatetest:
        * tests/validate/convertscale/convert_disable_scale/flow-expectations/log-converter-src-expected:
        * tests/validate/convertscale/scale_disable_convert.validatetest:
        * tests/validate/convertscale/scale_disable_convert/flow-expectations/log-scaler-src-expected:
        * tests/validate/meson.build:
          Revert "videoconvertscale: Add properties to disable scaling/converting in videoconvert/videoscale"
          This reverts commit cd7a91cef1c6a2e24d440126b7f2ab543fb205c5.
          Reverting properties, scaling in videoconvert and converting in
          videoscale will be disabled by the other commit
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2778>

2022-08-12 22:42:28 -0700  Khem Raj <raj.khem@gmail.com>

        * gst/subparse/gstssaparse.c:
          ssaparse: include required system headers for isspace() and sscanf() functions
          Newer compilers ( clang 15 ) have turned stricter and errors out instead
          of warning on implicit function declations
          Fixes
          gstssaparse.c:297:12: error: call to undeclared library function 'isspace' with type 'int (int)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
          while (isspace(*t))
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2879>

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

        * gst-libs/gst/rtsp/gstrtspurl.c:
        * tests/check/libs/rtsp.c:
          rtspurl: Use gst_uri_join_strings() in gst_rtsp_url_get_request_uri_with_control() instead of a hand-crafted, wrong version
          For example the query string of the base must not be taken over to the
          request URL unless there is no control path, and control paths can be
          absolute and must not be considered relative if they start with a /.
          Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/971
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2868>

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

        * tests/check/libs/rtsp.c:
          rtspurl: Use fail_unless_equals_string() in tests
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2868>

2022-07-27 22:34:42 +1000  Jan Schmidt <jan@centricular.com>

        * ext/pango/gstbasetextoverlay.c:
        * ext/pango/gstbasetextoverlay.h:
          basetextoverlay: Don't miscalculate text running times
          When a new segment event arrives, it immediately updates
          the current stored segment, which was used for calculating
          the running time of the current text buffer for every
          passing video frame. This means a segment that arrives
          after the text buffer might get used to (mis)calculate
          the running times subsequently.
          Instead, calculate and store the right running time
          using the current segment when storing the buffer. Later
          the stored segment can get freely updated.
          This fixes the case where pieces of video and text streams
          are seamlessly concatenated and fed through the text overlay.
          Previously, it could lead to the current text buffer suddenly
          have a massive running time and blocking all further input.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2802>

2022-08-09 18:06:41 +0100  Tim-Philipp Müller <tim@centricular.com>

        * docs/plugins/gst_plugins_cache.json:
        * ext/opus/gstopusenc.c:
          opusenc: improve inband-fec property documentation
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2853>

2022-06-30 16:14:27 +0300  Jordan Petridis <jordan@centricular.com>

        * ext/alsa/gstalsaplugin.c:
          gstalsaplugin: return the result of the element registration
          Previously there were branches that would return FALSE, however
          it looks like we forgot to return the new result variable.
          https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/900
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2695>

2022-01-22 02:35:36 +0100  Mathieu Duponchelle <mathieu@centricular.com>

        * gst/encoding/gstsmartencoder.c:
          smartencoder: fix detection of avc1
          While avc1 is the FourCC, avc is the name used in caps
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1549>

2022-01-22 02:29:54 +0100  Mathieu Duponchelle <mathieu@centricular.com>

        * gst/playback/gstdecodebin2.c:
          decodebin2: don't reverse stream topology order
          This can be important for instance when a container holds multiple
          tracks with the same media type, with no indication (eg tags) of
          which track is the default one.
          In that case, players usually pick the first track by default.
          This is especially useful when using smart editing with GES, as
          it will result in the same ordering as the input file that was
          used as a template.
          For reference, this yields the same order as ffprobe.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1549>

2022-01-21 01:02:52 +0100  Mathieu Duponchelle <mathieu@centricular.com>

        * gst/encoding/gstsmartencoder.c:
          gstsmartencoder: don't make calculations for invalid DTS
          Instead, as the current code relies on having a valid DTS (for lining
          up passed through and re-encoded segments), simply compute a DTS
          from the PTS if the DTS was invalid.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1549>

2022-01-21 00:57:16 +0100  Mathieu Duponchelle <mathieu@centricular.com>

        * gst-libs/gst/pbutils/encoding-profile.c:
          encoding-profile: don't order profiles by stream ID ..
          when creating a profile from a discoverer info.
          There is no justification for the existing code, and talking with
          Thibault he cannot remember why the sort was in place.
          On the other hand, this allows GES users to not have to implement
          a callback for the select-tracks-for-object callback when using
          it to trim a single clip, which the output profile was built from:
          track elements will be placed in the appropriate track by default,
          that is the one that will be connected to the matching profile.
          For multi-clip timelines, the situation doesn't change, users will
          still have to implement a callback and do the leg work of placing
          track elements (if any) in a matching track (if any).
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1549>

2022-01-21 00:49:33 +0100  Mathieu Duponchelle <mathieu@centricular.com>

        * gst-libs/gst/pbutils/encoding-profile.c:
          encoding-profile: ignore more output caps fields
          chroma-format, bit-depth-chroma, bit-depth-luma are all informative
          fields set by the H265 and H265 parser upon receiving an SPS.
          They shouldn't be constrained downstream of the parser, instead
          if a user wants those to ultimately match certain values they
          should do so by constraining a profile.
          In this case however, we also always remove the profile constraint
          in order to let encoders pick a suitable one as a function of the
          raw input video format and their own capabilities.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1549>

2022-08-01 17:25:56 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gstparsebin.c:
          parsebin: Avoid crash with unknown streams
          With the new addition of handling unknown sream types we *could* end up with a
          chain which doesn't have a current_pad (it's an intermediary one)
          Fixes #1287
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2822>

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

        * gst-libs/gst/rtsp/gstrtspconnection.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-13 22:37:26 +0900  Seungha Yang <seungha@centricular.com>

        * docs/plugins/gst_plugins_cache.json:
          compositor: Update plugins cache
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

2022-01-18 21:21:23 +0900  Seungha Yang <seungha@centricular.com>

        * gst/compositor/compositor.c:
          compositor: Warn when inputs are SDR/HDR mixed
          Let user know that the result of mixed SDR/HDR is not guaranteed
          to be a good visual quality.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

2021-11-24 20:21:52 +0900  Seungha Yang <seungha@centricular.com>

        * gst/compositor/blend.c:
        * gst/compositor/blend.h:
        * gst/compositor/compositor.c:
        * gst/compositor/compositor.h:
          compositor: Add support for all formats
          For formats which we don't have fast-path implementation, compositor
          will convert it to common unpack formats (AYUV, ARGB, AYUV64 and ARGB64)
          then blending will happen using the intermediate formats.
          Finally blended image will be converted back to the selected output format
          if required.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

2021-11-20 00:41:52 +0900  Seungha Yang <seungha@centricular.com>

        * gst/compositor/blend.c:
        * gst/compositor/blend.h:
        * gst/compositor/compositor.c:
          compositor: Add support for Y444 high bitdepth formats
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

2021-11-19 16:32:38 +0900  Seungha Yang <seungha@centricular.com>

        * gst/compositor/blend.c:
        * gst/compositor/blend.h:
        * gst/compositor/compositor.c:
        * gst/compositor/compositororc-dist.c:
        * gst/compositor/compositororc-dist.h:
        * gst/compositor/compositororc.orc:
          compositor: Add support for I420/I422 high bitdepth formats
          Implementation for {I420,I422}_{10,12}_{LE,BE} formats
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

2021-11-19 21:46:43 +0900  Seungha Yang <seungha@centricular.com>

        * gst/compositor/blend.c:
        * gst/compositor/compositor.c:
        * gst/compositor/compositor.h:
          compositor: Calculate background color only once
          ... instead of do that per fill_color() call in case of RGB format.
          Moreover, respect selected GstVideoColorRange
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1486>

2022-07-27 15:42:44 +1000  Matthew Waters <matthew@centricular.com>

        * gst-libs/gst/rtsp/gstrtspconnection.c:
          rtspconnection: protect cancellable by a mutex
          It is entirely possible for the cancellable to be cancelled (and freed)
          in gst_rtsp_connection_flush() while there may be an ongoing read/write
          operation.
          Nothing prevents gst_rtsp_connection_flush() from waiting for the
          outstanding read/writes.
          This could lead to a crash like (where cancellable has been freed
          within gst_rtsp_connection_flush()):
          #0  0x00007ffff4351096 in g_output_stream_writev (stream=stream@entry=0x7fff30002950, vectors=vectors@entry=0x7ffe2c6afa80, n_vectors=n_vectors@entry=3, bytes_written=bytes_written@entry=0x7ffe2c6af950,  cancellable=cancellable@entry=0x7fff300288a0, error=error@entry=0x7ffe2c6af958) at ../subprojects/glib/gio/goutputstream.c:377
          #1  0x00007ffff44b2c38 in writev_bytes (stream=0x7fff30002950, vectors=vectors@entry=0x7ffe2c6afa80, n_vectors=n_vectors@entry=3, bytes_written=bytes_written@entry=0x7ffe2c6afb90, block=block@entry=1, cancellable=0x7fff300288a0) at ../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c:1320
          #2  0x00007ffff44b583e in gst_rtsp_connection_send_messages_usec (conn=0x7fff30001370, messages=messages@entry=0x7ffe2c6afcc0, n_messages=n_messages@entry=1, timeout=timeout@entry=3000000) at ../subprojects/gst-plugins-base/gst-libs/gst/rtsp/gstrtspconnection.c:2056
          #3  0x00007ffff44d2669 in gst_rtsp_client_sink_connection_send_messages (sink=0x7fffac0192c0, timeout=3000000, n_messages=1, messages=0x7ffe2c6afcc0, conninfo=0x7fffac019610) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:1929
          #4  gst_rtsp_client_sink_try_send (sink=sink@entry=0x7fffac0192c0, conninfo=conninfo@entry=0x7fffac019610, requests=requests@entry=0x7ffe2c6afcc0, n_requests=n_requests@entry=1, response=response@entry=0x0, code=code@entry=0x0) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:2845
          #5  0x00007ffff44d3077 in do_send_data (buffer=0x7fff38075c60, channel=<optimized out>, context=0x7fffac042640) at ../subprojects/gst-rtsp-server/gst/rtsp-sink/gstrtspclientsink.c:3896
          #6  0x00007ffff4281cc6 in gst_rtsp_stream_transport_send_rtp (trans=trans@entry=0x7fff20061f80, buffer=<optimized out>) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream-transport.c:632
          #7  0x00007ffff4278e9b in push_data (stream=0x7fff40019bf0, is_rtp=<optimized out>, buffer_list=0x0, buffer=<optimized out>, trans=0x7fff20061f80) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2586
          #8  check_transport_backlog (stream=0x7fff40019bf0, trans=0x7fff20061f80) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2645
          #9  0x00007ffff42793b3 in send_tcp_message (idx=<optimized out>, stream=0x7fff40019bf0) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2741
          #10 send_func (stream=0x7fff40019bf0) at ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-stream.c:2776
          #11 0x00007ffff7d59fad in g_thread_proxy (data=0x7fffbc062920) at ../subprojects/glib/glib/gthread.c:827
          #12 0x00007ffff7a8ce2d in start_thread () from /lib64/libc.so.6
          #13 0x00007ffff7b12620 in clone3 () from /lib64/libc.so.6
          Fix by adding a cancellable lock and returning an extra reference used
          across all read/write operations.  gst_rtsp_connection_flush() can free
          the in-use cancellable and it will no longer affect any in progress
          read/write.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2799>

2022-07-22 13:13:42 +0100  Tim-Philipp Müller <tim@centricular.com>

        * gst/audiomixer/gstaudiointerleave.c:
          audiointerleave: fix property docs
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2785>

2022-07-23 02:49:20 +1000  Jan Schmidt <jan@centricular.com>

        * gst-libs/gst/video/video-chroma.c:
          video: Fix scaling in 4x horizontal co-sited chroma
          4x downscaling of chroma with co-sited chroma has never worked
          it seems.
          Fixes incorrect videotestsrc output and videoconvert conversions
          to Y41B, YUV9, YVU9 and IYU9 with co-sited chroma.
          e.g.
          gst-launch-1.0 videotestsrc ! video/x-raw,format=Y41B,width=1280,height=720 ! \
          videoconvert ! autovideosink
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2789>

2022-07-02 06:08:57 +0900  Seungha Yang <seungha@centricular.com>

        * gst-libs/gst/video/gstvideoaggregator.c:
          videoaggregator: Don't force upstream alpha format
          "video/x-raw,format=RGBA ! some-video-filter ! video/x-raw,format=NV12"
          is a very common case and therefore such erroring at baseclass
          does not seem to be a desired behavior.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2703>

2022-07-17 00:30:10 +0900  Seungha Yang <seungha@centricular.com>

        * gst-libs/gst/video/video-converter.c:
          video-converter: Use primaries compare function
          Avoid conversion if both color primaries are functionally equal
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765>

2022-07-16 23:36:22 +0900  Seungha Yang <seungha@centricular.com>

        * gst-libs/gst/video/video-color.c:
        * gst-libs/gst/video/video-color.h:
        * tests/check/libs/video.c:
          video-color: Add primaries and colorimetry compare functions
          SMPTE 170M and 240M use the same RGB and white point coordinates
          and therefore both primaries can be considered functionally
          equivalent.
          Also, some transfer functions have different name but equal
          gamma functions. Adding another colorimetry compare function
          to deal with thoes cases at once
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2765>

2022-07-12 14:47:20 +1000  Matthew Waters <matthew@centricular.com>

        * ext/gl/gstglimagesink.c:
          glimagesink: only allow setting the GL display/context if it is a valid value
          Otherwise, when setting the external application context, then the
          display may be cleared and then not used and the asharing mechanism does
          not work anymore.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2750>

2022-07-07 23:40:22 +1000  Jan Schmidt <jan@centricular.com>

        * gst-libs/gst/gl/gstglupload.c:
          glupload: Add raw caps to sink pad when needed.
          When checking if the current upload method can support
          the requested caps filter in _transform_caps(),
          make sure the sink pad reports raw caps.
          Fixes #1311
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2725>

2022-07-07 23:54:44 +1000  Jan Schmidt <jan@centricular.com>

        * gst-libs/gst/gl/gstglupload.c:
          gstglupload: Remove raw caps from individual methods
          Raw memory upload should always be the least preferred input
          caps, only added by the raw memory uploader as the last thing
          in the caps.
          Caps negotiation should still choose raw data when it needs to,
          and other upload methods that can accept raw data buffers will still do so.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2725>

2022-07-11 20:12:30 +0200  Mathieu Duponchelle <mathieu@centricular.com>

        * gst-libs/gst/video/gstvideoaggregator.c:
          videoaggregator: always convert when user provides converter-config
          The `converter-config` property may be used to perform cropping,
          conversion should always be performed when the user set the property
          to a non-NULL value.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2746>

2022-07-08 20:49:21 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>

        * gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
          glwindow_cocoa: fix a leak of the GstNSView
          This leak is also causing a leak of the GstGLCAOpenGLLayer
          which leaks the GstGLWrappedContext and the GstGLDisplay
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2736>

2022-07-08 20:38:51 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>

        * gst-libs/gst/gl/cocoa/gstglcontext_cocoa.m:
          gl: Fix leak of the whole CGL context
          This was leaking the CGL context and several resources
          allocated in the context, around 70MB for a 1080p clip
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2736>

2022-06-14 12:22:22 +0200  Marc Leeman <m.leeman@televic.com>

        * gst-libs/gst/video/video-format.c:
          base: lookup RGB format without alpha
          librfb requests a colour space for depth 32 and bpp 32 with alpha set to
          0x0, treat this the same as depth 24 with bpp 32.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2627>

2022-07-04 17:27:50 +1000  Matthew Waters <matthew@centricular.com>

        * gst/videoconvertscale/gstvideoconvertscale.c:
          videoconvertscale: ensure writable caps when fixating format
          gst_video_convert_scale_get_fixed_format() receives 'othercaps' from
          basetransforms' fixate_caps() vmethod which explicitly mentions that
          '`othercaps` may not be writable'.
          The gst_caps_intersect() call just before may or may not produce new
          caps. Particularly in cases like EMPTY or ANY caps on either of the
          inputs, only a ref is taken and returned to the caller.
          As a result, gst_video_convert_scale_fixate_format() may have attempted
          to modify a non-writable caps structure.
          Fix by adding a gst_caps_make_writable().
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2709>

2022-06-30 00:39:50 +0100  Tim-Philipp Müller <tim@centricular.com>

        * gst/subparse/samiparse.c:
          samiparse: clean up some GString usage
          There's no need to re-assign the return value of
          g_string_append_*() functions and such to the variable
          holding the GString. These return values are just for
          convenience so function calls can be chained. The actual
          GString pointer won't change, it's not a GList after all.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2685>

2022-06-30 00:31:24 +0100  Tim-Philipp Müller <tim@centricular.com>

        * gst/subparse/samiparse.c:
          samiparse: micro-optimise entity handling
          Avoid relocations and hard-code entity string length
          in the struct, since we basically get it for free here.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2685>

2022-06-30 00:13:19 +0100  Tim-Philipp Müller <tim@centricular.com>

        * gst/subparse/samiparse.c:
        * tests/check/elements/subparse.c:
          samiparse: fix handling of self-closing tags
          We would check the wrong string (rest of line rather than element)
          for the / suffix of self-closing tags, which is not only wrong but
          also has atrocious performance with certain strings like the garbled
          nonsense clusterfuzz feeds us, which might cause discoverer to time
          out when processing garbled SAMI files.
          Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47461
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2685>

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

        * gst-libs/gst/gl/gstglupload.c:
          Revert "glupload: Fix caps query with no filter"
          This reverts commit 6f9ae5d7580763b5d18badb76f2166ff0012886a.
          The _transform_caps() function can't tell the difference
          between the caller wanting to know the output caps
          for the current method, or all possible output caps. If
          it includes caps for all possible methods, glupload can
          end up negotiating and sending the wrong output caps
          downstream.
          Partially reverts !2687
          Fixes #1310
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2699>

2022-06-28 09:38:34 +0300  Sebastian Dröge <sebastian@centricular.com>

        * ext/gl/gstglvideomixer.c:
          glvideomixer: Only consider property changes a geometry change if there as an actual change
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2669>

2022-06-27 21:28:07 +0300  Sebastian Dröge <sebastian@centricular.com>

        * docs/plugins/gst_plugins_cache.json:
        * ext/gl/gstglvideomixer.c:
          glvideomixer: Add crop-{left,right,top,bottom} pad properties for cropping inputs
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2669>

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

        * gst-libs/gst/sdp/gstsdpmessage.c:
          sdpmessage: Don't set SDP medias from caps without media/payload/clock-rate fields
          Previously it would've silently failed reading the payload/clock-rate
          and instead would've used some random value that happened to be on the
          stack.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2689>

2022-06-30 12:50:17 +1000  Jan Schmidt <jan@centricular.com>

        * gst-libs/gst/gl/gstglupload.c:
          glupload: Fix caps query with no filter
          If no filter caps are provided with a caps query, always
          generate a full set of all caps from all upload methods,
          not just the configured one. This is needed to handle
          renegotiation when dealing with raw sysmem caps - as the upload
          method might accept raw sysmem caps, but only the raw data
          uploader adds those to the caps query.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2687>

2022-06-30 12:46:31 +1000  Jan Schmidt <jan@centricular.com>

        * gst-libs/gst/gl/gstglupload.c:
          Revert "glupload: allow system memory for dmabuf in transform_caps"
          This reverts commit f3292dc1561a8d62812c3f1a2bb3de5c5bb6a807.
          Only the raw data uploader should add sysmem caps to the
          actual caps query, because we want them to be at the
          lowest priority. If upstream does select to send raw
          caps, then the correct upload method will still
          be chosen because the accept_caps implementation
          will accept them
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2687>

2022-06-30 18:41:01 +1000  Jan Schmidt <jan@centricular.com>

        * gst-libs/gst/gl/gstglupload.c:
          gl: Don't use the full transform_caps() method for reconfiguration check
          When checking if we need to reconfigure when uploading, check
          specifically the output caps of the current method will
          result in compatible/incompatible caps, not the full set
          of output caps from all upload methods.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2687>

2022-06-30 08:42:43 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/video/video.h:
          video: Include new video-sei.h in video.h
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2688>

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-16 10:19:17 +0000  James Hilliard <james.hilliard1@gmail.com>

        * tests/validate/videorate/change_rate_reverse_playback.validatetest:
        * tests/validate/videorate/change_rate_while_playing.validatetest:
          videorate: remove property-value quotes
          Fixes warnings like:
          Received a structure string that contains '="0.5"'. Reading as a gdouble value, rather than a string value. This is undesired behaviour, and with GStreamer 1.22  onward, this will be interpreted as a string value instead because it is wrapped in '"' quotes. If you want to guarantee this value is read as a string, before this change, use '=(string)"0.5"' instead. If you want to read in a gdouble value, leave its value unquoted.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2621>

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-05-13 12:57:06 -0400  Xavier Claessens <xavier.claessens@collabora.com>

        * gst-libs/gst/video/video-frame.c:
        * gst-libs/gst/video/video-frame.h:
        * tests/check/libs/video.c:
          GstVideoFrame: Add g_auto() support
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2412>

2022-06-08 19:18:48 +0300  Vivia Nikolaidou <vivia@ahiru.eu>

        * gst-libs/gst/video/video.c:
        * gst-libs/gst/video/video.h:
          avviddec, video.c, h265parse: Workaround for broken field-based interlaced encoders
          Some encoders (e.g. Makito) have H265 field-based interlacing, but then
          also specify an 1:2 pixel aspect ratio. That makes it kind-of work with
          decoders that don't properly support field-based decoding, but makes us
          end up with the wrong aspect ratio if we implement everything properly.
          As a workaround, detect 1:2 pixel aspect ratio for field-based
          interlacing, and check if making that 1:1 would make the new display
          aspect ratio common. In that case, we override it with 1:1.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2577>

2022-06-12 05:35:27 -0600  James Hilliard <james.hilliard1@gmail.com>

        * gst/playback/gstdecodebin3-parse.c:
        * gst/playback/gstdecodebin3.c:
          decodebin3: fix EOS event sequence
          See docs:
          https://gstreamer.freedesktop.org/documentation/additional/design/seqnums.html?gi-language=c#seqnums-sequence-numbers
          Per docs:
          When a sink element receives an EOS event and creates a new EOS
          message to post, it should copy the seqnum from the event to the
          message because the EOS message is a consequence of the EOS event
          being received.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2588>

2022-04-06 12:56:30 +0100  Tim-Philipp Müller <tim@centricular.com>

        * gst-libs/gst/rtsp/gstrtspconnection.c:
        * gst-libs/gst/video/gstvideodecoder.c:
        * gst-libs/gst/video/gstvideoencoder.c:
        * meson.build:
        * tests/check/elements/audioresample.c:
          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-05-16 19:29:10 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>

        * gst-libs/gst/video/meson.build:
          video: add new video-sei.h header to the list of video_headers
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458>

2022-02-27 18:41:12 +0000  Andoni Morales Alastruey <ylatuya@gmail.com>

        * gst-libs/gst/video/video-sei.c:
        * gst-libs/gst/video/video-sei.h:
          Fix documentation
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458>

2022-02-17 15:55:19 +1100  Brad Hards <bradh@frogmouth.net>

        * gst-libs/gst/video/video-sei.c:
        * gst-libs/gst/video/video-sei.h:
          h264parse: add unit test for Precision Time Stamp in SEI messages
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458>

2022-02-17 15:55:19 +1100  Brad Hards <bradh@frogmouth.net>

        * gst-libs/gst/video/video-sei.c:
          h264parse: fix copying of data and UUID
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458>

2021-12-19 19:14:05 +0100  Andoni Morales Alastruey <ylatuya@gmail.com>

        * gst-libs/gst/video/meson.build:
        * gst-libs/gst/video/video-sei.c:
        * gst-libs/gst/video/video-sei.h:
          h264parse: add support Precision Time Stamp in SEI messages
          Expose User Data Unregistered as a new Meta and add
          API to parse Precision Time Stamp (ST 0604).
          Fixes #927
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1458>

2022-05-27 14:18:30 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/video/video-info.c:
          video: Fix NV12_16L32 size calculation
          The subsampling of the second plane was not taken into account, resulting in a
          16bit per pixel buffers instead of 12.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2512>

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

        * gst/playback/gstplaybin3.c:
          playbin3: Configure combiner on pad-added if needed
          When collection is updated, decodebin3 exposes pad first and then
          streams-selected message is posted.
          The condition can cause a situation where playbin3 links non-existing
          combiner/playsink pads (since streams-selected is not posted yet) with
          new decodebin output pad. This commit will re-check selected/active
          streams condition on pad-added and reconfigure output if needed.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2482>

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

        * gst-libs/gst/tag/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 12:17:59 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/pbutils/descriptions.c:
        * gst-libs/gst/pbutils/descriptions.h:
          pbutils: Add GST_PBUTILS_CAPS_DESCRIPTION_FLAG_METADATA and ONVIF XML Timed MetaData
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2453>

2022-05-15 16:53:12 +0000  Thibault Saunier <tsaunier@igalia.com>

        * gst-libs/gst/rtp/gstrtcpbuffer.c:
        * gst-libs/gst/rtp/gstrtcpbuffer.h:
        * tests/check/libs/rtp.c:
          rtcpbuffer: Allow padding on first reduced size packets
          It is valid to have the padding set to 1 on the first packet and it
          happens very often from TWCC packets coming from libwebrtc. This means
          that we were totally ignoring many TWCC packets.
          Fix test that checked that a first packet with padding was not valid and
          instead test a single twcc packet with padding to check precisely what
          this patch was about.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2422>

2022-05-13 13:31:55 +0200  Alicia Boya García <aboya@igalia.com>

        * gst-libs/gst/app/gstappsink.c:
        * tests/check/elements/appsink.c:
          appsink: Fix race condition on caps handling
          Background:
          Whenever a caps event is received by appsink, the caps are stored in the
          same internal queue as buffers. Only when enough buffers have been
          popped from the queue to reach the caps, `priv->sample` gets its caps
          updated to match, so that they are correct for the following buffers.
          Note that as far as upstream elements are concerned, the caps of appsink
          are updated immediately when the CAPS event is sent. Samples pulled from
          appsink retain the old caps until a later buffer -- one that was sent by
          upstream elements after the new caps -- is pulled.
          The race condition:
          When a flush is received, appsink clears the entire internal queue. The
          caps of `priv->sample` are not updated as part of this process, and
          instead remain as those of the sample that was last pulled by the user.
          This leaves open a race condition where:
          1. Upstream sends a new caps event, and possibly some buffers for the
          new caps.
          2. Upstream sends a flush (possibly from a different thread).
          3. Upstream sends a new buffer for the new caps. Since as far as
          upstream is concerned, appsink caps are the new caps already, no new
          CAPS event is sent.
          4. The appsink user pulls a sample, having not pulled before enough
          samples to reach the buffers sent in step 1.
          Bug: the pulled sample has the old caps instead of the new caps.
          Fixing the race condition:
          To avoid this problem, when a buffer is received after a flush,
          `priv->sample`'s caps should be updated with the current caps before the
          buffer is added to the internal queue.
          Interestingly, before this patch, appsink already had code for this, in
          gst_app_sink_render_common():
          /* queue holding caps event might have been FLUSHed,
          * but caps state still present in pad caps */
          if (G_UNLIKELY (!priv->last_caps &&
          gst_pad_has_current_caps (GST_BASE_SINK_PAD (psink)))) {
          priv->last_caps = gst_pad_get_current_caps (GST_BASE_SINK_PAD (psink));
          gst_sample_set_caps (priv->sample, priv->last_caps);
          GST_DEBUG_OBJECT (appsink, "activating pad caps %" GST_PTR_FORMAT,
          priv->last_caps);
          }
          This code assumes `priv->last_caps` is reset when a flush is received,
          which makes sense, but unfortunately, there was no code in the flush
          code path resetting it.
          This patch adds such code, therefore fixing the race condition. A unit
          test demonstrating the bug and testing its behavior with the fix has
          also been added.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2413>

2022-05-16 12:34:36 -0400  U. Artie Eoff <ullysses.a.eoff@intel.com>

        * gst-libs/gst/video/gstvideoaggregator.c:
          videoaggregator: unref temporary caps
          The "possible_caps" needs unref after finished using to
          avoid memory leak.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2430>

2022-05-05 02:54:37 +0900  Seungha Yang <seungha@centricular.com>

        * tools/gst-play.c:
          tools: gst-play: Print position even if duration is unknown
          Gives better visual feedback regarding position information
          although duration is unknown, live streams for example.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2365>

2022-05-09 16:21:55 +1000  Matthew Waters <matthew@centricular.com>

        * gst-libs/gst/gl/gstglcontext.c:
        * gst-libs/gst/gl/gstglcontext_private.h:
        * gst-libs/gst/gl/gstglcontextquirks.c:
        * gst-libs/gst/gl/meson.build:
          gl/context: disable timer queries for ARM Mali-G52
          Performing a timer query with a default framebuffer that is incomplete
          (from using a surfaceless context) will produce GL errors.  Disable the
          timer query on this platform to avoid the errors.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2396>

2022-05-07 04:43:49 +0900  Seungha Yang <seungha@centricular.com>

        * tools/gst-device-monitor.c:
          tools: device-monitor: Print string property as-is without serialize
          gst_value_serialize() does more than what's needed to printf-ing
          especially when given GValue is already string. Just print string
          value as-is without gst_value_serialize() to avoid unreadable
          string print, especially for multi-bytes character encoding cases.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2387>

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

        * gst/playback/gstplaybin3.c:
        * gst/playback/gstplaysink.c:
        * gst/playback/gstplaysink.h:
          playbin3: Cleanup and refactor combiner sourcecombine
          * Remove fields no longer used, or that can be replaced by smaller code
          * Rename "channels" to a more meaningful "input pads"
          * Directly handle/use combiner pads in the combiners instead of on the playbin3
          main structure
          Remove the corresponding combiner sinkpad whenever a uridecodebin3 source pad
          goes away
          * If used, store the corresponding combiner sink pad in the SourcePad helper
          structure
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2384>

2022-05-03 16:25:19 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gstparsebin.c:
          parsebin: Don't modify inexistant GstStream
          When handling exposing un-handled streams, we can only replace the GstStream for
          those we are creating ourselves (i.e. the fallback collection).
          Fixes assertions when the demuxer creates those streams
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2353>

2022-05-03 16:08:39 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          playbin3: Don't use unknown types for default selection
          When creating a fallback default selection from a collection, don't attempt to
          use unknown stream types
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2353>

2022-05-03 13:37:31 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst/audioconvert/gstaudioconvert.c:
          audioconvert: If no channel-mask can be fixated then use a NONE channel layout
          Otherwise this is generating caps without a channel-mask, which is
          invalid for >1 channels and will always fail negotiation.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2350>

2022-05-02 14:36:03 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * docs/plugins/gst_plugins_cache.json:
          doc: Update cache for NV12_4L4 and NV12_16LE32 gl support
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-14 15:02:11 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/gl/egl/gsteglimage.c:
        * gst-libs/gst/gl/gstglcolorconvert.c:
        * gst-libs/gst/gl/gstglcolorconvert.h:
        * gst-libs/gst/gl/gstglformat.c:
        * gst-libs/gst/gl/gstglmemory.h:
          opengl: Add NV12_4L4 conversion support
          This format is produced notably by Hantro G1/G2 HW. Using a shader instead of
          the Hantro embedded converter helps reduce drastrictly the memory usage at a
          relatively small GPU overhead.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-12 14:18:59 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/gl/egl/gsteglimage.c:
        * gst-libs/gst/gl/gstglcolorconvert.c:
        * gst-libs/gst/gl/gstglcolorconvert.h:
        * gst-libs/gst/gl/gstglformat.c:
        * gst-libs/gst/gl/gstglmemory.h:
          opengl: Add NV12_16L32S conversion support
          This adds a first detiling shader with initial support for
          NV12_16L32S as produced by Mediatek decoders.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-13 14:54:40 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/gl/gstglsl.c:
          glsl: Enable GLSL 1.30 if we have OpenGL 3.0/3.1
          As implemented, we only support OpenGL 3 API from version 3.2. Though, there
          is no issue enabling GLSL 1.30 even if we are going to restrict our API usage
          to 2. This allows using texelFetch() on OpenGL 3.0 and 3.1 drivers.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-12 12:24:03 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/gl/egl/gsteglimage.c:
        * gst-libs/gst/gl/gstglmemory.c:
        * gst-libs/gst/gl/gstglutils.c:
          opengl: Add low level support for tiled formats
          This adds support for tiled format in stride and plane size
          code.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-12 12:16:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/video/video-frame.c:
          video: Port video frame to the new tile size helper
          This is now moved to the library, so it can be used in multiple
          places.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-12 12:14:03 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/video/video-format.c:
        * gst-libs/gst/video/video-format.h:
          video: Add a helper to get the tile size information
          Since the addition of tiling format with subsampled tile size
          (NV12_16L32S), getting the tile width/height shifts and tile
          size have become more complex. Add a helper to extract and
          scale this information for the selected plane and format.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-12 12:18:06 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/gl/egl/gsteglimage.c:
          eglimage: Add missing NV21/61 support
          Caps would allow that, but selecting this format would lead to
          an "no reached" assertion in the code.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190>

2022-04-27 10:18:39 +0100  Philippe Normand <philn@igalia.com>

        * gst-libs/gst/video/gstvideodecoder.c:
          videodecoder: release stream lock after handling gap events
          The stream lock is taken before handling gap events but was not released in all
          possible runtime situations. This issue was introduced in:
          https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1274
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2307>

2022-04-28 15:32:27 +1000  Matthew Waters <matthew@centricular.com>

        * gst/subparse/samiparse.c:
          subparse: don't deref a potentially NULL variable
          If the html SAMI data is malformed, then retrieving the attribute name
          may fail.  We then cannot retrieve the attribute value.
          Fixes: https://oss-fuzz.com/testcase-detail/4700130671984640
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2317>

2022-04-27 09:22:40 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gstparsebin.c:
        * tools/gst-play.c:
          parsebin: Expose streams of unknown type
          This actually respects the existing `expose-all-streams` property by exposing
          them and having them present in the stream collection (as streams of type
          unknown).
          Fixes #1179
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2309>

2022-04-27 08:23:59 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gstplaybin2.c:
          playbin2: Remove dead code
          blacklisted_mimes has been empty for ages. Remove the code "using" it.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2306>

2022-04-21 02:04:57 +0200  Mathieu Duponchelle <mathieu@centricular.com>

        * docs/plugins/gst_plugins_cache.json:
        * ext/pango/gsttimeoverlay.c:
        * ext/pango/gsttimeoverlay.h:
          timeoverlay: add support for reference timestamp time mode
          + update date-time mode to actually use the timestamp that
          was selected with the time-mode property
          Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2252>

2022-04-27 02:08:00 +0200  Mathieu Duponchelle <mathieu@centricular.com>

        * gst-libs/gst/rtp/gstrtpbasepayload.c:
          rtpbasepayload: always store input buffer meta before negotiation
          The decision to store the input buffer depends on whether extensions
          are to be added to the output buffer, I assume as an optimization.
          This creates an issue for subclasses that call negotiate(), where
          header_exts is actually populated, from their handle_buffer()
          implementation: at chain time, no header extension has been negotiated
          yet, which means that we don't add extensions to the first batch of
          buffers that comes out.
          Keep track of whether negotiate has been called (this is different
          from the negotiated field) and always store the input buffer until
          then. This fixes the issue while largely preserving the optimization.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2304>

2022-04-24 23:19:00 +0800  He Junyan <junyan.he@intel.com>

        * gst/videoconvertscale/gstvideoconvertscale.c:
          videoscale: Fix the src video info error in transfer_colorimetry_from_input()
          Pipeline such as:
          gst-launch-1.0 -vf videotestsrc ! video/x-raw,format=NV12,colorimetry=\(string\)bt709 \
          ! videoscale ! video/x-raw,format=I420 ! fakesink
          Always trigger a error:
          ERROR             video-info video-info.c:556:gst_video_info_from_caps: no width property given
          Because it is called before the fixate_size(), the src caps' resolution
          may be absent or not fixed. That causes that the src video info can not
          be created correctly and we can not inherit the colorimetry and chroma-site
          from the input caps.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2289>

2022-04-26 10:58:08 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

        * gst/videorate/gstvideorate.c:
          videorate: fix assertion when pushing last and only buffer without duration
          Fixing this pipeline:
          gst-launch-1.0 filesrc location=sample.png ! pngdec ! videorate ! fakesink
          - videorate receives a single buffer with pts = 0, duration = invalid;
          - then it receives eos triggering this buffer to be pushed downstream;
          - the pushing code was assuming that a duration was set, which is
          impossible as we received a single buffer and no output framerate was
          set either. So the best we can do is to push the buffer without
          duration.
          Fix #1177
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2296>

2022-04-26 09:29:39 +0200  Edward Hervey <edward@centricular.com>

        * ext/ogg/gstoggstream.c:
          oggdemux: Protect against invalid framerates
          This check wasn't done for all mappings.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2295>

2022-03-07 08:46:57 -0500  Xavier Claessens <xavier.claessens@collabora.com>

        * gst-libs/gst/gl/meson.build:
          Meson: Fix deprecation warnings
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1876>

2022-04-21 11:41:43 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst/videorate/gstvideorate.c:
          Revert "videorate: Update the base time on segment updates"
          This reverts commit 75b4809ebc23814009bebc70c775ab44d85decf2.
          See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2254>

2022-04-21 11:41:36 +0300  Sebastian Dröge <sebastian@centricular.com>

        * tests/check/elements/videorate.c:
          Revert "videorate: Add test for segment update"
          This reverts commit a76f38b2c7ddbed546bb058c32ebcf8a553c003f.
          See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2254>

2022-04-21 11:41:25 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst/videorate/gstvideorate.c:
        * tests/check/elements/videorate.c:
          Revert "videorate: Only "close" the segment if it is discontinous"
          This reverts commit 6f7922b4dbba5ed780e7b0988669a81848a9e333.
          See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2254>

2022-04-21 11:41:15 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst/videorate/gstvideorate.c:
          Revert "videorate: Drop incoming buffers that are outside of the segment"
          This reverts commit 24fd80344dbc059b72e13d813ca82f414a9d6cce.
          See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2254>

2022-04-21 11:40:47 +0300  Sebastian Dröge <sebastian@centricular.com>

        * tests/check/elements/videorate.c:
          Revert "videorate: Add unit test for closing a segment and opening a separate one"
          This reverts commit 98f2a84a289ed4d4cfac9bc5c73182a56eefa99c.
          See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2186
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2254>

2020-11-26 18:18:52 +0100  Mathieu Duponchelle <mathieu@centricular.com>

        * gst-libs/gst/video/gstvideoaggregator.c:
          videoaggregator: keep old buffer when processing a MISSING_DATA gap
          GAP events flagged with MISSING_DATA are transformed into GAP buffers
          flagged with CORRUPTED.
          In these cases, it is preferable to simply keep rendering the previous
          buffer (if there was one) instead of flashing the pad in and out of
          view.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/708>

2020-11-26 18:16:10 +0100  Mathieu Duponchelle <mathieu@centricular.com>

        * gst/compositor/compositor.c:
          compositor: fix prepare_frame obscuring check
          A pad without a buffer or with a GAP buffer cannot obscure a
          pad below it. Ignore those when considering whether a pad should
          be drawn.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/708>

2020-11-26 15:57:10 +0100  Mathieu Duponchelle <mathieu@centricular.com>

        * gst/compositor/compositor.c:
          compositor: a pad without a frame can't obscure the background
          Skip those when considering whether the background should be
          drawn
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/708>

2022-04-20 16:25:49 -0500  Olivier Crête <olivier.crete@collabora.com>

        * tests/check/elements/videoscale.c:
          videoscale: Add test to ensure that non-scaled metas are kept
          Just make sure that we're not breaking non-scaled metas
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1630>

2022-02-02 15:28:15 +0000  James Cowgill <james.cowgill@blaize.com>

        * tests/check/elements/videoscale.c:
          videoscale: Add test for transform_meta function
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1630>

2022-02-02 15:28:21 +0000  James Cowgill <james.cowgill@blaize.com>

        * gst/videoconvertscale/gstvideoconvertscale.c:
          videoscale: Don't copy scaled metas
          Returning TRUE from the `transform_meta` function tells
          GstBaseTransform to copy the meta into the new buffer. If videoscale
          has already transformed a meta by scaling it, it should always return
          FALSE to avoid duplicating the meta.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1630>

2022-04-01 15:16:20 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

        * sys/ximage/ximagesink.c:
        * sys/xvimage/xvimagesink.c:
          x11: Fix unused variable warnings
          These are emitted when XInput 2 is not available.
          ```
          ../subprojects/gst-plugins-base/sys/ximage/ximagesink.c: In function ‘gst_x_image_sink_handle_xevents’:
          ../subprojects/gst-plugins-base/sys/ximage/ximagesink.c:696:29: warning: unused variable ‘state’ [-Wunused-variable]
          696 |   GstNavigationModifierType state = GST_NAVIGATION_MODIFIER_NONE;
          |                             ^~~~~
          ../subprojects/gst-plugins-base/sys/ximage/ximagesink.c:694:35: warning: unused variable ‘touch_frame_open’ [-Wunused-variable]
          694 |   gboolean pointer_moved = FALSE, touch_frame_open = FALSE;
          |                                   ^~~~~~~~~~~~~~~~
          ../subprojects/gst-plugins-base/sys/xvimage/xvimagesink.c: In function ‘gst_xv_image_sink_handle_xevents’:
          ../subprojects/gst-plugins-base/sys/xvimage/xvimagesink.c:427:35: warning: unused variable ‘touch_frame_open’ [-Wunused-variable]
          427 |   gboolean pointer_moved = FALSE, touch_frame_open = FALSE;
          |                                   ^~~~~~~~~~~~~~~~
          ../subprojects/gst-plugins-base/sys/xvimage/xvimagesink.c:426:29: warning: unused variable ‘state’ [-Wunused-variable]
          426 |   GstNavigationModifierType state = GST_NAVIGATION_MODIFIER_NONE;
          |                             ^~~~~
          ```
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2093>

2022-04-21 10:21:37 -0400  Thibault Saunier <tsaunier@igalia.com>

        * tests/validate/convertscale/convert_disable_scale.validatetest:
        * tests/validate/convertscale/convert_disable_scale/flow-expectations/log-converter-src-expected:
        * tests/validate/convertscale/scale_disable_convert.validatetest:
        * tests/validate/convertscale/scale_disable_convert/flow-expectations/log-scaler-src-expected:
          tests: convertscale: Do not log EOS events in validateflow
          We already checked that we are getting an EOS before going back to ready
          and adding the EOS at the end of the .validateflow is racy as the ERROR
          message might reach the bus before it is logged.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2264>

2022-04-14 09:48:14 -0400  Thibault Saunier <tsaunier@igalia.com>

        * docs/plugins/gst_plugins_cache.json:
        * gst/videoconvertscale/gstvideoconvert.c:
        * gst/videoconvertscale/gstvideoconvertscale.c:
        * gst/videoconvertscale/gstvideoconvertscale.h:
        * gst/videoconvertscale/gstvideoscale.c:
        * tests/validate/convertscale/convert_disable_scale.validatetest:
        * tests/validate/convertscale/convert_disable_scale/flow-expectations/log-converter-src-expected:
        * tests/validate/convertscale/scale_disable_convert.validatetest:
        * tests/validate/convertscale/scale_disable_convert/flow-expectations/log-scaler-src-expected:
        * tests/validate/meson.build:
          videoconvertscale: Add properties to disable scaling/converting in videoconvert/videoscale
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/898>

2021-05-21 18:55:25 -0400  Thibault Saunier <tsaunier@igalia.com>

        * gst/videoconvertscale/gstvideoconvert.c:
        * gst/videoconvertscale/gstvideoconvertscale.c:
        * gst/videoconvertscale/gstvideoconvertscale.h:
        * gst/videoconvertscale/gstvideoscale.c:
          videoconvertscale: Don't claim we can support any kind of memory
          Since d0133a2d11566ff4c0cded7af8dfdff0046e0e8b "videoconvert: Allow
          passthrough for ANY caps features" videoconvert will always claim that
          it supports any kind of memory which is true in very specific case (when
          it is running in passthrough mode). To get elements that autoplug
          converters depending on the caps running in the pipeline (like
          autovideoconvert), we need to have converters no lie about what they can
          do when queried `accept_caps` or `query_caps`.
          This still accepts any caps feature as before but it introduces
          a restriction in the way we handle memory capsfeatures.
          We keep previous behaviour in videoconvert and videoscale.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/898>

2020-04-17 15:23:03 -0400  Thibault Saunier <tsaunier@igalia.com>

        * docs/plugins/gst_plugins_cache.json:
        * gst/meson.build:
        * gst/videoconvert/gstvideoconvert.c:
        * gst/videoconvert/meson.build:
        * gst/videoconvertscale/README:
        * gst/videoconvertscale/gstvideoconvert.c:
        * gst/videoconvertscale/gstvideoconvert.h:
        * gst/videoconvertscale/gstvideoconvertscale.c:
        * gst/videoconvertscale/gstvideoconvertscale.h:
        * gst/videoconvertscale/gstvideoconvertscaleplugin.c:
        * gst/videoconvertscale/gstvideoscale.c:
        * gst/videoconvertscale/gstvideoscale.h:
        * gst/videoconvertscale/meson.build:
        * gst/videoscale/README:
        * gst/videoscale/meson.build:
        * meson_options.txt:
          Introduce the videocolorscale element
          Now that videoconvert and videoscale's are both based on
          GstVideoConverter and are using the exact same code, it makes much more
          sense to have one element doing the two operation, and it can be
          more efficient in some cases (one single path for both operations).
          This removes the `videoscale` and `videoconvert` plugins but keeps the element
          but makes them also do both operations (adding some APIs to each element).
          There is a small change in API for the `videoscale:dither` property which
          was previously a totally unused boolean, it is now an enum and is used.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/898>

2022-04-07 19:36:25 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/sdp/gstsdpmessage.c:
          sdp: Parse the RFC5576 Source-specific media SDP attributes into caps
          The format of the caps fields is
          ssrc-(SSRC_VALUE)-(ATTRIBUTE_NAME)=(ATTRIBUTE_VALUE)
          .
          Parsing of the attributes from the caps into the SDP is not implemented
          as this depends not only a single stream's caps but on the whole rtpbin
          configuration.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132>

2022-04-18 18:53:45 +0900  Camilo Celis Guzman <camilo@pexip.com>

        * ext/gl/gstglmixerbin.c:
          gstglmixerbin: minor refactor of _find_element_pad_template
          As suggested by @slomo, make the loop more readable and prevent returning
          a garbage value to the caller from the previous implementation.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2232>

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-app.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/alsa/gstalsaelement.c:
        * ext/alsa/gstalsaplugin.c:
        * ext/alsa/gstalsasink.c:
        * ext/alsa/gstalsasrc.c:
        * ext/cdparanoia/gstcdparanoiasrc.c:
        * ext/gl/gstgltestsrc.c:
        * ext/ogg/gstoggdemux.c:
        * gst-libs/gst/audio/gstaudiobasesrc.c:
        * gst-libs/gst/audio/gstaudiocdsrc.c:
        * gst-libs/gst/gl/gstglbasesrc.c:
        * gst-libs/gst/pbutils/descriptions.c:
        * gst-libs/gst/pbutils/missing-plugins.c:
        * gst-libs/gst/pbutils/pbutils.c:
        * gst-libs/gst/tag/gsttagdemux.c:
        * gst-libs/gst/tag/lang.c:
        * gst-libs/gst/tag/tags.c:
        * gst/encoding/gstencodebasebin.c:
        * gst/encoding/gstencodingelements.c:
        * gst/playback/gstdecodebin2.c:
        * gst/playback/gstparsebin.c:
        * gst/playback/gstplaybackelement.c:
        * gst/playback/gstplaybackplugin.c:
        * gst/playback/gstplaybin2.c:
        * gst/playback/gstplaybin3.c:
        * gst/playback/gstplaysink.c:
        * gst/playback/gstplaysinkaudioconvert.c:
        * gst/playback/gstplaysinkconvertbin.c:
        * gst/playback/gstplaysinkvideoconvert.c:
        * gst/playback/gsturidecodebin.c:
        * gst/playback/gsturidecodebin3.c:
        * gst/playback/gsturisourcebin.c:
        * gst/tcp/gstmultifdsink.c:
        * gst/tcp/gstmultihandlesink.c:
        * gst/tcp/gstmultisocketsink.c:
        * gst/tcp/gstsocketsrc.c:
        * gst/tcp/gsttcpclientsink.c:
        * gst/tcp/gsttcpclientsrc.c:
        * gst/tcp/gsttcpserversink.c:
        * gst/tcp/gsttcpserversrc.c:
        * tools/gst-device-monitor.c:
        * tools/gst-play.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-03-25 11:21:03 -0400  Xavier Claessens <xavier.claessens@collabora.com>

        * tools/gst-play.c:
          gst-play: Do not split translatable string
          Concatenating N_() strings does not work with gi18n.h macro, was working
          only with GStreamer's redefinition.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028>

2021-12-08 11:48:08 +0000  Thibault Saunier <tsaunier@igalia.com>

        * gst-libs/gst/gl/meson.build:
          cuda: Factor out a public GstCUDA library
          So applications and elements implemented outside GStreamer can reuse
          our infrastructure
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1472>

2022-04-19 11:05:05 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/video/video-format.c:
        * gst-libs/gst/video/video-frame.c:
          video: Fix possible overrun when iterating comp[] array
          Fix 2 iterations that can overrun the array if the number of component is
          equal to the size of the array.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2239>

2022-04-19 10:53:15 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/video/video-frame.c:
          Revert "video-frame: avoid possible out of bound memory access"
          This reverts commit c4255f08f787ff6a41504b538fa4c2e911d40ec7.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2239>

2022-04-18 15:44:47 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

        * gst-libs/gst/sdp/meson.build:
          meson: Add -Wl,-rpath,${libdir} on macOS
          We made the gstreamer installation prefix relocatable by picking up
          plugins relative to the location of libgstreamer-1.0.dylib, similar to
          how it's done for Windows:
          https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1627
          This had a lot of side-effects:
          https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1051
          https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/363
          https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/371
          https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/362
          A partial fix for the cerbero side of these was:
          https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/807
          However, this relied on the consumers knowing that they need to add
          `LC_RPATH` entries to the libdir of the prefix. This is done
          automatically by build systems like Meson, but not by others, such as
          Autotools, CMake, Cargo, XCode, etc. For those, we need to add the
          RPATH entries to the gstreamer-1.0.pc file.
          This also has the side-effect of fixing the loading of gstreamer rust
          plugins on macOS:
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1159
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1149
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2218>

2022-04-18 18:14:44 +0900  Camilo Celis Guzman <camilo@pexip.com>

        * gst-libs/gst/video/video-frame.c:
          video-frame: avoid possible out of bound memory access
          Although the components' initialization code would fill in -1 to all
          unset components, make the code a bit more defensive and check for an
          index bound first.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2231>

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

        * docs/plugins/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>

2021-05-25 14:41:51 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: fix collection leak
          get_merged_collection() returns an owned stream collection and was
          leaked in the else block.
          Fix leak when running:
          GST_TRACERS=leaks GST_DEBUG="GST_TRACER:7,leaks:6" gst-play-1.0 --use-playbin3 test.mkv
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/954>

2022-04-15 14:03:08 +0900  hoonhee.lee <hoonhee.lee@lge.com>

        * gst/playback/gstplaybin3.c:
          playbin3: fix missing lock when unknown stream type in pad-removed cb
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2193>

2022-04-14 15:21:48 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Don't duplicate stream selections
          Make sure that the requested stream selection isn't identical to the current
          one. If that's the case, just carry on as usual.
          This avoids multiple `streams-selected` posting ... when the selection didn't
          change.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2185>

2022-04-14 18:44:48 +0100  Tim-Philipp Müller <tim@centricular.com>

        * gst-libs/gst/app/gstappsrc.c:
          appsrc: fix annotations
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2188>

2022-04-15 19:55:34 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/rtp/gstrtpbasepayload.c:
          rtpbasepayload: Don't write header extensions if there's no corresponding input buffer for the packet
          The GstRTPHeaderExtension API requires the input buffer to exist.
          This can happen if the output packet is generated e.g. from a caps or
          tags event like in the case for rtpgstpay.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2198>

2022-04-14 20:10:46 +1000  Brad Hards <bradh@frogmouth.net>

        * tests/interactive/audio-trickplay.c:
        * tests/interactive/benchmark-appsink.c:
        * tests/interactive/benchmark-appsrc.c:
        * tests/interactive/benchmark-video-conversion.c:
        * tests/interactive/input-selector-test.c:
        * tests/interactive/meson.build:
        * tests/interactive/output-selector-test.c:
        * tests/interactive/playback/decodetest.c:
        * tests/interactive/playback/test.c:
        * tests/interactive/playback/test2.c:
        * tests/interactive/playback/test3.c:
        * tests/interactive/playback/test4.c:
        * tests/interactive/playback/test5.c:
        * tests/interactive/playback/test6.c:
        * tests/interactive/playback/test7.c:
        * tests/interactive/playbin-text.c:
        * tests/interactive/position-formats.c:
        * tests/interactive/stress-playbin.c:
        * tests/interactive/stress-videooverlay.c:
        * tests/interactive/test-box.c:
        * tests/interactive/test-colorkey.c:
        * tests/interactive/test-effect-switch.c:
        * tests/interactive/test-header-compile:
        * tests/interactive/test-overlay-blending.c:
        * tests/interactive/test-resample.c:
        * tests/interactive/test-reverseplay.c:
        * tests/interactive/test-scale.c:
        * tests/interactive/test-textoverlay.c:
        * tests/interactive/test-videooverlay.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-12 01:35:43 +0900  Seungha Yang <seungha@centricular.com>

        * tools/meson.build:
          meson: gst-play: Restore Windows high-resolution timer support
          Fix regression of the commit 2952a73f4083487f33ae83407bef5245d2f8fef2
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2154>

2022-04-12 01:01:23 +0900  Seungha Yang <seungha@centricular.com>

        * tools/gst-play.c:
        * tools/meson.build:
          win32: Enable high-resolution timer for MinGW build
          timeapi.h is missing in our MinGW toolchain. Include mmsystem.h
          header instead, which defines struct and APIs in case of our MinGW
          toolchain. Note that in case of native Windows10 SDK (MSVC build),
          mmsystem.h will include timeapi.h
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2153>

2022-04-12 15:23:08 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/rtp/gstrtpbasepayload.c:
          Fix `transfer` gobject-introspection annotation typos
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2160>

2022-04-10 10:55:02 +1000  Matthew Waters <matthew@centricular.com>

        * gst/subparse/gstsubparseelement.c:
          subparse: don't try to index string with -1
          If the len of the string turns out to be 0, str[len - 1] resolved to
          str[-1] which is not a good idea.
          Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46543
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2147>

2022-04-08 11:10:49 +1000  Matthew Waters <matthew@centricular.com>

        * ext/ogg/gstoggstream.c:
        * ext/ogg/vorbis_parse.c:
        * ext/ogg/vorbis_parse.h:
          ogg: fix possible buffer overrun
          If an ogg stream does not match our expectations of how the end of a
          buffer may be structured, it was possible to read memory past the end of
          the buffer parsed by libogg.  Include a bounds check for this case and
          stop parsing.
          Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3930
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2134>

2022-04-08 01:52:32 +0200  Mathieu Duponchelle <mathieu@centricular.com>

        * gst-libs/gst/rtp/gstrtpbasepayload.c:
          rtpbasepayload: fix transfer annotation for push and push_list
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2133>

2022-04-07 10:08:37 +0900  hoonhee.lee <hoonhee.lee@lge.com>

        * gst-libs/gst/riff/riff-media.c:
          riff-media: fix memory leak after usage for g_strjoin
          This leak is observed with valgrind.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2129>

2022-04-06 18:08:46 +0200  Bastian Krause <bst@pengutronix.de>

        * ext/gl/gstgltransformation.c:
        * ext/gl/gstgltransformation.h:
          gltransformation: let graphene alloc its structures memory aligned
          With NEON instructions enabled, graphene expects the memory passed to it
          16-byte-aligned. Otherwise unaligned memory access faults occur causing
          SIGBUS signals.
          graphene has alloc functions for its structures that take care of this,
          so use them.
          See also: https://github.com/ebassi/graphene/issues/215#issuecomment-794744829
          Suggested-by: Sebastian Dröge <sebastian@centricular.com>
          Signed-off-by: Bastian Krause <bst@pengutronix.de>
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1321>

2022-04-04 10:46:24 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

        * gst-libs/gst/app/gstappsrc.c:
          appsrc: Clarify buffer ref semantics in signals
          The documentation could be read to mean that the caller continuous to
          'own' the buffer, and that there is some other mechanism to find out
          when to unref it.
          Clarify that "not taking ownership" here means "taking a reference",
          and specify that you can unref it at any time after calling the
          function.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2110>

2021-01-21 16:01:38 +0800  Zhao Zhili <quinkblack@foxmail.com>

        * tests/examples/gl/gtk/gstgtk.c:
        * tests/examples/playback/playback-test.c:
          examples: fix build on macOS with gtk+-quartz-3.0
          gdk_quartz_window_get_nsview is not declared in the header file now:
          error: implicit declaration of function 'gdk_quartz_window_get_nsview'
          is invalid in C99 [-Werror,-Wimplicit-function-declaration]
          fixes #979
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2095>

2022-04-01 21:47:59 +0800  Haihua Hu <jared.hu@nxp.com>

        * ext/gl/gstglelement.c:
        * sys/ximage/ximage.c:
        * sys/xvimage/xvimage.c:
        * tests/check/elements/glfilter.c:
        * tests/check/elements/glimagesink.c:
        * tests/check/elements/glmixer.c:
        * tests/check/elements/glstereo.c:
        * tools/gst-play.c:
          ximagesink/xvimagesink: use GST_XINITTHREADS to ensure call to XInitThreads
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2098>

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/alsa/meson.build:
        * ext/cdparanoia/meson.build:
        * ext/libvisual/meson.build:
        * ext/ogg/meson.build:
        * ext/opus/meson.build:
        * ext/pango/meson.build:
        * ext/theora/meson.build:
        * ext/vorbis/meson.build:
        * gst-libs/gst/sdp/meson.build:
        * gst/tcp/meson.build:
        * gst/videoscale/meson.build:
        * gst/videotestsrc/meson.build:
        * gst/volume/meson.build:
        * meson.build:
        * sys/ximage/meson.build:
        * sys/xvimage/meson.build:
        * tests/check/meson.build:
        * tests/examples/app/meson.build:
        * tests/examples/audio/meson.build:
        * tests/examples/decodebin_next/meson.build:
        * tests/examples/dynamic/meson.build:
        * tests/examples/encoding/meson.build:
        * tests/examples/fft/meson.build:
        * tests/examples/gio/meson.build:
        * tests/examples/overlay/meson.build:
        * tests/examples/playback/meson.build:
        * tests/examples/playrec/meson.build:
        * tests/examples/seek/meson.build:
        * tests/examples/snapshot/meson.build:
        * tools/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 12:47:06 +0200  Xabier Rodriguez Calvar <calvaris@igalia.com>

        * gst-libs/gst/gl/gstglcolorconvert.c:
          glcolorconvert: should copy metadatas from the incoming buffer
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2094>

2022-04-01 10:25:23 +0300  Sebastian Dröge <sebastian@centricular.com>

        * gst/playback/gstplaybin2.c:
        * gst/playback/gstplaybin3.c:
          playbin/playbin3: Allow setting a NULL URI
          The URI is already initialized to NULL at the beginning and GstPlayer
          was assuming that it is possible to set to NULL at a later time too.
          Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1124
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2090>

2022-03-31 23:41:41 +0200  Thibault Saunier <tsaunier@igalia.com>

        * gst-libs/gst/video/navigation.c:
        * gst-libs/gst/video/navigation.h:
          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-29 17:51:13 +0200  Stéphane Cerveau <scerveau@collabora.com>

        * gst-libs/gst/gl/meson.build:
        * tests/check/libs/gstglmatrix.c:
        * tests/check/meson.build:
          base:gl: add x11 deps to gstglx11_dep
          On MacOS with homebrew the xlib-xcb.h is in
          own cellar /opt/homebrew/Cellar/libx11/1.7.3.1/include
          Need to add the windowing dependencies to gl tests
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2061>

2020-03-30 15:16:29 -0400  Xavier Claessens <xavier.claessens@collabora.com>

        * tests/examples/overlay/meson.build:
          overlay: Fix qt support detection
          On Ubuntu moc-qt5 command is called moc. This requires Meson 0.54.0 for
          the new has_tools() method.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2075>

2022-03-29 22:16:14 +0900  Seungha Yang <seungha@centricular.com>

        * tools/gst-play-kb.c:
          gst-play: Improve Win32 keyboard input handling
          The console HANDLE will be keep signalled state unless application
          reads console input buffer immediately. So we should read and flush
          console input buffer from the thread where the event is signalled,
          instead of GMain context thread.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2058>

2021-09-11 12:17:56 -0300  Thibault Saunier <tsaunier@igalia.com>

        * meson.build:
        * tools/meson.build:
          tools: Add support for building gstreamer tools against gst-full
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1581>

2022-03-28 18:43:27 +0200  Enrique Ocaña González <eocanha@igalia.com>

        * gst/playback/gstplaysink.c:
          playsink: improve GL context sharing
          Configure playsink tried element with the bus of the main pipeline.
          That tried element can be a gl video sink, which would benefit from being
          able to propagate context messages to the main pipeline and have other
          internal pipeline elements configured with it. Having different elements
          configured with the same GL context allows them to share buffers with
          video/x-raw(memory:GLMemory) caps and achieving zero-copy.
          Thanks to Alicia Boya García <aboya@igalia.com> for her work co-debugging
          the issue and contributing to find a solution.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2056>

2021-06-09 11:25:36 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: When streams-aware, remove pads immediately
          For the same reason we add them immediately
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1905>

2021-06-08 14:31:10 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Don't wait for pads content when streams-aware
          If the adaptive demux is streams-aware it can add/remove pads at any point in
          time without the need for no-more-pads or data blocking
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1905>

2021-05-29 07:31:15 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gsturisourcebin.c:
          urisourcebin: Don't do buffering if source already does
          Sources that can internally handle buffering shouldn't have yet-another
          buffering element after it. This can be simply detected by checking if it can
          answer a TIME BUFFERING query just after creation.
          If that is the case, we can expose the element source pads directly
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1905>

2021-05-28 07:49:10 +0200  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Handle upstream selection
          Detect if upstream handles stream-selection, and if so bypass all stream
          selection handling (streams are forwarded as-is).
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1905>

2022-03-28 12:13:12 +0200  Edward Hervey <edward@centricular.com>

        * gst-libs/gst/pbutils/descriptions.c:
          pbutils: Fix wmv screen detection
          strncmp vs !strncmp :)
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2050>

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

        * docs/plugins/gst_plugins_cache.json:
        * gst-libs/gst/video/video-format.h:
          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-16 10:31:56 +0000  Corentin Damman <c.damman@intopix.com>

        * gst/rawparse/gstrawvideoparse.c:
          rawvideoparse: set format from caps in gst_raw_video_parse_set_config_from_caps
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1970>

2022-03-27 16:35:14 +1100  Matthew Waters <matthew@centricular.com>

        * ext/gl/gstglmixerbin.c:
          glmixerbin: slightly better pad/element creation
          Use the return value from gst_element_link_pads() and gst_bin_add()
          Fixes:
          ../ext/gl/gstglmixerbin.c:305:12: error: variable 'res' set but not used [-Werror,-Wunused-but-set-variable]
          gboolean res = TRUE;
          ^
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2038>

2022-03-25 13:00:13 +0100  Stéphane Cerveau <scerveau@collabora.com>

        * gst-libs/gst/gl/cocoa/gstglwindow_cocoa.m:
          gl: cocoa: fix warnings of unused variables
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2026>

2022-03-18 16:59:32 +0000  Thibault Saunier <tsaunier@igalia.com>

        * ext/gl/gstglimagesink.c:
        * gst-libs/gst/video/navigation.c:
        * gst-libs/gst/video/navigation.h:
        * sys/ximage/ximagesink.c:
        * sys/xvimage/xvimagesink.c:
        * tests/check/libs/navigation.c:
        * tests/examples/playback/playback-test.c:
          navigation: Add support for key Modifiers in all relevant events
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2010>

2022-03-24 13:01:52 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

        * gst-libs/gst/video/navigation.c:
        * gst-libs/gst/video/navigation.h:
          navigation: Add missing annotation to send_event_simple
          Adds the missing "transfer full" annotation for the event argument.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2017>

2022-03-22 21:13:31 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

        * sys/xvimage/meson.build:
        * sys/xvimage/xvcontext.c:
        * sys/xvimage/xvcontext.h:
        * sys/xvimage/xvimagesink.c:
          xvimagesink: Add touch event support
          Send touch events for XI_TouchBegin, XI_TouchEnd, and XI_TouchUpdate
          events, grouping events with identical timestamps into one TOUCH_FRAME.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-02-03 15:01:46 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

        * meson_options.txt:
        * sys/meson.build:
        * sys/ximage/meson.build:
        * sys/ximage/ximagesink.c:
        * sys/ximage/ximagesink.h:
          ximagesink: Add touch event support
          Send touch events for XI_TouchBegin, XI_TouchEnd, and XI_TouchUpdate
          events, grouping events with identical timestamps into one TOUCH_FRAME.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-01-31 20:25:23 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

        * gst-libs/gst/video/navigation.c:
        * gst-libs/gst/video/navigation.h:
          navigation: Add API for touchscreen events
          Add 5 new navigation event types for touchscreen events, with the same
          naming and meaning as in libinput - touch-down, touch-motion, touch-up,
          touch-frame and touch-cancel - as well as constructors and parse
          functions for them.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-02-14 16:08:23 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

        * ext/gl/gstglimagesink.c:
        * ext/gl/gstglsinkbin.c:
        * ext/gl/gstgltransformation.c:
        * gst/playback/gstplaybin2.c:
        * gst/playback/gstplaybin3.c:
        * gst/playback/gstplaysink.c:
        * gst/videoscale/gstvideoscale.c:
        * sys/ximage/ximagesink.c:
        * sys/xvimage/xvimagesink.c:
        * tests/check/libs/navigation.c:
        * tests/examples/playback/playback-test.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-02-14 14:22:29 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

        * gst-libs/gst/video/navigation.c:
        * gst-libs/gst/video/navigation.h:
          navigation: Add coordinate helper functions
          Add a function to get x/y coordinates from suitable navigation events,
          and one to create a copy with given coordinate values.
          For e.g. translating event coordinates, this avoids having to either
          switch on the event type to select the right parse function, or
          having to rely on implementation details of the underlying event
          structure.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-02-14 14:06:12 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

        * gst-libs/gst/video/navigation.c:
        * gst-libs/gst/video/navigation.h:
        * tests/check/libs/struct_aarch64.h:
        * tests/check/libs/struct_arm.h:
        * tests/check/libs/struct_i386.h:
        * tests/check/libs/struct_i386_osx.h:
        * tests/check/libs/struct_ppc32.h:
        * tests/check/libs/struct_ppc64.h:
        * tests/check/libs/struct_x86_64.h:
          navigation: Improve interface to avoid exposing implementation details
          This deprecates the current send_event interface, and the wrapper
          functions based on it, replacing it with a send_event_simple interface and
          wrapper function. Together with the new event constructors, this avoids
          implementations having to directly access the underlying structure.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1633>

2022-03-18 16:34:38 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * docs/plugins/gst_plugins_cache.json:
          doc: Update cache after NV12_8L128 addition
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379>

2021-08-12 11:00:11 +0800  Ming Qian <ming.qian@nxp.com>

        * gst-libs/gst/video/video-converter.c:
        * gst-libs/gst/video/video-format.c:
        * gst-libs/gst/video/video-format.h:
        * gst-libs/gst/video/video-info.c:
        * tests/check/elements/videoscale.c:
        * tests/check/libs/video.c:
          video: Add support for linear 8x128 NV12 tiles and 10bit BE tiles
          This adds linear 8x128 NV12 based tiles and NV12 10bit big endian tiles.
          These formats are used by i.MX 8QXP/8QM VPU and exposed in V4L2.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1379>

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-18 20:43:24 +1100  Matthew Waters <matthew@centricular.com>

        * gst-libs/gst/pbutils/gstdiscoverer-types.c:
          discoverer: chain up to parent finalize methods in all our types
          Fixes a memory leak:
          Direct leak of 32 byte(s) in 1 object(s) allocated from:
          #0 0x5ac5cd in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:129:3
          #1 0x1007007 in g_malloc /work/glib-2.72.0/_builddir/../glib/gmem.c:125:13
          #2 0xf82e82 in g_data_set_internal /work/glib-2.72.0/_builddir/../glib/gdataset.c:464:8
          #3 0xf833f7 in g_datalist_id_set_data_full /work/glib-2.72.0/_builddir/../glib/gdataset.c:670:3
          #4 0xef81be in g_object_notify_queue_freeze /work/glib-2.72.0/_builddir/../gobject/gobject.c:295:7
          #5 0xef79c6 in g_object_unref /work/glib-2.72.0/_builddir/../gobject/gobject.c:3632:16
          #6 0x5e58bf in LLVMFuzzerTestOneInput /src/gstreamer/ci/fuzzing/gst-discoverer.c:132:5
          #7 0x4dd1a2 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15
          #8 0x4dc98a in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:514:3
          #9 0x4de6c4 in fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:809:5
          #10 0x4dea29 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:857:3
          #11 0x4ce4a0 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:912:6
          #12 0x4f6f52 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
          #13 0x7f1c709980b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b2)
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1984>

2022-01-17 16:10:37 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

        * ext/gl/gstglvideomixer.c:
        * tests/check/libs/gstglvideomixerelement.c:
        * tests/check/meson.build:
          glvideomixerelement: send translated navigation events to the relevant sink pads
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1495>

2022-01-05 19:33:06 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

        * gst/compositor/compositor.c:
        * tests/check/elements/compositor.c:
          compositor: send translated navigation events to the relevant sink pads
          Fixes #888
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1495>

2022-03-15 13:59:16 +0100  Corentin Noël <tintou@noel.tf>

        * gst-libs/gst/audio/gstaudiodecoder.h:
        * gst-libs/gst/audio/gstaudioringbuffer.c:
        * gst-libs/gst/audio/gstaudiosink.h:
        * gst-libs/gst/audio/gstaudiosrc.h:
        * gst-libs/gst/video/gstvideoaggregator.h:
        * gst-libs/gst/video/video-chroma.c:
        * gst-libs/gst/video/video-scaler.c:
          gst-plugins-base: Fix several annotations
          Add annotations for virtual methods when possible.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1965>

2021-12-16 18:41:38 +0000  Tim-Philipp Müller <tim@centricular.com>

        * docs/plugins/gst_plugins_cache.json:
        * ext/opus/gstopusenc.c:
          opusenc: change default bitrate-type from cbr to constrained-vbr
          Which is the default in libopus itself as well, with a comment
          that constrained-vbr is considered "safer for real-time use".
          Unclear why CBR was the default in the first place.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1451>

2022-03-15 12:57:49 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

        * gst-libs/gst/rtp/gstrtpbuffer.c:
          rtpbuffer: The out args for rtp extension data are optional
          The code checks that these are != NULL before dereferencing them.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1962>

2022-03-10 10:25:53 +0100  Bastien Nocera <hadess@hadess.net>

        * gst-libs/gst/video/convertframe.c:
        * meson.build:
          convertframe: Add support for GL-memory backend GstFrame input
          Add "gldownload" early in the pipeline so that GL-memory backed raw
          frames can be downloaded and processed on the CPU.
          Closes: #1073
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1916>

2022-03-11 18:08:14 -0500  Xavier Claessens <xavier.claessens@collabora.com>

        * gst-libs/gst/gl/meson.build:
          Meson: Set install_tag on some files
          Meson tries to guess the tag (runtime, devel, etc) for every installed
          file, but it cannot guess them all. There is a list at the end of
          meson-log.txt of files we need to tag manually.
          See https://mesonbuild.com/Installing.html#installation-tags.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934>

2022-03-02 03:45:48 +1100  Jan Schmidt <jan@centricular.com>

        * gst/playback/gstplaybin3.c:
          playbin3: Remove stale code
          Remove now-unused get_stream_type_for_event() function.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900>

2022-01-21 16:23:38 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Reset parsebin when new caps arrive
          Check if parsebin can handle the new caps, and if not reset it so that it can
          reconfigure itself for the new stream format.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900>

2022-03-09 10:15:08 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstdecodebin3.c:
          decodebin3: Convert checks to assertions
          "decodebin.input" is never resetted and should always be present, therefore make
          it an assertion check
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900>

2022-01-21 14:52:07 +0100  Edward Hervey <edward@centricular.com>

        * gst/playback/gstparsebin.c:
          parsebin: Implement ACCEPT_CAPS handling
          The default query handler would go through typefind, which by default accepts
          any CAPS. But once configured, parsebin can't reconfigure itself, it should
          therefore pass through the ACCEPT_CAPS query to the first element after
          typefind (if any).
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900>

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

        * gst/playback/gstplaybin3.c:
          playbin3: Hold playbin lock on pad-added
          Take the playbin lock when accessing the combiner
          to add a new pad to link to. Fixes races against
          streams-selected messages triggering reconfiguration.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900>

2022-01-18 02:52:47 +1100  Jan Schmidt <jan@centricular.com>

        * gst/playback/gstplaybin3.c:
          playbin3: Reconfigure on streams-selected message.
          Don't reconfigure outputs when the select-streams
          event is sent from the app, as the selection may
          not take effect for some time. Instead, wait
          for the pipeline to confirm the new set of
          selected streams when it sends the message.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900>

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

        * gst/playback/gstplaysink.c:
          playsink: Fix reconfiguration after removing text_sink
          If we previously had subtitles coming in, the video
          may be chained through a text overlay block. Before,
          the code would end up trying to link pads that were
          already linked and video would not get reconnected
          properly.
          To fix that, make sure that the candidate
          pads are actually unlinked first. If a textoverlay
          is present and no longer needed, it will be cleaned
          up later in the reconfiguration sequence.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1900>

2021-08-06 19:27:02 +1000  Jan Schmidt <jan@centricular.com>

        * gst/playback/gstplaysink.c:
          playsink: Complete reconfiguration on pad release.
          Requesting a new pad can start a reconfiguration cycle, where
          playsink will block all input pads and wait for data on them
          before doing internal reconfiguration. If a pad is released,
          that reconfiguration might never trigger because it's now waiting
          for a pad that doesn't exist any more.
          In that case, complete the reconfiguration on pad release.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1180>

2022-03-08 09:46:33 +0100  Edward Hervey <edward@centricular.com>

        * gst-libs/gst/pbutils/codec-utils.c:
        * gst-libs/gst/pbutils/codec-utils.h:
        * tests/check/libs/pbutils.c:
          pbutils: Add function to parse RFC 6381 codecs field
          This is the opposite of `gst_codec_utils_caps_get_mime_codec()`, which allows
          elements to get the `GstCaps`
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1894>

2022-03-09 16:02:06 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

        * gst-libs/gst/rtp/gstrtpbasepayload.c:
        * tests/check/libs/rtpbasepayload.c:
          rtpbasepayload: Remove dead twcc code
          This feature was removed in 7a53fbad68d702ca4905f7da223f4d2884548edc,
          but this code was left behind.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1902>

2021-12-14 16:14:56 +0100  Edward Hervey <edward@centricular.com>

        * gst/subparse/gstsubparse.c:
          subparse: Handle GAP events before buffers
          Make sure we did initial negotiation and segment pushing if we get GAP events
          before buffers.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1903>

2021-11-17 15:30:38 +0100  Edward Hervey <edward@centricular.com>

        * gst-libs/gst/tag/gsttagdemux.c:
          tagdemux: Properly propagate sequence numbers
          If we received a time segment from upstream, we need to make sure we propagate
          it downstream with the same sequence number.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1903>

2022-03-02 03:43:00 +1100  Jan Schmidt <jan@centricular.com>

        * gst/playback/gstplaybin3.c:
          playbin3: Add lock to protect buffering messages
          Fix a small race where a group can receive stream-start
          and post a pending buffering message just as another
          thread posts a different buffering message, causing them
          to be received by the application out of order. In the
          worst case, this leads the application receiving a
          stale 99% buffering message and going back to buffering
          right after the 100% buffering message.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1840>

2022-03-02 12:15:19 +0800  Hou Qi <qi.hou@nxp.com>

        * gst/encoding/gstencodebasebin.c:
          encodebasebin: Use GST_DEBUG instead of GST_ERROR when skipping muxer
          _get_muxer() skips the muxers that do not satisfy the requirement and select
          the desired one. It should not print error log, so use debug log instead.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1830>

2022-03-04 22:21:13 +0900  Seungha Yang <seungha@centricular.com>

        * gst-libs/gst/gl/gstgldisplay.c:
          gldisplay: Reorder GST_GL_WINDOW check for egl-device
          "egl-device" should be checked before the "egl", otherwise unexpected egl will be picked
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1853>

2022-02-24 01:41:34 +1100  Jan Schmidt <jan@centricular.com>

        * tools/gst-play.c:
          gst-play: Allow switching to previous tracks
          Implement case sensitive key-press handling,
          and make 'V', 'A', 'S' switch to the previous
          video, audio, or subtitle track. The lower-case
          keypress cycles to the next track, as before
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1841>

2021-09-01 14:02:29 +1000  Matthew Waters <matthew@centricular.com>

        * gst-libs/gst/sdp/gstsdpmessage.c:
        * tests/check/libs/sdp.c:
          sdp: support multiple rid parameters
          As specified formally in RFC8851
          Each rid description is placed in its own caps field in the structure.
          This is very similar to the already existing extmap-$id sdp<->caps
          transformations that already exists.
          The mapping is as follows:
          a=rid:0 direction ';'-separated params
          where direction is either 'send' or 'recv'
          gets put into a caps structure like so:
          rid-0=(string)<"direction","param1","param2",etc>
          If there are no rid parameters then the caps structure is generated to
          only contain the direction as a single string like:
          rid-0=(string)direction
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1760>

2022-03-02 00:52:22 +1100  Jan Schmidt <jan@centricular.com>

        * gst/playback/gsturidecodebin3.c:
          uridecodebin3: Remove dead variables
          Leftover junk from original port
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1820>

2022-02-21 10:49:15 +0100  Sebastian Fricke <sebastian.fricke@collabora.com>

        * gst-libs/gst/tag/licenses.c:
          Remove the uninstalled term
          Remove the symbolic link `gst-uninstalled` which points to `gst-env`.
          The `uninstalled` is the old name and the project should stick to a
          single name for the procedure.
          Remove the term from all the files, exceptions are variables from
          dependencies like `uninstalled_variables` from pkgconfig and
          `meson-uninstalled`.
          Adjust mentions of the script in the documentation and README.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1743>

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>

2021-12-10 15:51:51 +0100  Célestin Marot <marotcelestin@gmail.com>

        * gst-libs/gst/video/video-info.c:
          video-info: encoded format can have RGB color-matrix (Fixes #1435)
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1435>

2022-02-27 13:19:49 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/video/video-format.c:
          video-format-info: Use correct parameter name in gst_video_format_info_extrapolate_stride() docs
          ../subprojects/gst-plugins-base/gst-libs/gst/video/video-format.c:7570: Warning: GstVideo: gst_video_format_info_extrapolate_stride: unknown parameter 'info' in documentation comment, should be 'finfo'
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1803>

2022-02-16 18:49:52 +0200  Sebastian Dröge <sebastian@centricular.com>

        * docs/plugins/gst_plugins_cache.json:
        * gst-libs/gst/audio/audio-converter.c:
        * gst-libs/gst/audio/audio-converter.h:
        * gst/audioconvert/gstaudioconvert.c:
        * gst/audioconvert/gstaudioconvert.h:
          audioconvert: Add dithering-threshold property
          By default, no dithering is applied if the target bit depth is above 20
          bits. This new property allows to apply dithering nonetheless in these
          cases.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1730>

2022-02-16 13:28:52 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/audio/audio-quantize.c:
          audio-quantize: Switch dither PRNG from LCG to xorshift
          While this is slightly more expensive (~48% slower per random number) it
          does not cause any measurable difference when running through a complete
          audio conversion pipeline.
          On the other hand its random numbers are of much higher quality and on
          spectrograms for 32 bit to 24 bit conversion the difference is clearly
          visible.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1729>

2022-01-22 01:30:57 +1100  Jan Schmidt <jan@centricular.com>

        * tools/gst-play.c:
          gst-play: Fix trick-mode handling.
          The instant-rate value in the TrickMode enum is a
          flag, but the other values are not. Move instant-rate
          to the end of the enum and give it a value large enough
          for it to be used without modifying the trick-mode
          setting.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1788>

2022-02-24 10:09:50 +0200  Sebastian Dröge <sebastian@centricular.com>

        * tests/check/elements/appsrc.c:
          appsrc: Store strong references to the expected buffers in the tests
          Otherwise the buffers might already be freed as they were only owned by
          the GstSample / appsrc and potentially don't survive until the pad
          probe, as observed in some CI runs of the tests.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1787>

2022-02-22 15:08:48 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

        * gst-libs/gst/video/gstvideoaggregator.c:
          videoaggregator: Correct use of start_time/end_time
          When 29713c5d changed most uses of `start_time` and `end_time` to
          `start_running_time` and `end_running_time`, it missed two.
          Fixes: 29713c5d40a1d7d1f21dada68f55f7a97f0b7025
          Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1038
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1779>

2022-02-22 10:54:23 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/rtp/gstrtpbasepayload.c:
          rtpbasepayload: Copy all buffer metadata instead of just GstMetas for the input meta buffer
          This gives RTP header extensions some more metadata to work from.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1774>

2022-02-21 14:23:27 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/gl/egl/gstglmemoryegl.c:
        * gst-libs/gst/gl/egl/gstglmemoryegl.h:
        * gst-libs/gst/gl/gstglbasememory.c:
        * gst-libs/gst/gl/gstglbasememory.h:
        * gst-libs/gst/gl/gstglbuffer.c:
        * gst-libs/gst/gl/gstglbuffer.h:
        * gst-libs/gst/gl/gstglmemory.c:
        * gst-libs/gst/gl/gstglmemory.h:
        * gst-libs/gst/gl/gstglmemorypbo.c:
        * gst-libs/gst/gl/gstglmemorypbo.h:
        * gst-libs/gst/gl/gstglrenderbuffer.c:
        * gst-libs/gst/gl/gstglrenderbuffer.h:
          gl: Mark GL memory GType functions as deprecated
          They can't be used in any useful way. The type of every GstMemory is
          always GST_TYPE_MEMORY and the subtyping relationship has to be
          implemented on top of that via the associated allocator and mem_type
          string.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764>

2022-02-21 15:12:04 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/gl/gstgldisplay.c:
        * gst-libs/gst/gl/gstglshaderstrings.c:
          gl: Add `#ifndef GST_REMOVE_DEPRECATED` for existing deprecated API
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764>

2022-02-21 15:08:44 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/gl/gstgldisplay.c:
          gl: Add versioned `Deprecated` marker to gst_gl_display_find_window
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764>

2022-02-21 15:05:55 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/gl/gstgldisplay.h:
        * gst-libs/gst/gl/gstglshaderstrings.h:
          gl: Replace existing G_DEPRECATED_FOR usage with GST_GL_DEPRECATED_FOR
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764>

2022-02-21 15:02:02 +0200  Sebastian Dröge <sebastian@centricular.com>

        * gst-libs/gst/gl/gl-prelude.h:
          gl: Add GST_GL_DEPRECATED
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764>

2022-02-20 14:05:05 +0100  Sebastian Groß <s3b.gr0ss@gmail.com>

        * gst-libs/gst/pbutils/gstaudiovisualizer.c:
          audiovisualizer: shader: Fix dframe out of bound write
          shader_fade_and_move_horiz_out writes a complete stride at the end of its
          dframe data
          This led to SIGSEGV since the stride reached into sframe->map[0]->memory
          which could not be umpapped later on.
          This is due to `d` is increased twice. Once at the end of the upper loop
          and at the start of the lower loop.
          The corresponding dframe stride is therefore skipped.
          Rewind `d` and start at the correct position.
          Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1702
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1751>

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

        * docs/plugins/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-02-18 15:25:17 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * tests/check/libs/video.c:
          tests: video: Add a unit test for stride extrapolation
          This is a minimal unit test the show that the stride extrapolation can work
          with all pixel format we support. This minimal verify that the extrapolation
          match the stride we set into GstVideoInfo with 320x240 for all the pixel
          format we support. The tiles formats are skipped, since their stride is
          set as two 16bit integers, and we also skip over palette planes.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>

2022-01-25 14:04:13 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/video/video-format.c:
        * gst-libs/gst/video/video-format.h:
          video: Add an helper to extrapolate strides
          Many of the legacy APIs, specifically in the Linux Kernel, have a
          single stride for the pictures. In this context, it is common
          to extrapolate the other strides based on the selected pixel
          format. Such function have been copy pasted from video4linux2
          plugin into wayland, kms and v4l2codecs plugins.
          This patch implements a generalized from of that function and
          make it available to everyone through the video library.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>

2021-12-02 21:46:59 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/video/video-converter.c:
        * gst-libs/gst/video/video-format.c:
        * gst-libs/gst/video/video-format.h:
        * gst-libs/gst/video/video-frame.c:
        * gst-libs/gst/video/video-info.c:
        * gst-libs/gst/video/video-tile.h:
        * tests/check/elements/videoscale.c:
        * tests/check/libs/video.c:
          video: Add NV12_16L32S aka Mediatek MM21 support
          Unlike other simple tiled formats, the Mediatek HW use different tile size
          per-plane. The tile size is scaled according to the subsampling. Effectively,
          using the name 16L32S to represent linearly layout tiles of size 16x32 bytes
          in the Y plane, and 16x16 in the UV plane. In order to make this specificity
          discoverable, a new SUBTILES flags have been added.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1567>

2022-02-19 01:58:20 +0900  Seungha Yang <seungha@centricular.com>

        * gst-libs/gst/video/gstvideoaggregator.c:
          videoaggregator: Use floor() to calculate current position
          ... instead of round(). Depending on framerate, calculated position
          may not be clearly represented by using uint64, 30000/1001 for example.
          Then the result of round() can be sliglhtly larger (1ns) than
          buffer timestamp. And that will cause unnecessary frame delay.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1747>

2021-10-28 17:09:34 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

        * gst-libs/gst/audio/gstaudioencoder.c:
          base: audioencoder: Keep serialize event behind buffers
          If a serialized event arrives behind a buffer, it should not be send before
          it. This fixes the pending event handling so that only early pending events,
          the one that arrrived or was generated while the adapter was empty get send
          before pushing buffer. All other events are not pushed after.
          This issue lead the latency tracer to think our audio encoder did not have any
          latency. This was testing with opusenc in a live pipeline.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1266>

2022-02-06 22:54:42 +0900  Seungha Yang <seungha@centricular.com>

        * gst-libs/gst/pbutils/missing-plugins.c:
          gstinfo,ptpclock,libcheck: Use GetCurrentProcessId() instead of getpid() on Windows
          getpid() shouldn't be used in case of UWP. Use GetCurrentProcessId()
          instead which provides exactly the same functionality and can be
          used with UWP as well.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1006>

2021-10-01 20:27:28 +0900  Seungha Yang <seungha@centricular.com>

        * gst-libs/gst/gl/winrt/gstglwindow_winrt_egl.cpp:
        * meson.build:
        * tests/examples/seek/instant-rate-change.c:
          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>

2022-02-08 23:30:00 +0900  Seungha Yang <seungha@centricular.com>

        * tests/examples/seek/instant-rate-change.c:
          Remove some trailing white spaces
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1006>

2022-01-07 20:02:46 +0900  Seungha Yang <seungha@centricular.com>

        * gst-libs/gst/video/gstvideoaggregator.c:
        * tests/check/elements/compositor.c:
          videoaggregator: Fix for unhandled negative rate
          Nagative rates have been considered only in
          gst_video_aggregator_advance_on_timeout(). Update other places
          to fix broken reverse playback.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1500>

2021-08-25 20:18:20 +0900  Seungha Yang <seungha@centricular.com>

        * gst/typefind/gsttypefindfunctions.c:
        * tests/check/gst/typefindfunctions.c:
          typefindfunctions: Fix WebVTT format detection
          If WebVTT file consists of "WebVTT" header without body,
          the file size can be smaller than 10 bytes.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1359>

2022-01-31 13:01:10 +0100  Vivienne Watermeier <vwatermeier@igalia.com>

        * gst-libs/gst/video/navigation.c:
        * gst-libs/gst/video/navigation.h:
          navigation: add more constructors for navigation events
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1610>

2022-02-07 09:30:58 +0100  David Svensson Fors <davidsf@axis.com>

        * gst-libs/gst/pbutils/codec-utils.c:
          codec-utils: Avoid out-of-bounds error
          For artificial input (in unit tests), all six bytes of
          constraint_indicator_flags in hevc_caps_get_mime_codec() can be
          zero. Add a guard against an out-of-bounds error that occurred in that
          case. Change variables to signed int so comparison with -1 works.
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1677>

2020-07-17 14:37:14 +1000  Jan Schmidt <jan@centricular.com>

        * gst/videotestsrc/gstvideotestsrc.c:
        * gst/videotestsrc/gstvideotestsrc.h:
          videotestsrc: Don't re-render every frame when it's not needed.
          When the pattern being rendered by videotestsrc doesn't have motion,
          cache a rendered buffer and output it repeatedly with updated
          metadata.
          Based on a patch by Edward Hervey <edward@centricular.com>
          Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/10
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1293>

2021-12-22 18:46:44 +0000  Thibault Saunier <tsaunier@igalia.com>

        * gst-libs/gst/video/navigation.h:
          navigation: Fix Since marker for mouse scroll
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1665>

2022-02-03 01:04:40 +0900  Seungha Yang <seungha@centricular.com>

        * gst-libs/gst/video/video-color.c:
          video-color: Fix for missing clipping in PQ EOTF function
          * Add missing clipping in EOTF
          * Use pre-calculated values
          * Update variable names to specification's defined ones
          Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1629>

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

        * 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 09:44:20 CEST 2024.