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