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
+
+- 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
+
+ * NEWS:
+ * RELEASE:
+ * gstreamer.doap:
+ * meson.build:
+ Release 1.20.5
+
+2022-12-19 23:34:34 +0000 Tim-Philipp M��ller
+
+ * ChangeLog:
+ Update ChangeLogs for 1.20.5
+
+2022-12-12 11:34:51 +0200 Sebastian Dr��ge
+
+ * 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
+
+ * 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
+
+ * 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
+
+ * 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
+
+ * 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
+
+ * 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
+
+ * 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
+
+ * 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
+
+ * 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
+
+ * 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
+
+ * 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
+
+ * 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
+
+ * meson.build:
+ Back to development
+
=== release 1.20.4 ===
2022-10-12 16:39:47 +0100 Tim-Philipp M��ller
+ * 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
#include
#include
+#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
+if cc.links('''#define _GNU_SOURCE
+ #include
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
+if cc.compiles('''#include
#include
#include
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
+ #include
+ #include
+ 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 \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 \n"
"Language-Team: LANGUAGE \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);