Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gstreamer for openSUSE:Factory 
checked in at 2022-05-14 22:52:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer (Old)
 and      /work/SRC/openSUSE:Factory/.gstreamer.new.1538 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gstreamer"

Sat May 14 22:52:18 2022 rev:79 rq:976614 version:1.20.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/gstreamer/gstreamer.changes      2022-03-24 
22:57:08.480200482 +0100
+++ /work/SRC/openSUSE:Factory/.gstreamer.new.1538/gstreamer.changes    
2022-05-14 22:52:24.867009817 +0200
@@ -1,0 +2,52 @@
+Mon May  9 08:58:55 UTC 2022 - Andreas Schwab <sch...@suse.de>
+
+- Enable use of libunwind on riscv64
+
+-------------------------------------------------------------------
+Mon May  9 08:53:18 UTC 2022 - Mark??ta Machov?? <mmach...@suse.com>
+
+- Update to version 1.20.2
+  + Highlighted bugfixes:
+    - avviddec: Remove vc1/wmv3 override and fix crashes on WMV
+      files with FFMPEG 5.0+
+    - macOS: fix plugin discovery for GStreamer installed via brew
+      and fix loading of Rust plugins
+    - rtpbasepayload: various header extension handling fixes
+    - rtpopusdepay: fix regression in stereo input handling if
+      sprop-stereo is not advertised
+    - rtspclientsink: fix possible shutdown deadlock
+    - mpegts: gracefully handle "empty" program maps and fix AC-4
+      detection
+    - mxfdemux: Handle empty VANC packets and fix EOS handling
+    - playbin3: various playbin3, uridecodebin3, and playsink fixes
+    - ptpclock: fix initial sync-up with certain devices
+    - gltransformation: let graphene alloc its structures memory
+      aligned
+    - webrtcbin fixes and webrtc sendrecv example improvements
+    - video4linux2: various fixes including some fixes for
+      Raspberry Pi users
+    - videorate segment handling fixes and other fixes
+    - nvh264dec, nvh265dec: Fix broken key-unit trick modes and
+      reverse playback
+    - wpe: Reintroduce persistent WebContext
+    - cerbero: Make it easier to consume 1.20.1 macOS GStreamer
+      .pkgs
+    - build fixes and gobject annotation fixes
+    - bug fixes, security fixes, memory leak fixes, and other
+      stability and reliability improvements
+  + gstreamer:
+    - devicemonitor: clean up signal handlers and hidden providers
+      list
+    - Leaks tracer: fix pthread_atfork return value check leading
+      to bogus warning in log
+    - Rust plugins: Not picked up by the plugin loader on macOS
+    - Failed to use plugins of latest GStreamer version 1.20.x
+      installed by brew on macOS
+    - ptpclock: Allow at least 100ms delay between Sync/Follow_Up
+      and Delay_Req/Delay_Resp messages. Fixes problems acquiring
+      initial sync with certain devices
+    - meson: Add -Wl,-rpath,${libdir} on macOS
+    - registry: skip Rust dep builddirs when searching for plugins
+      recursively
+
+-------------------------------------------------------------------

Old:
----
  gstreamer-1.20.1.tar.xz

New:
----
  gstreamer-1.20.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gstreamer.spec ++++++
--- /var/tmp/diff_new_pack.50TtGU/_old  2022-05-14 22:52:25.403010487 +0200
+++ /var/tmp/diff_new_pack.50TtGU/_new  2022-05-14 22:52:25.411010497 +0200
@@ -19,7 +19,7 @@
 %define gst_branch 1.0
 
 Name:           gstreamer
-Version:        1.20.1
+Version:        1.20.2
 Release:        0
 Summary:        Streaming-Media Framework Runtime
 License:        LGPL-2.1-or-later
@@ -59,7 +59,7 @@
 Requires(pre):  permissions
 # Generic name, never used in SuSE:
 Provides:       gstreamer-doc = %{version}
-%define libunwind_archs %{ix86} ia64 x86_64 %{arm} ppc ppc64 ppc64le aarch64
+%define libunwind_archs %{ix86} ia64 x86_64 %{arm} ppc ppc64 ppc64le aarch64 
riscv64
 %ifarch %{libunwind_archs}
 BuildRequires:  pkgconfig(libunwind)
 %endif

++++++ gstreamer-1.20.1.tar.xz -> gstreamer-1.20.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/ChangeLog 
new/gstreamer-1.20.2/ChangeLog
--- old/gstreamer-1.20.1/ChangeLog      2022-03-14 12:33:40.000000000 +0100
+++ new/gstreamer-1.20.2/ChangeLog      2022-05-03 00:29:29.000000000 +0200
@@ -1,7 +1,132 @@
+=== release 1.20.2 ===
+
+2022-05-02 23:29:25 +0100  Tim-Philipp M??ller <t...@centricular.com>
+
+       * NEWS:
+       * RELEASE:
+       * gstreamer.doap:
+       * meson.build:
+         Release 1.20.2
+
+2022-05-02 23:29:19 +0100  Tim-Philipp M??ller <t...@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.2
+
+2022-05-02 11:41:52 +0100  Tim-Philipp M??ller <t...@centricular.com>
+
+       * plugins/elements/gstfilesink.c:
+         filesink: fix handling of non-existing paths with musl
+         Fixes #1194
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2345>
+
+2022-04-09 21:07:43 +0100  Tim-Philipp M??ller <t...@centricular.com>
+
+       * gst/gstregistry.c:
+         registry: skip Rust dep builddirs when searching for plugins 
recursively
+         These artefacts confuse the plugin scanner and may cause noisy 
warnings
+         (and slow down things).
+         Fixes https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/68
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2338>
+
+2022-04-18 15:44:47 +0530  Nirbheek Chauhan <nirbh...@centricular.com>
+
+       * gst/meson.build:
+       * 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/2237>
+
+2020-05-29 11:29:56 -0300  Tulio Beloqui <tulio.belo...@pexip.com>
+
+       * gst/gstdevicemonitor.c:
+         gstdevicemonitor: added cleanup of signal handlers and hidden 
providers list
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2221>
+
+2022-04-15 17:00:24 +0200  Guillaume Desmottes 
<guillaume.desmot...@onestream.live>
+
+       * plugins/tracers/gstleaks.c:
+         gstleaks: fix pthread_atfork return value check
+         pthread_atfork() returns 0 on success.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2210>
+
+2022-04-12 01:01:23 +0900  Seungha Yang <seun...@centricular.com>
+
+       * tools/gst-launch.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/2167>
+
+2022-04-13 16:59:50 +0300  Sebastian Dr??ge <sebast...@centricular.com>
+
+       * libs/gst/net/gstptpclock.c:
+         ptpclock: Fix wrong condition order from last commit
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2173>
+
+2022-04-12 19:22:51 +0300  Sebastian Dr??ge <sebast...@centricular.com>
+
+       * libs/gst/net/gstptpclock.c:
+         ptpclock: Allow at least 100ms delay between Sync/Follow_Up and 
Delay_Req/Delay_Resp messages
+         It doesn't matter for measurement purposes whether receiving them 
takes
+         a while and various PTP servers are not prioritizing to send them,
+         causing them to be dropped unnecessarily and preventing proper
+         synchronization with such servers.
+         This is especially a problem if the RTTs in the network are very low
+         compared to the additional delay imposed by the server.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2168>
+
+2022-03-10 18:22:49 +0000  Philippe Normand <ph...@igalia.com>
+
+       * gst/gsturi.c:
+         uri: Build doubly-linked list by prepending items
+         As outlined in the API documentation, g_list_append() iterates over 
the whole
+         list, which can quickly introduce performance issues when the list 
becomes very
+         big, such as for data URIs for instance.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1983>
+
+2022-03-08 12:04:41 +0000  Philippe Normand <ph...@igalia.com>
+
+       * plugins/elements/gsttypefindelement.c:
+         typefind: Skip parsing of data URIs
+         Commit a46ab2ced20d757e0e770d4de1edc3a152cc4f2f introduced a 
regression,
+         breaking typefinding for media content muxed in mp4 container and 
serialized to
+         data URIs. For this case it doesn't make sense to look for a file 
extension, so
+         skip URI parsing.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1983>
+
+2022-03-14 14:48:01 +0000  Tim-Philipp M??ller <t...@centricular.com>
+
+       * meson.build:
+         Back to development
+
 === release 1.20.1 ===
 
 2022-03-14 11:33:33 +0000  Tim-Philipp M??ller <t...@centricular.com>
 
+       * ChangeLog:
        * NEWS:
        * RELEASE:
        * gstreamer.doap:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/NEWS new/gstreamer-1.20.2/NEWS
--- old/gstreamer-1.20.1/NEWS   2022-03-14 12:33:40.000000000 +0100
+++ new/gstreamer-1.20.2/NEWS   2022-05-03 00:29:29.000000000 +0200
@@ -2,13 +2,13 @@
 
 GStreamer 1.20.0 was originally released on 3 February 2022.
 
-The latest bug-fix release in the 1.20 series is 1.20.1 and was released
-on 14 March 2022.
+The latest bug-fix release in the 1.20 series is 1.20.2 and was released
+on 2 May 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Monday 14 March 2022, 00:30 UTC (log)
+Last updated: Monday 2 May 2022, 0:30 UTC (log)
 
 Introduction
 
@@ -2076,6 +2076,221 @@
 -   List of Merge Requests applied in 1.20.1
 -   List of Issues fixed in 1.20.1
 
+1.20.2
+
+The second 1.20 bug-fix release (1.20.2) was released on 2 May 2022.
+
+This release only contains bugfixes and it should be safe to update from
+1.20.x.
+
+Highlighted bugfixes in 1.20.2
+
+-   avviddec: Remove vc1/wmv3 override and fix crashes on WMV files with
+    FFMPEG 5.0+
+-   macOS: fix plugin discovery for GStreamer installed via brew and fix
+    loading of Rust plugins
+-   rtpbasepayload: various header extension handling fixes
+-   rtpopusdepay: fix regression in stereo input handling if
+    sprop-stereo is not advertised
+-   rtspclientsink: fix possible shutdown deadlock
+-   mpegts: gracefully handle ???empty??? program maps and fix AC-4
+    detection
+-   mxfdemux: Handle empty VANC packets and fix EOS handling
+-   playbin3: various playbin3, uridecodebin3, and playsink fixes
+-   ptpclock: fix initial sync-up with certain devices
+-   gltransformation: let graphene alloc its structures memory aligned
+-   webrtcbin fixes and webrtc sendrecv example improvements
+-   video4linux2: various fixes including some fixes for Raspberry Pi
+    users
+-   videorate segment handling fixes and other fixes
+-   nvh264dec, nvh265dec: Fix broken key-unit trick modes and reverse
+    playback
+-   wpe: Reintroduce persistent WebContext
+-   cerbero: Make it easier to consume 1.20.1 macOS GStreamer .pkgs
+-   build fixes and gobject annotation fixes
+-   bug fixes, security fixes, memory leak fixes, and other stability
+    and reliability improvements
+
+gstreamer
+
+-   devicemonitor: clean up signal handlers and hidden providers list
+-   Leaks tracer: fix pthread_atfork return value check leading to bogus
+    warning in log
+-   Rust plugins: Not picked up by the plugin loader on macOS
+-   Failed to use plugins of latest GStreamer version 1.20.x installed
+    by brew on macOS
+-   ptpclock: Allow at least 100ms delay between Sync/Follow_Up and
+    Delay_Req/Delay_Resp messages. Fixes problems acquiring initial sync
+    with certain devices
+-   meson: Add -Wl,-rpath,${libdir} on macOS
+-   registry: skip Rust dep builddirs when searching for plugins
+    recursively
+
+gst-plugins-base
+
+-   appsrc: Clarify buffer ref semantics in signals documentation
+-   appsrc: fix annotations for bindings
+-   typefind: Skip extension parsing for data:// URIs, fixing regression
+    with mp4 files serialised to data uris
+-   playbin3: various fixes
+-   playbin3: fix missing lock when unknown stream type in pad-removed
+    cb
+-   decodebin3: fix collection leaks
+-   decodebin3: Don???t duplicate stream selections
+-   discoverer: chain up to parent finalize methods in all our types to
+    fix memory leaks
+-   glmixerbin: slightly better pad/element creation
+-   gltransformation: let graphene alloc its structures memory aligned
+-   ogg: fix possible buffer overrun
+-   rtpbasepayload: Don???t write header extensions if there???s no
+    corresponding???
+-   rtpbasepayload: always store input buffer meta before negotiation
+-   rtpbasepayload: fix transfer annotation for push and push_list
+-   subparse: don???t try to index string with -1
+-   riff-media: fix memory leak after usage for g_strjoin()
+-   playbin/playbin3: Allow setting a NULL URI
+-   playsink: Complete reconfiguration on pad release.
+-   parsebin: Expose streams of unknown type
+-   pbutils: Fix wmv screen description detection
+-   subparse: don???t deref a potentially NULL variable
+-   rawvideoparse: set format from caps in
+    gst_raw_video_parse_set_config_from_caps
+-   videodecoder: release stream lock after handling gap events
+-   videorate: fix assertion when pushing last and only buffer without
+    duration
+-   videorate: Revert ???don???t reset on segment update??? to fix segment
+    handling regressions
+-   gst-play-1.0, gst-launch-1.0: Enable win32 high-resolution timer
+    also for MinGW build
+
+gst-plugins-good
+
+-   deinterlace: silence unused-but-set werror from imported code
+-   qtdemux: fix leak of channel_mapping
+-   rtpopusdepay: missing sprop-stereo should not assume mono
+-   rtpjitterbuffer: Fix invalid memory access in
+    rtp_jitter_buffer_pop()
+-   rtpptdemux: fix leak of caps when ignoring a pt
+-   rtpredenc: quieten warning about ignoring header extensions
+-   soup: Fix pre-processor macros in souploader for libsoup-3.0
+-   twcc: Note that twcc-stats packet loss counts reordering as loss +
+    add some logging
+-   video4linux2: Manual backports for RPi users
+-   wavparse: handle URI query in any parse state, fixing audio track
+    selection issue in GES
+-   wavparse: Unset DISCONT buffer flag for divided into multiple
+    buffers in push mode
+
+gst-plugins-bad
+
+-   av1parse: Fix several issues about the colorimetry.
+-   av1parse: fix up various possible logic errors
+-   dashsink: fix missing mutex unlock in error code path when failing
+    to get content
+-   d3d11videosink: Fix for unhandled mouse double click events
+-   interlace: Also handle a missing ???interlace-mode??? field as
+    progressive
+-   msdk: fix build with MSVC
+-   mxfdemux: Fix issues at EOS
+-   mxfdemux: Handle empty VANC packets
+-   nvh264dec, nvh265dec: Fix broken key-unit trick and reverse playback
+-   nvvp9sldec: Increase DPB size to cover render delay
+-   rvsg: fix cairo include
+-   tsdemux: Fix AC-4 detection in MPEG-TS
+-   tsdemux: Handle ???empty??? PMT gracefully
+-   va: pool: don???t advertise the GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT
+    option any more
+-   v4l2codecs: Fix memory leak
+-   v4l2videodec: set frame duration according to framerate
+-   webrtcbin: Update documentation of ???get-stats??? action signal
+-   webrtcbin: Check data channel transport for notifying
+    ???ice-gathering-state???
+-   webrtcbin: Avoid access of freed memory
+-   wpe: Reintroduce persistent WebContext
+-   Build: use CMake to find some openssl and exr deps
+-   Fix multiple ???unused-but-set variable??? compiler warnings
+
+gst-plugins-ugly
+
+-   x264enc: Don???t try to fixate ANY allowed caps
+
+gst-libav
+
+-   video decoders: fix frame leak on negotiation error
+-   Fix build on systems without C++ compiler
+-   avviddec: Remove vc1/wmv3 override (fixing crash with FFmpeg 5
+-   Segfaults on ASF/WMV files with FFMPEG 5.0+
+
+gst-rtsp-server
+
+-   rtspclientsink: fix possible shutdown deadlock in collect_streams()
+-   Minor spelling fixes
+
+gstreamer-vaapi
+
+-   No changes
+
+gstreamer-sharp
+
+-   No changes
+
+gst-omx
+
+-   No changes
+
+gst-python
+
+-   Fix build on systems without C++ compiler
+
+gst-editing-services
+
+-   License clarification: GES is released under the LGPL2+ license
+
+gst-examples:
+
+-   Fix build on macOS with gtk+-quartz-3.0
+-   player android: add missing dummy.cpp
+-   player android: update for android changes
+-   webrtc_sendrecv.py: Link pads instead of elements
+-   webrtc_sendrecv.py: Implement all negotiation modes + bugfixes
+
+Development build environment + gst-full build
+
+-   meson: provide gobject-cast-checks, glib-checks and glib-asserts
+    options at top level as well
+
+Cerbero build tool and packaging changes in 1.20.2
+
+-   macOS: Make it easier to consume 1.20.1 GStreamer .pkgs
+-   Android: fix text relocation regression on Android (x86/ x86_64
+    platforms)
+
+Bindings
+
+-   appsrc: fix annotations for bindings
+-   bindings: The out args for gst_rtp_buffer_get_extension_data*() are
+    optional
+-   rtpbasepayload: fix transfer annotation for push and push_list
+
+Contributors to 1.20.2
+
+Bastian Krause, Benjamin Gaignard, Camilo Celis Guzman, Chun-wei Fan,
+Corentin Damman, Daniel Stone, Dongil Park, Edward Hervey, Fabrice
+Fontaine, Guillaume Desmottes, Havard Graff, He Junyan, Hoonhee Lee, Hou
+Qi, Jan Schmidt, Marc Leeman, Mathieu Duponchelle, Matthew Waters,
+Nicolas Dufresne, Nirbheek Chauhan, Philippe Normand, Pierre Bourr??,
+Sangchul Lee, Sebastian Dr??ge, Seungha Yang, St??phane Cerveau, Thibault
+Saunier, Tim-Philipp M??ller, Tong Wu, Tristan Matthews, Tulio Beloqui,
+Wonchul Lee, Zhao Zhili,
+
+??? and many others who have contributed bug reports, translations, sent
+suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.20.2
+
+-   List of Merge Requests applied in 1.20.2
+-   List of Issues fixed in 1.20.2
+
 Schedule for 1.22
 
 Our next major feature release will be 1.22, and 1.21 will be the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/RELEASE new/gstreamer-1.20.2/RELEASE
--- old/gstreamer-1.20.1/RELEASE        2022-03-14 12:33:40.000000000 +0100
+++ new/gstreamer-1.20.2/RELEASE        2022-05-03 00:29:29.000000000 +0200
@@ -1,4 +1,4 @@
-This is GStreamer core 1.20.1.
+This is GStreamer core 1.20.2.
 
 The GStreamer team is thrilled to announce a new major feature release
 of your favourite cross-platform multimedia framework!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/gst/gstdevicemonitor.c 
new/gstreamer-1.20.2/gst/gstdevicemonitor.c
--- old/gstreamer-1.20.1/gst/gstdevicemonitor.c 2022-03-14 12:33:40.000000000 
+0100
+++ new/gstreamer-1.20.2/gst/gstdevicemonitor.c 2022-05-03 00:29:29.000000000 
+0200
@@ -132,6 +132,14 @@
 static guint gst_device_monitor_add_filter_unlocked (GstDeviceMonitor * 
monitor,
     const gchar * classes, GstCaps * caps);
 
+static void
+provider_hidden (GstDeviceProvider * provider, const gchar * hidden,
+    GstDeviceMonitor * monitor);
+
+static void
+provider_unhidden (GstDeviceProvider * provider, const gchar * hidden,
+    GstDeviceMonitor * monitor);
+
 struct DeviceFilter
 {
   guint id;
@@ -319,7 +327,7 @@
 
 
 static void
-gst_device_monitor_remove (GstDeviceMonitor * self, guint i)
+gst_device_monitor_remove_provider (GstDeviceMonitor * self, guint i)
 {
   GstDeviceProvider *provider = g_ptr_array_index (self->priv->providers, i);
   GstBus *bus;
@@ -330,6 +338,9 @@
   g_signal_handlers_disconnect_by_func (bus, bus_sync_message, self);
   gst_object_unref (bus);
 
+  g_signal_handlers_disconnect_by_func (provider, provider_hidden, self);
+  g_signal_handlers_disconnect_by_func (provider, provider_unhidden, self);
+
   gst_object_unref (provider);
 }
 
@@ -342,7 +353,7 @@
 
   if (self->priv->providers) {
     while (self->priv->providers->len)
-      gst_device_monitor_remove (self, self->priv->providers->len - 1);
+      gst_device_monitor_remove_provider (self, self->priv->providers->len - 
1);
     g_ptr_array_unref (self->priv->providers);
     self->priv->providers = NULL;
   }
@@ -352,6 +363,11 @@
     self->priv->filters = NULL;
   }
 
+  if (self->priv->hidden) {
+    g_list_free_full (self->priv->hidden, g_free);
+    self->priv->hidden = NULL;
+  }
+
   gst_object_replace ((GstObject **) & self->priv->bus, NULL);
 
   G_OBJECT_CLASS (gst_device_monitor_parent_class)->dispose (object);
@@ -774,7 +790,7 @@
       }
 
       if (!valid) {
-        gst_device_monitor_remove (monitor, i);
+        gst_device_monitor_remove_provider (monitor, i);
         i--;
       }
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/gst/gstregistry.c 
new/gstreamer-1.20.2/gst/gstregistry.c
--- old/gstreamer-1.20.1/gst/gstregistry.c      2022-03-14 12:33:40.000000000 
+0100
+++ new/gstreamer-1.20.2/gst/gstregistry.c      2022-05-03 00:29:29.000000000 
+0200
@@ -1213,13 +1213,41 @@
 }
 
 static gboolean
-is_blacklisted_directory (const gchar * dirent)
+skip_directory (const gchar * parent_path, const gchar * dirent)
 {
+  const gchar *target;
+
   /* hotdoc private folder can contain many files and it slows down
    * the discovery for nothing */
   if (g_str_has_prefix (dirent, "hotdoc-private-"))
     return TRUE;
 
+  /* Rust build dirs which may contain artefacts we should skip, can be
+   * /target/{debug,release} or /target/{arch}/{debug,release} */
+  target = strstr (parent_path, "/target/");
+
+  /* On Windows both forward and backward slashes may be used */
+#ifdef G_OS_WIN32
+  if (target == NULL)
+    target = strstr (parent_path, "\\target\\");
+#endif
+
+  if (target != NULL) {
+    if (g_str_has_suffix (target + 7, "/debug")
+#ifdef G_OS_WIN32
+        || g_str_has_suffix (target + 7, "\\debug")
+        || g_str_has_suffix (target + 7, "\\release")
+#endif
+        || g_str_has_suffix (target + 7, "/release")) {
+      if (dirent[0] == '.'
+          || strcmp (dirent, "build") == 0
+          || strcmp (dirent, "deps") == 0
+          || strcmp (dirent, "incremental") == 0) {
+        return TRUE;
+      }
+    }
+  }
+
   if (G_LIKELY (dirent[0] != '.'))
     return FALSE;
 
@@ -1262,7 +1290,7 @@
     }
 
     if (file_status.st_mode & S_IFDIR) {
-      if (G_UNLIKELY (is_blacklisted_directory (dirent))) {
+      if (G_UNLIKELY (skip_directory (path, dirent))) {
         GST_TRACE_OBJECT (context->registry, "ignoring %s directory", dirent);
         g_free (filename);
         continue;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/gst/gsturi.c 
new/gstreamer-1.20.2/gst/gsturi.c
--- old/gstreamer-1.20.1/gst/gsturi.c   2022-03-14 12:33:40.000000000 +0100
+++ new/gstreamer-1.20.2/gst/gsturi.c   2022-05-03 00:29:29.000000000 +0200
@@ -1315,7 +1315,7 @@
       for (next_elem = split_str; *next_elem; next_elem += 1) {
         gchar *elem = *next_elem;
         if (*elem == '\0') {
-          new_list = g_list_append (new_list, NULL);
+          new_list = g_list_prepend (new_list, NULL);
         } else {
           if (convert && !unescape) {
             gchar *next_sep;
@@ -1331,7 +1331,7 @@
             g_free (elem);
             elem = *next_elem;
           }
-          new_list = g_list_append (new_list, g_strdup (elem));
+          new_list = g_list_prepend (new_list, g_strdup (elem));
         }
       }
     }
@@ -1340,7 +1340,7 @@
       g_free (pct_sep);
   }
 
-  return new_list;
+  return g_list_reverse (new_list);
 }
 
 static GHashTable *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/gst/meson.build 
new/gstreamer-1.20.2/gst/meson.build
--- old/gstreamer-1.20.1/gst/meson.build        2022-03-14 12:33:40.000000000 
+0100
+++ new/gstreamer-1.20.2/gst/meson.build        2022-05-03 00:29:29.000000000 
+0200
@@ -253,7 +253,7 @@
 pkg_name = 'gstreamer-1.0'
 library_def = {'lib': libgst}
 pkgconfig.generate(libgst,
-  libraries : [glib_dep, gobject_dep],
+  libraries : [glib_dep, gobject_dep] + pkgconfig_libs,
   variables : pkgconfig_variables,
   uninstalled_variables: pkgconfig_uninstalled_variables,
   subdirs : pkgconfig_subdirs,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/gstreamer.doap 
new/gstreamer-1.20.2/gstreamer.doap
--- old/gstreamer-1.20.1/gstreamer.doap 2022-03-14 12:33:40.000000000 +0100
+++ new/gstreamer-1.20.2/gstreamer.doap 2022-05-03 00:29:29.000000000 +0200
@@ -40,6 +40,16 @@
 
  <release>
   <Version>
+   <revision>1.20.2</revision>
+   <branch>1.20</branch>
+   <name></name>
+   <created>2022-05-02</created>
+   <file-release 
rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.20.2.tar.xz";
 />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.20.1</revision>
    <branch>1.20</branch>
    <name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/libs/gst/net/gstptpclock.c 
new/gstreamer-1.20.2/libs/gst/net/gstptpclock.c
--- old/gstreamer-1.20.1/libs/gst/net/gstptpclock.c     2022-03-14 
12:33:40.000000000 +0100
+++ new/gstreamer-1.20.2/libs/gst/net/gstptpclock.c     2022-05-03 
00:29:29.000000000 +0200
@@ -1105,15 +1105,20 @@
    * we can get here without a delay response too. The tolerance on
    * accepting follow-up after a sync is high, because a PTP server
    * doesn't have to prioritise sending FOLLOW_UP - its purpose is
-   * just to give us the accurate timestamp of the preceding SYNC */
+   * just to give us the accurate timestamp of the preceding SYNC.
+   *
+   * For that reason also allow at least 100ms delay in case of delays smaller
+   * than 5ms. */
   if (sync->follow_up_recv_time_local != GST_CLOCK_TIME_NONE
       && sync->follow_up_recv_time_local >
-      sync->sync_recv_time_local + 20 * domain->mean_path_delay) {
+      sync->sync_recv_time_local + MAX (100 * GST_MSECOND,
+          20 * domain->mean_path_delay)) {
     GstClockTimeDiff delay =
         sync->follow_up_recv_time_local - sync->sync_recv_time_local;
     GST_WARNING ("Sync-follow-up delay for domain %u too big: %"
-        GST_STIME_FORMAT " > 20 * %" GST_TIME_FORMAT, domain->domain,
-        GST_STIME_ARGS (delay), GST_TIME_ARGS (domain->mean_path_delay));
+        GST_STIME_FORMAT " > MAX(100ms, 20 * %" GST_TIME_FORMAT ")",
+        domain->domain, GST_STIME_ARGS (delay),
+        GST_TIME_ARGS (domain->mean_path_delay));
     synced = FALSE;
     gst_clock_get_calibration (GST_CLOCK_CAST (domain->domain_clock),
         &internal_time, &external_time, &rate_num, &rate_den);
@@ -1373,13 +1378,17 @@
 #ifdef USE_MEASUREMENT_FILTERING
   /* The tolerance on accepting follow-up after a sync is high, because
    * a PTP server doesn't have to prioritise sending FOLLOW_UP - its purpose is
-   * just to give us the accurate timestamp of the preceding SYNC */
+   * just to give us the accurate timestamp of the preceding SYNC.
+   *
+   * For that reason also allow at least 100ms delay in case of delays smaller
+   * than 5ms. */
   if (sync->follow_up_recv_time_local != GST_CLOCK_TIME_NONE &&
       domain->mean_path_delay != 0
       && sync->follow_up_recv_time_local >
-      sync->sync_recv_time_local + 20 * domain->mean_path_delay) {
+      sync->sync_recv_time_local + MAX (100 * GST_MSECOND,
+          20 * domain->mean_path_delay)) {
     GST_WARNING ("Sync-follow-up delay for domain %u too big: %" 
GST_TIME_FORMAT
-        " > 20 * %" GST_TIME_FORMAT, domain->domain,
+        " > MAX(100ms, 20 * %" GST_TIME_FORMAT ")", domain->domain,
         GST_TIME_ARGS (sync->follow_up_recv_time_local -
             sync->sync_recv_time_local),
         GST_TIME_ARGS (domain->mean_path_delay));
@@ -1405,11 +1414,14 @@
    * hope for, but some PTP systems don't prioritise sending DELAY_RESP,
    * but they must still have placed an accurate reception timestamp.
    * That means we should be quite tolerant about late DELAY_RESP, and
-   * mostly rely on filtering out jumps in the mean-path-delay elsewhere  */
-  if (delay_req_delay > 20 * domain->mean_path_delay) {
+   * mostly rely on filtering out jumps in the mean-path-delay elsewhere.
+   *
+   * For that reason also allow at least 100ms delay in case of delays smaller
+   * than 5ms. */
+  if (delay_req_delay > MAX (100 * GST_MSECOND, 20 * domain->mean_path_delay)) 
{
     GST_WARNING ("Delay-request-response delay for domain %u too big: %"
-        GST_TIME_FORMAT " > 20 * %" GST_TIME_FORMAT, domain->domain,
-        GST_TIME_ARGS (delay_req_delay),
+        GST_TIME_FORMAT " > MAX(100ms, 20 * %" GST_TIME_FORMAT ")",
+        domain->domain, GST_TIME_ARGS (delay_req_delay),
         GST_TIME_ARGS (domain->mean_path_delay));
     ret = FALSE;
     goto out;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/meson.build 
new/gstreamer-1.20.2/meson.build
--- old/gstreamer-1.20.1/meson.build    2022-03-14 12:33:40.000000000 +0100
+++ new/gstreamer-1.20.2/meson.build    2022-05-03 00:29:29.000000000 +0200
@@ -1,5 +1,5 @@
 project('gstreamer', 'c',
-  version : '1.20.1',
+  version : '1.20.2',
   meson_version : '>= 0.59',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
@@ -584,6 +584,10 @@
     'bashhelpersdir=${gstreamerdir}/data/bash-completion/helpers',
     'helpersdir=${gstreamerdir}/libs/gst/helpers']
 pkgconfig_subdirs = ['gstreamer-1.0']
+pkgconfig_libs = []
+if host_system == 'darwin'
+  pkgconfig_libs = ['-Wl,-rpath,${libdir}']
+endif
 
 static_build = get_option('default_library') == 'static'
 libraries = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/plugins/elements/gstfilesink.c 
new/gstreamer-1.20.2/plugins/elements/gstfilesink.c
--- old/gstreamer-1.20.1/plugins/elements/gstfilesink.c 2022-03-14 
12:33:40.000000000 +0100
+++ new/gstreamer-1.20.2/plugins/elements/gstfilesink.c 2022-05-03 
00:29:29.000000000 +0200
@@ -153,6 +153,9 @@
 
   fd = open (filename, flags, 0666);
 
+  if (fd < 0)
+    return NULL;
+
   retval = fdopen (fd, mode);
   return retval;
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gstreamer-1.20.1/plugins/elements/gsttypefindelement.c 
new/gstreamer-1.20.2/plugins/elements/gsttypefindelement.c
--- old/gstreamer-1.20.1/plugins/elements/gsttypefindelement.c  2022-03-14 
12:33:40.000000000 +0100
+++ new/gstreamer-1.20.2/plugins/elements/gsttypefindelement.c  2022-05-03 
00:29:29.000000000 +0200
@@ -803,6 +803,8 @@
   gchar *uri, *result, *path, *base_path, *find;
   GstUri *gst_uri;
 
+  base_path = NULL;
+
   query = gst_query_new_uri ();
 
   /* try getting the caps with an uri query and from the extension */
@@ -813,6 +815,11 @@
   if (uri == NULL)
     goto no_uri;
 
+  /* data URIs paths are opaque and do not semantically represent a
+     filesystem-like resource path, so skip URI parsing for this case. */
+  if (g_str_has_prefix (uri, "data:"))
+    goto no_extension;
+
   GST_DEBUG_OBJECT (typefind, "finding extension of %s", uri);
 
   gst_uri = gst_uri_from_string (uri);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/plugins/tracers/gstleaks.c 
new/gstreamer-1.20.2/plugins/tracers/gstleaks.c
--- old/gstreamer-1.20.1/plugins/tracers/gstleaks.c     2022-03-14 
12:33:40.000000000 +0100
+++ new/gstreamer-1.20.2/plugins/tracers/gstleaks.c     2022-05-03 
00:29:29.000000000 +0200
@@ -925,7 +925,7 @@
      * See 
https://pubs.opengroup.org/onlinepubs/007904975/functions/pthread_atfork.html
      * for details. */
     res = pthread_atfork (atfork_prepare, atfork_parent, atfork_child);
-    if (!res) {
+    if (res != 0) {
       GST_WARNING_OBJECT (leaks, "pthread_atfork() failed (%d)", res);
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/po/gstreamer-1.0.pot 
new/gstreamer-1.20.2/po/gstreamer-1.0.pot
--- old/gstreamer-1.20.1/po/gstreamer-1.0.pot   2022-03-14 12:34:27.207625900 
+0100
+++ new/gstreamer-1.20.2/po/gstreamer-1.0.pot   2022-05-03 00:29:39.183158600 
+0200
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-1.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-14 11:34+0000\n"
+"POT-Creation-Date: 2022-05-02 23:29+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <l...@li.org>\n"
@@ -311,7 +311,7 @@
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
-#: gst/gstregistry.c:1770
+#: gst/gstregistry.c:1798
 #, c-format
 msgid "Error writing registry cache to %s: %s"
 msgstr ""
@@ -1220,27 +1220,27 @@
 msgid "Error while writing to download file."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:450
+#: plugins/elements/gstfilesink.c:453
 msgid "No file name specified for writing."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:456
+#: plugins/elements/gstfilesink.c:459
 #, c-format
 msgid "Could not open file \"%s\" for writing."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:468 plugins/elements/gstfilesink.c:472
+#: plugins/elements/gstfilesink.c:471 plugins/elements/gstfilesink.c:475
 #, c-format
 msgid "Error closing file \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:657
+#: plugins/elements/gstfilesink.c:660
 #, c-format
 msgid "Error while seeking in file \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:665 plugins/elements/gstfilesink.c:672
-#: plugins/elements/gstfilesink.c:925 plugins/elements/gstfilesink.c:1009
+#: plugins/elements/gstfilesink.c:668 plugins/elements/gstfilesink.c:675
+#: plugins/elements/gstfilesink.c:928 plugins/elements/gstfilesink.c:1012
 #, c-format
 msgid "Error while writing to file \"%s\"."
 msgstr ""
@@ -1292,12 +1292,12 @@
 msgid "force caps without doing a typefind"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:1006
-#: plugins/elements/gsttypefindelement.c:1028
+#: plugins/elements/gsttypefindelement.c:1013
+#: plugins/elements/gsttypefindelement.c:1035
 msgid "Stream doesn't contain enough data."
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:1148
+#: plugins/elements/gsttypefindelement.c:1155
 msgid "Stream contains no data."
 msgstr ""
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/tools/gst-launch.c 
new/gstreamer-1.20.2/tools/gst-launch.c
--- old/gstreamer-1.20.1/tools/gst-launch.c     2022-03-14 12:33:40.000000000 
+0100
+++ new/gstreamer-1.20.2/tools/gst-launch.c     2022-05-03 00:29:29.000000000 
+0200
@@ -47,7 +47,7 @@
 #include <locale.h>             /* for LC_ALL */
 #include "tools.h"
 #ifdef HAVE_WINMM
-#include <timeapi.h>
+#include <mmsystem.h>
 #endif
 
 extern volatile gboolean glib_on_error_halt;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.1/tools/meson.build 
new/gstreamer-1.20.2/tools/meson.build
--- old/gstreamer-1.20.1/tools/meson.build      2022-03-14 12:33:40.000000000 
+0100
+++ new/gstreamer-1.20.2/tools/meson.build      2022-05-03 00:29:29.000000000 
+0200
@@ -6,7 +6,7 @@
 if gst_parse
   if host_system == 'windows' and not building_for_uwp
     winmm_lib = cc.find_library('winmm', required: false)
-    if winmm_lib.found() and cc.has_header('timeapi.h')
+    if winmm_lib.found() and cc.has_header('mmsystem.h')
       extra_launch_dep += [winmm_lib]
       extra_launch_arg += ['-DHAVE_WINMM']
     endif

Reply via email to