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-12-25 15:14:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer (Old)
 and      /work/SRC/openSUSE:Factory/.gstreamer.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gstreamer"

Sun Dec 25 15:14:21 2022 rev:82 rq:1045094 version:1.20.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/gstreamer/gstreamer.changes      2022-10-25 
11:18:39.557957366 +0200
+++ /work/SRC/openSUSE:Factory/.gstreamer.new.1563/gstreamer.changes    
2022-12-25 15:14:26.585233893 +0100
@@ -1,0 +2,59 @@
+Thu Dec 22 12:43:08 UTC 2022 - Dirk Müller <[email protected]>
+
+- update to 1.20.5:
+  + This release only contains bugfixes and it should be safe to
+    upgrade from 1.20.x.
+  + systemclock waiting fixes for certain 32-bit platforms/libcs
+  + alphacombine: robustness improvements for corner case scenarios
+  + avfvideosrc: Report latency when doing screen capture
+  + d3d11videosink: various thread-safety and stability fixes
+  + decklink: fix performance issue when HDMI signal has been lost
+    for a long time
+  + flacparse: Fix handling of headers advertising 32 bits per
+    sample
+  + mpegts: Handle when iconv doesn't support ISO 6937 (e.g. musl
+    libc)
+  + opengl: fix automatic dispmanx detection for rpi4 and fix usage
+    of eglCreate/DestroyImage
+  + opusdec: Various channel-related fixes
+  + textrender: event handling fixes, esp. for GAP event
+  + subparse: Fix non-closed tag handling
+  + videoscale: fix handling of unknown buffer metas
+  + videosink: reverse playback handling fixes
+  + qtmux: Prefill mode fixes, especially for raw audio
+  + multiudpsink: allow binding to IPv6 address
+  + rtspsrc:
+    - Fix usage of IPv6 connections in SETUP
+    - Only EOS on timeout if all streams are timed out/EOS
+  + splitmuxsrc: fix playback stall if there are unlinked pads
+  + v4l2: Fix SIGSEGV on state change during format changes
+  + wavparse robustness fixes
+  + Fix static linking on macOS (opengl, vulkan)
+  + gstreamer-vaapi: fix headless build against mesa >= 22.3.0
+  + GStreamer Editing Services library: Fix build with tools
+    disabled
+  + webrtc example/demo fixes
+  + unit test fixes for aesdec and rtpjitterbuffer
+  + Cerbero: Fix ios cross-compile with cmake on M1; some recipe
+    updates and other build fixes
+  + Miscellaneous bug fixes, memory leak fixes, and other stability
+    and reliability improvements
+  + Performance improvements
+  + Changes in gstreamer base package:
+    - allocator: Copy allocator name in gst_allocator_register()
+    - concat: Properly propagate EOS seqnum
+    - fakesrc: avoid time overflow with datarate
+    - Fix build of 1.20 branch with Meson 0.64.1 for those who have
+      hotdoc installed on their system.
+    - gst-inspect: Don't leak list
+    - meson: fix check for pthread_setname_np()
+    - miniobject: support higher refcount values
+    - pads: Fix non-serialized sticky event push, e.g. instant
+      change rate events
+    - padtemplate: Fix annotations
+    - systemclock: Use futex_time64 syscall on x32 and other
+      platforms that always...
+    - -Wimplicit-function-declaration in pthread_setname_np check
+      (missing GNUSOURCE)
+
+-------------------------------------------------------------------

Old:
----
  gstreamer-1.20.4.tar.xz

New:
----
  gstreamer-1.20.5.tar.xz

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

Other differences:
------------------
++++++ gstreamer.spec ++++++
--- /var/tmp/diff_new_pack.IZL6A4/_old  2022-12-25 15:14:27.941241570 +0100
+++ /var/tmp/diff_new_pack.IZL6A4/_new  2022-12-25 15:14:27.941241570 +0100
@@ -19,7 +19,7 @@
 %define gst_branch 1.0
 
 Name:           gstreamer
-Version:        1.20.4
+Version:        1.20.5
 Release:        0
 Summary:        Streaming-Media Framework Runtime
 License:        LGPL-2.1-or-later

++++++ gstreamer-1.20.4.tar.xz -> gstreamer-1.20.5.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/ChangeLog 
new/gstreamer-1.20.5/ChangeLog
--- old/gstreamer-1.20.4/ChangeLog      2022-10-12 17:39:51.000000000 +0200
+++ new/gstreamer-1.20.5/ChangeLog      2022-12-20 00:34:46.000000000 +0100
@@ -1,7 +1,125 @@
+=== release 1.20.5 ===
+
+2022-12-19 23:34:42 +0000  Tim-Philipp Müller <[email protected]>
+
+       * NEWS:
+       * RELEASE:
+       * gstreamer.doap:
+       * meson.build:
+         Release 1.20.5
+
+2022-12-19 23:34:34 +0000  Tim-Philipp Müller <[email protected]>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.5
+
+2022-12-12 11:34:51 +0200  Sebastian Dröge <[email protected]>
+
+       * gst/gstsystemclock.c:
+       * meson.build:
+         systemclock: Use `futex_time64` syscall if available (32-bit systems) 
and use correct `struct timespec` definition
+         See also https://gitlab.gnome.org/GNOME/glib/-/issues/2634
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1648
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3572>
+
+2022-11-07 09:27:09 -0500  Xavier Claessens <[email protected]>
+
+       * docs/meson.build:
+         hotdoc: gst-hotdoc-plugins-scanner is not needed for libraries
+         Meson >= 0.64.0 does not allow any more to add executables into
+         hotdoc.generate_doc(..., dependencies: ...) and it should not be 
needed
+         any way.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3554>
+
+2022-12-07 11:49:40 +0000  Tim-Philipp Müller <[email protected]>
+
+       * meson.build:
+         meson: fix check for pthread_setname_np()
+         Need to define _GNU_SOURCE.
+         Fixes #1542
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3539>
+
+2022-11-30 09:59:09 +0100  Edward Hervey <[email protected]>
+
+       * tools/gst-inspect.c:
+         gst-inspect: Don't leak list
+         Just iterate the list instead of trying to be smart...
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3499>
+
+2022-11-18 16:57:16 +0100  Célestin Marot <[email protected]>
+
+       * plugins/elements/gstfakesrc.c:
+         fakesrc: avoid time overflow with datarate
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3438>
+
+2022-11-08 17:45:37 +0200  Sebastian Dröge <[email protected]>
+
+       * gst/gstallocator.c:
+         allocator: Switch `allow-none` annotations to `nullable` / `optional`
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3369>
+
+2022-11-08 17:44:54 +0200  Sebastian Dröge <[email protected]>
+
+       * gst/gstallocator.c:
+         allocator: Copy allocator name in gst_allocator_register()
+         The parameter is not marked as `transfer full` and stays around in the
+         hash table, so we will have to copy it ourselves.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3369>
+
+2022-10-24 12:13:14 +0200  Edward Hervey <[email protected]>
+
+       * gst/gstpad.c:
+         gstpad: Fix non-serialized sticky event push
+         With non-serialized sticky events, such as GST_EVENT_INSTANT_RATE, we 
both want
+         to store the event (for later re-linking) *AND* push the event in a 
non-blocking
+         way.
+         We therefore must *not* propagate pending sticky events if the event 
is "sticky
+         or serialized" but only if it's "serialized"
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3332>
+
+2022-10-27 15:13:36 +0300  Sebastian Dröge <[email protected]>
+
+       * libs/gst/base/gstaggregator.c:
+       * libs/gst/base/gstbaseparse.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/3291>
+
+2022-10-27 11:18:24 +0200  Edward Hervey <[email protected]>
+
+       * plugins/elements/gstconcat.c:
+         concat: Properly propagate EOS seqnum
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3288>
+
+2022-10-22 22:04:57 +0900  Seungha Yang <[email protected]>
+
+       * gst/gstpadtemplate.c:
+         padtemplate: Fix annotations
+         gst_caps_replace() does not take ownership of the new caps
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3262>
+
+2022-10-18 16:41:36 +0200  Bunio_FH <[email protected]>
+
+       * gst/gstminiobject.c:
+         gstminiobject: shares capacity increase
+         during the MSE (WebKit) tests from Apple suite:
+         
https://hls-streaming.cdn-apple.com/hls_conformance/dist/v1.1/index.html?pretty=true&whitelist=MSE%20Suite
+         webkit attempts to add a single audio buffer containing ~35.5k frames.
+         when corresponding GstSamples are pulled buffer is being referenced
+         more than object capacity allows: 2^15-1. since the case could be 
considered
+         malformed a surgical patch is applied to increase the capacity.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3233>
+
+2022-10-12 18:40:25 +0100  Tim-Philipp Müller <[email protected]>
+
+       * meson.build:
+         Back to development
+
 === release 1.20.4 ===
 
 2022-10-12 16:39:47 +0100  Tim-Philipp Müller <[email protected]>
 
+       * ChangeLog:
        * NEWS:
        * RELEASE:
        * gstreamer.doap:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/NEWS new/gstreamer-1.20.5/NEWS
--- old/gstreamer-1.20.4/NEWS   2022-10-12 17:39:51.000000000 +0200
+++ new/gstreamer-1.20.5/NEWS   2022-12-20 00:34:46.000000000 +0100
@@ -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.4 and was released
-on 12 October 2022.
+The latest bug-fix release in the 1.20 series is 1.20.5 and was released
+on 19 December 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Wednesday 12 October 2022, 15:00 UTC (log)
+Last updated: Monday 19 December 2022, 19:00 UTC (log)
 
 Introduction
 
@@ -1791,6 +1791,13 @@
 
 Known Issues
 
+-   GStreamer may fail to build the hotdoc documentation with the Meson
+    0.64.0 release owing to a Meson bug. This should only affect systems
+    where hotdoc is installed, and will be fixed in Meson 0.64.1 by this
+    Meson PR in combination with this GStreamer MR. In the meantime,
+    users can pass -Ddoc=disabledor downgrade to an older Meson version
+    (< 0.64.0).
+
 -   nothing in particular at this point (but also see possibly breaking
     changes section above)
 
@@ -2530,6 +2537,7 @@
     chroma (Y41B, YUV9, YVU9 and IYU9)
 -   macOS build and packaging fixes, in particular fix finding of gio
     modules on macOS for https/TLS support
+-   Fix consuming of the macOS package as a framework in XCode
 -   Performance improvements
 -   Miscellaneous bug fixes, memory leak fixes, and other stability and
     reliability improvements
@@ -2783,6 +2791,252 @@
 -   List of Merge Requests applied in 1.20.4
 -   List of Issues fixed in 1.20.4
 
+1.20.5
+
+The fifth 1.20 bug-fix release (1.20.5) was released on 19 December
+2022.
+
+This release only contains bugfixes and it should be safe to upgrade
+from 1.20.x.
+
+Highlighted bugfixes in 1.20.5
+
+-   systemclock waiting fixes for certain 32-bit platforms/libcs
+-   alphacombine: robustness improvements for corner case scenarios
+-   avfvideosrc: Report latency when doing screen capture
+-   d3d11videosink: various thread-safety and stability fixes
+-   decklink: fix performance issue when HDMI signal has been lost for a
+    long time
+-   flacparse: Fix handling of headers advertising 32 bits per sample
+-   mpegts: Handle when iconv doesn’t support ISO 6937 (e.g. musl libc)
+-   opengl: fix automatic dispmanx detection for rpi4 and fix usage of
+    eglCreate/DestroyImage
+-   opusdec: Various channel-related fixes
+-   textrender: event handling fixes, esp. for GAP event
+-   subparse: Fix non-closed tag handling
+-   videoscale: fix handling of unknown buffer metas
+-   videosink: reverse playback handling fixes
+-   qtmux: Prefill mode fixes, especially for raw audio
+-   multiudpsink: allow binding to IPv6 address
+-   rtspsrc: Fix usage of IPv6 connections in SETUP
+-   rtspsrc: Only EOS on timeout if all streams are timed out/EOS
+-   splitmuxsrc: fix playback stall if there are unlinked pads
+-   v4l2: Fix SIGSEGV on state change during format changes
+-   wavparse robustness fixes
+-   Fix static linking on macOS (opengl, vulkan)
+-   gstreamer-vaapi: fix headless build against mesa >= 22.3.0
+-   GStreamer Editing Services library: Fix build with tools disabled
+-   webrtc example/demo fixes
+-   unit test fixes for aesdec and rtpjitterbuffer
+-   Cerbero: Fix ios cross-compile with cmake on M1; some recipe updates
+    and other build fixes
+-   Binary packages: pkg-config file fixes for various recipes (ffmpeg,
+    taglib, gstreamer)
+-   Binary packages: Enable high bitdepth support for libvpx (VP8/VP9
+    encoding/decoding)
+-   Binary packages: ship aes plugin
+-   Miscellaneous bug fixes, memory leak fixes, and other stability and
+    reliability improvements
+-   Performance improvements
+
+gstreamer
+
+-   allocator: Copy allocator name in gst_allocator_register()
+-   miniobject: support higher refcount values
+-   pads: Fix non-serialized sticky event push, e.g. instant change rate
+    events
+-   padtemplate: Fix annotations
+-   systemclock: Use futex_time64 syscall on x32 and other platforms
+    that always…
+-   Fix build of 1.20 branch with Meson 0.64.1 for those who have hotdoc
+    installed on their system.
+-   meson: fix check for pthread_setname_np()
+-   -Wimplicit-function-declaration in pthread_setname_np check (missing
+    _GNU_SOURCE)
+-   gst-inspect: Don’t leak list
+
+Core Elements
+
+-   concat: Properly propagate EOS seqnum
+-   fakesrc: avoid time overflow with datarate
+
+gst-plugins-base
+
+-   audioconvert, audioresample, audiofilter: fix divide by 0 for input
+    buffer without caps
+-   cdparanoia: Ignore compiler warning coming from the cdparanoia
+    header
+-   oggdemux, parsebin: More leak fixes
+-   opengl: fix automatic dispmanx detection for rpi4
+-   opengl: Fix usage of eglCreate/DestroyImage
+-   opengl: Fix static linking on macOS
+-   opusdec: Various channel-related fixes
+-   textrender: Negotiate caps on a GAP event if none were negotiated
+    yet
+-   textrender: Don’t blindly forward all events and don’t blindly
+    forward all events
+-   timeoverlay: fix pad leak
+-   oggdemux: Don’t leak incoming EOS event
+-   subparse: Fix non-closed tag handling.
+-   videodecoder: Only post latency message if it changed
+-   videoscale: buffer meta handling fixes (NULL-terminate array of
+    valid meta tags)
+-   videosink: Don’t return unknown end-time from get_times()
+-   Bump core requirement in 1.20 branch to 1.20.4
+
+Tools
+
+-   gst-play: Don’t leak the stream collection
+
+gst-plugins-good
+
+-   flacparse: Fix handling of headers advertising 32bps
+-   qt5: deactivate context if fill_info fails
+-   qt5: initialize GError properly in gst_qt_get_gl_wrapcontext()
+-   qtdemux: check return value from gst_structure_get in PIFF box
+-   qtdemux: use unsigned int types to store result of QT_UINT32
+-   qtmux: Prefill mode fixes
+-   oss4: Fix debug category initialization
+-   multiudpsink: allow binding to IPv6 address
+-   rtpjitterbuffer tests: Cast drop-messages-interval type properly
+    (fixing it on 32-bit architectures)
+-   rtspsrc: fix seek event leaks
+-   rtspsrc: Don’t replace 404 errors with “no auth protocol found”
+-   rtspsrc: Only EOS on timeout if all streams are timed out/EOS
+-   rtspsrc: Fix usage of IPv6 connections in SETUP
+-   splitmuxsrc: don’t queue data on unlinked pads
+-   v4l2: Fix SIGSEGV on ‘change state’ during ‘format change’
+-   v4l2videodec: Fix activation of internal pool
+-   wavparse: Avoid occasional crash due to referencing freed buffer.
+-   wavparse: Fix crash that occurs in push mode when header chunks are
+    corrupted in certain ways.
+
+gst-plugins-bad
+
+-   aesdec: Fix padding removal for per-buffer-padding=FALSE
+-   aesdec test failing in gst-plugins-bad
+-   alphacombine: Add missing query handler for gaps
+-   avfdeviceprovider: do not leak the properties
+-   avfvideosrc: Report latency when doing screen capture
+-   d3d11screencapturesrc: Specify PAR 1/1 to template caps
+-   d3d11videosink: Fixing focus lost on desktop layout change
+-   d3d11videosink: Call ShowWindow() from window thread
+-   d3d11videosink: Fix deadlock when parent window is busy
+-   d3d11videosink: Always clear back buffer on resize
+-   decklink: reset calculation of time_mapping to fix clipping HDMI
+    video
+-   directshow: Fix build error with glib 2.75 and newer
+-   dvbsubenc: Forward GAP events as-is if we wouldn’t produce an end
+    packet and…
+-   dvbsubenc: Write Display Definition Segment if a non-default
+    width/height is used
+-   h265decoder: Do not abort when failed to prepare ref pic set
+-   h264parser: Fix a typo in pred_weight_table parsing.
+-   mediafoundation, d3d11: Fix memory leak and make leak tracer happy
+-   mpegts: Handle when iconv doesn’t support ISO 6937 (e.g. musl libc)
+-   mpegts: Check continuity counter on section streams
+-   mpegts: Revert “mpegtspacketizer: memcmp potentially seen_before
+    data”
+-   mpegtspacketizer: memcmp potentially seen_before data
+-   mpegtsdemux: Always clear packetizer on DISCONT push mode
+-   srt: various fixes - improve stats and error handling
+-   rtmp2: Improve error messages
+-   rtmp2sink: Correctly return GST_FLOW_ERROR on error
+-   vulkan: Fix static linking on macOS
+-   webrtcbin: also add rtcp-fb ccm fir for video mlines by default
+-   webrtc/nice: fix small leak of split strings
+
+gst-plugins-ugly
+
+-   No changes
+
+gst-libav
+
+-   avdec_h265: Fix endless renegotiation with alternate interlacing
+-   avviddec: Avoid flushing on framerate changes
+
+gst-rtsp-server
+
+-   rtsp-server: Free client if no connection could be created
+
+gstreamer-vaapi
+
+-   vaapi: prefix internal USE_X11 define to fix build with mesa 22.3.0
+-   vaapi: libs: context: use queried value for attrib
+-   gstreamer-vaapi cannot be built without X11 with recent mesa
+
+gstreamer-sharp
+
+-   No changes
+
+gst-omx
+
+-   No changes
+
+gst-python
+
+-   No changes
+
+gst-editing-services
+
+-   Fix building ges with tools disabled
+-   Fix leaks and minor races in GES
+
+gst-examples:
+
+-   webrtc: Fix double free in webrtc-recvonly-h264 demo
+-   webrtc: Fix critical in webrtc-recvonly-h264 example
+-   webrtc/signalling examples: Fix compatibility with Python 3.10
+
+Development build environment + gst-full build
+
+-   No major changes
+
+Cerbero build tool and packaging changes in 1.20.5
+
+-   oven: output status line at least every minute
+-   Unconditionally set CMAKE_SYSTEM_NAME on Windows
+-   Fix ios cross-compile with cmake on M1
+-   Speed up downloads on Windows drastically
+-   Fix tar usage on bsdtar and print progress while compressing
+-   Actually print the sha for which the cache was not found
+
+Recipes
+
+-   ffmpeg: add patch to generate the pc files properly
+-   taglib: add patch to generate the pc files properly
+-   fontconfig: update to 2.14.1
+-   Windows: Crash on GStreamer 1.20.x x86_64 MSVC + MS-Windows due to
+    libfontconfig fonts.conf file invalid.
+-   openssl: Fix compile errors on upgrades
+-   moltenvk: Also ship the static library on macOS
+-   gstreamer: Add some missing pkgconfig files
+-   gst-plugins-good: Fix post_install failure when qt5 is enabled
+-   gst-plugins-bad: Ship AES plugin
+-   libvpx: Enable high bitdepth support
+-   openssl: update to 1.1.1s
+-   glib: Update patch to auto-detect modules on macOS
+
+Contributors to 1.20.5
+
+Aleksandr Slobodeniuk, Arun Raghavan, A. Wilcox, Bo Elmgreen, Boyuan
+Zhang, Bunio FH, Célestin Marot, Devin Anderson, Edward Hervey, He
+Junyan, Ignacio Casal Quinteiro, Jacek Skiba, Jan Alexander Steffens
+(heftig), Jan Schmidt, Jonas Bonn, Jordan Petridis, Justin Chadwell,
+Linus Svensson, Marek Olejnik, Mathieu Duponchelle, Matthew Waters,
+Nicolas Dufresne, Nirbheek Chauhan, Patrick Griffis, Pawel Stawicki,
+Philippe Normand, Ruben Gonzalez, Sam Van Den Berge, Sebastian Dröge,
+Seungha Yang, Stéphane Cerveau, Tim-Philipp Müller, Vivia Nikolaidou,
+Wojciech Kapsa, Xavier Claessens,
+
+… 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.5
+
+-   List of Merge Requests applied in 1.20.5
+-   List of Issues fixed in 1.20.5
+
 Schedule for 1.22
 
 Our next major feature release will be 1.22, and 1.21 will be the
@@ -2790,7 +3044,7 @@
 development of 1.21/1.22 will happen in the git main branch.
 
 The plan for the 1.22 development cycle is now confirmed, and we aim for
-a 1.22.0 release in December 2022.
+a 1.22.0 release in December 2022 or early January 2023.
 
 1.22 will be backwards-compatible to the stable 1.20, 1.18, 1.16, 1.14,
 1.12, 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/RELEASE new/gstreamer-1.20.5/RELEASE
--- old/gstreamer-1.20.4/RELEASE        2022-10-12 17:39:51.000000000 +0200
+++ new/gstreamer-1.20.5/RELEASE        2022-12-20 00:34:46.000000000 +0100
@@ -1,4 +1,4 @@
-This is GStreamer core 1.20.4.
+This is GStreamer core 1.20.5.
 
 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.4/docs/meson.build 
new/gstreamer-1.20.5/docs/meson.build
--- old/gstreamer-1.20.4/docs/meson.build       2022-10-12 17:39:51.000000000 
+0200
+++ new/gstreamer-1.20.5/docs/meson.build       2022-12-20 00:34:46.000000000 
+0100
@@ -121,7 +121,7 @@
     gi_index: 'gst/gi-index.md',
     gi_smart_index: true,
     gi_c_source_roots: [join_paths(meson.current_source_dir(), '../gst/'), ],
-    dependencies: [gst_dep, glib_dep, gobject_dep, gmodule_dep, 
hotdoc_plugin_scanner],
+    dependencies: [gst_dep, glib_dep, gobject_dep, gmodule_dep],
     extra_assets: [join_paths(meson.current_source_dir(), 'images')],
 )]
 
@@ -147,7 +147,7 @@
       gi_index: join_paths('libs/', name, 'index.md'),
       gi_smart_index: true,
       gi_order_generated_subpages: true,
-      dependencies: deps + [hotdoc_plugin_scanner],
+      dependencies: deps,
       install: false,
   )]
 endforeach
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/gst/gstallocator.c 
new/gstreamer-1.20.5/gst/gstallocator.c
--- old/gstreamer-1.20.4/gst/gstallocator.c     2022-10-12 17:39:51.000000000 
+0200
+++ new/gstreamer-1.20.5/gst/gstallocator.c     2022-12-20 00:34:46.000000000 
+0100
@@ -233,13 +233,14 @@
   g_rw_lock_writer_lock (&lock);
   /* The ref will never be released */
   GST_OBJECT_FLAG_SET (allocator, GST_OBJECT_FLAG_MAY_BE_LEAKED);
-  g_hash_table_insert (allocators, (gpointer) name, (gpointer) allocator);
+  g_hash_table_insert (allocators, (gpointer) g_strdup (name),
+      (gpointer) allocator);
   g_rw_lock_writer_unlock (&lock);
 }
 
 /**
  * gst_allocator_find:
- * @name: (allow-none): the name of the allocator
+ * @name: (nullable): the name of the allocator
  *
  * Find a previously registered allocator with @name. When @name is %NULL, the
  * default allocator will be returned.
@@ -289,9 +290,9 @@
 
 /**
  * gst_allocator_alloc:
- * @allocator: (transfer none) (allow-none): a #GstAllocator to use
+ * @allocator: (transfer none) (nullable): a #GstAllocator to use
  * @size: size of the visible memory area
- * @params: (transfer none) (allow-none): optional parameters
+ * @params: (transfer none) (nullable): optional parameters
  *
  * Use @allocator to allocate a new memory block with memory that is at least
  * @size big.
@@ -599,7 +600,7 @@
 _priv_gst_allocator_initialize (void)
 {
   g_rw_lock_init (&lock);
-  allocators = g_hash_table_new_full (g_str_hash, g_str_equal, NULL,
+  allocators = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
       gst_object_unref);
 
 #ifdef HAVE_GETPAGESIZE
@@ -642,8 +643,8 @@
  * @maxsize: allocated size of @data
  * @offset: offset in @data
  * @size: size of valid data
- * @user_data: (allow-none): user_data
- * @notify: (allow-none) (scope async) (closure user_data): called with 
@user_data when the memory is freed
+ * @user_data: (nullable): user_data
+ * @notify: (nullable) (scope async) (closure user_data): called with 
@user_data when the memory is freed
  *
  * Allocate a new memory block that wraps the given @data.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/gst/gstminiobject.c 
new/gstreamer-1.20.5/gst/gstminiobject.c
--- old/gstreamer-1.20.4/gst/gstminiobject.c    2022-10-12 17:39:51.000000000 
+0200
+++ new/gstreamer-1.20.5/gst/gstminiobject.c    2022-12-20 00:34:46.000000000 
+0100
@@ -217,7 +217,7 @@
 gboolean
 gst_mini_object_lock (GstMiniObject * object, GstLockFlags flags)
 {
-  gint access_mode, state, newstate;
+  guint access_mode, state, newstate;
 
   g_return_val_if_fail (object != NULL, FALSE);
   g_return_val_if_fail (GST_MINI_OBJECT_IS_LOCKABLE (object), FALSE);
@@ -228,9 +228,9 @@
 
   do {
     access_mode = flags & FLAG_MASK;
-    newstate = state = g_atomic_int_get (&object->lockstate);
+    newstate = state = (guint) g_atomic_int_get (&object->lockstate);
 
-    GST_CAT_TRACE (GST_CAT_LOCKING, "lock %p: state %08x, access_mode %d",
+    GST_CAT_TRACE (GST_CAT_LOCKING, "lock %p: state %08x, access_mode %u",
         object, state, access_mode);
 
     if (access_mode & GST_LOCK_FLAG_EXCLUSIVE) {
@@ -265,7 +265,7 @@
 lock_failed:
   {
     GST_CAT_DEBUG (GST_CAT_LOCKING,
-        "lock failed %p: state %08x, access_mode %d", object, state,
+        "lock failed %p: state %08x, access_mode %u", object, state,
         access_mode);
     return FALSE;
   }
@@ -281,16 +281,16 @@
 void
 gst_mini_object_unlock (GstMiniObject * object, GstLockFlags flags)
 {
-  gint access_mode, state, newstate;
+  guint access_mode, state, newstate;
 
   g_return_if_fail (object != NULL);
   g_return_if_fail (GST_MINI_OBJECT_IS_LOCKABLE (object));
 
   do {
     access_mode = flags & FLAG_MASK;
-    newstate = state = g_atomic_int_get (&object->lockstate);
+    newstate = state = (guint) g_atomic_int_get (&object->lockstate);
 
-    GST_CAT_TRACE (GST_CAT_LOCKING, "unlock %p: state %08x, access_mode %d",
+    GST_CAT_TRACE (GST_CAT_LOCKING, "unlock %p: state %08x, access_mode %u",
         object, state, access_mode);
 
     if (access_mode & GST_LOCK_FLAG_EXCLUSIVE) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/gst/gstpad.c 
new/gstreamer-1.20.5/gst/gstpad.c
--- old/gstreamer-1.20.4/gst/gstpad.c   2022-10-12 17:39:51.000000000 +0200
+++ new/gstreamer-1.20.5/gst/gstpad.c   2022-12-20 00:34:46.000000000 +0100
@@ -5492,8 +5492,7 @@
           GST_PAD_PROBE_TYPE_BLOCK, event, probe_stopped);
       /* recheck sticky events because the probe might have cause a relink */
       if (GST_PAD_HAS_PENDING_EVENTS (pad) && GST_PAD_IS_SRC (pad)
-          && (GST_EVENT_IS_SERIALIZED (event)
-              || GST_EVENT_IS_STICKY (event))) {
+          && (GST_EVENT_IS_SERIALIZED (event))) {
         PushStickyData data = { GST_FLOW_OK, FALSE, event };
         GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PENDING_EVENTS);
 
@@ -5510,8 +5509,7 @@
 
   /* recheck sticky events because the probe might have cause a relink */
   if (GST_PAD_HAS_PENDING_EVENTS (pad) && GST_PAD_IS_SRC (pad)
-      && (GST_EVENT_IS_SERIALIZED (event)
-          || GST_EVENT_IS_STICKY (event))) {
+      && (GST_EVENT_IS_SERIALIZED (event))) {
     PushStickyData data = { GST_FLOW_OK, FALSE, event };
     GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PENDING_EVENTS);
 
@@ -5669,15 +5667,17 @@
         break;
     }
   }
-  if (GST_PAD_IS_SRC (pad) && (serialized || sticky)) {
-    /* all serialized or sticky events on the srcpad trigger push of
-     * sticky events */
+  if (GST_PAD_IS_SRC (pad) && serialized) {
+    /* All serialized events on the srcpad trigger push of sticky events.
+     *
+     * Note that we do not do this for non-serialized sticky events since it
+     * could potentially block. */
     res = (check_sticky (pad, event) == GST_FLOW_OK);
   }
-  if (!sticky) {
+  if (!serialized || !sticky) {
     GstFlowReturn ret;
 
-    /* other events are pushed right away */
+    /* non-serialized and non-sticky events are pushed right away. */
     ret = gst_pad_push_event_unchecked (pad, event, type);
     /* dropped events by a probe are not an error */
     res = (ret == GST_FLOW_OK || ret == GST_FLOW_CUSTOM_SUCCESS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/gst/gstpadtemplate.c 
new/gstreamer-1.20.5/gst/gstpadtemplate.c
--- old/gstreamer-1.20.4/gst/gstpadtemplate.c   2022-10-12 17:39:51.000000000 
+0200
+++ new/gstreamer-1.20.5/gst/gstpadtemplate.c   2022-12-20 00:34:46.000000000 
+0100
@@ -483,7 +483,7 @@
 /**
  * gst_pad_template_set_documentation_caps:
  * @templ: the pad template to set documented capabilities on
- * @caps: (transfer full): the documented capabilities
+ * @caps: (transfer none): the documented capabilities
  *
  * Certain elements will dynamically construct the caps of their
  * pad templates. In order not to let environment-specific information
@@ -510,7 +510,7 @@
  *
  * See gst_pad_template_set_documentation_caps().
  *
- * Returns: The caps to document. For convenience, this will return
+ * Returns: (transfer full): The caps to document. For convenience, this will 
return
  *   gst_pad_template_get_caps() when no documentation caps were set.
  * Since: 1.18
  */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/gst/gstsystemclock.c 
new/gstreamer-1.20.5/gst/gstsystemclock.c
--- old/gstreamer-1.20.4/gst/gstsystemclock.c   2022-10-12 17:39:51.000000000 
+0200
+++ new/gstreamer-1.20.5/gst/gstsystemclock.c   2022-12-20 00:34:46.000000000 
+0100
@@ -70,11 +70,15 @@
 #define GST_SYSTEM_CLOCK_WAIT(clock)            
g_cond_wait(GST_SYSTEM_CLOCK_GET_COND(clock),GST_SYSTEM_CLOCK_GET_LOCK(clock))
 #define GST_SYSTEM_CLOCK_BROADCAST(clock)       
g_cond_broadcast(GST_SYSTEM_CLOCK_GET_COND(clock))
 
-#if defined(HAVE_FUTEX)
+#if defined(HAVE_FUTEX) || defined(HAVE_FUTEX_TIME64)
 #include <unistd.h>
 #include <linux/futex.h>
 #include <sys/syscall.h>
 
+#if !defined(__NR_futex) && !defined(__NR_futex_time64)
+#error "Neither __NR_futex nor __NR_futex_time64 are defined but were found by 
meson"
+#endif
+
 #ifndef FUTEX_WAIT_BITSET_PRIVATE
 #define FUTEX_WAIT_BITSET_PRIVATE FUTEX_WAIT_BITSET
 #endif
@@ -123,14 +127,35 @@
 {
   g_atomic_int_inc (cond_val);
 
+#if defined(__NR_futex_time64)
+  {
+    int res;
+    res = syscall (__NR_futex_time64, cond_val, (gsize) FUTEX_WAKE_PRIVATE,
+        (gsize) INT_MAX, NULL);
+
+    /* If the syscall does not exist (`ENOSYS`), we retry again below with the
+     * normal `futex` syscall. This can happen if newer kernel headers are
+     * used than the kernel that is actually running.
+     */
+#ifdef __NR_futex
+    if (res >= 0 || errno != ENOSYS) {
+#else
+    {
+#endif
+      return;
+    }
+  }
+#endif
+
+#if defined(__NR_futex)
   syscall (__NR_futex, cond_val, (gsize) FUTEX_WAKE_PRIVATE, (gsize) INT_MAX,
       NULL);
+#endif
 }
 
 static gboolean
 gst_futex_cond_wait_until (guint * cond_val, GMutex * mutex, gint64 end_time)
 {
-  struct timespec end;
   guint sampled;
   int res;
   gboolean success;
@@ -138,20 +163,92 @@
   if (end_time < 0)
     return FALSE;
 
-  end.tv_sec = end_time / 1000000000;
-  end.tv_nsec = end_time % 1000000000;
-
   sampled = *cond_val;
   g_mutex_unlock (mutex);
-  /* we use FUTEX_WAIT_BITSET_PRIVATE rather than FUTEX_WAIT_PRIVATE to be
-   * able to use absolute time */
-  res =
-      syscall (__NR_futex, cond_val, (gsize) FUTEX_WAIT_BITSET_PRIVATE,
-      (gsize) sampled, &end, NULL, FUTEX_BITSET_MATCH_ANY);
-  success = (res < 0 && errno == ETIMEDOUT) ? FALSE : TRUE;
-  g_mutex_lock (mutex);
 
-  return success;
+  /* `struct timespec` as defined by the libc headers does not necessarily
+   * have any relation to the one used by the kernel for the `futex` syscall.
+   *
+   * Specifically, the libc headers might use 64-bit `time_t` while the kernel
+   * headers use 32-bit `__kernel_old_time_t` on certain systems.
+   *
+   * To get around this problem we
+   *   a) check if `futex_time64` is available, which only exists on 32-bit
+   *      platforms and always uses 64-bit `time_t`.
+   *   b) otherwise (or if that returns `ENOSYS`), we call the normal `futex`
+   *      syscall with the `struct timespec_t` used by the kernel, which uses
+   *      `__kernel_long_t` for both its fields. We use that instead of
+   *      `__kernel_old_time_t` because it is equivalent and available in the
+   *      kernel headers for a longer time.
+   *
+   * Also some 32-bit systems do not define `__NR_futex` at all and only
+   * define `__NR_futex_time64`.
+   */
+
+#ifdef __NR_futex_time64
+  {
+    struct
+    {
+      gint64 tv_sec;
+      gint64 tv_nsec;
+    } end;
+
+    end.tv_sec = end_time / 1000000000;
+    end.tv_nsec = end_time % 1000000000;
+
+    /* we use FUTEX_WAIT_BITSET_PRIVATE rather than FUTEX_WAIT_PRIVATE to be
+     * able to use absolute time */
+    res =
+        syscall (__NR_futex_time64, cond_val, (gsize) 
FUTEX_WAIT_BITSET_PRIVATE,
+        (gsize) sampled, &end, NULL, FUTEX_BITSET_MATCH_ANY);
+
+    /* If the syscall does not exist (`ENOSYS`), we retry again below with the
+     * normal `futex` syscall. This can happen if newer kernel headers are
+     * used than the kernel that is actually running.
+     */
+#ifdef __NR_futex
+    if (res >= 0 || errno != ENOSYS) {
+#else
+    {
+#endif
+      success = (res < 0 && errno == ETIMEDOUT) ? FALSE : TRUE;
+      g_mutex_lock (mutex);
+
+      return success;
+    }
+  }
+#endif
+
+#ifdef __NR_futex
+  {
+    struct
+    {
+      __kernel_long_t tv_sec;
+      __kernel_long_t tv_nsec;
+    } end;
+
+    /* Make sure to only ever call this if the end time actually fits into the
+     * target type */
+    g_assert (sizeof (__kernel_long_t) >= 8
+        || end_time / 1000000000 <= G_MAXINT32);
+
+    end.tv_sec = end_time / 1000000000;
+    end.tv_nsec = end_time % 1000000000;
+
+    /* we use FUTEX_WAIT_BITSET_PRIVATE rather than FUTEX_WAIT_PRIVATE to be
+     * able to use absolute time */
+    res =
+        syscall (__NR_futex, cond_val, (gsize) FUTEX_WAIT_BITSET_PRIVATE,
+        (gsize) sampled, &end, NULL, FUTEX_BITSET_MATCH_ANY);
+    success = (res < 0 && errno == ETIMEDOUT) ? FALSE : TRUE;
+    g_mutex_lock (mutex);
+
+    return success;
+  }
+#endif
+
+  /* We can't end up here because of the checks above */
+  g_assert_not_reached ();
 }
 
 #elif defined (G_OS_UNIX)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/gstreamer.doap 
new/gstreamer-1.20.5/gstreamer.doap
--- old/gstreamer-1.20.4/gstreamer.doap 2022-10-12 17:39:51.000000000 +0200
+++ new/gstreamer-1.20.5/gstreamer.doap 2022-12-20 00:34:46.000000000 +0100
@@ -40,6 +40,16 @@
 
  <release>
   <Version>
+   <revision>1.20.5</revision>
+   <branch>1.20</branch>
+   <name></name>
+   <created>2022-12-19</created>
+   <file-release 
rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.20.5.tar.xz";
 />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.20.4</revision>
    <branch>1.20</branch>
    <name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/libs/gst/base/gstaggregator.c 
new/gstreamer-1.20.5/libs/gst/base/gstaggregator.c
--- old/gstreamer-1.20.4/libs/gst/base/gstaggregator.c  2022-10-12 
17:39:51.000000000 +0200
+++ new/gstreamer-1.20.5/libs/gst/base/gstaggregator.c  2022-12-20 
00:34:46.000000000 +0100
@@ -382,6 +382,8 @@
 
   GstClockTime sub_latency_min; /* protected by src_lock */
   GstClockTime sub_latency_max; /* protected by src_lock */
+  /* Tracks whether the latency message was posted at least once */
+  gboolean posted_latency_msg;
 
   GstClockTime upstream_latency_min;    /* protected by src_lock */
 
@@ -1897,6 +1899,7 @@
   agg->priv->has_peer_latency = FALSE;
   agg->priv->peer_latency_live = FALSE;
   agg->priv->peer_latency_min = agg->priv->peer_latency_max = 0;
+  agg->priv->posted_latency_msg = FALSE;
 
   if (agg->priv->tags)
     gst_tag_list_unref (agg->priv->tags);
@@ -3667,7 +3670,7 @@
  *
  * Lets #GstAggregator sub-classes tell the baseclass what their internal
  * latency is. Will also post a LATENCY message on the bus so the pipeline
- * can reconfigure its global latency.
+ * can reconfigure its global latency if the values changed.
  */
 void
 gst_aggregator_set_latency (GstAggregator * self,
@@ -3688,6 +3691,10 @@
     self->priv->sub_latency_max = max_latency;
     changed = TRUE;
   }
+  if (!self->priv->posted_latency_msg) {
+    self->priv->posted_latency_msg = TRUE;
+    changed = TRUE;
+  }
 
   if (changed)
     SRC_BROADCAST (self);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/libs/gst/base/gstbaseparse.c 
new/gstreamer-1.20.5/libs/gst/base/gstbaseparse.c
--- old/gstreamer-1.20.4/libs/gst/base/gstbaseparse.c   2022-10-12 
17:39:51.000000000 +0200
+++ new/gstreamer-1.20.5/libs/gst/base/gstbaseparse.c   2022-12-20 
00:34:46.000000000 +0100
@@ -231,6 +231,8 @@
   guint lead_in, lead_out;
   GstClockTime lead_in_ts, lead_out_ts;
   GstClockTime min_latency, max_latency;
+  /* Tracks whether the latency message was posted at least once */
+  gboolean posted_latency_msg;
 
   gboolean discont;
   gboolean flushing;
@@ -899,6 +901,7 @@
   parse->priv->detect_buffers_size = 0;
 
   parse->priv->segment_seqnum = GST_SEQNUM_INVALID;
+  parse->priv->posted_latency_msg = FALSE;
   GST_OBJECT_UNLOCK (parse);
 }
 
@@ -4071,23 +4074,44 @@
  * @max_latency: maximum parse latency
  *
  * Sets the minimum and maximum (which may likely be equal) latency introduced
- * by the parsing process.  If there is such a latency, which depends on the
+ * by the parsing process. If there is such a latency, which depends on the
  * particular parsing of the format, it typically corresponds to 1 frame 
duration.
+ *
+ * If the provided values changed from previously provided ones, this will
+ * also post a LATENCY message on the bus so the pipeline can reconfigure its
+ * global latency.
  */
 void
 gst_base_parse_set_latency (GstBaseParse * parse, GstClockTime min_latency,
     GstClockTime max_latency)
 {
+  gboolean post_message = FALSE;
+
   g_return_if_fail (GST_CLOCK_TIME_IS_VALID (min_latency));
   g_return_if_fail (min_latency <= max_latency);
 
-  GST_OBJECT_LOCK (parse);
-  parse->priv->min_latency = min_latency;
-  parse->priv->max_latency = max_latency;
-  GST_OBJECT_UNLOCK (parse);
   GST_INFO_OBJECT (parse, "min/max latency %" GST_TIME_FORMAT ", %"
       GST_TIME_FORMAT, GST_TIME_ARGS (min_latency),
       GST_TIME_ARGS (max_latency));
+
+  GST_OBJECT_LOCK (parse);
+  if (parse->priv->min_latency != min_latency) {
+    parse->priv->min_latency = min_latency;
+    post_message = TRUE;
+  }
+  if (parse->priv->max_latency != max_latency) {
+    parse->priv->max_latency = max_latency;
+    post_message = TRUE;
+  }
+  if (!parse->priv->posted_latency_msg) {
+    parse->priv->posted_latency_msg = TRUE;
+    post_message = TRUE;
+  }
+  GST_OBJECT_UNLOCK (parse);
+
+  if (post_message)
+    gst_element_post_message (GST_ELEMENT_CAST (parse),
+        gst_message_new_latency (GST_OBJECT_CAST (parse)));
 }
 
 static gboolean
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/meson.build 
new/gstreamer-1.20.5/meson.build
--- old/gstreamer-1.20.4/meson.build    2022-10-12 17:39:51.000000000 +0200
+++ new/gstreamer-1.20.5/meson.build    2022-12-20 00:34:46.000000000 +0100
@@ -1,5 +1,5 @@
 project('gstreamer', 'c',
-  version : '1.20.4',
+  version : '1.20.5',
   meson_version : '>= 0.59',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
@@ -258,7 +258,8 @@
   cdata.set('HAVE_DECL_LOCALTIME_R', 1)
 endif
 
-if cc.links('''#include <pthread.h>
+if cc.links('''#define _GNU_SOURCE
+               #include <pthread.h>
                int main() {
                  pthread_setname_np("example"); return 0;
                }''', name : 'pthread_setname_np(const char*)')
@@ -272,7 +273,7 @@
 endif
 
 # Check for futex(2)
-if cc.links('''#include <linux/futex.h>
+if cc.compiles('''#include <linux/futex.h>
                #include <sys/syscall.h>
                #include <unistd.h>
                int main (int argc, char ** argv) {
@@ -281,6 +282,15 @@
                }''', name : 'futex(2) system call')
   cdata.set('HAVE_FUTEX', 1)
 endif
+if cc.compiles('''#include <linux/futex.h>
+               #include <sys/syscall.h>
+               #include <unistd.h>
+               int main (int argc, char ** argv) {
+                 syscall (__NR_futex_time64, NULL, FUTEX_WAKE, FUTEX_WAIT);
+                 return 0;
+               }''', name : 'futex(2) system call')
+  cdata.set('HAVE_FUTEX_TIME64', 1)
+endif
 
 # Check for posix timers and monotonic clock
 time_prefix = '#include <time.h>\n'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/plugins/elements/gstconcat.c 
new/gstreamer-1.20.5/plugins/elements/gstconcat.c
--- old/gstreamer-1.20.4/plugins/elements/gstconcat.c   2022-10-12 
17:39:51.000000000 +0200
+++ new/gstreamer-1.20.5/plugins/elements/gstconcat.c   2022-12-20 
00:34:46.000000000 +0100
@@ -616,6 +616,7 @@
       break;
     }
     case GST_EVENT_EOS:{
+      guint32 seqnum = gst_event_get_seqnum (event);
       gst_event_replace (&event, NULL);
 
       if (!gst_concat_pad_wait (spad, self)) {
@@ -632,6 +633,7 @@
 
         if (!next) {
           event = gst_event_new_eos ();
+          gst_event_set_seqnum (event, seqnum);
         } else {
           gst_element_post_message (GST_ELEMENT_CAST (self),
               gst_message_new_duration_changed (GST_OBJECT_CAST (self)));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/plugins/elements/gstfakesrc.c 
new/gstreamer-1.20.5/plugins/elements/gstfakesrc.c
--- old/gstreamer-1.20.4/plugins/elements/gstfakesrc.c  2022-10-12 
17:39:51.000000000 +0200
+++ new/gstreamer-1.20.5/plugins/elements/gstfakesrc.c  2022-12-20 
00:34:46.000000000 +0100
@@ -805,9 +805,11 @@
   GST_BUFFER_OFFSET (buf) = offset;
 
   if (src->datarate > 0) {
-    time = (src->bytes_sent * GST_SECOND) / src->datarate;
+    time =
+        gst_util_uint64_scale_int (src->bytes_sent, GST_SECOND, src->datarate);
 
-    GST_BUFFER_DURATION (buf) = size * GST_SECOND / src->datarate;
+    GST_BUFFER_DURATION (buf) =
+        gst_util_uint64_scale_int (size, GST_SECOND, src->datarate);
   } else if (gst_base_src_is_live (basesrc)) {
     GstClock *clock;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/po/gstreamer-1.0.pot 
new/gstreamer-1.20.5/po/gstreamer-1.0.pot
--- old/gstreamer-1.20.4/po/gstreamer-1.0.pot   2022-10-12 17:40:00.565500700 
+0200
+++ new/gstreamer-1.20.5/po/gstreamer-1.0.pot   2022-12-20 00:35:10.705764000 
+0100
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-1.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-12 16:40+0100\n"
+"POT-Creation-Date: 2022-12-19 23:35+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <[email protected]>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gstreamer-1.20.4/tools/gst-inspect.c 
new/gstreamer-1.20.5/tools/gst-inspect.c
--- old/gstreamer-1.20.4/tools/gst-inspect.c    2022-10-12 17:39:51.000000000 
+0200
+++ new/gstreamer-1.20.5/tools/gst-inspect.c    2022-12-20 00:34:46.000000000 
+0100
@@ -753,7 +753,7 @@
 static void
 print_pad_templates_info (GstElement * element, GstElementFactory * factory)
 {
-  GList *pads;
+  GList *pads, *tmp;
   GstStaticPadTemplate *padtemplate;
   GstPadTemplate *tmpl;
 
@@ -769,9 +769,9 @@
   pads = g_list_copy ((GList *)
       gst_element_factory_get_static_pad_templates (factory));
   pads = g_list_sort (pads, gst_static_pad_compare_func);
-  while (pads) {
-    padtemplate = (GstStaticPadTemplate *) (pads->data);
-    pads = g_list_next (pads);
+
+  for (tmp = pads; tmp; tmp = tmp->next) {
+    padtemplate = (GstStaticPadTemplate *) (tmp->data);
 
     if (padtemplate->direction == GST_PAD_SRC)
       n_print ("%sSRC template%s: %s'%s'%s\n", PROP_NAME_COLOR, RESET_COLOR,
@@ -828,7 +828,7 @@
 
     pop_indent ();
 
-    if (pads != NULL)
+    if (tmp->next)
       n_print ("\n");
   }
   g_list_free (pads);

Reply via email to