openSUSE Commits
Threads by month
- ----- 2024 -----
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
July 2023
- 1 participants
- 1987 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gstreamer-plugins-bad for openSUSE:Factory checked in at 2023-07-01 23:17:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-bad (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-plugins-bad.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-bad"
Sat Jul 1 23:17:25 2023 rev:147 rq:1096146 version:1.22.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/gstreamer-plugins-bad/gstreamer-plugins-bad.changes 2023-05-28 19:21:39.620539954 +0200
+++ /work/SRC/openSUSE:Factory/.gstreamer-plugins-bad.new.13546/gstreamer-plugins-bad.changes 2023-07-01 23:17:29.126056798 +0200
@@ -1,0 +2,24 @@
+Mon Jun 26 14:36:10 UTC 2023 - Bj��rn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 1.22.4:
+ + asfmux: fix possible unaligned write on 32-bit ARM.
+ + d3d11videosink: Fix error on pause and play.
+ + d3dvideosink: Fix navigation event leak.
+ + decklink: Correctly handle SDK strings on macOS and free
+ strings after usage on Linux.
+ + dvdspu: Make sure enough data is allocated for the available
+ data.
+ + fdkaacdec: Support up to 5 rear channels.
+ + h265parse: Fix framerate handling.
+ + kmssink: Add STM32 LTDC and NXP i.MX8M Plus LCDIFv3
+ auto-detection.
+ + sdpdemux: ensure that only one srcpad is created per stream.
+ + srtpdec: fix critical warnings on shutdown.
+ + testsrcbin: Remove spurious caps unref.
+ + va: map the mbbrc to correct enum value in get_property().
+ + vtenc: apply DTS offset to ensure DTS <= PTS.
+ + vtdec: time glitches on h264 playback.
+ + waylandsink: Emit "map" signal boarder surface is ready.
+- Rebase reduce-required-meson.patch.
+
+-------------------------------------------------------------------
Old:
----
gst-plugins-bad-1.22.3.tar.xz
New:
----
gst-plugins-bad-1.22.4.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-plugins-bad.spec ++++++
--- /var/tmp/diff_new_pack.6IybEp/_old 2023-07-01 23:17:29.994062001 +0200
+++ /var/tmp/diff_new_pack.6IybEp/_new 2023-07-01 23:17:29.998062025 +0200
@@ -71,7 +71,7 @@
%endif
Name: gstreamer-plugins-bad
-Version: 1.22.3
+Version: 1.22.4
Release: 0
Summary: GStreamer Streaming-Media Framework Plug-Ins
License: LGPL-2.1-or-later
++++++ gst-plugins-bad-1.22.3.tar.xz -> gst-plugins-bad-1.22.4.tar.xz ++++++
++++ 1617 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/ChangeLog new/gst-plugins-bad-1.22.4/ChangeLog
--- old/gst-plugins-bad-1.22.3/ChangeLog 2023-05-19 10:26:34.555968000 +0200
+++ new/gst-plugins-bad-1.22.4/ChangeLog 2023-06-20 18:48:28.867239500 +0200
@@ -1,3 +1,255 @@
+=== release 1.22.4 ===
+
+2023-06-20 17:42:25 +0100 Tim-Philipp M��ller <tim(a)centricular.com>
+
+ * NEWS:
+ * RELEASE:
+ * gst-plugins-bad.doap:
+ * meson.build:
+ Release 1.22.4
+
+2023-06-13 14:25:04 +0300 Sebastian Dr��ge <sebastian(a)centricular.com>
+
+ * gst/dvdspu/gstspu-pgs.c:
+ dvdspu: Avoid integer overflow when checking if enough data is available
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4899>
+
+2023-06-13 14:23:47 +0300 Sebastian Dr��ge <sebastian(a)centricular.com>
+
+ * gst/dvdspu/gstspu-pgs.c:
+ dvdspu: Make sure enough data is allocated for the available data
+ If the size read from the stream is smaller than the currently available
+ data then the size is bogus and the data should simply be discarded.
+ Fixes ZDI-CAN-20994
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2660
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4899>
+
+2023-04-18 09:59:36 +0200 Andoni Morales Alastruey <amorales(a)fluendo.com>
+
+ * sys/applemedia/vtenc.c:
+ * sys/applemedia/vtenc.h:
+ vtenc: remove duplicated framerate and size variables
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4888>
+
+2023-03-30 15:38:22 +0200 Andoni Morales Alastruey <amorales(a)fluendo.com>
+
+ * sys/applemedia/meson.build:
+ * sys/applemedia/vtdec.h:
+ * sys/applemedia/vtenc.c:
+ * sys/applemedia/vtenc.h:
+ * tests/validate/meson.build:
+ * tests/validate/vtenc/vtenc_h264.validatetest:
+ * tests/validate/vtenc/vtenc_h264/flow-expectations/log-enc-src-expected:
+ * tests/validate/vtenc/vtenc_h264_b_frames.validatetest:
+ * tests/validate/vtenc/vtenc_h264_b_frames/flow-expectations/log-enc-src-expected:
+ * tests/validate/vtenc/vtenc_h265.validatetest:
+ * tests/validate/vtenc/vtenc_h265/flow-expectations/log-enc-src-expected:
+ * tests/validate/vtenc/vtenc_h265_b_frames.validatetest:
+ * tests/validate/vtenc/vtenc_h265_b_frames/flow-expectations/log-enc-src-expected:
+ vtenc: apply DTS offset to ensure DTS <= PTS
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4888>
+
+2023-03-23 20:04:49 -0400 Nicolas Dufresne <nicolas.dufresne(a)collabora.com>
+
+ * gst/videoparsers/gsth265parse.c:
+ h265parse: Don't override upstream framerate
+ The framerate should only be replaced (and corrected for alternating field)
+ when it is parsed from the bitstream. Otherwise, the upstream framerate
+ from caps should be trusted and assumed correct.
+ Related to gst-plugins-bad!2020
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4352>
+
+2023-03-23 20:02:16 -0400 Nicolas Dufresne <nicolas.dufresne(a)collabora.com>
+
+ * gst/videoparsers/gsth265parse.c:
+ * gst/videoparsers/gsth265parse.h:
+ h265parse: Rename parsed_framerate to framerate_from_caps
+ That meaning of parsed_framerate is ambigious, it is set whenever the
+ framerate has been parsed from caps, which can be confused with being
+ parsed from the bitstream. Rename this as framerate_from_caps.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4352>
+
+2023-02-15 13:10:39 +0800 Mengkejiergeli Ba <mengkejiergeli.ba(a)intel.com>
+
+ * gst/videoparsers/gsth265parse.c:
+ h265parse: Fix to check returned value
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4352>
+
+2023-05-11 15:28:35 +0200 Michael Olbrich <m.olbrich(a)pengutronix.de>
+
+ * gst/sdp/gstsdpdemux.c:
+ sdpdemux: ensure that only one srcpad is created per stream
+ If two senders use the same multicast IP and port then new_session_pad()
+ may try to add a srcpad to the same stream twice.
+ stream->srcpad is updated but gst_element_add_pad() fails the second
+ time. As a result stream->srcpad points to a deleted object and
+ access in gst_sdp_demux_stream_free() fails with a segfault.
+ Just ignore the second pad. Nothing useful can be done with it anyway.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4873>
+
+2023-06-11 22:22:36 +0200 Marek Vasut <marex(a)denx.de>
+
+ * sys/kms/gstkmssink.c:
+ kmssink: Add ST STM32 LTDC auto-detection
+ Add STM32 LTDC controller into list of auto-detected modules.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4872>
+
+2023-06-11 22:22:25 +0200 Marek Vasut <marex(a)denx.de>
+
+ * sys/kms/gstkmssink.c:
+ kmssink: Add NXP i.MX8M Plus LCDIFv3 auto-detection
+ Add i.MX8M Plus LCDIFv3 controller into list of auto-detected modules.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4872>
+
+2023-04-28 22:25:11 +0800 He Junyan <junyan.he(a)intel.com>
+
+ * sys/va/gstvah265enc.c:
+ va: h265enc: map the mbbrc to correct enum value in get_property()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4870>
+
+2023-04-28 22:26:34 +0800 He Junyan <junyan.he(a)intel.com>
+
+ * sys/va/gstvah264enc.c:
+ va: h264enc: map the mbbrc to correct enum value in get_property()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4870>
+
+2023-06-14 10:08:51 +0200 Fran��ois Laignel <francois(a)centricular.com>
+
+ * ext/srtp/gstsrtpdec.c:
+ srtpdec: fix Got data flow before segment event
+ A race condition can occur in `srtpdec` during the READY -> NULL transition:
+ an RTCP buffer can make its way to `gst_srtp_dec_chain` while the element is
+ partially stopped, resulting in the following critical warning:
+ > Got data flow before segment event
+ The problematic sequence is the following:
+ 1. An RTCP buffer is being handled by the chain function for the
+ `rtcp_sinkpad`. Since, this is the first buffer, we try pushing the sticky
+ events to `rtcp_srcpad`.
+ 2. At the same moment, the element is being transitioned from PAUSED to READY.
+ 3. While checking and pushing the sticky events for `rtcp_srcpad`, we reach the
+ Segment event. For this, we try to get it from the "otherpad", in this case
+ `rtp_srcpad`. In the problematic case, `rtp_srcpad` has already been
+ deactivated so its sticky events have been cleared. We won't be pushing any
+ Segment event to `rtcp_srcpad`.
+ 4. We return to the chain function for `rtcp_sinkpad` and try pushing the
+ buffer to `rtcp_srcpad` for which deactivation hasn't started yet, hence the
+ "Got data flow before segment event".
+ This commit:
+ - Adds a boolean return value to `gst_srtp_dec_push_early_events`: in case the
+ Segment event can't be retrieved, `gst_srtp_dec_chain` can return an error
+ instead of calling `gst_pad_push`.
+ - Replaces the obsolete `gst_pad_set_caps` with `gst_pad_push_event`. The
+ additional preconditions checked by previous function are guaranteed here
+ since we push a fixed Caps which was built in the same function.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4860>
+
+2023-06-15 11:11:39 +0200 Fran��ois Laignel <francois(a)centricular.com>
+
+ * ext/srtp/gstsrtpdec.c:
+ srtpdec: backport for fix assertion 'parent->numsinkpads <= 1' failed
+ Commit 96450f4c uses the new function `gst_element_decorate_stream_id` which
+ was introduced by 39633967 in 1.23.
+ This commit backports 96450f4c with a simplified version of
+ `gst_element_decorate_stream_id_internal` as a private srtpdec function.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4860>
+
+2023-06-15 01:36:25 +0900 Seungha Yang <seungha(a)centricular.com>
+
+ * sys/d3dvideosink/d3dvideosink.c:
+ d3dvideosink: Fix navigation event leak
+ Fixing regression introduced in 6c2f6c3bd4dd525eb02c6d7000e84b76663d3daf
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4868>
+
+2023-06-13 01:29:14 +0100 Tim-Philipp M��ller <tim(a)centricular.com>
+
+ * gst/asfmux/gstasfobjects.c:
+ asfmux: fix potentially unaligned write on 32-bit ARM
+ Fixes #2665
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4855>
+
+2023-06-01 15:16:47 +0300 Sebastian Dr��ge <sebastian(a)centricular.com>
+
+ * sys/decklink/gstdecklink.h:
+ decklink: Implement Windows string conversion with common API between MinGW and MSVC
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4786>
+
+2023-06-01 15:17:26 +0300 Sebastian Dr��ge <sebastian(a)centricular.com>
+
+ * sys/decklink/gstdecklink.h:
+ decklink: Add some newlines in long defines
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4786>
+
+2023-05-31 23:44:42 +0300 Maksym Khomenko <maksym.khomenko(a)skelia.partners>
+
+ * sys/decklink/gstdecklink.h:
+ decklink: Calculate string size before malloc
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4786>
+
+2023-05-30 15:27:21 +0300 Sebastian Dr��ge <sebastian(a)centricular.com>
+
+ * sys/decklink/gstdecklink.h:
+ decklink: Use the macOS version of the SDK on macOS and not the Linux one
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4786>
+
+2023-05-30 13:23:28 +0300 Sebastian Dr��ge <sebastian(a)centricular.com>
+
+ * sys/decklink/gstdecklink.h:
+ decklink: Free SDK strings after usage on Linux
+ While they're const char* they still need to be freed like on Windows
+ and macOS and would be leaked otherwise.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4786>
+
+2023-05-30 13:22:44 +0300 Sebastian Dr��ge <sebastian(a)centricular.com>
+
+ * sys/decklink/gstdecklink.h:
+ decklink: Correctly handle SDK strings on macOS
+ They're CFStringRef* and not plain NUL-terminated char* C strings.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4786>
+
+2023-05-26 13:26:42 +0100 Colin Kinloch <colin.kinloch(a)collabora.com>
+
+ * ext/gtk/gstgtkwaylandsink.c:
+ * gst-libs/gst/wayland/gstwlwindow.c:
+ waylandsink: Emit "map" signal boarder surface is ready
+ This allows gtkwaylandsink to queue a draw of its gtk widget at the
+ correct time, avoiding a race.
+ Signed-off-by: Colin Kinloch <colin.kinloch(a)collabora.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4754>
+
+2023-05-25 17:02:24 +0200 Jan Alexander Steffens (heftig) <jan.steffens(a)ltnglobal.com>
+
+ * ext/fdkaac/gstfdkaacdec.c:
+ fdkaacdec: Support up to 5 rear channels
+ The `switch (n_rear)` supports up to 5 rear channels, but our channel
+ set only had space for 3. Size the set properly to fix this.
+ This didn't actually cause any memory unsafety as `PUSH_CHAN` would stop
+ incrementing `n_rear` if the channel set is already full.
+ Thanks to @alatiera for noticing this.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4740>
+
+2023-05-24 22:12:51 +0900 Seungha Yang <seungha(a)centricular.com>
+
+ * sys/d3d11/gstd3d11videosink.cpp:
+ d3d11videosink: Fix error on pause and play
+ The show_frame() can be called without prepare() call on paused to
+ playing state change. Thus the prepared buffer should not be cleared
+ on show_frame()
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4714>
+
+2023-05-18 09:27:29 -0400 Thibault Saunier <tsaunier(a)igalia.com>
+
+ * gst/debugutils/gsttestsrcbin.c:
+ testsrcbin: Remove spurious caps unref
+ Caps are cleared at the end of the function
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2575
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4685>
+
+2023-05-19 12:36:19 +0100 Tim-Philipp M��ller <tim(a)centricular.com>
+
+ * meson.build:
+ Back to development
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4679>
+
=== release 1.22.3 ===
2023-05-19 09:23:19 +0100 Tim-Philipp M��ller <tim(a)centricular.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/NEWS new/gst-plugins-bad-1.22.4/NEWS
--- old/gst-plugins-bad-1.22.3/NEWS 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/NEWS 2023-06-20 18:42:25.000000000 +0200
@@ -2,13 +2,13 @@
GStreamer 1.22.0 was originally released on 23 January 2023.
-The latest bug-fix release in the stable 1.22 series is 1.22.3 and was
-released on 19 May 2023.
+The latest bug-fix release in the stable 1.22 series is 1.22.4 and was
+released on 20 June 2023.
See https://gstreamer.freedesktop.org/releases/1.22/ for the latest
version of this document.
-Last updated: Friday 19 May 2023, 01:00 UTC (log)
+Last updated: Tuesday 20 June 2023, 16:30 UTC (log)
Introduction
@@ -1831,6 +1831,183 @@
- List of Merge Requests applied in 1.22.3
- List of Issues fixed in 1.22.3
+1.22.4
+
+The fourth 1.22 bug-fix release (1.22.4) was released on 20 June 2023.
+
+This release only contains bugfixes and security fixes and it should be
+safe to update from 1.22.x.
+
+Highlighted bugfixes in 1.22.4
+
+- Security fixes for flacparse, dvdspu, and subparse
+- d3d11videosink: Fix error on pause and play
+- decklink: Correctly handle SDK strings on macOS and free strings
+ after usage on Linux
+- filesink: Fix buffered mode writing of buffer lists and buffers with
+ multiple memories
+- gldownload: handle passthrough without a critical
+- h265parse: Fix framerate handling regression
+- oggdemux: vp8 fixes
+- mp4mux, qtmux, qtdemux: Opus audio mapping fixes
+- pngdec: Fix wrong colours output from 16bit RGB images
+- ptp clock: Work around ptpd bug in default configuration
+- srtpdec: fix critical warnings on shutdown
+- v4l2src: fix support for bayer format
+- v4l2videoenc: support force-keyframe event in v4l2 encoder
+- vtenc: apply DTS offset to ensure DTS <= PTS
+- gst-python: allow more functions to be called before gst_init()
+- cerbero: fix vaapi variant; add qt6 build on windows; ensure errors
+ on unguarded use of new APIs, require macOS 10.13
+- packages: ship codecalpha, rtponvif, dvbsubenc, switchbin,
+ videosignal plugins; fix pango crash on 32-bit windows
+- various bug fixes, memory leak fixes, and other stability and
+ reliability improvements
+
+gstreamer
+
+- filesink: Fix buffered mode writing of buffer lists and buffers with
+ multiple memories
+- basesink: Clear EOS flag on STREAM-START event
+- typefindhelper: downgrade bogus error level debug log message
+- ptp: Correctly parse clock ID from the commandline parameters in the
+ helper
+- ptp: Work around bug in ptpd in default configuration
+
+gst-plugins-base
+
+- alsasink: Fix stall for transition from PAUSED to READY with USB
+ speakerphone.
+- appsink: unref buffer in prev sample early so buffers from v4l2 can
+ be released properly
+- basetextoverlay: Fix typo in ���text-y��� property description
+- gldownload: handle passthrough without a critical
+- glfilter: add parent meta to output buffer for input buffer
+- oggdemux: vp8: Push headers downstream and detect keyframe packets
+- opus: Fix potential crash when getting unexpected channel position
+- streamsynchronizer: reset eos on STREAM_START
+- subparse: Look for the closing > of a tag after the opening <
+- video: convertframe: Add D3D11 specific conversion path
+- videometa: Only validate the alignment only when it contains some
+ info
+- video-blend: Fix linking error with C++
+
+gst-plugins-good
+
+- flacparse: Avoid integer overflow in available data check for image
+ tags
+- flvmux: use the correct timestamp to calculate wait times
+- isomp4: Fix (E)AC-3 channel count handling
+- jpegdec: fixes related to interlaced jpeg
+- pngdec: Fix wrong colours output from 16bit RGB images
+- qtmux, qtdemux: fix byte order for opus extension
+- rtspsrc: Do not try send dropped get/set parameter
+- qt5, qt6: Add more meson options and eliminate all automagic
+- qt: glrenderer: don���t attempt to use QWindow from non-Qt main thread
+- qml6glsink: Support building on win32
+- v4l2src: fix support for bayer format
+- v4l2: Change to query only up to
+ V4L2_CID_PRIVATE_BASE+V4L2_CID_MAX_CTRLS
+- v4l2videodec: treat MPEG-1 format as MPEG-2
+- v4l2videoenc: support force keyframe event in v4l2 encoder
+- tests: rtpbin_buffer_list: fix possible unaligned write/read on
+ 32-bit ARM
+
+gst-plugins-bad
+
+- asfmux: fix possible unaligned write on 32-bit ARM
+- d3d11videosink: Fix error on pause and play
+- d3dvideosink: Fix navigation event leak
+- decklink: Correctly handle SDK strings on macOS and free strings
+ after usage on Linux
+- dvdspu: Make sure enough data is allocated for the available data
+- fdkaacdec: Support up to 5 rear channels
+- h265parse: Fix framerate handling
+- kmssink: Add STM32 LTDC and NXP i.MX8M Plus LCDIFv3 auto-detection
+- sdpdemux: ensure that only one srcpad is created per stream
+- srtpdec: fix critical warnings on shutdown
+- testsrcbin: Remove spurious caps unref
+- va: map the mbbrc to correct enum value in get_property()
+- vtenc: apply DTS offset to ensure DTS <= PTS
+- vtdec: time glitches on h264 playback
+- waylandsink: Emit ���map��� signal boarder surface is ready
+
+gst-plugins-ugly
+
+- No changes
+
+gst-libav
+
+- No changes
+
+gst-rtsp-server
+
+- No changes
+
+gstreamer-vaapi
+
+- vaapidecodebin: don���t load vaapipostproc if not available
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- python: More functions can be called before gst_init()
+
+gst-editing-services
+
+- ges: launcher: Never put sinks in a GstPipeline
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.22.4
+
+- Ship codecalpha, rtponvif, dvbsubenc, switchbin, videosignal plugins
+- pango: Fix crash on Windows 32bit build
+- qml6: Add support for building the qml6 plugin on Windows and bump
+ meson to 1.1.1
+- vaapi: update vaapi variant/recipe for meson option changes
+- packages: Put libass in the same category as assrender
+- cerbero: Don���t extract if already extracted in fetch
+- darwin: Ensure errors on unguarded use of new APIs, require macOS
+ 10.13
+
+Contributors to 1.22.4
+
+Andoni Morales Alastruey, Arun Raghavan, Colin Kinloch, Daniel Morin,
+Edward Hervey, ekwange, Elliot Chen, Fran��ois Laignel, Guillaume
+Desmottes, Haihua Hu, He Junyan, Hou Qi, Jan Alexander Steffens
+(heftig), Jochen Henneberg, Jordan Petridis, Kevin Song, Maksym
+Khomenko, Marek Vasut, Mathieu Duponchelle, Matthew Waters,
+Mengkejiergeli Ba, Michael Olbrich, Nicolas Beland, Nicolas Dufresne,
+Nirbheek Chauhan, Philippe Normand, Piotr Brzezi��ski, Sebastian Dr��ge,
+Seungha Yang, Thibault Saunier, Tim-Philipp M��ller, V��ctor Manuel J��quez
+Leal, William Manley, Xavier Claessens, Yuri Fedoseev,
+
+��� 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.22.4
+
+- List of Merge Requests applied in 1.22.4
+- List of Issues fixed in 1.22.4
+
Schedule for 1.24
Our next major feature release will be 1.24, and 1.23 will be the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/RELEASE new/gst-plugins-bad-1.22.4/RELEASE
--- old/gst-plugins-bad-1.22.3/RELEASE 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/RELEASE 2023-06-20 18:42:25.000000000 +0200
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-bad 1.22.3.
+This is GStreamer gst-plugins-bad 1.22.4.
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' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/ext/fdkaac/gstfdkaacdec.c new/gst-plugins-bad-1.22.4/ext/fdkaac/gstfdkaacdec.c
--- old/gst-plugins-bad-1.22.3/ext/fdkaac/gstfdkaacdec.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/ext/fdkaac/gstfdkaacdec.c 2023-06-20 18:42:25.000000000 +0200
@@ -237,7 +237,7 @@
DEF_CHANSET (front, 7);
DEF_CHANSET (side, 2);
- DEF_CHANSET (rear, 3);
+ DEF_CHANSET (rear, 5);
DEF_CHANSET (lfe, 2);
DEF_CHANSET (top_front, 3);
DEF_CHANSET (top_center, 3);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/ext/gtk/gstgtkwaylandsink.c new/gst-plugins-bad-1.22.4/ext/gtk/gstgtkwaylandsink.c
--- old/gst-plugins-bad-1.22.3/ext/gtk/gstgtkwaylandsink.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/ext/gtk/gstgtkwaylandsink.c 2023-06-20 18:42:25.000000000 +0200
@@ -432,6 +432,17 @@
}
static void
+wl_window_map_cb (GstWlWindow * wl_window, GstGtkWaylandSink * self)
+{
+ GstGtkWaylandSinkPrivate *priv =
+ gst_gtk_wayland_sink_get_instance_private (self);
+
+ GST_DEBUG_OBJECT (self, "waylandsink surface is ready");
+
+ gtk_gst_base_widget_queue_draw (GTK_GST_BASE_WIDGET (priv->gtk_widget));
+}
+
+static void
setup_wl_window (GstGtkWaylandSink * self)
{
GstGtkWaylandSinkPrivate *priv =
@@ -457,6 +468,8 @@
wl_surface, &priv->render_lock);
gst_wl_window_set_rotate_method (priv->wl_window,
priv->current_rotate_method);
+ g_signal_connect_object (priv->wl_window, "map",
+ G_CALLBACK (wl_window_map_cb), self, 0);
}
/* In order to position the subsurface correctly within a scrollable widget,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/ext/srtp/gstsrtpdec.c new/gst-plugins-bad-1.22.4/ext/srtp/gstsrtpdec.c
--- old/gst-plugins-bad-1.22.3/ext/srtp/gstsrtpdec.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/ext/srtp/gstsrtpdec.c 2023-06-20 18:42:25.000000000 +0200
@@ -1260,7 +1260,54 @@
return gst_srtp_dec_iterate_internal_links (pad, parent, TRUE);
}
-static void
+/* Partial backport to 1.22 of `gst_element_decorate_stream_id_internal`,
+ * which was introduced in 1.23 */
+static gchar *
+decorate_stream_id_private (GstElement * element, const gchar * stream_id)
+{
+ gchar *upstream_stream_id = NULL, *new_stream_id;
+ GstQuery *query;
+ gchar *uri = NULL;
+
+ /* Try to generate a stream-id from the URI query and
+ * if it fails take a random number instead */
+ query = gst_query_new_uri ();
+ if (gst_element_query (element, query)) {
+ gst_query_parse_uri (query, &uri);
+ }
+
+ if (uri) {
+ GChecksum *cs;
+
+ /* And then generate an SHA256 sum of the URI */
+ cs = g_checksum_new (G_CHECKSUM_SHA256);
+ g_checksum_update (cs, (const guchar *) uri, strlen (uri));
+ g_free (uri);
+ upstream_stream_id = g_strdup (g_checksum_get_string (cs));
+ g_checksum_free (cs);
+ } else {
+ /* Just get some random number if the URI query fails */
+ GST_FIXME_OBJECT (element, "Creating random stream-id, consider "
+ "implementing a deterministic way of creating a stream-id");
+ upstream_stream_id =
+ g_strdup_printf ("%08x%08x%08x%08x", g_random_int (), g_random_int (),
+ g_random_int (), g_random_int ());
+ }
+
+ gst_query_unref (query);
+
+ if (stream_id) {
+ new_stream_id = g_strconcat (upstream_stream_id, "/", stream_id, NULL);
+ } else {
+ new_stream_id = g_strdup (upstream_stream_id);
+ }
+
+ g_free (upstream_stream_id);
+
+ return new_stream_id;
+}
+
+static gboolean
gst_srtp_dec_push_early_events (GstSrtpDec * filter, GstPad * pad,
GstPad * otherpad, gboolean is_rtcp)
{
@@ -1283,7 +1330,7 @@
is_rtcp ? "rtcp" : "rtp");
gst_event_unref (otherev);
} else {
- new_stream_id = gst_pad_create_stream_id (pad, GST_ELEMENT (filter),
+ new_stream_id = decorate_stream_id_private (GST_ELEMENT (filter),
is_rtcp ? "rtcp" : "rtp");
}
@@ -1304,7 +1351,8 @@
else
caps = gst_caps_new_empty_simple ("application/x-rtp");
- gst_pad_set_caps (pad, caps);
+ ev = gst_event_new_caps (caps);
+ gst_pad_push_event (pad, ev);
gst_caps_unref (caps);
}
@@ -1314,8 +1362,16 @@
} else {
ev = gst_pad_get_sticky_event (otherpad, GST_EVENT_SEGMENT, 0);
- if (ev)
+ if (ev) {
gst_pad_push_event (pad, ev);
+ } else if (GST_PAD_IS_FLUSHING (otherpad)) {
+ /* We didn't get a Segment event from otherpad
+ * and otherpad is flushing => we are most likely shutting down */
+ goto err;
+ } else {
+ GST_WARNING_OBJECT (filter, "No Segment event to push");
+ goto err;
+ }
}
if (is_rtcp)
@@ -1323,6 +1379,10 @@
else
filter->rtp_has_segment = TRUE;
+ return TRUE;
+
+err:
+ return FALSE;
}
/*
@@ -1500,15 +1560,24 @@
/* Push buffer to source pad */
if (is_rtcp) {
otherpad = filter->rtcp_srcpad;
- if (!filter->rtcp_has_segment)
- gst_srtp_dec_push_early_events (filter, filter->rtcp_srcpad,
- filter->rtp_srcpad, TRUE);
+ if (!filter->rtcp_has_segment) {
+ if (!gst_srtp_dec_push_early_events (filter, filter->rtcp_srcpad,
+ filter->rtp_srcpad, TRUE)) {
+ ret = GST_FLOW_FLUSHING;
+ goto drop_buffer;
+ }
+ }
} else {
otherpad = filter->rtp_srcpad;
- if (!filter->rtp_has_segment)
- gst_srtp_dec_push_early_events (filter, filter->rtp_srcpad,
- filter->rtcp_srcpad, FALSE);
+ if (!filter->rtp_has_segment) {
+ if (!gst_srtp_dec_push_early_events (filter, filter->rtp_srcpad,
+ filter->rtcp_srcpad, FALSE)) {
+ ret = GST_FLOW_FLUSHING;
+ goto drop_buffer;
+ }
+ }
}
+
ret = gst_pad_push (otherpad, buf);
return ret;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/gst/asfmux/gstasfobjects.c new/gst-plugins-bad-1.22.4/gst/asfmux/gstasfobjects.c
--- old/gst-plugins-bad-1.22.3/gst/asfmux/gstasfobjects.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/gst/asfmux/gstasfobjects.c 2023-06-20 18:42:25.000000000 +0200
@@ -311,14 +311,10 @@
void
gst_asf_put_guid (guint8 * buf, Guid guid)
{
- guint32 *aux32 = (guint32 *) buf;
- guint16 *aux16 = (guint16 *) & (buf[4]);
- guint64 *aux64 = (guint64 *) & (buf[8]);
- *aux32 = GUINT32_TO_LE (guid.v1);
- *aux16 = GUINT16_TO_LE (guid.v2);
- aux16 = (guint16 *) & (buf[6]);
- *aux16 = GUINT16_TO_LE (guid.v3);
- *aux64 = GUINT64_TO_BE (guid.v4);
+ GST_WRITE_UINT32_LE (buf + 0, guid.v1);
+ GST_WRITE_UINT16_LE (buf + 4, guid.v2);
+ GST_WRITE_UINT16_LE (buf + 6, guid.v3);
+ GST_WRITE_UINT64_BE (buf + 8, guid.v4);
}
/**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/gst/debugutils/gsttestsrcbin.c new/gst-plugins-bad-1.22.4/gst/debugutils/gsttestsrcbin.c
--- old/gst-plugins-bad-1.22.3/gst/debugutils/gsttestsrcbin.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/gst/debugutils/gsttestsrcbin.c 2023-06-20 18:42:25.000000000 +0200
@@ -343,7 +343,6 @@
capsfilter = gst_element_factory_make ("capsfilter", NULL);
if (caps) {
g_object_set (capsfilter, "caps", caps, NULL);
- gst_caps_unref (caps);
}
src = gst_element_factory_make (srcfactory, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/gst/dvdspu/gstspu-pgs.c new/gst-plugins-bad-1.22.4/gst/dvdspu/gstspu-pgs.c
--- old/gst-plugins-bad-1.22.3/gst/dvdspu/gstspu-pgs.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/gst/dvdspu/gstspu-pgs.c 2023-06-20 18:42:25.000000000 +0200
@@ -593,6 +593,9 @@
obj->rle_data_size = GST_READ_UINT24_BE (payload);
payload += 3;
+ if (end - payload > obj->rle_data_size)
+ return 0;
+
PGS_DUMP ("%d bytes of RLE data, of %d bytes total.\n",
(int) (end - payload), obj->rle_data_size);
@@ -604,7 +607,8 @@
PGS_DUMP ("%d bytes of additional RLE data\n", (int) (end - payload));
/* Check that the data chunk is for this object version, and fits in the buffer */
if (obj->rle_data_ver == obj_ver &&
- obj->rle_data_used + end - payload <= obj->rle_data_size) {
+ end - payload <= obj->rle_data_size &&
+ obj->rle_data_used <= obj->rle_data_size - (end - payload)) {
memcpy (obj->rle_data + obj->rle_data_used, payload, end - payload);
obj->rle_data_used += end - payload;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/gst/sdp/gstsdpdemux.c new/gst-plugins-bad-1.22.4/gst/sdp/gstsdpdemux.c
--- old/gst-plugins-bad-1.22.3/gst/sdp/gstsdpdemux.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/gst/sdp/gstsdpdemux.c 2023-06-20 18:42:25.000000000 +0200
@@ -536,6 +536,9 @@
if (stream == NULL)
goto unknown_stream;
+ if (stream->srcpad)
+ goto unexpected_pad;
+
stream->ssrc = ssrc;
/* no need for a timeout anymore now */
@@ -576,6 +579,13 @@
return;
/* ERRORS */
+unexpected_pad:
+ {
+ GST_DEBUG_OBJECT (demux, "ignoring unexpected session pad");
+ GST_SDP_STREAM_UNLOCK (demux);
+ g_free (name);
+ return;
+ }
unknown_stream:
{
GST_DEBUG_OBJECT (demux, "ignoring unknown stream");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/gst/videoparsers/gsth265parse.c new/gst-plugins-bad-1.22.4/gst/videoparsers/gsth265parse.c
--- old/gst-plugins-bad-1.22.3/gst/videoparsers/gsth265parse.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/gst/videoparsers/gsth265parse.c 2023-06-20 18:42:25.000000000 +0200
@@ -2155,7 +2155,7 @@
}
/* 0/1 is set as the default in the codec parser */
- if (vui->timing_info_present_flag) {
+ if (vui->timing_info_present_flag && !h265parse->framerate_from_caps) {
gint fps_num = 0, fps_den = 1;
if (!(sps->fps_num == 0 && sps->fps_den == 1)) {
@@ -2166,15 +2166,19 @@
fps_num = sps->vui_params.time_scale;
fps_den = sps->vui_params.num_units_in_tick;
- if (gst_h265_parse_is_field_interlaced (h265parse)
- && h265parse->parsed_framerate) {
+ if (gst_h265_parse_is_field_interlaced (h265parse)) {
gint new_fps_num, new_fps_den;
- gst_util_fraction_multiply (fps_num, fps_den, 1, 2, &new_fps_num,
- &new_fps_den);
- fps_num = new_fps_num;
- fps_den = new_fps_den;
- h265parse->parsed_framerate = FALSE;
+ if (!gst_util_fraction_multiply (fps_num, fps_den, 1, 2, &new_fps_num,
+ &new_fps_den)) {
+ GST_WARNING_OBJECT (h265parse, "Error calculating the new framerate"
+ " - integer overflow; setting it to 0/1");
+ fps_num = 0;
+ fps_den = 1;
+ } else {
+ fps_num = new_fps_num;
+ fps_den = new_fps_den;
+ }
}
}
@@ -2197,7 +2201,6 @@
h265parse->parsed_par_n, h265parse->parsed_par_d);
modified = TRUE;
}
-
}
if (vui->video_signal_type_present_flag &&
@@ -2251,7 +2254,7 @@
gst_caps_set_simple (caps, "width", G_TYPE_INT, width,
"height", G_TYPE_INT, height, NULL);
- h265parse->parsed_framerate = FALSE;
+ h265parse->framerate_from_caps = FALSE;
/* upstream overrides */
if (s && gst_structure_has_field (s, "framerate"))
gst_structure_get_fraction (s, "framerate", &fps_num, &fps_den);
@@ -2269,9 +2272,9 @@
&h265parse->parsed_fps_d);
gst_base_parse_set_frame_rate (GST_BASE_PARSE (h265parse),
fps_num, fps_den, 0, 0);
- val = sps->profile_tier_level.interlaced_source_flag ? GST_SECOND / 2 :
+ val = gst_h265_parse_is_field_interlaced (h265parse) ? GST_SECOND / 2 :
GST_SECOND;
- h265parse->parsed_framerate = TRUE;
+ h265parse->framerate_from_caps = TRUE;
/* If we know the frame duration, and if we are not in one of the zero
* latency pattern, add one frame of latency */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/gst/videoparsers/gsth265parse.h new/gst-plugins-bad-1.22.4/gst/videoparsers/gsth265parse.h
--- old/gst-plugins-bad-1.22.3/gst/videoparsers/gsth265parse.h 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/gst/videoparsers/gsth265parse.h 2023-06-20 18:42:25.000000000 +0200
@@ -110,7 +110,7 @@
gboolean predicted;
gboolean bidirectional;
gboolean header;
- gboolean parsed_framerate;
+ gboolean framerate_from_caps;
/* AU state */
gboolean picture_start;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/gst-libs/gst/wayland/gstwlwindow.c new/gst-plugins-bad-1.22.4/gst-libs/gst/wayland/gstwlwindow.c
--- old/gst-plugins-bad-1.22.3/gst-libs/gst/wayland/gstwlwindow.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/gst-libs/gst/wayland/gstwlwindow.c 2023-06-20 18:42:25.000000000 +0200
@@ -79,6 +79,7 @@
enum
{
CLOSED,
+ MAP,
LAST_SIGNAL
};
@@ -155,6 +156,9 @@
signals[CLOSED] = g_signal_new ("closed", G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 0);
+ signals[MAP] = g_signal_new ("map", G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 0);
+
}
static void
@@ -509,6 +513,7 @@
gst_wl_window_update_borders (self);
wl_surface_commit (priv->area_surface_wrapper);
priv->is_area_surface_mapped = TRUE;
+ g_signal_emit (self, signals[MAP], 0);
}
} else {
/* clear both video and parent surfaces */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/gst-plugins-bad.doap new/gst-plugins-bad-1.22.4/gst-plugins-bad.doap
--- old/gst-plugins-bad-1.22.3/gst-plugins-bad.doap 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/gst-plugins-bad.doap 2023-06-20 18:42:25.000000000 +0200
@@ -35,6 +35,16 @@
<release>
<Version>
+ <revision>1.22.4</revision>
+ <branch>1.22</branch>
+ <name></name>
+ <created>2023-06-20</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.22.…" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.22.3</revision>
<branch>1.22</branch>
<name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/meson.build new/gst-plugins-bad-1.22.4/meson.build
--- old/gst-plugins-bad-1.22.3/meson.build 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/meson.build 2023-06-20 18:42:25.000000000 +0200
@@ -1,5 +1,5 @@
project('gst-plugins-bad', 'c', 'cpp',
- version : '1.22.3',
+ version : '1.22.4',
meson_version : '>= 0.62',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/sys/applemedia/meson.build new/gst-plugins-bad-1.22.4/sys/applemedia/meson.build
--- old/gst-plugins-bad-1.22.3/sys/applemedia/meson.build 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/sys/applemedia/meson.build 2023-06-20 18:42:25.000000000 +0200
@@ -15,12 +15,14 @@
'-Dgst_core_media_buffer_get_type=gst_core_media_buffer_priv_get_type',
'-Dgst_core_media_buffer_get_pixel_buffer=gst_core_media_buffer_priv_get_pixel_buffer',
'-Dgst_core_video_buffer_new=gst_core_video_buffer_priv_new',
- '-Dgst_core_video_buffer_get_type=gst_core_video_buffer_priv_get_type'
+ '-Dgst_core_video_buffer_get_type=gst_core_video_buffer_priv_get_type',
+ '-DGST_USE_UNSTABLE_API'
]
applemedia_objc_args = []
applemedia_option = get_option('applemedia')
if not ['darwin', 'ios'].contains(host_system) or applemedia_option.disabled()
+ applemedia_found_deps = false
subdir_done()
endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/sys/applemedia/vtdec.h new/gst-plugins-bad-1.22.4/sys/applemedia/vtdec.h
--- old/gst-plugins-bad-1.22.3/sys/applemedia/vtdec.h 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/sys/applemedia/vtdec.h 2023-06-20 18:42:25.000000000 +0200
@@ -30,7 +30,6 @@
#if defined(APPLEMEDIA_MOLTENVK)
#include <gst/vulkan/vulkan.h>
#endif
-#define GST_USE_UNSTABLE_API
#include <gst/codecparsers/gsth264parser.h>
G_BEGIN_DECLS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/sys/applemedia/vtenc.c new/gst-plugins-bad-1.22.4/sys/applemedia/vtenc.c
--- old/gst-plugins-bad-1.22.3/sys/applemedia/vtenc.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/sys/applemedia/vtenc.c 2023-06-20 18:42:25.000000000 +0200
@@ -86,6 +86,8 @@
#define GST_VTENC_CODEC_DETAILS_QDATA \
g_quark_from_static_string ("vtenc-codec-details")
+#define CMTIME_TO_GST_CLOCK_TIME(time) time.value / (time.timescale / GST_SECOND)
+
/* define EnableHardwareAcceleratedVideoEncoder in < 10.9 */
#if defined(MAC_OS_X_VERSION_MAX_ALLOWED) && MAC_OS_X_VERSION_MAX_ALLOWED < 1090
const CFStringRef
@@ -240,7 +242,7 @@
if (__builtin_available (macOS 13.0, *)) {
/* Can't negate a __builtin_available check */
} else {
- /* Disable ARGB64/RGBA64 if we're on M1 Pro/Max and macOS < 13.0
+ /* Disable ARGB64/RGBA64 if we're on M1 Pro/Max and macOS < 13.0
* due to a bug within VideoToolbox which causes encoding to fail. */
retval = sysctlbyname ("machdep.cpu.brand_string", &cpu_name, &cpu_len,
NULL, 0);
@@ -713,6 +715,9 @@
{
GstVTEnc *self = GST_VTENC_CAST (enc);
+ /* DTS can be negative if b-frames are enabled */
+ gst_video_encoder_set_min_pts (enc, GST_SECOND * 60 * 60 * 1000);
+
self->cur_outframes = g_async_queue_new ();
return TRUE;
@@ -739,8 +744,8 @@
gst_video_codec_state_unref (self->input_state);
self->input_state = NULL;
- self->negotiated_width = self->negotiated_height = 0;
- self->negotiated_fps_n = self->negotiated_fps_d = 0;
+ self->video_info.width = self->video_info.height = 0;
+ self->video_info.fps_n = self->video_info.fps_d = 0;
gst_vtenc_clear_cached_caps_downstream (self);
@@ -750,13 +755,12 @@
return TRUE;
}
-static CFStringRef
-gst_vtenc_h264_profile_level_key (GstVTEnc * self, const gchar * profile,
+static gboolean
+gst_vtenc_h264_parse_profile_level_key (GstVTEnc * self, const gchar * profile,
const gchar * level_arg)
{
char level[64];
gchar *key = NULL;
- CFStringRef ret = NULL;
if (profile == NULL)
profile = "main";
@@ -767,13 +771,16 @@
if (!strcmp (profile, "constrained-baseline") ||
!strcmp (profile, "baseline")) {
profile = "Baseline";
+ self->h264_profile = GST_H264_PROFILE_BASELINE;
} else if (g_str_has_prefix (profile, "high")) {
profile = "High";
+ self->h264_profile = GST_H264_PROFILE_HIGH;
} else if (!strcmp (profile, "main")) {
profile = "Main";
+ self->h264_profile = GST_H264_PROFILE_MAIN;
} else {
GST_ERROR_OBJECT (self, "invalid profile: %s", profile);
- return ret;
+ return FALSE;
}
if (strlen (level) == 1) {
@@ -784,22 +791,21 @@
}
key = g_strdup_printf ("H264_%s_%s", profile, level);
- ret = CFStringCreateWithBytes (NULL, (const guint8 *) key, strlen (key),
+ self->profile_level =
+ CFStringCreateWithBytes (NULL, (const guint8 *) key, strlen (key),
kCFStringEncodingASCII, 0);
-
GST_INFO_OBJECT (self, "negotiated profile and level %s", key);
g_free (key);
- return ret;
+ return TRUE;
}
-static CFStringRef
-gst_vtenc_hevc_profile_level_key (GstVTEnc * self, const gchar * profile,
+static gboolean
+gst_vtenc_hevc_parse_profile_level_key (GstVTEnc * self, const gchar * profile,
const gchar * level_arg)
{
gchar *key = NULL;
- CFStringRef ret = NULL;
if (profile == NULL || !strcmp (profile, "main"))
profile = "Main";
@@ -811,18 +817,18 @@
profile = "Main42210";
else {
GST_ERROR_OBJECT (self, "invalid profile: %s", profile);
- return ret;
+ return FALSE;
}
/* VT does not support specific levels for HEVC */
key = g_strdup_printf ("HEVC_%s_AutoLevel", profile);
- ret = CFStringCreateWithBytes (NULL, (const guint8 *) key, strlen (key),
+ self->profile_level =
+ CFStringCreateWithBytes (NULL, (const guint8 *) key, strlen (key),
kCFStringEncodingASCII, 0);
-
GST_INFO_OBJECT (self, "negotiated profile and level %s", key);
g_free (key);
- return ret;
+ return TRUE;
}
static gboolean
@@ -834,20 +840,11 @@
if (self->profile_level)
CFRelease (self->profile_level);
- if (self->specific_format_id == kCMVideoCodecType_HEVC)
- self->profile_level =
- gst_vtenc_hevc_profile_level_key (self, profile, level);
- else
- self->profile_level =
- gst_vtenc_h264_profile_level_key (self, profile, level);
-
- if (self->profile_level == NULL) {
- GST_ERROR_OBJECT (self, "unsupported profile '%s' or level '%s'",
- profile, level);
- return FALSE;
+ if (self->specific_format_id == kCMVideoCodecType_HEVC) {
+ return gst_vtenc_hevc_parse_profile_level_key (self, profile, level);
+ } else {
+ return gst_vtenc_h264_parse_profile_level_key (self, profile, level);
}
-
- return TRUE;
}
static gboolean
@@ -931,10 +928,6 @@
gst_video_codec_state_unref (self->input_state);
self->input_state = gst_video_codec_state_ref (state);
- self->negotiated_width = state->info.width;
- self->negotiated_height = state->info.height;
- self->negotiated_fps_n = state->info.fps_n;
- self->negotiated_fps_d = state->info.fps_d;
self->video_info = state->info;
GST_OBJECT_LOCK (self);
@@ -954,7 +947,7 @@
static gboolean
gst_vtenc_is_negotiated (GstVTEnc * self)
{
- return self->negotiated_width != 0;
+ return self->video_info.width != 0;
}
/*
@@ -987,10 +980,10 @@
GstStructure *s;
GstVideoCodecState *state;
- if (self->caps_width == self->negotiated_width &&
- self->caps_height == self->negotiated_height &&
- self->caps_fps_n == self->negotiated_fps_n &&
- self->caps_fps_d == self->negotiated_fps_d) {
+ if (self->caps_width == self->video_info.width &&
+ self->caps_height == self->video_info.height &&
+ self->caps_fps_n == self->video_info.fps_n &&
+ self->caps_fps_d == self->video_info.fps_d) {
return TRUE;
}
@@ -998,10 +991,10 @@
caps = gst_caps_make_writable (caps);
s = gst_caps_get_structure (caps, 0);
gst_structure_set (s,
- "width", G_TYPE_INT, self->negotiated_width,
- "height", G_TYPE_INT, self->negotiated_height,
+ "width", G_TYPE_INT, self->video_info.width,
+ "height", G_TYPE_INT, self->video_info.height,
"framerate", GST_TYPE_FRACTION,
- self->negotiated_fps_n, self->negotiated_fps_d, NULL);
+ self->video_info.fps_n, self->video_info.fps_d, NULL);
switch (self->details->format_id) {
case kCMVideoCodecType_H264:
@@ -1068,10 +1061,10 @@
gst_video_codec_state_unref (state);
result = gst_video_encoder_negotiate (GST_VIDEO_ENCODER_CAST (self));
- self->caps_width = self->negotiated_width;
- self->caps_height = self->negotiated_height;
- self->caps_fps_n = self->negotiated_fps_n;
- self->caps_fps_d = self->negotiated_fps_d;
+ self->caps_width = self->video_info.width;
+ self->caps_height = self->video_info.height;
+ self->caps_fps_n = self->video_info.fps_n;
+ self->caps_fps_d = self->video_info.fps_d;
return result;
}
@@ -1225,6 +1218,43 @@
}
}
+
+static gboolean
+gst_vtenc_compute_dts_offset (GstVTEnc * self, gint fps_n, gint fps_d)
+{
+ gint num_offset_frames;
+
+ // kVTCompressionPropertyKey_AllowFrameReordering enables B-Frames
+ if (!self->allow_frame_reordering ||
+ (self->specific_format_id == kCMVideoCodecType_H264
+ && self->h264_profile == GST_H264_PROFILE_BASELINE)) {
+ num_offset_frames = 0;
+ } else {
+ if (self->specific_format_id == kCMVideoCodecType_H264) {
+ // H264 encoder always sets 2 max_num_ref_frames
+ num_offset_frames = 1;
+ } else {
+ // HEVC encoder uses B-pyramid
+ num_offset_frames = 2;
+ }
+ }
+
+ if (fps_d == 0 && num_offset_frames != 0) {
+ GST_ERROR_OBJECT (self,
+ "Variable framerate is not supported with B-Frames");
+ return FALSE;
+ }
+
+ self->dts_offset =
+ gst_util_uint64_scale (num_offset_frames * GST_SECOND,
+ self->video_info.fps_d, self->video_info.fps_n);
+
+ GST_DEBUG_OBJECT (self, "DTS Offset:%" GST_TIME_FORMAT,
+ GST_TIME_ARGS (self->dts_offset));
+
+ return TRUE;
+}
+
static VTCompressionSessionRef
gst_vtenc_create_session (GstVTEnc * self)
{
@@ -1262,20 +1292,27 @@
pb_attrs = CFDictionaryCreateMutable (NULL, 0,
&kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
gst_vtutil_dict_set_i32 (pb_attrs, kCVPixelBufferWidthKey,
- self->negotiated_width);
+ self->video_info.width);
gst_vtutil_dict_set_i32 (pb_attrs, kCVPixelBufferHeightKey,
- self->negotiated_height);
+ self->video_info.height);
}
/* This was set in gst_vtenc_negotiate_specific_format_details() */
g_assert_cmpint (self->specific_format_id, !=, 0);
+ if (self->profile_level) {
+ if (!gst_vtenc_compute_dts_offset (self, self->video_info.fps_d,
+ self->video_info.fps_n)) {
+ goto beach;
+ }
+ }
+
status = VTCompressionSessionCreate (NULL,
- self->negotiated_width, self->negotiated_height,
+ self->video_info.width, self->video_info.height,
self->specific_format_id, encoder_spec, pb_attrs, NULL,
gst_vtenc_enqueue_buffer, self, &session);
GST_INFO_OBJECT (self, "VTCompressionSessionCreate for %d x %d => %d",
- self->negotiated_width, self->negotiated_height, (int) status);
+ self->video_info.width, self->video_info.height, (int) status);
if (status != noErr) {
GST_ERROR_OBJECT (self, "VTCompressionSessionCreate() returned: %d",
(int) status);
@@ -1284,7 +1321,7 @@
if (self->profile_level) {
gst_vtenc_session_configure_expected_framerate (self, session,
- (gdouble) self->negotiated_fps_n / (gdouble) self->negotiated_fps_d);
+ (gdouble) self->video_info.fps_n / (gdouble) self->video_info.fps_d);
/*
* https://developer.apple.com/documentation/videotoolbox/kvtcompressionproper…
@@ -1586,6 +1623,18 @@
CFRelease (value);
}
+static void
+gst_vtenc_update_timestamps (GstVTEnc * self, GstVideoCodecFrame * frame,
+ CMSampleBufferRef sample_buf)
+{
+ CMTime pts = CMSampleBufferGetOutputPresentationTimeStamp (sample_buf);
+ frame->pts = CMTIME_TO_GST_CLOCK_TIME (pts);
+ CMTime dts = CMSampleBufferGetOutputDecodeTimeStamp (sample_buf);
+ if (CMTIME_IS_VALID (dts)) {
+ frame->dts = CMTIME_TO_GST_CLOCK_TIME (dts) - self->dts_offset;
+ }
+}
+
static GstFlowReturn
gst_vtenc_encode_frame (GstVTEnc * self, GstVideoCodecFrame * frame)
{
@@ -1670,8 +1719,8 @@
}
cv_ret =
- CVPixelBufferCreate (NULL, self->negotiated_width,
- self->negotiated_height, pixel_format_type, NULL, &pbuf);
+ CVPixelBufferCreate (NULL, self->video_info.width,
+ self->video_info.height, pixel_format_type, NULL, &pbuf);
if (cv_ret != kCVReturnSuccess) {
GST_ERROR_OBJECT (self, "CVPixelBufferCreate failed: %i", cv_ret);
@@ -1765,7 +1814,7 @@
}
cv_ret = CVPixelBufferCreateWithPlanarBytes (NULL,
- self->negotiated_width, self->negotiated_height,
+ self->video_info.width, self->video_info.height,
pixel_format_type,
frame,
GST_VIDEO_FRAME_SIZE (&vframe->videoframe),
@@ -1886,6 +1935,8 @@
* to enable the use of the video meta API on the core media buffer */
frame->output_buffer = gst_core_media_buffer_new (sampleBuffer, FALSE, NULL);
+ gst_vtenc_update_timestamps (self, frame, sampleBuffer);
+
beach:
/* needed anyway so the frame will be released */
if (frame)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/sys/applemedia/vtenc.h new/gst-plugins-bad-1.22.4/sys/applemedia/vtenc.h
--- old/gst-plugins-bad-1.22.3/sys/applemedia/vtenc.h 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/sys/applemedia/vtenc.h 2023-06-20 18:42:25.000000000 +0200
@@ -21,6 +21,7 @@
#define __GST_VTENC_H__
#include <gst/gst.h>
+#include <gst/codecparsers/gsth264parser.h>
#include <gst/video/video.h>
#include <VideoToolbox/VideoToolbox.h>
@@ -60,6 +61,7 @@
CMVideoCodecType specific_format_id;
CFStringRef profile_level;
+ GstH264Profile h264_profile;
guint bitrate;
gboolean allow_frame_reordering;
gboolean realtime;
@@ -72,8 +74,6 @@
gboolean dump_properties;
gboolean dump_attributes;
- gint negotiated_width, negotiated_height;
- gint negotiated_fps_n, negotiated_fps_d;
gint caps_width, caps_height;
gint caps_fps_n, caps_fps_d;
gboolean have_field_order;
@@ -81,6 +81,7 @@
GstVideoInfo video_info;
VTCompressionSessionRef session;
CFDictionaryRef keyframe_props;
+ GstClockTime dts_offset;
GAsyncQueue * cur_outframes;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/sys/d3d11/gstd3d11videosink.cpp new/gst-plugins-bad-1.22.4/sys/d3d11/gstd3d11videosink.cpp
--- old/gst-plugins-bad-1.22.3/sys/d3d11/gstd3d11videosink.cpp 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/sys/d3d11/gstd3d11videosink.cpp 2023-06-20 18:42:25.000000000 +0200
@@ -1440,8 +1440,6 @@
ret = GST_FLOW_ERROR;
}
- gst_clear_buffer (&self->prepared_buffer);
-
return ret;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/sys/d3dvideosink/d3dvideosink.c new/gst-plugins-bad-1.22.4/sys/d3dvideosink/d3dvideosink.c
--- old/gst-plugins-bad-1.22.3/sys/d3dvideosink/d3dvideosink.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/sys/d3dvideosink/d3dvideosink.c 2023-06-20 18:42:25.000000000 +0200
@@ -634,6 +634,7 @@
gst_element_post_message (GST_ELEMENT_CAST (sink),
gst_navigation_message_new_event (GST_OBJECT_CAST (sink), event));
}
+ gst_event_unref (event);
gst_object_unref (pad);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/sys/decklink/gstdecklink.h new/gst-plugins-bad-1.22.4/sys/decklink/gstdecklink.h
--- old/gst-plugins-bad-1.22.3/sys/decklink/gstdecklink.h 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/sys/decklink/gstdecklink.h 2023-06-20 18:42:25.000000000 +0200
@@ -28,33 +28,58 @@
#include <stdint.h>
-#ifdef G_OS_UNIX
-#include "linux/DeckLinkAPI.h"
-#endif
-
#ifdef G_OS_WIN32
#include "win/DeckLinkAPI.h"
#include <stdio.h>
-#include <comutil.h>
#define bool BOOL
#define COMSTR_T BSTR
-/* MinGW does not have comsuppw.lib, so no _com_util::ConvertBSTRToString */
-# ifdef __MINGW32__
-# define CONVERT_COM_STRING(s) G_STMT_START { BSTR _s = (BSTR)s; s = (char*) malloc(100); wcstombs(s, _s, 100); ::SysFreeString(_s); } G_STMT_END
-# define FREE_COM_STRING(s) free(s);
-# define CONVERT_TO_COM_STRING(s) G_STMT_START { char * _s = (char *)s; s = (BSTR) malloc(100); mbstowcs(s, _s, 100); g_free(_s); } G_STMT_END
-# else
-# define CONVERT_COM_STRING(s) G_STMT_START { BSTR _s = (BSTR)s; s = _com_util::ConvertBSTRToString(_s); ::SysFreeString(_s); } G_STMT_END
-# define FREE_COM_STRING(s) G_STMT_START { delete[] s; } G_STMT_END
-# define CONVERT_TO_COM_STRING(s) G_STMT_START { char * _s = (char *)s; s = _com_util::ConvertStringToBSTR(_s); g_free(_s); } G_STMT_END
-# endif /* __MINGW32__ */
-#else
+#define CONVERT_COM_STRING(s) G_STMT_START { \
+ BSTR _s = (BSTR)s; \
+ int _s_length = ::SysStringLen(_s); \
+ int _length = ::WideCharToMultiByte(CP_ACP, 0, (wchar_t*)_s, _s_length, NULL, 0, NULL, NULL); \
+ s = (char *) malloc(_length); \
+ ::WideCharToMultiByte(CP_ACP, 0, (wchar_t*)_s, _s_length, s, _length, NULL, NULL); \
+ ::SysFreeString(_s); \
+} G_STMT_END
+#define FREE_COM_STRING(s) free(s);
+#define CONVERT_TO_COM_STRING(s) G_STMT_START { \
+ char * _s = (char *)s; \
+ int _s_length = strlen((char*)_s); \
+ int _length = ::MultiByteToWideChar(CP_ACP, 0, (char*)_s, _s_length, NULL, 0); \
+ s = ::SysAllocStringLen(NULL, _length); \
+ ::MultiByteToWideChar(CP_ACP, 0, (char*)_s, _s_length, s, _length); \
+ g_free(_s); \
+} G_STMT_END
+#elif defined(__APPLE__)
+#include "osx/DeckLinkAPI.h"
+
+#define COMSTR_T CFStringRef
+#define CONVERT_COM_STRING(s) G_STMT_START { \
+ CFStringRef _s = (CFStringRef)s; \
+ CFIndex _length; \
+ CFStringGetBytes(_s, CFRangeMake(0, CFStringGetLength(_s)), kCFStringEncodingUTF8, 0, FALSE, NULL, 0, &_length); \
+ _length += 1; \
+ s = (char *) malloc(_length); \
+ CFStringGetCString(_s, s, _length, kCFStringEncodingUTF8); \
+ CFRelease(_s); \
+} G_STMT_END
+#define FREE_COM_STRING(s) free(s);
+#define CONVERT_TO_COM_STRING(s) G_STMT_START { \
+ char * _s = (char *)s; \
+ s = CFStringCreateWithCString(kCFAllocatorDefault, _s, kCFStringEncodingUTF8); \
+ g_free(_s); \
+} G_STMT_END
+#define WINAPI
+#else /* Linux */
+#include "linux/DeckLinkAPI.h"
+
#define COMSTR_T const char*
#define CONVERT_COM_STRING(s)
#define CONVERT_TO_COM_STRING(s)
-#define FREE_COM_STRING(s)
+/* While this is a const char*, the string still has to be freed */
+#define FREE_COM_STRING(s) free(s);
#define WINAPI
#endif /* G_OS_WIN32 */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/sys/kms/gstkmssink.c new/gst-plugins-bad-1.22.4/sys/kms/gstkmssink.c
--- old/gst-plugins-bad-1.22.3/sys/kms/gstkmssink.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/sys/kms/gstkmssink.c 2023-06-20 18:42:25.000000000 +0200
@@ -481,8 +481,8 @@
kms_open (gchar ** driver)
{
static const char *drivers[] = { "i915", "radeon", "nouveau", "vmwgfx",
- "exynos", "amdgpu", "imx-drm", "rockchip", "atmel-hlcdc", "msm",
- "xlnx", "vc4", "meson", "sun4i-drm", "mxsfb-drm", "tegra",
+ "exynos", "amdgpu", "imx-drm", "imx-lcdif", "rockchip", "atmel-hlcdc",
+ "msm", "xlnx", "vc4", "meson", "stm", "sun4i-drm", "mxsfb-drm", "tegra",
"xilinx_drm", /* DEPRECATED. Replaced by xlnx */
};
int i, fd = -1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/sys/va/gstvah264enc.c new/gst-plugins-bad-1.22.4/sys/va/gstvah264enc.c
--- old/gst-plugins-bad-1.22.3/sys/va/gstvah264enc.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/sys/va/gstvah264enc.c 2023-06-20 18:42:25.000000000 +0200
@@ -3412,9 +3412,30 @@
case PROP_CC:
g_value_set_boolean (value, self->prop.cc);
break;
- case PROP_MBBRC:
- g_value_set_enum (value, self->prop.mbbrc);
+ case PROP_MBBRC:{
+ GstVaFeature mbbrc = GST_VA_FEATURE_AUTO;
+ /* Macroblock-level rate control.
+ * 0: use default,
+ * 1: always enable,
+ * 2: always disable,
+ * other: reserved. */
+ switch (self->prop.mbbrc) {
+ case 2:
+ mbbrc = GST_VA_FEATURE_DISABLED;
+ break;
+ case 1:
+ mbbrc = GST_VA_FEATURE_ENABLED;
+ break;
+ case 0:
+ mbbrc = GST_VA_FEATURE_AUTO;
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+
+ g_value_set_enum (value, mbbrc);
break;
+ }
case PROP_BITRATE:
g_value_set_uint (value, self->prop.bitrate);
break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/sys/va/gstvah265enc.c new/gst-plugins-bad-1.22.4/sys/va/gstvah265enc.c
--- old/gst-plugins-bad-1.22.3/sys/va/gstvah265enc.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/sys/va/gstvah265enc.c 2023-06-20 18:42:25.000000000 +0200
@@ -4874,9 +4874,30 @@
case PROP_AUD:
g_value_set_boolean (value, self->prop.aud);
break;
- case PROP_MBBRC:
- g_value_set_enum (value, self->prop.mbbrc);
+ case PROP_MBBRC:{
+ GstVaFeature mbbrc = GST_VA_FEATURE_AUTO;
+ /* Macroblock-level rate control.
+ * 0: use default,
+ * 1: always enable,
+ * 2: always disable,
+ * other: reserved. */
+ switch (self->prop.mbbrc) {
+ case 2:
+ mbbrc = GST_VA_FEATURE_DISABLED;
+ break;
+ case 1:
+ mbbrc = GST_VA_FEATURE_ENABLED;
+ break;
+ case 0:
+ mbbrc = GST_VA_FEATURE_AUTO;
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+
+ g_value_set_enum (value, mbbrc);
break;
+ }
case PROP_BITRATE:
g_value_set_uint (value, self->prop.bitrate);
break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/tests/validate/meson.build new/gst-plugins-bad-1.22.4/tests/validate/meson.build
--- old/gst-plugins-bad-1.22.3/tests/validate/meson.build 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-bad-1.22.4/tests/validate/meson.build 2023-06-20 18:42:25.000000000 +0200
@@ -7,6 +7,10 @@
{'path': 'opencv/cvtracker'},
{'path': 'testsrcbin/caps_spec'},
{'path': 'wpe/load_bytes_first', 'skip': not building_wpe},
+ {'path': 'vtenc/vtenc_h264', 'skip': not applemedia_found_deps},
+ {'path': 'vtenc/vtenc_h264_b_frames', 'skip': not applemedia_found_deps},
+ {'path': 'vtenc/vtenc_h265', 'skip': not applemedia_found_deps},
+ {'path': 'vtenc/vtenc_h265_b_frames', 'skip': not applemedia_found_deps},
]
env = environment()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h264/flow-expectations/log-enc-src-expected new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h264/flow-expectations/log-enc-src-expected
--- old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h264/flow-expectations/log-enc-src-expected 1970-01-01 01:00:00.000000000 +0100
+++ new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h264/flow-expectations/log-enc-src-expected 2023-06-20 18:42:25.000000000 +0200
@@ -0,0 +1,9 @@
+event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
+event caps: video/x-h264, alignment=(string)au, chroma-site=(string)jpeg, codec_data=(buffer)014d000dffe1000d274d000dab40a0fd350601060201000428ee3c80, colorimetry=(string)bt601, framerate=(fraction)25/1, height=(int)240, interlace-mode=(string)progressive, level=(string)1.3, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, profile=(string)main, stream-format=(string)avc, width=(int)320;
+event segment: format=TIME, start=1000:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=1000:00:00.000000000
+buffer: dts=1000:00:00.000000000, pts=1000:00:00.000000000, dur=0:00:00.040000000, flags=discont marker tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.040000000, pts=1000:00:00.040000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.080000000, pts=1000:00:00.080000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.120000000, pts=1000:00:00.120000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.160000000, pts=1000:00:00.160000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+event eos: (no structure)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h264.validatetest new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h264.validatetest
--- old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h264.validatetest 1970-01-01 01:00:00.000000000 +0100
+++ new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h264.validatetest 2023-06-20 18:42:25.000000000 +0200
@@ -0,0 +1,7 @@
+meta,
+ args = {
+ "videotestsrc num-buffers=5 ! video/x-raw,framerate=25/1,width=320,height=240 ! vtenc_h264 name=enc allow-frame-reordering=false ! fakesink",
+ },
+ configs = {
+ "$(validateflow), pad=enc:src, record-buffers=true",
+ }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h264_b_frames/flow-expectations/log-enc-src-expected new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h264_b_frames/flow-expectations/log-enc-src-expected
--- old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h264_b_frames/flow-expectations/log-enc-src-expected 1970-01-01 01:00:00.000000000 +0100
+++ new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h264_b_frames/flow-expectations/log-enc-src-expected 2023-06-20 18:42:25.000000000 +0200
@@ -0,0 +1,9 @@
+event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
+event caps: video/x-h264, alignment=(string)au, chroma-site=(string)jpeg, codec_data=(buffer)014d000dffe1000d274d000dab60a0fd350601060201000428ee3c80, colorimetry=(string)bt601, framerate=(fraction)25/1, height=(int)240, interlace-mode=(string)progressive, level=(string)1.3, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, profile=(string)main, stream-format=(string)avc, width=(int)320;
+event segment: format=TIME, start=1000:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=1000:00:00.000000000
+buffer: dts=999:59:59.960000000, pts=1000:00:00.000000000, dur=0:00:00.040000000, flags=discont marker tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.000000000, pts=1000:00:00.080000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.040000000, pts=1000:00:00.040000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.080000000, pts=1000:00:00.160000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.120000000, pts=1000:00:00.120000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+event eos: (no structure)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h264_b_frames.validatetest new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h264_b_frames.validatetest
--- old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h264_b_frames.validatetest 1970-01-01 01:00:00.000000000 +0100
+++ new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h264_b_frames.validatetest 2023-06-20 18:42:25.000000000 +0200
@@ -0,0 +1,7 @@
+meta,
+ args = {
+ "videotestsrc num-buffers=5 ! video/x-raw,framerate=25/1,width=320,height=240 ! vtenc_h264 name=enc allow-frame-reordering=true ! fakesink",
+ },
+ configs = {
+ "$(validateflow), pad=enc:src, record-buffers=true",
+ }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h265/flow-expectations/log-enc-src-expected new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h265/flow-expectations/log-enc-src-expected
--- old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h265/flow-expectations/log-enc-src-expected 1970-01-01 01:00:00.000000000 +0100
+++ new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h265/flow-expectations/log-enc-src-expected 2023-06-20 18:42:25.000000000 +0200
@@ -0,0 +1,9 @@
+event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
+event caps: video/x-h264, alignment=(string)au, chroma-site=(string)jpeg, codec_data=(buffer)014d000dffe1000d274d000dab40a0fd350601060201000428ee3c80, colorimetry=(string)bt601, framerate=(fraction)25/1, height=(int)240, interlace-mode=(string)progressive, level=(string)1.3, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, profile=(string)main, stream-format=(string)avc, width=(int)320;
+event segment: format=TIME, start=1000:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=1000:00:00.000000000
+buffer: dts=1000:00:00.000000000, pts=1000:00:00.000000000, dur=0:00:00.040000000, flags=discont marker tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.040000000, pts=1000:00:00.040000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.080000000, pts=1000:00:00.080000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.120000000, pts=1000:00:00.120000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.160000000, pts=1000:00:00.160000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+event eos: (no structure)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h265.validatetest new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h265.validatetest
--- old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h265.validatetest 1970-01-01 01:00:00.000000000 +0100
+++ new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h265.validatetest 2023-06-20 18:42:25.000000000 +0200
@@ -0,0 +1,7 @@
+meta,
+ args = {
+ "videotestsrc num-buffers=5 ! video/x-raw,framerate=25/1,width=320,height=240 ! vtenc_h264 name=enc allow-frame-reordering=false ! fakesink",
+ },
+ configs = {
+ "$(validateflow), pad=enc:src, record-buffers=true",
+ }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h265_b_frames/flow-expectations/log-enc-src-expected new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h265_b_frames/flow-expectations/log-enc-src-expected
--- old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h265_b_frames/flow-expectations/log-enc-src-expected 1970-01-01 01:00:00.000000000 +0100
+++ new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h265_b_frames/flow-expectations/log-enc-src-expected 2023-06-20 18:42:25.000000000 +0200
@@ -0,0 +1,9 @@
+event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
+event caps: video/x-h264, alignment=(string)au, chroma-site=(string)jpeg, codec_data=(buffer)014d000dffe1000d274d000dab60a0fd350601060201000428ee3c80, colorimetry=(string)bt601, framerate=(fraction)25/1, height=(int)240, interlace-mode=(string)progressive, level=(string)1.3, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, profile=(string)main, stream-format=(string)avc, width=(int)320;
+event segment: format=TIME, start=1000:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=1000:00:00.000000000
+buffer: dts=999:59:59.960000000, pts=1000:00:00.000000000, dur=0:00:00.040000000, flags=discont marker tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.000000000, pts=1000:00:00.080000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.040000000, pts=1000:00:00.040000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.080000000, pts=1000:00:00.160000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+buffer: dts=1000:00:00.120000000, pts=1000:00:00.120000000, dur=0:00:00.040000000, flags=marker delta-unit tag-memory, meta=GstCoreMediaMeta
+event eos: (no structure)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h265_b_frames.validatetest new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h265_b_frames.validatetest
--- old/gst-plugins-bad-1.22.3/tests/validate/vtenc/vtenc_h265_b_frames.validatetest 1970-01-01 01:00:00.000000000 +0100
+++ new/gst-plugins-bad-1.22.4/tests/validate/vtenc/vtenc_h265_b_frames.validatetest 2023-06-20 18:42:25.000000000 +0200
@@ -0,0 +1,7 @@
+meta,
+ args = {
+ "videotestsrc num-buffers=5 ! video/x-raw,framerate=25/1,width=320,height=240 ! vtenc_h264 name=enc allow-frame-reordering=true ! fakesink",
+ },
+ configs = {
+ "$(validateflow), pad=enc:src, record-buffers=true",
+ }
++++++ reduce-required-meson.patch ++++++
--- /var/tmp/diff_new_pack.6IybEp/_old 2023-07-01 23:17:31.782072719 +0200
+++ /var/tmp/diff_new_pack.6IybEp/_new 2023-07-01 23:17:31.786072744 +0200
@@ -1,10 +1,10 @@
-Index: gst-plugins-bad-1.22.3/meson.build
+Index: gst-plugins-bad-1.22.4/meson.build
===================================================================
---- gst-plugins-bad-1.22.3.orig/meson.build
-+++ gst-plugins-bad-1.22.3/meson.build
+--- gst-plugins-bad-1.22.4.orig/meson.build
++++ gst-plugins-bad-1.22.4/meson.build
@@ -1,6 +1,6 @@
project('gst-plugins-bad', 'c', 'cpp',
- version : '1.22.3',
+ version : '1.22.4',
- meson_version : '>= 0.62',
+ meson_version : '>= 0.61',
default_options : [ 'warning_level=1',
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gstreamer-plugins-good for openSUSE:Factory checked in at 2023-07-01 23:17:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-good (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-plugins-good.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-good"
Sat Jul 1 23:17:25 2023 rev:94 rq:1096145 version:1.22.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/gstreamer-plugins-good/gstreamer-plugins-good.changes 2023-06-19 22:50:09.361419376 +0200
+++ /work/SRC/openSUSE:Factory/.gstreamer-plugins-good.new.13546/gstreamer-plugins-good.changes 2023-07-01 23:17:27.190045192 +0200
@@ -1,0 +2,28 @@
+Mon Jun 26 14:23:55 UTC 2023 - Bj��rn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 1.22.4:
+ + flacparse: Avoid integer overflow in available data check for
+ image tags.
+ + flvmux: use the correct timestamp to calculate wait times.
+ + isomp4: Fix (E)AC-3 channel count handling.
+ + jpegdec: fixes related to interlaced jpeg.
+ + pngdec: Fix wrong colours output from 16bit RGB images.
+ + qtmux, qtdemux: fix byte order for opus extension.
+ + rtspsrc: Do not try send dropped get/set parameter.
+ + qt5, qt6: Add more meson options and eliminate all automagic.
+ + qt: glrenderer: don't attempt to use QWindow from non-Qt main
+ thread.
+ + qml6glsink: Support building on win32.
+ + v4l2src: fix support for bayer format.
+ + v4l2: Change to query only up to
+ V4L2_CID_PRIVATE_BASE+V4L2_CID_MAX_CTRLS.
+ + v4l2videodec: treat MPEG-1 format as MPEG-2.
+ + v4l2videoenc: support force keyframe event in v4l2 encoder.
+ + tests: rtpbin_buffer_list: fix possible unaligned write/read on
+ 32-bit ARM.
+- Add libQt5Gui-private-headers-devel BuildRequires: New
+ explicit dependency.
+- Rebase reduce-required-meson.patch.
+- Drop adaptivedemux2-uri-data.patch: Fixed upstream.
+
+-------------------------------------------------------------------
Old:
----
adaptivedemux2-uri-data.patch
gst-plugins-good-1.22.3.tar.xz
New:
----
gst-plugins-good-1.22.4.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-plugins-good.spec ++++++
--- /var/tmp/diff_new_pack.4WFZas/_old 2023-07-01 23:17:27.942049701 +0200
+++ /var/tmp/diff_new_pack.4WFZas/_new 2023-07-01 23:17:27.950049749 +0200
@@ -26,7 +26,7 @@
%define gst_branch 1.0
Name: gstreamer-plugins-good
-Version: 1.22.3
+Version: 1.22.4
Release: 0
Summary: GStreamer Streaming-Media Framework Plug-Ins
License: LGPL-2.1-or-later
@@ -36,7 +36,6 @@
Source1: gstreamer-plugins-good.appdata.xml
Source99: baselibs.conf
Patch0: reduce-required-meson.patch
-Patch1: adaptivedemux2-uri-data.patch
BuildRequires: Mesa-libGLESv2-devel
BuildRequires: Mesa-libGLESv3-devel
@@ -58,6 +57,7 @@
BuildRequires: python3-xml
BuildRequires: zlib-devel
+BuildRequires: libQt5Gui-private-headers-devel
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5Gui)
BuildRequires: pkgconfig(Qt5Qml)
++++++ gst-plugins-good-1.22.3.tar.xz -> gst-plugins-good-1.22.4.tar.xz ++++++
++++ 2226 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/ChangeLog new/gst-plugins-good-1.22.4/ChangeLog
--- old/gst-plugins-good-1.22.3/ChangeLog 2023-05-19 10:24:53.834972900 +0200
+++ new/gst-plugins-good-1.22.4/ChangeLog 2023-06-20 18:45:41.851180600 +0200
@@ -1,3 +1,239 @@
+=== release 1.22.4 ===
+
+2023-06-20 17:42:25 +0100 Tim-Philipp M��ller <tim(a)centricular.com>
+
+ * NEWS:
+ * RELEASE:
+ * docs/gst_plugins_cache.json:
+ * gst-plugins-good.doap:
+ * meson.build:
+ Release 1.22.4
+
+2023-06-08 19:12:54 +0200 Jonas Kvinge <jonas(a)jkvinge.net>
+
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ adaptivedemux2: Allow data dash+xml manifest for uri
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4853>
+
+2023-06-13 13:20:16 +0300 Sebastian Dr��ge <sebastian(a)centricular.com>
+
+ * gst/audioparsers/gstflacparse.c:
+ flacparse: Avoid integer overflow in available data check for image tags
+ If the image length as stored in the file is some bogus integer then
+ adding it to the current byte readers position can overflow and wrongly
+ have the check for enough available data succeed.
+ This then later can cause NULL pointer dereferences or out of bounds
+ reads/writes when actually reading the image data.
+ Fixes ZDI-CAN-20775
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2661
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4897>
+
+2023-06-19 15:11:30 +0200 Fran��ois Laignel <francois(a)centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ * gst/isomp4/qtdemux_dump.c:
+ * gst/isomp4/qtdemux_dump.h:
+ * gst/isomp4/qtdemux_types.c:
+ qtdemux: parse Opus and dOps as qtdemux nodes and add size checks
+ This allows checking the nodes conformity and dumping parsed values.
+ Note: Audio Sample Entry version parsing and offset handling is handled as part
+ of `FOURCC_soun` common processing and in `qtdemux_parse_node`.
+ Also, only read `stream_count` and `coupled_count` when
+ `channel_mapping_family` != 0. See:
+ https://opus-codec.org/docs/opus_in_isobmff.html#4.3.2
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4891>
+
+2023-06-16 10:29:28 +0200 Fran��ois Laignel <francois(a)centricular.com>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: fix byte order for opus extension and version field type
+ The "Encapsulation of Opus in ISO Base Media File Format" [1] specifications,
+ �� 4.3.2 Opus Specific Box, indicates that data must be stored as big-endian.
+ [1] https://opus-codec.org/docs/opus_in_isobmff.html#4.3.2
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4891>
+
+2023-06-16 10:02:16 +0200 Fran��ois Laignel <francois(a)centricular.com>
+
+ * gst/isomp4/atoms.c:
+ qtmux: fix byte order for opus extension
+ The "Encapsulation of Opus in ISO Base Media File Format" [1] specifications,
+ �� 4.3.2 Opus Specific Box, indicates that data must be stored as big-endian.
+ In `build_opus_extension`, `gst_byte_writer_put*_le ()` variants were used,
+ causing audio streams conversion to Opus in mp4 to offset samples due to the
+ PreSkip field incorrect value (29ms early in our test cases).
+ [1] https://opus-codec.org/docs/opus_in_isobmff.html#4.3.2
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4891>
+
+2023-05-30 15:10:11 +0200 Jan Alexander Steffens (heftig) <jan.steffens(a)ltnglobal.com>
+
+ * gst/isomp4/gstqtmux.c:
+ * gst/isomp4/qtdemux.c:
+ isomp4: Fix (E)AC-3 channel count handling
+ The muxer used a fixed value of 2 channels because the TR 102 366 spec
+ says they're to be ignored. However, the demuxer still trusted them,
+ resulting in bad caps.
+ Make the muxer fill in the correct channel count anyway (FFmpeg already
+ does) and make the demuxer ignore the value.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4773>
+
+2023-04-20 17:31:32 -0400 Daniel Morin <daniel.morin(a)collabora.com>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ * sys/v4l2/gstv4l2object.c:
+ * sys/v4l2/gstv4l2object.h:
+ v4l2src: fix support for bayer format
+ - Define a new function that identify if the v4l2object is raw based
+ on pixel format
+ - Only consider setting delta flag on buffer if the video is not raw.
+ Sponsored by Living Optics Ltd.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4867>
+
+2023-06-12 19:24:15 +0100 Tim-Philipp M��ller <tim(a)centricular.com>
+
+ * tests/check/elements/rtpbin_buffer_list.c:
+ tests: rtpbin_buffer_list: fix possible unaligned read on 32-bit ARM
+ Fixes #2666
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4855>
+
+2023-05-30 17:52:34 +0900 ekwange <ekwange(a)gmail.com>
+
+ * sys/v4l2/v4l2_calls.c:
+ v4l2: Change to query only up to V4L2_CID_PRIVATE_BASE+V4L2_CID_MAX_CTRLS
+ Fix to prevent infinite querying.
+ There are devices that exceed V4L2_CID_PRIVATE_BASE+V4L2_CID_MAX_CTRLS
+ but do not return EINVAL.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4851>
+
+2023-06-05 07:29:57 +0200 Jochen Henneberg <jh(a)henneberg-systemdesign.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Cleanup code for next pending command
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4799>
+
+2023-06-05 06:50:55 +0200 Jochen Henneberg <jh(a)henneberg-systemdesign.com>
+
+ * gst/rtsp/gstrtspsrc.c:
+ rtspsrc: Do not try send dropped get/set parameter
+ If the set_get_param_q has been emptied we have to reset the cached
+ pending command to CMD_LOOP as we will not have the request parameters
+ anymore.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4799>
+
+2023-06-06 09:24:37 +0800 Hou Qi <qi.hou(a)nxp.com>
+
+ * sys/v4l2/gstv4l2videodec.c:
+ v4l2videodec: treat MPEG 1 format as MPEG 2
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4787>
+
+2023-05-18 14:23:49 +0530 Nirbheek Chauhan <nirbheek(a)centricular.com>
+
+ * ext/qt6/gstqt6glutility.cc:
+ * ext/qt6/meson.build:
+ meson: Support building qml6glsink on win32
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4762>
+
+2023-05-03 21:05:54 +0530 Nirbheek Chauhan <nirbheek(a)centricular.com>
+
+ * ext/qt/meson.build:
+ * ext/qt6/meson.build:
+ * meson_options.txt:
+ meson: Add more qt options and eliminate all automagic
+ The qt5 and qt6 plugins will now correctly error out if you enable the
+ option, and you can also now explicitly ensure that wayland, x11,
+ eglfs support is actually functional by enabling the options. It was
+ too easy to build non-functional support for these.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4776>
+
+2023-01-11 01:11:06 +0530 Nirbheek Chauhan <nirbheek(a)centricular.com>
+
+ * ext/qt/meson.build:
+ meson: Add build_rpath for qt5 plugin on macOS
+ Without this, the plugin cannot be loaded in a devenv because the
+ RPATH is not added to the plugin dylib. This RPATH will be stripped on
+ install, which is what we want.
+ When deploying apps, people are supposed to use `macdeployqt` to
+ create an AppBundle that bundles Qt for you and sets the RPATHs
+ correctly to point to that bundled Qt.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4776>
+
+2023-06-01 16:21:47 +0200 Piotr Brzezi��ski <piotr(a)centricular.com>
+
+ * ext/libpng/gstpngdec.c:
+ pngdec: Fix 16bit RGB images display
+ Due to the alpha value being inserted with _BEFORE, we were ending up
+ with ARGB instead of RGBA, thus displaying completely wrong colours.
+ According to libpng's manual, "to add an opaque alpha channel, use filler=0xff
+ or 0xffff and PNG_FILLER_AFTER which will generate RGBA pixels".
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4759>
+
+2023-05-29 17:01:01 +1000 Matthew Waters <matthew(a)centricular.com>
+
+ * ext/qt/qtglrenderer.cc:
+ qt/glrenderer: don't attempt to use QWindow from non-Qt main thread
+ Use QObject::deleteLater() to schedule deletion in the main thread.
+ Remove the moveToThread of the QWindow.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4744>
+
+2023-05-24 16:17:46 +0200 Michael Olbrich <m.olbrich(a)pengutronix.de>
+
+ * gst/flv/gstflvmux.c:
+ flvmux: use the correct timestamp to calculate wait times
+ Since c0bf793c05cf793aa18a8548cda702625e388115 ("flvmux: Set PTS based on
+ running time") the timestamp of the output buffer is already in running
+ time. So using that for 'srcpad->segment.position' does not work correctly
+ because gst_aggregator_simple_get_next_time() will convert it again with
+ gst_segment_to_running_time().
+ This means that the timestamp returned by
+ gst_aggregator_simple_get_next_time() may be incorrect. For example, if
+ flvmux is added to a already runinng pipeline then the timestamp is too
+ small and gst_aggregator_wait_and_check() returns immediately. As a result,
+ buffers may be muxed in the wrong order.
+ To fix this, use the PTS of the incoming buffer instead of the outgoing
+ buffer. Also add the duration as get_next_time() is supposed to return the
+ timestamp of the next buffer, not the current one.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4734>
+
+2020-08-31 16:38:48 +0200 Michael Olbrich <m.olbrich(a)pengutronix.de>
+
+ * ext/jpeg/gstjpegdec.c:
+ jpegdec: be stricter when detecting interlaced video
+ There are broken(?) mjpeg videos that are incorrectly detected as
+ interlaced. This happens because 'info.height > height' (e.g. 1088 > 1080).
+ In the interlaced case info.height is approximately 'height * 2' but not
+ exactly because height is a multiple of DCTSIZE. Make the check more
+ restrictive but take the rounding effect into account.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4717>
+
+2020-08-31 16:12:33 +0200 Michael Olbrich <m.olbrich(a)pengutronix.de>
+
+ * ext/jpeg/gstjpegdec.c:
+ jpegdec: decode the correct number of lines for interlaced frames
+ For interlaced jpeg, gst_jpeg_dec_decode_direct() is called twice, once for each
+ field. In this case, stride[n] is plane_stride[n] * 2 to ensure that only every
+ other line is written. So the loop must stop at height / num_fields.
+ If the frame is really interlaced then continuing beyound this, is not harmful,
+ because jpeg_read_raw_data() will do nothing and return 0, so am info message is
+ printed.
+ However, if the frame is not actually interlaced, just misdetected as interlaced
+ then there is still data available from the second half of the frame. Now
+ line[0][j] is set to the scratch buffer. If the scratch buffer is not allocated
+ (because the height is a multiple of v_samp[0] * DCTSIZE) then the result is a
+ segfault due to a null-pointer dereference.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4717>
+
+2023-05-05 15:12:46 +0800 YURI FEDOSEEV <yuri.fedoseev(a)helixleisure.com>
+
+ * sys/v4l2/gstv4l2videoenc.c:
+ v4l2videoenc: support force keyframe event in v4l2 encoder
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4702>
+
+2023-05-19 12:36:19 +0100 Tim-Philipp M��ller <tim(a)centricular.com>
+
+ * docs/gst_plugins_cache.json:
+ * meson.build:
+ Back to development
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4679>
+
=== release 1.22.3 ===
2023-05-19 09:23:19 +0100 Tim-Philipp M��ller <tim(a)centricular.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/NEWS new/gst-plugins-good-1.22.4/NEWS
--- old/gst-plugins-good-1.22.3/NEWS 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/NEWS 2023-06-20 18:42:25.000000000 +0200
@@ -2,13 +2,13 @@
GStreamer 1.22.0 was originally released on 23 January 2023.
-The latest bug-fix release in the stable 1.22 series is 1.22.3 and was
-released on 19 May 2023.
+The latest bug-fix release in the stable 1.22 series is 1.22.4 and was
+released on 20 June 2023.
See https://gstreamer.freedesktop.org/releases/1.22/ for the latest
version of this document.
-Last updated: Friday 19 May 2023, 01:00 UTC (log)
+Last updated: Tuesday 20 June 2023, 16:30 UTC (log)
Introduction
@@ -1831,6 +1831,183 @@
- List of Merge Requests applied in 1.22.3
- List of Issues fixed in 1.22.3
+1.22.4
+
+The fourth 1.22 bug-fix release (1.22.4) was released on 20 June 2023.
+
+This release only contains bugfixes and security fixes and it should be
+safe to update from 1.22.x.
+
+Highlighted bugfixes in 1.22.4
+
+- Security fixes for flacparse, dvdspu, and subparse
+- d3d11videosink: Fix error on pause and play
+- decklink: Correctly handle SDK strings on macOS and free strings
+ after usage on Linux
+- filesink: Fix buffered mode writing of buffer lists and buffers with
+ multiple memories
+- gldownload: handle passthrough without a critical
+- h265parse: Fix framerate handling regression
+- oggdemux: vp8 fixes
+- mp4mux, qtmux, qtdemux: Opus audio mapping fixes
+- pngdec: Fix wrong colours output from 16bit RGB images
+- ptp clock: Work around ptpd bug in default configuration
+- srtpdec: fix critical warnings on shutdown
+- v4l2src: fix support for bayer format
+- v4l2videoenc: support force-keyframe event in v4l2 encoder
+- vtenc: apply DTS offset to ensure DTS <= PTS
+- gst-python: allow more functions to be called before gst_init()
+- cerbero: fix vaapi variant; add qt6 build on windows; ensure errors
+ on unguarded use of new APIs, require macOS 10.13
+- packages: ship codecalpha, rtponvif, dvbsubenc, switchbin,
+ videosignal plugins; fix pango crash on 32-bit windows
+- various bug fixes, memory leak fixes, and other stability and
+ reliability improvements
+
+gstreamer
+
+- filesink: Fix buffered mode writing of buffer lists and buffers with
+ multiple memories
+- basesink: Clear EOS flag on STREAM-START event
+- typefindhelper: downgrade bogus error level debug log message
+- ptp: Correctly parse clock ID from the commandline parameters in the
+ helper
+- ptp: Work around bug in ptpd in default configuration
+
+gst-plugins-base
+
+- alsasink: Fix stall for transition from PAUSED to READY with USB
+ speakerphone.
+- appsink: unref buffer in prev sample early so buffers from v4l2 can
+ be released properly
+- basetextoverlay: Fix typo in ���text-y��� property description
+- gldownload: handle passthrough without a critical
+- glfilter: add parent meta to output buffer for input buffer
+- oggdemux: vp8: Push headers downstream and detect keyframe packets
+- opus: Fix potential crash when getting unexpected channel position
+- streamsynchronizer: reset eos on STREAM_START
+- subparse: Look for the closing > of a tag after the opening <
+- video: convertframe: Add D3D11 specific conversion path
+- videometa: Only validate the alignment only when it contains some
+ info
+- video-blend: Fix linking error with C++
+
+gst-plugins-good
+
+- flacparse: Avoid integer overflow in available data check for image
+ tags
+- flvmux: use the correct timestamp to calculate wait times
+- isomp4: Fix (E)AC-3 channel count handling
+- jpegdec: fixes related to interlaced jpeg
+- pngdec: Fix wrong colours output from 16bit RGB images
+- qtmux, qtdemux: fix byte order for opus extension
+- rtspsrc: Do not try send dropped get/set parameter
+- qt5, qt6: Add more meson options and eliminate all automagic
+- qt: glrenderer: don���t attempt to use QWindow from non-Qt main thread
+- qml6glsink: Support building on win32
+- v4l2src: fix support for bayer format
+- v4l2: Change to query only up to
+ V4L2_CID_PRIVATE_BASE+V4L2_CID_MAX_CTRLS
+- v4l2videodec: treat MPEG-1 format as MPEG-2
+- v4l2videoenc: support force keyframe event in v4l2 encoder
+- tests: rtpbin_buffer_list: fix possible unaligned write/read on
+ 32-bit ARM
+
+gst-plugins-bad
+
+- asfmux: fix possible unaligned write on 32-bit ARM
+- d3d11videosink: Fix error on pause and play
+- d3dvideosink: Fix navigation event leak
+- decklink: Correctly handle SDK strings on macOS and free strings
+ after usage on Linux
+- dvdspu: Make sure enough data is allocated for the available data
+- fdkaacdec: Support up to 5 rear channels
+- h265parse: Fix framerate handling
+- kmssink: Add STM32 LTDC and NXP i.MX8M Plus LCDIFv3 auto-detection
+- sdpdemux: ensure that only one srcpad is created per stream
+- srtpdec: fix critical warnings on shutdown
+- testsrcbin: Remove spurious caps unref
+- va: map the mbbrc to correct enum value in get_property()
+- vtenc: apply DTS offset to ensure DTS <= PTS
+- vtdec: time glitches on h264 playback
+- waylandsink: Emit ���map��� signal boarder surface is ready
+
+gst-plugins-ugly
+
+- No changes
+
+gst-libav
+
+- No changes
+
+gst-rtsp-server
+
+- No changes
+
+gstreamer-vaapi
+
+- vaapidecodebin: don���t load vaapipostproc if not available
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- python: More functions can be called before gst_init()
+
+gst-editing-services
+
+- ges: launcher: Never put sinks in a GstPipeline
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.22.4
+
+- Ship codecalpha, rtponvif, dvbsubenc, switchbin, videosignal plugins
+- pango: Fix crash on Windows 32bit build
+- qml6: Add support for building the qml6 plugin on Windows and bump
+ meson to 1.1.1
+- vaapi: update vaapi variant/recipe for meson option changes
+- packages: Put libass in the same category as assrender
+- cerbero: Don���t extract if already extracted in fetch
+- darwin: Ensure errors on unguarded use of new APIs, require macOS
+ 10.13
+
+Contributors to 1.22.4
+
+Andoni Morales Alastruey, Arun Raghavan, Colin Kinloch, Daniel Morin,
+Edward Hervey, ekwange, Elliot Chen, Fran��ois Laignel, Guillaume
+Desmottes, Haihua Hu, He Junyan, Hou Qi, Jan Alexander Steffens
+(heftig), Jochen Henneberg, Jordan Petridis, Kevin Song, Maksym
+Khomenko, Marek Vasut, Mathieu Duponchelle, Matthew Waters,
+Mengkejiergeli Ba, Michael Olbrich, Nicolas Beland, Nicolas Dufresne,
+Nirbheek Chauhan, Philippe Normand, Piotr Brzezi��ski, Sebastian Dr��ge,
+Seungha Yang, Thibault Saunier, Tim-Philipp M��ller, V��ctor Manuel J��quez
+Leal, William Manley, Xavier Claessens, Yuri Fedoseev,
+
+��� 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.22.4
+
+- List of Merge Requests applied in 1.22.4
+- List of Issues fixed in 1.22.4
+
Schedule for 1.24
Our next major feature release will be 1.24, and 1.23 will be the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/RELEASE new/gst-plugins-good-1.22.4/RELEASE
--- old/gst-plugins-good-1.22.3/RELEASE 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/RELEASE 2023-06-20 18:42:25.000000000 +0200
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-good 1.22.3.
+This is GStreamer gst-plugins-good 1.22.4.
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' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/docs/gst_plugins_cache.json new/gst-plugins-good-1.22.4/docs/gst_plugins_cache.json
--- old/gst-plugins-good-1.22.3/docs/gst_plugins_cache.json 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/docs/gst_plugins_cache.json 2023-06-20 18:42:25.000000000 +0200
@@ -7027,7 +7027,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer 1.22.3 FLV muxer",
+ "default": "GStreamer 1.22.4 FLV muxer",
"mutable": "null",
"readable": true,
"type": "gchararray",
@@ -7039,7 +7039,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer 1.22.3 FLV muxer",
+ "default": "GStreamer 1.22.4 FLV muxer",
"mutable": "null",
"readable": true,
"type": "gchararray",
@@ -21257,7 +21257,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer/1.22.3",
+ "default": "GStreamer/1.22.4",
"mutable": "null",
"readable": true,
"type": "gchararray",
@@ -21816,7 +21816,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer 1.22.3",
+ "default": "GStreamer 1.22.4",
"mutable": "null",
"readable": true,
"type": "gchararray",
@@ -23253,7 +23253,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer souphttpsrc 1.22.3 ",
+ "default": "GStreamer souphttpsrc 1.22.4 ",
"mutable": "null",
"readable": true,
"type": "gchararray",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/ext/adaptivedemux2/gstadaptivedemux.c new/gst-plugins-good-1.22.4/ext/adaptivedemux2/gstadaptivedemux.c
--- old/gst-plugins-good-1.22.3/ext/adaptivedemux2/gstadaptivedemux.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/ext/adaptivedemux2/gstadaptivedemux.c 2023-06-20 18:42:25.000000000 +0200
@@ -954,11 +954,12 @@
GST_DEBUG_OBJECT (demux, "Fetched manifest at URI: %s (base: %s)",
demux->manifest_uri, GST_STR_NULL (demux->manifest_base_uri));
- if (!g_str_has_prefix (demux->manifest_uri, "http://")
+ if (!g_str_has_prefix (demux->manifest_uri, "data:")
+ && !g_str_has_prefix (demux->manifest_uri, "http://")
&& !g_str_has_prefix (demux->manifest_uri, "https://")) {
GST_ELEMENT_ERROR (demux, STREAM, DEMUX,
(_("Invalid manifest URI")),
- ("Manifest URI needs to use either http:// or https://"));
+ ("Manifest URI needs to use either data:, http:// or https://"));
ret = FALSE;
goto unlock_out;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/ext/jpeg/gstjpegdec.c new/gst-plugins-good-1.22.4/ext/jpeg/gstjpegdec.c
--- old/gst-plugins-good-1.22.3/ext/jpeg/gstjpegdec.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/ext/jpeg/gstjpegdec.c 2023-06-20 18:42:25.000000000 +0200
@@ -880,7 +880,7 @@
gint lines, v_samp[3];
guchar *base[3], *last[3];
gint stride[3];
- guint height, field_height;
+ guint field_height;
line[0] = y;
line[1] = u;
@@ -893,7 +893,7 @@
if (G_UNLIKELY (v_samp[0] > 2 || v_samp[1] > 2 || v_samp[2] > 2))
goto format_not_supported;
- height = field_height = GST_VIDEO_FRAME_HEIGHT (frame);
+ field_height = GST_VIDEO_FRAME_HEIGHT (frame);
/* XXX: division by 2 here might not be a good idea yes. But we are doing this
* already in gst_jpeg_dec_handle_frame() for interlaced jpeg */
@@ -943,7 +943,7 @@
} else
#endif
{
- for (i = 0; i < height; i += v_samp[0] * DCTSIZE) {
+ for (i = 0; i < field_height; i += v_samp[0] * DCTSIZE) {
for (j = 0; j < (v_samp[0] * DCTSIZE); ++j) {
/* Y */
line[0][j] = base[0] + (i + j) * stride[0];
@@ -1406,8 +1406,8 @@
/* is it interlaced MJPEG? (we really don't want to scan the jpeg data
* to see if there are two SOF markers in the packet to detect this) */
if (gst_video_decoder_get_packetized (bdec) &&
- dec->input_state &&
- dec->input_state->info.height > height &&
+ dec->input_state && height > DCTSIZE &&
+ dec->input_state->info.height > (2 * (height - DCTSIZE)) &&
dec->input_state->info.height <= (height * 2)
&& dec->input_state->info.width == width) {
GST_LOG_OBJECT (dec,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/ext/libpng/gstpngdec.c new/gst-plugins-good-1.22.4/ext/libpng/gstpngdec.c
--- old/gst-plugins-good-1.22.3/ext/libpng/gstpngdec.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/ext/libpng/gstpngdec.c 2023-06-20 18:42:25.000000000 +0200
@@ -250,7 +250,7 @@
/* Add alpha channel if 16-bit depth, but not for GRAY images */
if ((bpc > 8) && (color_type != PNG_COLOR_TYPE_GRAY)) {
- png_set_add_alpha (pngdec->png, 0xffff, PNG_FILLER_BEFORE);
+ png_set_add_alpha (pngdec->png, 0xffff, PNG_FILLER_AFTER);
png_set_swap (pngdec->png);
}
#if 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/ext/qt/meson.build new/gst-plugins-good-1.22.4/ext/qt/meson.build
--- old/gst-plugins-good-1.22.3/ext/qt/meson.build 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/ext/qt/meson.build 2023-06-20 18:42:25.000000000 +0200
@@ -22,6 +22,9 @@
# deciding whether to build the qt5 examples
qt5qml_dep = dependency('', required: false)
qt5_option = get_option('qt5')
+qt5_egl = get_option('qt-egl')
+qt5_wayland = get_option('qt-wayland')
+qt5_x11 = get_option('qt-x11')
qt5_method = get_option('qt-method')
if qt5_option.disabled()
@@ -68,18 +71,23 @@
# Look for the QPA platform native interface header
qpa_header_path = join_paths(qt5qml_dep.version(), 'QtGui')
qpa_header = join_paths(qpa_header_path, 'qpa/qplatformnativeinterface.h')
-if cxx.has_header(qpa_header, dependencies : qt5qml_dep)
+need_qpa_include = qt5_option.enabled() and (host_system == 'android' or qt5_wayland.enabled())
+if cxx.has_header(qpa_header, dependencies : qt5qml_dep, required: need_qpa_include)
qt_defines += '-DHAVE_QT_QPA_HEADER'
qt_defines += '-DQT_QPA_HEADER=' + '<@0@>'.format(qpa_header)
have_qpa_include = true
message('Found QtGui QPA header in ' + qpa_header_path)
endif
-# Try to come up with all the platform/winsys combinations that will work
+## Try to come up with all the platform/winsys combinations that will work
-if gst_gl_have_window_x11 and gst_gl_have_platform_glx
- # FIXME: automagic
- qt5x11extras = dependency('qt5', modules : ['X11Extras'], method: qt5_method, required : false)
+# X11 windowing
+qt5_x11 = qt5_x11 \
+ .require(gstglx11_dep.found(), error_message: 'gstreamer-gl-x11-1.0 is required') \
+ .require(gst_gl_have_window_x11, error_message: 'x11 windowing support in gstreamer-gl is required') \
+ .require(gst_gl_have_platform_glx, error_message: 'glx platform support in gstreamer-gl is required')
+if qt5_x11.allowed()
+ qt5x11extras = dependency('qt5', modules : ['X11Extras'], method: qt5_method, required: qt5_x11)
if qt5x11extras.found()
optional_deps += [qt5x11extras, gstglx11_dep]
qt_defines += ['-DHAVE_QT_X11']
@@ -87,70 +95,105 @@
endif
endif
-if gst_gl_have_platform_egl
- # Embedded linux (e.g. i.MX6) with or without windowing support
+# Wayland windowing
+qt5_wayland = qt5_wayland \
+ .require(gstglwayland_dep.found(), error_message: 'gstreamer-gl-wayland-1.0 is required') \
+ .require(gst_gl_have_window_wayland, error_message: 'wayland windowing support in gstreamer-gl is required') \
+ .require(gst_gl_have_platform_egl, error_message: 'egl platform support in gstreamer-gl is required') \
+ .require(have_qpa_include, error_message: 'QPA platform native interface header is required')
+if qt5_wayland.allowed()
+ qt5waylandextras = dependency('qt5', modules : ['WaylandClient'], method: qt5_method, required: qt5_wayland)
+ if qt5waylandextras.found()
+ optional_deps += [qt5waylandextras, gstglwayland_dep]
+ qt_defines += ['-DHAVE_QT_WAYLAND']
+ have_qt_windowing = true
+ endif
+endif
+
+# EGL windowing for Embedded linux (e.g. i.MX6) with or without windowing
+# support
+qt5_egl = qt5_egl \
+ .require(host_system == 'linux') \
+ .require(gstglegl_dep.found(), error_message: 'gstreamer-gl-egl-1.0 is required') \
+ .require(gst_gl_have_platform_egl, error_message: 'egl platform support in gstreamer-gl is required')
+if qt5_egl.allowed()
qt_defines += ['-DHAVE_QT_EGLFS']
optional_deps += gstglegl_dep
have_qt_windowing = true
- if have_qpa_include
- # Wayland windowing
- if gst_gl_have_window_wayland
- # FIXME: automagic
- qt5waylandextras = dependency('qt5', modules : ['WaylandClient'], method: qt5_method, required : false)
- if qt5waylandextras.found()
- optional_deps += [qt5waylandextras, gstglwayland_dep]
- qt_defines += ['-DHAVE_QT_WAYLAND']
- have_qt_windowing = true
- endif
- endif
- # Android windowing
- if gst_gl_have_window_android
- # FIXME: automagic
- qt5androidextras = dependency('qt5', modules : ['AndroidExtras'], method: qt5_method, required : false)
- # for gl functions in QtGui/qopenglfunctions.h
- # FIXME: automagic
- glesv2_dep = cc.find_library('GLESv2', required : false)
- if glesv2_dep.found() and qt5androidextras.found()
- optional_deps += [qt5androidextras, glesv2_dep]
- qt_defines += ['-DHAVE_QT_ANDROID']
- have_qt_windowing = true
- # Needed for C++11 support in Cerbero. People building with Android
- # in some other way need to add the necessary bits themselves.
- optional_deps += dependency('gnustl', required : false)
- endif
+endif
+
+# Android windowing
+if host_system == 'android'
+ qt5_android = qt5_option \
+ .require(gst_gl_have_window_android, error_message: 'android windowing support in gstreamer-gl is required') \
+ .require(gst_gl_have_platform_egl, error_message: 'egl platform support in gstreamer-gl is required')
+ if gst_gl_have_window_android
+ qt5androidextras = dependency('qt5', modules : ['AndroidExtras'], method: qt5_method, required : qt5_android)
+ # for gl functions in QtGui/qopenglfunctions.h
+ glesv2_dep = cc.find_library('GLESv2', required : qt5_android)
+ if glesv2_dep.found() and qt5androidextras.found()
+ optional_deps += [qt5androidextras, glesv2_dep]
+ qt_defines += ['-DHAVE_QT_ANDROID']
+ have_qt_windowing = true
+ # Needed for C++11 support in Cerbero. People building with Android
+ # in some other way need to add the necessary bits themselves.
+ optional_deps += dependency('gnustl', required : false)
endif
endif
endif
-if gst_gl_have_platform_wgl and gst_gl_have_window_win32
- # for wglMakeCurrent()
- # FIXME: automagic
- opengl32_dep = cc.find_library('opengl32', required : false)
- if opengl32_dep.found()
- qt_defines += ['-DHAVE_QT_WIN32']
- optional_deps += opengl32_dep
- have_qt_windowing = true
+# Win32 windowing
+if host_system == 'windows'
+ qt5_win32 = qt5_option \
+ .require(gst_gl_have_window_win32, error_message: 'win32 windowing support in gstreamer-gl is required') \
+ .require(gst_gl_have_platform_wgl, error_message: 'wgl platform support in gstreamer-gl is required')
+ if qt5_win32.allowed()
+ # for wglMakeCurrent()
+ opengl32_dep = cc.find_library('opengl32', required : qt5_win32)
+ if opengl32_dep.found()
+ qt_defines += ['-DHAVE_QT_WIN32']
+ optional_deps += opengl32_dep
+ have_qt_windowing = true
+ endif
endif
endif
-if gst_gl_have_window_cocoa and gst_gl_have_platform_cgl
- # FIXME: automagic
- qt5macextras = dependency('qt5', modules : ['MacExtras'], method: qt5_method, required : false)
- if qt5macextras.found()
- qt_defines += ['-DHAVE_QT_MAC']
- optional_deps += qt5macextras
- have_qt_windowing = true
+# macOS windowing
+if host_system == 'darwin'
+ qt5_macos = qt5_option \
+ .require(gst_gl_have_window_cocoa, error_message: 'cocoa windowing support in gstreamer-gl is required') \
+ .require(gst_gl_have_platform_cgl, error_message: 'cgl platform support in gstreamer-gl is required')
+ if qt5_macos.allowed()
+ qt5macextras = dependency('qt5', modules : ['MacExtras'], method: qt5_method, required : qt5_macos)
+ if qt5macextras.found()
+ qt_defines += ['-DHAVE_QT_MAC']
+ optional_deps += qt5macextras
+ have_qt_windowing = true
+ endif
endif
endif
-if gst_gl_have_window_eagl and gst_gl_have_platform_eagl
- if host_machine.system() == 'ios'
+# iOS windowing
+if host_system == 'ios'
+ qt5_ios = qt5_option \
+ .require(gst_gl_have_window_eagl, error_message: 'eagl windowing support in gstreamer-gl is required') \
+ .require(gst_gl_have_platform_eagl, error_message: 'eagl platform support in gstreamer-gl is required')
+ if qt5_ios.allowed()
qt_defines += ['-DHAVE_QT_IOS']
have_qt_windowing = true
endif
endif
-if have_qt_windowing
+if qt5_option.require(have_qt_windowing).allowed()
+ # rpath is needed to be able to load the plugin on macOS inside the devenv
+ qmlgl_kwargs = {}
+ if host_system == 'darwin'
+ fs = import('fs')
+ qt_bindir = fs.parent(find_program('qmake').full_path())
+ qt_libdir = fs.parent(qt_bindir) / 'lib'
+ qmlgl_kwargs += {'build_rpath': qt_libdir}
+ endif
+
# Build it!
moc_files = qt5_mod.preprocess(moc_headers : moc_headers)
gstqmlgl = library('gstqmlgl', sources, moc_files,
@@ -159,6 +202,7 @@
include_directories: [configinc, libsinc],
dependencies : [gst_dep, gstvideo_dep, gstgl_dep, gstglproto_dep, qt5qml_dep, optional_deps],
override_options : ['cpp_std=c++11'],
+ kwargs: qmlgl_kwargs,
install: true,
install_dir : plugins_install_dir)
plugins += [gstqmlgl]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/ext/qt/qtglrenderer.cc new/gst-plugins-good-1.22.4/ext/qt/qtglrenderer.cc
--- old/gst-plugins-good-1.22.3/ext/qt/qtglrenderer.cc 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/ext/qt/qtglrenderer.cc 2023-06-20 18:42:25.000000000 +0200
@@ -152,7 +152,7 @@
delete data->m_context;
data->m_context = nullptr;
if (data->m_surface)
- delete data->m_surface;
+ data->m_surface->deleteLater();
data->m_surface = nullptr;
}
@@ -281,7 +281,6 @@
g_mutex_lock (&m_sharedRenderData->lock);
m_sharedRenderData->m_surface = new GstBackingSurface;
m_sharedRenderData->m_surface->create();
- m_sharedRenderData->m_surface->moveToThread (m_sharedRenderData->m_renderThread);
GST_TRACE ("%p created surface %p", m_sharedRenderData,
m_sharedRenderData->m_surface);
g_cond_broadcast (&m_sharedRenderData->cond);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/ext/qt6/gstqt6glutility.cc new/gst-plugins-good-1.22.4/ext/qt6/gstqt6glutility.cc
--- old/gst-plugins-good-1.22.3/ext/qt6/gstqt6glutility.cc 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/ext/qt6/gstqt6glutility.cc 2023-06-20 18:42:25.000000000 +0200
@@ -254,7 +254,6 @@
gst_gl_display_filter_gl_api (display, gst_gl_context_get_gl_api (*wrap_glcontext));
gst_gl_context_activate (*wrap_glcontext, FALSE);
}
-#if 0
#if GST_GL_HAVE_WINDOW_WIN32 && GST_GL_HAVE_PLATFORM_WGL && defined (HAVE_QT_WIN32)
g_return_val_if_fail (context != NULL, FALSE);
@@ -289,7 +288,6 @@
} G_STMT_END;
#endif
-#endif
return TRUE;
}
#if 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/ext/qt6/meson.build new/gst-plugins-good-1.22.4/ext/qt6/meson.build
--- old/gst-plugins-good-1.22.3/ext/qt6/meson.build 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/ext/qt6/meson.build 2023-06-20 18:42:25.000000000 +0200
@@ -14,6 +14,9 @@
qt6qml_dep = dependency('', required: false)
qt6_option = get_option('qt6')
+qt6_egl = get_option('qt-egl')
+qt6_wayland = get_option('qt-wayland')
+qt6_x11 = get_option('qt-x11')
qt6_method = get_option('qt-method')
if qt6_option.disabled()
@@ -53,83 +56,94 @@
# Look for the QPA platform native interface header
qpa_header_path = join_paths(qt6qml_dep.version(), 'QtGui')
qpa_header = join_paths(qpa_header_path, 'qpa/qplatformnativeinterface.h')
-if cxx.has_header(qpa_header, dependencies : qt6qml_dep)
+need_qpa_include = qt6_option.enabled() and (host_system == 'android' or qt6_wayland.enabled())
+if cxx.has_header(qpa_header, dependencies : qt6qml_dep, required: need_qpa_include)
qt_defines += '-DHAVE_QT_QPA_HEADER'
qt_defines += '-DQT_QPA_HEADER=' + '<@0@>'.format(qpa_header)
have_qpa_include = true
message('Found QtGui QPA header in ' + qpa_header_path)
endif
-# Try to come up with all the platform/winsys combinations that will work
+## Try to come up with all the platform/winsys combinations that will work
-if gst_gl_have_window_x11 and gst_gl_have_platform_glx
- # FIXME: automagic
+# X11 windowing
+qt6_x11 = qt6_x11 \
+ .require(gstglx11_dep.found(), error_message: 'gstreamer-gl-x11-1.0 is required') \
+ .require(gst_gl_have_window_x11, error_message: 'x11 windowing support in gstreamer-gl is required') \
+ .require(gst_gl_have_platform_glx, error_message: 'glx platform support in gstreamer-gl is required')
+if qt6_x11.allowed()
qt_defines += ['-DHAVE_QT_X11']
have_qt_windowing = true
endif
-if gst_gl_have_platform_egl
- # Embedded linux (e.g. i.MX6) with or without windowing support
+# Wayland windowing
+qt6_wayland = qt6_wayland \
+ .require(gstglwayland_dep.found(), error_message: 'gstreamer-gl-wayland-1.0 is required') \
+ .require(gst_gl_have_window_wayland, error_message: 'wayland windowing support in gstreamer-gl is required') \
+ .require(gst_gl_have_platform_egl, error_message: 'egl platform support in gstreamer-gl is required') \
+ .require(have_qpa_include, error_message: 'QPA platform native interface header is required')
+if qt6_wayland.allowed()
+ qt6waylandextras = dependency('qt6', modules : ['WaylandClient'], method: qt6_method, required: qt6_wayland)
+ if qt6waylandextras.found()
+ optional_deps += [qt6waylandextras, gstglwayland_dep]
+ qt_defines += ['-DHAVE_QT_WAYLAND']
+ have_qt_windowing = true
+ endif
+endif
+
+# EGL windowing for Embedded linux (e.g. i.MX6) with or without windowing
+# support
+qt6_egl = qt6_egl \
+ .require(host_system == 'linux') \
+ .require(gstglegl_dep.found(), error_message: 'gstreamer-gl-egl-1.0 is required') \
+ .require(gst_gl_have_platform_egl, error_message: 'egl platform support in gstreamer-gl is required')
+if qt6_egl.allowed()
qt_defines += ['-DHAVE_QT_EGLFS']
optional_deps += gstglegl_dep
have_qt_windowing = true
- if have_qpa_include
- # Wayland windowing
- if gst_gl_have_window_wayland
- # FIXME: automagic
- qt6waylandextras = dependency('qt6', modules : ['WaylandClient'], method: qt6_method, required : false)
- if qt6waylandextras.found()
- optional_deps += [qt6waylandextras, gstglwayland_dep]
- qt_defines += ['-DHAVE_QT_WAYLAND']
- have_qt_windowing = true
- endif
+endif
+
+# TODO: Android windowing
+
+# Win32 windowing
+if host_system == 'windows'
+ qt6_win32 = qt6_option \
+ .require(gst_gl_have_window_win32, error_message: 'win32 windowing support in gstreamer-gl is required') \
+ .require(gst_gl_have_platform_wgl, error_message: 'wgl platform support in gstreamer-gl is required')
+ if qt6_win32.allowed()
+ # for wglMakeCurrent()
+ opengl32_dep = cc.find_library('opengl32', required : qt6_win32)
+ if opengl32_dep.found()
+ qt_defines += ['-DHAVE_QT_WIN32']
+ optional_deps += opengl32_dep
+ have_qt_windowing = true
endif
- # Android windowing
-# if gst_gl_have_window_android
- # FIXME: automagic
-# qt5androidextras = dependency('qt5', modules : ['AndroidExtras'], method: qt6_method, required : false)
- # for gl functions in QtGui/qopenglfunctions.h
- # FIXME: automagic
-# glesv2_dep = cc.find_library('GLESv2', required : false)
-# if glesv2_dep.found() and qt5androidextras.found()
-# optional_deps += [qt5androidextras, glesv2_dep]
-# qt_defines += ['-DHAVE_QT_ANDROID']
-# have_qt_windowing = true
- # Needed for C++11 support in Cerbero. People building with Android
- # in some other way need to add the necessary bits themselves.
-# optional_deps += dependency('gnustl', required : false)
-# endif
-# endif
endif
endif
-#if gst_gl_have_platform_wgl and gst_gl_have_window_win32
- # for wglMakeCurrent()
- # FIXME: automagic
-# opengl32_dep = cc.find_library('opengl32', required : false)
-# if opengl32_dep.found()
-# qt_defines += ['-DHAVE_QT_WIN32']
-# optional_deps += opengl32_dep
-# have_qt_windowing = true
-# endif
-#endif
-
-if gst_gl_have_window_cocoa and gst_gl_have_platform_cgl
- # FIXME: automagic
- if host_machine.system() == 'darwin'
+# macOS windowing
+if host_system == 'darwin'
+ qt6_macos = qt6_option \
+ .require(gst_gl_have_window_cocoa, error_message: 'cocoa windowing support in gstreamer-gl is required') \
+ .require(gst_gl_have_platform_cgl, error_message: 'cgl platform support in gstreamer-gl is required')
+ if qt6_macos.allowed()
qt_defines += ['-DHAVE_QT_MAC']
have_qt_windowing = true
endif
endif
-if gst_gl_have_window_eagl and gst_gl_have_platform_eagl
- if host_machine.system() == 'ios'
+# iOS windowing
+if host_system == 'ios'
+ qt6_ios = qt6_option \
+ .require(gst_gl_have_window_eagl, error_message: 'eagl windowing support in gstreamer-gl is required') \
+ .require(gst_gl_have_platform_eagl, error_message: 'eagl platform support in gstreamer-gl is required')
+ if qt6_ios.allowed()
qt_defines += ['-DHAVE_QT_IOS']
have_qt_windowing = true
endif
endif
-if have_qt_windowing
+if qt6_option.require(have_qt_windowing).allowed()
# Build it!
moc_files = qt6_mod.preprocess(moc_headers : moc_headers)
gstqml6gl = library('gstqml6', sources, moc_files,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/gst/audioparsers/gstflacparse.c new/gst-plugins-good-1.22.4/gst/audioparsers/gstflacparse.c
--- old/gst-plugins-good-1.22.3/gst/audioparsers/gstflacparse.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/gst/audioparsers/gstflacparse.c 2023-06-20 18:42:25.000000000 +0200
@@ -1111,6 +1111,7 @@
GstMapInfo map;
guint32 img_len = 0, img_type = 0;
guint32 img_mimetype_len = 0, img_description_len = 0;
+ const guint8 *img_data;
gst_buffer_map (buffer, &map, GST_MAP_READ);
gst_byte_reader_init (&reader, map.data, map.size);
@@ -1137,7 +1138,7 @@
if (!gst_byte_reader_get_uint32_be (&reader, &img_len))
goto error;
- if (gst_byte_reader_get_pos (&reader) + img_len > map.size)
+ if (!gst_byte_reader_get_data (&reader, img_len, &img_data))
goto error;
GST_INFO_OBJECT (flacparse, "Got image of %d bytes", img_len);
@@ -1146,8 +1147,7 @@
if (flacparse->tags == NULL)
flacparse->tags = gst_tag_list_new_empty ();
- gst_tag_list_add_id3_image (flacparse->tags,
- map.data + gst_byte_reader_get_pos (&reader), img_len, img_type);
+ gst_tag_list_add_id3_image (flacparse->tags, img_data, img_len, img_type);
}
gst_buffer_unmap (buffer, &map);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/gst/flv/gstflvmux.c new/gst-plugins-good-1.22.4/gst/flv/gstflvmux.c
--- old/gst-plugins-good-1.22.3/gst/flv/gstflvmux.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/gst/flv/gstflvmux.c 2023-06-20 18:42:25.000000000 +0200
@@ -801,12 +801,6 @@
static GstFlowReturn
gst_flv_mux_push (GstFlvMux * mux, GstBuffer * buffer)
{
- GstAggregator *agg = GST_AGGREGATOR (mux);
- GstAggregatorPad *srcpad = GST_AGGREGATOR_PAD (agg->srcpad);
-
- if (GST_BUFFER_PTS_IS_VALID (buffer))
- srcpad->segment.position = GST_BUFFER_PTS (buffer);
-
/* pushing the buffer that rewrites the header will make it no longer be the
* total output size in bytes, but it doesn't matter at that point */
mux->byte_count += gst_buffer_get_size (buffer);
@@ -1660,6 +1654,8 @@
{
GstBuffer *tag;
GstFlowReturn ret;
+ GstClockTime pts = GST_BUFFER_PTS (buffer);
+ GstClockTime duration = GST_BUFFER_DURATION (buffer);
GstClockTime dts =
gst_flv_mux_segment_to_running_time (&GST_AGGREGATOR_PAD (pad)->segment,
GST_BUFFER_DTS (buffer));
@@ -1678,6 +1674,14 @@
if (ret == GST_FLOW_OK && GST_CLOCK_TIME_IS_VALID (dts))
pad->last_timestamp = dts;
+ if (ret == GST_FLOW_OK && GST_CLOCK_TIME_IS_VALID (pts)) {
+ GstAggregator *agg = GST_AGGREGATOR (mux);
+ GstAggregatorPad *srcpad = GST_AGGREGATOR_PAD (agg->srcpad);
+ srcpad->segment.position = pts;
+ if (GST_CLOCK_TIME_IS_VALID (duration))
+ srcpad->segment.position += duration;
+ }
+
return ret;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/gst/isomp4/atoms.c new/gst-plugins-good-1.22.4/gst/isomp4/atoms.c
--- old/gst-plugins-good-1.22.3/gst/isomp4/atoms.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/gst/isomp4/atoms.c 2023-06-20 18:42:25.000000000 +0200
@@ -5706,9 +5706,9 @@
gst_byte_writer_init (&bw);
hdl &= gst_byte_writer_put_uint8 (&bw, 0x00); /* version number */
hdl &= gst_byte_writer_put_uint8 (&bw, channels);
- hdl &= gst_byte_writer_put_uint16_le (&bw, pre_skip);
- hdl &= gst_byte_writer_put_uint32_le (&bw, rate);
- hdl &= gst_byte_writer_put_uint16_le (&bw, output_gain);
+ hdl &= gst_byte_writer_put_uint16_be (&bw, pre_skip);
+ hdl &= gst_byte_writer_put_uint32_be (&bw, rate);
+ hdl &= gst_byte_writer_put_uint16_be (&bw, output_gain);
hdl &= gst_byte_writer_put_uint8 (&bw, mapping_family);
if (mapping_family > 0) {
hdl &= gst_byte_writer_put_uint8 (&bw, stream_count);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/gst/isomp4/gstqtmux.c new/gst-plugins-good-1.22.4/gst/isomp4/gstqtmux.c
--- old/gst-plugins-good-1.22.3/gst/isomp4/gstqtmux.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/gst/isomp4/gstqtmux.c 2023-06-20 18:42:25.000000000 +0200
@@ -6087,9 +6087,9 @@
} else if (strcmp (mimetype, "audio/x-ac3") == 0) {
entry.fourcc = FOURCC_ac_3;
- /* Fixed values according to TS 102 366 but it also mentions that
- * they should be ignored */
- entry.channels = 2;
+ /* TS 102 366 mentions that these fields should be ignored,
+ * but be friendly and fill in the channel count like FFmpeg does */
+ entry.channels = channels;
entry.sample_size = 16;
/* AC-3 needs an extension atom but its data can only be obtained from
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/gst/isomp4/qtdemux.c new/gst-plugins-good-1.22.4/gst/isomp4/qtdemux.c
--- old/gst-plugins-good-1.22.3/gst/isomp4/qtdemux.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/gst/isomp4/qtdemux.c 2023-06-20 18:42:25.000000000 +0200
@@ -8301,6 +8301,7 @@
case FOURCC_alac:
case FOURCC_fLaC:
case FOURCC_aavd:
+ case FOURCC_opus:
{
guint32 version;
guint32 offset;
@@ -8312,6 +8313,8 @@
min_size = 20;
else if (fourcc == FOURCC_fLaC)
min_size = 86;
+ else if (fourcc == FOURCC_opus)
+ min_size = 55;
else
min_size = 40;
@@ -12647,6 +12650,16 @@
entry->bytes_per_packet = entry->bytes_per_sample;
break;
}
+
+ /* According to TS 102 366, the channel count in
+ * a (E)AC3SampleEntry box is to be ignored */
+ case 0x20736d:
+ case GST_MAKE_FOURCC ('e', 'c', '-', '3'):
+ case GST_MAKE_FOURCC ('s', 'a', 'c', '3'): // Nero Recode
+ case FOURCC_ac_3:
+ entry->n_channels = 0;
+ break;
+
default:
break;
}
@@ -12873,34 +12886,95 @@
}
case FOURCC_opus:
{
- const guint8 *dops_data;
guint8 *channel_mapping = NULL;
- guint32 rate;
- guint8 channels;
+ guint32 dops_len, rate;
+ guint8 n_channels;
guint8 channel_mapping_family;
guint8 stream_count;
guint8 coupled_count;
guint8 i;
- version = GST_READ_UINT16_BE (stsd_entry_data + 16);
- if (version == 1)
- dops_data = stsd_entry_data + 51;
- else
- dops_data = stsd_entry_data + 35;
-
- channels = GST_READ_UINT8 (dops_data + 10);
- rate = GST_READ_UINT32_LE (dops_data + 13);
- channel_mapping_family = GST_READ_UINT8 (dops_data + 19);
- stream_count = GST_READ_UINT8 (dops_data + 20);
- coupled_count = GST_READ_UINT8 (dops_data + 21);
-
- if (channels > 0) {
- channel_mapping = g_malloc (channels * sizeof (guint8));
- for (i = 0; i < channels; i++)
- channel_mapping[i] = GST_READ_UINT8 (dops_data + i + 22);
+ GNode *opus;
+ GNode *dops;
+
+ opus = qtdemux_tree_get_child_by_type (stsd, FOURCC_opus);
+ if (opus == NULL) {
+ GST_WARNING_OBJECT (qtdemux, "Opus Sample Entry not found");
+ goto corrupt_file;
+ }
+
+ dops = qtdemux_tree_get_child_by_type (opus, FOURCC_dops);
+ if (dops == NULL) {
+ GST_WARNING_OBJECT (qtdemux, "Opus Specific Box not found");
+ goto corrupt_file;
+ }
+
+ /* Opus Specific Box content:
+ * 4 bytes: length
+ * 4 bytes: "dOps"
+ * 1 byte: Version;
+ * 1 byte: OutputChannelCount;
+ * 2 bytes: PreSkip (big-endians);
+ * 4 bytes: InputSampleRate (big-endians);
+ * 2 bytes: OutputGain (big-endians);
+ * 1 byte: ChannelMappingFamily;
+ * if (ChannelMappingFamily != 0) {
+ * 1 byte: StreamCount;
+ * 1 byte: CoupledCount;
+ * for (OutputChannel in 0..OutputChannelCount) {
+ * 1 byte: ChannelMapping;
+ * }
+ * }
+ */
+
+ dops_len = QT_UINT32 ((guint8 *) dops->data);
+ if (len < offset + dops_len) {
+ GST_WARNING_OBJECT (qtdemux,
+ "Opus Sample Entry has bogus size %" G_GUINT32_FORMAT, len);
+ goto corrupt_file;
+ }
+ if (dops_len < 19) {
+ GST_WARNING_OBJECT (qtdemux,
+ "Opus Specific Box has bogus size %" G_GUINT32_FORMAT,
+ dops_len);
+ goto corrupt_file;
+ }
+
+ n_channels = GST_READ_UINT8 ((guint8 *) dops->data + 9);
+ rate = GST_READ_UINT32_BE ((guint8 *) dops->data + 12);
+ channel_mapping_family = GST_READ_UINT8 ((guint8 *) dops->data + 18);
+
+ if (channel_mapping_family != 0) {
+ if (dops_len < 21 + n_channels) {
+ GST_WARNING_OBJECT (qtdemux,
+ "Opus Specific Box has bogus size %" G_GUINT32_FORMAT,
+ dops_len);
+ goto corrupt_file;
+ }
+
+ stream_count = GST_READ_UINT8 ((guint8 *) dops->data + 19);
+ coupled_count = GST_READ_UINT8 ((guint8 *) dops->data + 20);
+
+ if (n_channels > 0) {
+ channel_mapping = g_malloc (n_channels * sizeof (guint8));
+ for (i = 0; i < n_channels; i++)
+ channel_mapping[i] =
+ GST_READ_UINT8 ((guint8 *) dops->data + i + 21);
+ }
+ } else if (n_channels == 1) {
+ stream_count = 1;
+ coupled_count = 0;
+ } else if (n_channels == 2) {
+ stream_count = 1;
+ coupled_count = 1;
+ } else {
+ GST_WARNING_OBJECT (qtdemux,
+ "Opus unexpected nb of channels %d without channel mapping",
+ n_channels);
+ goto corrupt_file;
}
- entry->caps = gst_codec_utils_opus_create_caps (rate, channels,
+ entry->caps = gst_codec_utils_opus_create_caps (rate, n_channels,
channel_mapping_family, stream_count, coupled_count,
channel_mapping);
g_free (channel_mapping);
@@ -13256,6 +13330,7 @@
}
break;
}
+ case FOURCC_opus:
case FOURCC_lpcm:
case FOURCC_in24:
case FOURCC_in32:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/gst/isomp4/qtdemux_dump.c new/gst-plugins-good-1.22.4/gst/isomp4/qtdemux_dump.c
--- old/gst-plugins-good-1.22.3/gst/isomp4/qtdemux_dump.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/gst/isomp4/qtdemux_dump.c 2023-06-20 18:42:25.000000000 +0200
@@ -1054,6 +1054,88 @@
}
gboolean
+qtdemux_dump_opus (GstQTDemux * qtdemux, GstByteReader * data, int depth)
+{
+ guint16 version, data_ref_id, n_channels, sample_size;
+ guint32 sample_rate;
+
+ if (!gst_byte_reader_skip (data, 6) ||
+ !gst_byte_reader_get_uint16_be (data, &data_ref_id) ||
+ !gst_byte_reader_get_uint16_be (data, &version) ||
+ !gst_byte_reader_skip (data, 6) ||
+ !gst_byte_reader_get_uint16_be (data, &n_channels) ||
+ !gst_byte_reader_get_uint16_be (data, &sample_size) ||
+ !gst_byte_reader_skip (data, 4) ||
+ !gst_byte_reader_get_uint32_be (data, &sample_rate))
+ return FALSE;
+
+ GST_LOG ("%*s data reference: %d", depth, "", data_ref_id);
+ GST_LOG ("%*s version: %d", depth, "", version);
+ GST_LOG ("%*s channel count: %d", depth, "", n_channels);
+ GST_LOG ("%*s sample size: %d", depth, "", sample_size);
+ GST_LOG ("%*s sample rate: %d", depth, "", sample_rate >> 16);
+
+ return TRUE;
+}
+
+gboolean
+qtdemux_dump_dops (GstQTDemux * qtdemux, GstByteReader * data, int depth)
+{
+ guint8 version, n_channels, channel_mapping_family;
+ guint8 stream_count = 1, coupled_count = 0, i = 0;
+ guint8 *channel_mapping = NULL;
+ guint16 pre_skip, output_gain;
+ guint32 sample_rate;
+
+ if (!gst_byte_reader_get_uint8 (data, &version) ||
+ !gst_byte_reader_get_uint8 (data, &n_channels) ||
+ !gst_byte_reader_get_uint16_be (data, &pre_skip) ||
+ !gst_byte_reader_get_uint32_be (data, &sample_rate) ||
+ !gst_byte_reader_get_uint16_be (data, &output_gain) ||
+ !gst_byte_reader_get_uint8 (data, &channel_mapping_family))
+ return FALSE;
+
+ if (channel_mapping_family != 0) {
+ if (!gst_byte_reader_get_uint8 (data, &stream_count) ||
+ !gst_byte_reader_get_uint8 (data, &coupled_count))
+ return FALSE;
+
+ if (n_channels > 0) {
+ channel_mapping = g_malloc (n_channels * sizeof (guint8));
+
+ for (i = 0; i < n_channels; i++)
+ if (!gst_byte_reader_get_uint8 (data, &channel_mapping[i])) {
+ g_free (channel_mapping);
+ return FALSE;
+ }
+ }
+ }
+
+ GST_LOG ("%*s version: %d", depth, "", version);
+ GST_LOG ("%*s channel count: %d", depth, "", n_channels);
+ GST_LOG ("%*s pre skip: %d", depth, "", pre_skip);
+ GST_LOG ("%*s sample rate: %d", depth, "", sample_rate);
+ GST_LOG ("%*s output gain: %d", depth, "", output_gain);
+ GST_LOG ("%*s channel mapping family: %d", depth, "",
+ channel_mapping_family);
+
+ if (channel_mapping_family != 0) {
+ GST_LOG ("%*s stream count: %d", depth, "", stream_count);
+ GST_LOG ("%*s coupled count: %d", depth, "", coupled_count);
+
+ if (n_channels > 0) {
+ for (i = 0; i < n_channels; i++)
+ GST_LOG ("%*s channel mapping: %d -> %d", depth, "", i,
+ channel_mapping[i]);
+
+ g_free (channel_mapping);
+ }
+ }
+
+ return TRUE;
+}
+
+gboolean
qtdemux_dump_gmin (GstQTDemux * qtdemux, GstByteReader * data, int depth)
{
guint32 ver_flags;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/gst/isomp4/qtdemux_dump.h new/gst-plugins-good-1.22.4/gst/isomp4/qtdemux_dump.h
--- old/gst-plugins-good-1.22.3/gst/isomp4/qtdemux_dump.h 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/gst/isomp4/qtdemux_dump.h 2023-06-20 18:42:25.000000000 +0200
@@ -89,6 +89,10 @@
int depth);
gboolean qtdemux_dump_fLaC (GstQTDemux * qtdemux, GstByteReader * data,
int depth);
+gboolean qtdemux_dump_opus (GstQTDemux * qtdemux, GstByteReader * data,
+ int depth);
+gboolean qtdemux_dump_dops (GstQTDemux * qtdemux, GstByteReader * data,
+ int depth);
gboolean qtdemux_dump_gmin (GstQTDemux * qtdemux, GstByteReader * data,
int depth);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/gst/isomp4/qtdemux_types.c new/gst-plugins-good-1.22.4/gst/isomp4/qtdemux_types.c
--- old/gst-plugins-good-1.22.3/gst/isomp4/qtdemux_types.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/gst/isomp4/qtdemux_types.c 2023-06-20 18:42:25.000000000 +0200
@@ -97,6 +97,8 @@
{FOURCC_alac, "alac", 0,},
{FOURCC_fLaC, "fLaC", 0, qtdemux_dump_fLaC},
{FOURCC_dfLa, "dfLa", 0, qtdemux_dump_dfLa},
+ {FOURCC_opus, "opus", 0, qtdemux_dump_opus},
+ {FOURCC_dops, "dOps", 0, qtdemux_dump_dops},
{FOURCC_wave, "wave", QT_FLAG_CONTAINER},
{FOURCC_appl, "appl", QT_FLAG_CONTAINER},
{FOURCC_cfhd, "cfhd", QT_FLAG_CONTAINER},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/gst/rtsp/gstrtspsrc.c new/gst-plugins-good-1.22.4/gst/rtsp/gstrtspsrc.c
--- old/gst-plugins-good-1.22.3/gst/rtsp/gstrtspsrc.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/gst/rtsp/gstrtspsrc.c 2023-06-20 18:42:25.000000000 +0200
@@ -9341,21 +9341,33 @@
GST_OBJECT_LOCK (src);
cmd = src->pending_cmd;
- if (cmd == CMD_RECONNECT || cmd == CMD_PLAY || cmd == CMD_PAUSE
- || cmd == CMD_LOOP || cmd == CMD_OPEN || cmd == CMD_GET_PARAMETER
- || cmd == CMD_SET_PARAMETER) {
- if (g_queue_is_empty (&src->set_get_param_q)) {
- src->pending_cmd = CMD_LOOP;
- } else {
- ParameterRequest *next_req;
- if (cmd == CMD_GET_PARAMETER || cmd == CMD_SET_PARAMETER) {
- req = g_queue_pop_head (&src->set_get_param_q);
+
+ switch (cmd) {
+ case CMD_CLOSE:
+ src->pending_cmd = CMD_WAIT;
+ break;
+ case CMD_GET_PARAMETER:
+ case CMD_SET_PARAMETER:
+ req = g_queue_pop_head (&src->set_get_param_q);
+ if (!req)
+ cmd = CMD_LOOP;
+ /* fall through */
+ case CMD_OPEN:
+ case CMD_PLAY:
+ case CMD_PAUSE:
+ case CMD_LOOP:
+ case CMD_RECONNECT:
+ if (g_queue_is_empty (&src->set_get_param_q)) {
+ src->pending_cmd = CMD_LOOP;
+ } else {
+ ParameterRequest *next_req;
+ next_req = g_queue_peek_head (&src->set_get_param_q);
+ src->pending_cmd = next_req->cmd;
}
- next_req = g_queue_peek_head (&src->set_get_param_q);
- src->pending_cmd = next_req ? next_req->cmd : CMD_LOOP;
- }
- } else
- src->pending_cmd = CMD_WAIT;
+ break;
+ default:
+ break;
+ }
GST_DEBUG_OBJECT (src, "got command %s", cmd_to_string (cmd));
/* we got the message command, so ensure communication is possible again */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/gst-plugins-good.doap new/gst-plugins-good-1.22.4/gst-plugins-good.doap
--- old/gst-plugins-good-1.22.3/gst-plugins-good.doap 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/gst-plugins-good.doap 2023-06-20 18:42:25.000000000 +0200
@@ -34,6 +34,16 @@
<release>
<Version>
+ <revision>1.22.4</revision>
+ <branch>1.22</branch>
+ <name></name>
+ <created>2023-06-20</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.2…" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.22.3</revision>
<branch>1.22</branch>
<name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/meson.build new/gst-plugins-good-1.22.4/meson.build
--- old/gst-plugins-good-1.22.3/meson.build 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/meson.build 2023-06-20 18:42:25.000000000 +0200
@@ -1,5 +1,5 @@
project('gst-plugins-good', 'c',
- version : '1.22.3',
+ version : '1.22.4',
meson_version : '>= 0.62',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/meson_options.txt new/gst-plugins-good-1.22.4/meson_options.txt
--- old/gst-plugins-good-1.22.3/meson_options.txt 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/meson_options.txt 2023-06-20 18:42:25.000000000 +0200
@@ -87,6 +87,9 @@
# Qt plugin options
option('qt-method', type: 'combo', value: 'auto', choices: ['auto', 'pkg-config', 'qmake'],
description: 'Method to use to find Qt')
+option('qt-egl', type: 'feature', value: 'auto', description: 'EGLFS support in the Qt plugins')
+option('qt-wayland', type: 'feature', value: 'auto', description: 'Wayland support in the Qt plugins')
+option('qt-x11', type: 'feature', value: 'auto', description: 'Wayland support in the Qt plugins')
option('qt5', type : 'feature', value : 'auto', yield : true, description : 'Qt5 QML video sink plugin')
option('qt6', type : 'feature', value : 'auto', yield : true, description : 'Qt6 QML video sink plugin')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/sys/v4l2/gstv4l2bufferpool.c new/gst-plugins-good-1.22.4/sys/v4l2/gstv4l2bufferpool.c
--- old/gst-plugins-good-1.22.3/sys/v4l2/gstv4l2bufferpool.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/sys/v4l2/gstv4l2bufferpool.c 2023-06-20 18:42:25.000000000 +0200
@@ -1378,7 +1378,7 @@
break;
}
- if (GST_VIDEO_INFO_FORMAT (&obj->info) == GST_VIDEO_FORMAT_ENCODED) {
+ if (!gst_v4l2_object_is_raw (obj)) {
if ((group->buffer.flags & V4L2_BUF_FLAG_KEYFRAME) ||
GST_V4L2_PIXELFORMAT (obj) == V4L2_PIX_FMT_MJPEG ||
GST_V4L2_PIXELFORMAT (obj) == V4L2_PIX_FMT_JPEG ||
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/sys/v4l2/gstv4l2object.c new/gst-plugins-good-1.22.4/sys/v4l2/gstv4l2object.c
--- old/gst-plugins-good-1.22.3/sys/v4l2/gstv4l2object.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/sys/v4l2/gstv4l2object.c 2023-06-20 18:42:25.000000000 +0200
@@ -1668,6 +1668,22 @@
return template;
}
+gboolean
+gst_v4l2_object_is_raw (GstV4l2Object * v4l2object)
+{
+ gint i;
+
+ if (GST_VIDEO_INFO_FORMAT (&v4l2object->info) != GST_VIDEO_FORMAT_ENCODED)
+ return TRUE;
+
+ for (i = 0; i < GST_V4L2_FORMAT_COUNT; i++) {
+ if (gst_v4l2_formats[i].format == GST_V4L2_PIXELFORMAT (v4l2object)) {
+ return ! !(gst_v4l2_formats[i].flags & GST_V4L2_RAW);
+ }
+ }
+ return FALSE;
+}
+
/* Add an 'alternate' variant of the caps with the feature */
static void
add_alternate_variant (GstV4l2Object * v4l2object, GstCaps * caps,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/sys/v4l2/gstv4l2object.h new/gst-plugins-good-1.22.4/sys/v4l2/gstv4l2object.h
--- old/gst-plugins-good-1.22.3/sys/v4l2/gstv4l2object.h 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/sys/v4l2/gstv4l2object.h 2023-06-20 18:42:25.000000000 +0200
@@ -320,6 +320,8 @@
GstFlowReturn gst_v4l2_object_poll (GstV4l2Object * v4l2object, GstClockTime timeout);
gboolean gst_v4l2_object_subscribe_event (GstV4l2Object * v4l2object, guint32 event);
+gboolean gst_v4l2_object_is_raw (GstV4l2Object * obj);
+
/* crop / compose */
gboolean gst_v4l2_object_set_crop (GstV4l2Object * obj, struct v4l2_rect *result);
gboolean gst_v4l2_object_get_crop_bounds (GstV4l2Object * obj, struct v4l2_rect *bounds);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/sys/v4l2/gstv4l2videodec.c new/gst-plugins-good-1.22.4/sys/v4l2/gstv4l2videodec.c
--- old/gst-plugins-good-1.22.3/sys/v4l2/gstv4l2videodec.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/sys/v4l2/gstv4l2videodec.c 2023-06-20 18:42:25.000000000 +0200
@@ -1384,12 +1384,20 @@
gint mpegversion = 0;
gst_structure_get_int (s, "mpegversion", &mpegversion);
- if (mpegversion == 2) {
- SET_META ("MPEG2");
- cdata->codec = gst_v4l2_mpeg2_get_codec ();
- } else {
- SET_META ("MPEG4");
- cdata->codec = gst_v4l2_mpeg4_get_codec ();
+ switch (mpegversion) {
+ /* MPEG 2 decoders supports MPEG 1 format */
+ case 1:
+ case 2:
+ SET_META ("MPEG2");
+ cdata->codec = gst_v4l2_mpeg2_get_codec ();
+ break;
+ case 4:
+ SET_META ("MPEG4");
+ cdata->codec = gst_v4l2_mpeg4_get_codec ();
+ break;
+ default:
+ g_warning ("Unsupported MPEG Video version %i", mpegversion);
+ break;
}
} else if (gst_structure_has_name (s, "video/x-h263")) {
SET_META ("H263");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/sys/v4l2/gstv4l2videoenc.c new/gst-plugins-good-1.22.4/sys/v4l2/gstv4l2videoenc.c
--- old/gst-plugins-good-1.22.3/sys/v4l2/gstv4l2videoenc.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/sys/v4l2/gstv4l2videoenc.c 2023-06-20 18:42:25.000000000 +0200
@@ -817,6 +817,17 @@
}
if (frame->input_buffer) {
+ /* Process force keyframe event if it was passed */
+ if (GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME (frame)) {
+ struct v4l2_control ctrl = { V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME, 1 };
+ if (self->v4l2output->ioctl (self->v4l2output->video_fd, VIDIOC_S_CTRL,
+ &ctrl) < 0)
+ GST_ELEMENT_WARNING (self, RESOURCE, FAILED,
+ (_("Failed to force keyframe.")),
+ ("VIDIOC_S_CTRL (V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME) failed: %s (%d)",
+ g_strerror (errno), errno));
+ }
+
GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
GST_LOG_OBJECT (encoder, "Passing buffer with frame number %u",
frame->system_frame_number);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/sys/v4l2/v4l2_calls.c new/gst-plugins-good-1.22.4/sys/v4l2/v4l2_calls.c
--- old/gst-plugins-good-1.22.3/sys/v4l2/v4l2_calls.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/sys/v4l2/v4l2_calls.c 2023-06-20 18:42:25.000000000 +0200
@@ -307,6 +307,10 @@
} else {
GST_WARNING_OBJECT (e, "Failed querying control %d on device '%s'. "
"(%d - %s)", n, v4l2object->videodev, errno, strerror (errno));
+ if (n > (V4L2_CID_PRIVATE_BASE + V4L2_CID_MAX_CTRLS)) {
+ GST_DEBUG_OBJECT (e, "Finish control by reaching V4L2_CID_MAX_CTRLS");
+ break;
+ }
continue;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/gst-plugins-good-1.22.3/tests/check/elements/rtpbin_buffer_list.c new/gst-plugins-good-1.22.4/tests/check/elements/rtpbin_buffer_list.c
--- old/gst-plugins-good-1.22.3/tests/check/elements/rtpbin_buffer_list.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-good-1.22.4/tests/check/elements/rtpbin_buffer_list.c 2023-06-20 18:42:25.000000000 +0200
@@ -25,6 +25,12 @@
#include <gst/rtp/gstrtpbuffer.h>
#include <gst/rtp/gstrtcpbuffer.h>
+#if G_BYTE_ORDER == G_BIG_ENDIAN
+#define READ_UINT64(mem) GST_READ_UINT64_BE(mem)
+#else
+#define READ_UINT64(mem) GST_READ_UINT64_LE(mem)
+#endif
+
/* UDP/IP is assumed for bandwidth calculation */
#define UDP_IP_HEADER_OVERHEAD 28
@@ -236,8 +242,8 @@
* most likely be changed in gstrtpbin.
*/
fail_unless (info.data != NULL);
- fail_unless_equals_uint64 (*(guint64 *) info.data,
- *(guint64 *) rtp_header[index]);
+ fail_unless_equals_uint64 (READ_UINT64 (info.data),
+ READ_UINT64 (rtp_header[index]));
fail_unless (*(guint16 *) (info.data + 12) ==
*(guint16 *) (rtp_header[index] + 12));
++++++ reduce-required-meson.patch ++++++
--- /var/tmp/diff_new_pack.4WFZas/_old 2023-07-01 23:17:28.818054952 +0200
+++ /var/tmp/diff_new_pack.4WFZas/_new 2023-07-01 23:17:28.822054976 +0200
@@ -1,10 +1,10 @@
-Index: gst-plugins-good-1.22.3/meson.build
+Index: gst-plugins-good-1.22.4/meson.build
===================================================================
---- gst-plugins-good-1.22.3.orig/meson.build
-+++ gst-plugins-good-1.22.3/meson.build
+--- gst-plugins-good-1.22.4.orig/meson.build
++++ gst-plugins-good-1.22.4/meson.build
@@ -1,6 +1,6 @@
project('gst-plugins-good', 'c',
- version : '1.22.3',
+ version : '1.22.4',
- meson_version : '>= 0.62',
+ meson_version : '>= 0.61',
default_options : [ 'warning_level=1',
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gstreamer-plugins-base for openSUSE:Factory checked in at 2023-07-01 23:17:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-base (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-plugins-base.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-base"
Sat Jul 1 23:17:23 2023 rev:93 rq:1096144 version:1.22.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/gstreamer-plugins-base/gstreamer-plugins-base.changes 2023-05-28 19:21:37.936529931 +0200
+++ /work/SRC/openSUSE:Factory/.gstreamer-plugins-base.new.13546/gstreamer-plugins-base.changes 2023-07-01 23:17:25.262033635 +0200
@@ -1,0 +2,23 @@
+Mon Jun 26 14:18:54 UTC 2023 - Bj��rn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 1.22.4:
+ + alsasink: Fix stall for transition from PAUSED to READY with
+ USB speakerphone.
+ + appsink: unref buffer in prev sample early so buffers from v4l2
+ can be released properly.
+ + basetextoverlay: Fix typo in "text-y" property description.
+ + gldownload: handle passthrough without a critical.
+ + glfilter: add parent meta to output buffer for input buffer.
+ + oggdemux: vp8: Push headers downstream and detect keyframe
+ packets.
+ + opus: Fix potential crash when getting unexpected channel
+ position.
+ + streamsynchronizer: reset eos on STREAM_START.
+ + subparse: Look for the closing > of a tag after the opening <.
+ + video: convertframe: Add D3D11 specific conversion path.
+ + videometa: Only validate the alignment only when it contains
+ some info.
+ + video-blend: Fix linking error with C++.
+- Rebase reduce-required-meson.patch.
+
+-------------------------------------------------------------------
Old:
----
gst-plugins-base-1.22.3.tar.xz
New:
----
gst-plugins-base-1.22.4.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-plugins-base.spec ++++++
--- /var/tmp/diff_new_pack.7GokJF/_old 2023-07-01 23:17:25.902037472 +0200
+++ /var/tmp/diff_new_pack.7GokJF/_new 2023-07-01 23:17:25.906037496 +0200
@@ -20,7 +20,7 @@
%define gst_branch 1.0
%define gstreamer_req_version %(echo %{version} | sed -e "s/+.*//")
Name: gstreamer-plugins-base
-Version: 1.22.3
+Version: 1.22.4
Release: 0
Summary: GStreamer Streaming-Media Framework Plug-Ins
License: GPL-2.0-or-later AND LGPL-2.1-or-later
++++++ gst-plugins-base-1.22.3.tar.xz -> gst-plugins-base-1.22.4.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ChangeLog new/gst-plugins-base-1.22.4/ChangeLog
--- old/gst-plugins-base-1.22.3/ChangeLog 2023-05-19 10:24:07.850514400 +0200
+++ new/gst-plugins-base-1.22.4/ChangeLog 2023-06-20 18:44:10.143448800 +0200
@@ -1,3 +1,185 @@
+=== release 1.22.4 ===
+
+2023-06-20 17:42:25 +0100 Tim-Philipp M��ller <tim(a)centricular.com>
+
+ * NEWS:
+ * RELEASE:
+ * gst-plugins-base.doap:
+ * meson.build:
+ Release 1.22.4
+
+2023-06-13 12:58:26 +0300 Sebastian Dr��ge <sebastian(a)centricular.com>
+
+ * gst/subparse/gstsubparse.c:
+ subparse: Skip after the end of a valid closing tag instead of only skipping `<`
+ This is a small optimization and avoids restarting the next parsing
+ iteration on already accepted data.
+ On its own it would also fix ZDI-CAN-20968 (see previous commit) but the
+ previous commit independently is also a valid fix for it.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4898>
+
+2023-06-13 12:53:13 +0300 Sebastian Dr��ge <sebastian(a)centricular.com>
+
+ * gst/subparse/gstsubparse.c:
+ subparse: Look for the closing `>` of a tag after the opening `<`
+ Previously when fixing up subrip markip, we were looking from the start
+ of the remaining buffer instead. Due to how skipping over closing tags
+ works, the remaining buffer will still contain the closing `>` of the
+ previous tag so if a unexpected closing tag is found after another
+ closing tag, we would potentially do an out of bounds memmove().
+ Fixes ZDI-CAN-20968
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2662
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4898>
+
+2023-06-13 13:22:57 +0300 Sebastian Dr��ge <sebastian(a)centricular.com>
+
+ * gst-libs/gst/tag/tags.c:
+ tags: Don't allow image tags with G_MAXUINT32 length
+ This will cause an integer overflow a little bit further down because we
+ allocate a bit more memory to allow for a NUL-terminator.
+ The caller should've avoided passing that much data in already as it's
+ not going to be a valid image and there's likely not even that much data
+ available.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4897>
+
+2023-06-13 10:30:16 +0800 Haihua Hu <jared.hu(a)nxp.com>
+
+ * gst-libs/gst/gl/gstglfilter.c:
+ glfilter: add parent meta to output buffer for input buffer
+ glfilter will unref input buffer after _transform() call immidiately,
+ but gpu may still reading input buffer for rendering because gl
+ api is executed async. Need hold reference for input buffer by
+ adding parent meta to output buffer.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4846>
+
+2023-06-07 14:24:46 -0400 Xavier Claessens <xavier.claessens(a)collabora.com>
+
+ * ext/opus/gstopusenc.c:
+ opus: Fix crash when getting unexpected channel position
+ gst_opus_channel_names is a static array with only 13 items.
+ GstAudioChannelPosition have bigger values than that.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4843>
+
+2016-06-01 11:52:38 +0100 William Manley <will(a)williammanley.net>
+
+ * docs/plugins/gst_plugins_cache.json:
+ * ext/pango/gstbasetextoverlay.c:
+ basetextoverlay: Fix typo in "text-y" property description
+ Looks like a copy and paste error.
+ Co-authored-by: Fabian Orccon <cfoch.fabian(a)gmail.com>
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4827>
+
+2023-06-09 21:08:36 +0800 Kevin Song <kesong(a)nvidia.com>
+
+ * gst-libs/gst/app/gstappsink.c:
+ appsink: unref gstbuffer in prev sample early
+ Appsink will unref prev sample in dispose function. Which is later
+ when V4L2 video decoder link with appsink as V4L2 video decoder
+ will close V4L2 device fd during GST_STATE_CHANGE_READY_TO_NULL.
+ If the video buffer return to V4L2 video decoder after the decoder
+ closed V4L2 device fd, V4L2 can't release the video frame buffer
+ which allocated with MMAP mode as application can't call
+ VIDIOC_REQBUFS 0 to release the video frame buffer by V4L2 driver.
+ The memory of the video frame will leak.
+ Unref the gstbuffer in stop() function, so V4L2 video decoder
+ can received all video frame buffers and release it before close
+ V4L2 device fd.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4820>
+
+2023-06-07 13:46:39 +1000 Matthew Waters <matthew(a)centricular.com>
+
+ * ext/gl/gstgldownloadelement.c:
+ gldownload: handle passthrough without a critical
+ With passthrough mode, gldownload/glbasefilter may not ever retrieve a
+ relevant GstGLContext as it doesn't actually query the surrounding
+ elements. Guard against that.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4800>
+
+2023-05-27 13:06:22 +0100 Philippe Normand <philn(a)igalia.com>
+
+ * ext/ogg/gstoggdemux.c:
+ * ext/ogg/gstoggdemux.h:
+ * ext/ogg/gstoggstream.c:
+ oggdemux: vp8: Detect keyframe packets
+ decodebin3 drops data on video streams until a keyframe or header is detected,
+ so for Ogg/VP8 we now need to correctly flag and signal keyframes downstream.
+ The first buffer pushed from each src pad also has the HEADER flag set.
+ Fixes playback of
+ https://github.com/web-platform-tests/wpt/raw/master/media/test.ogv in playbin3.
+ Fixes #1418
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4745>
+
+2023-05-31 16:26:45 +0200 Guillaume Desmottes <guillaume.desmottes(a)onestream.live>
+
+ * gst/playback/gststreamsynchronizer.c:
+ streamsynchronizer: check reset-time when handling FLUSH_STOP
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4755>
+
+2023-05-31 16:05:48 +0200 Guillaume Desmottes <guillaume.desmottes(a)onestream.live>
+
+ * gst/playback/gststreamsynchronizer.c:
+ streamsynchronizer: reset eos on STREAM_START
+ self->eos was never reset after streamsynchronizer has sent EOS
+ (except on explicit flush or switching back to PAUSED).
+ As a result, synchronization was broken if new streams were pushed later
+ as gst_stream_synchronizer_wait() does not wait if self->eos is set.
+ Fix this by reseting self->eos on STREAM_START as that means a new
+ stream is being sent upstream and so a new EOS will follow later on.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4755>
+
+2023-05-29 02:14:44 +0900 Seungha Yang <seungha(a)centricular.com>
+
+ * gst-libs/gst/video/video-blend.h:
+ video-blend: Fix linking error with C++
+ Add missing extern "C"
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4735>
+
+2023-05-19 15:20:16 +0800 He Junyan <junyan.he(a)intel.com>
+
+ * gst-libs/gst/video/gstvideometa.c:
+ videometa: Only validate the alignment only when it contains some info
+ When the alignment contains nothing, all its fields are 0 and always
+ can be satisfied. So there is no need to validate it in this case.
+ And there are a lot of places just setting this alignment to default
+ all zero value, this validation generates lots of warnings.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4704>
+
+2023-05-15 15:57:15 -0400 Nicolas Beland <nicolas(a)inogeni.com>
+
+ * ext/alsa/gstalsasink.c:
+ * ext/alsa/gstalsasink.h:
+ alsasink: Fix stall for transition of alsasink from PAUSED to READY with USB speakerphone
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4699>
+
+2022-07-05 05:14:01 +0900 Seungha Yang <seungha(a)centricular.com>
+
+ * gst-libs/gst/video/convertframe.c:
+ video: convertframe: Add D3D11 specific conversion path
+ Add d3d11 conversion path to make gst_video_convert_sample() work
+ for GstD3D11Memory.
+ Note that just adding "d3d11download" to the exisitng code is
+ suboptimal from GstD3D11 point of view because:
+ * d3d11convert element can support crop/colorspace-conversion/scale
+ all at once while existing software pipeline needs intermediate steps
+ for the conversion
+ * "Process everything on GPU then download it to CPU memory" would be likely
+ faster than "download GPU memory to CPU then processing it on CPU"
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4689>
+
+2022-07-05 04:42:57 +0900 Seungha Yang <seungha(a)centricular.com>
+
+ * gst-libs/gst/video/convertframe.c:
+ video: convertframe: Remove pointless const qualifier
+ const keyword for refcounted object does not very make sense
+ and unnecessary in this case
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4689>
+
+2023-05-19 12:36:19 +0100 Tim-Philipp M��ller <tim(a)centricular.com>
+
+ * meson.build:
+ Back to development
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4679>
+
=== release 1.22.3 ===
2023-05-19 09:23:19 +0100 Tim-Philipp M��ller <tim(a)centricular.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/NEWS new/gst-plugins-base-1.22.4/NEWS
--- old/gst-plugins-base-1.22.3/NEWS 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/NEWS 2023-06-20 18:42:25.000000000 +0200
@@ -2,13 +2,13 @@
GStreamer 1.22.0 was originally released on 23 January 2023.
-The latest bug-fix release in the stable 1.22 series is 1.22.3 and was
-released on 19 May 2023.
+The latest bug-fix release in the stable 1.22 series is 1.22.4 and was
+released on 20 June 2023.
See https://gstreamer.freedesktop.org/releases/1.22/ for the latest
version of this document.
-Last updated: Friday 19 May 2023, 01:00 UTC (log)
+Last updated: Tuesday 20 June 2023, 16:30 UTC (log)
Introduction
@@ -1831,6 +1831,183 @@
- List of Merge Requests applied in 1.22.3
- List of Issues fixed in 1.22.3
+1.22.4
+
+The fourth 1.22 bug-fix release (1.22.4) was released on 20 June 2023.
+
+This release only contains bugfixes and security fixes and it should be
+safe to update from 1.22.x.
+
+Highlighted bugfixes in 1.22.4
+
+- Security fixes for flacparse, dvdspu, and subparse
+- d3d11videosink: Fix error on pause and play
+- decklink: Correctly handle SDK strings on macOS and free strings
+ after usage on Linux
+- filesink: Fix buffered mode writing of buffer lists and buffers with
+ multiple memories
+- gldownload: handle passthrough without a critical
+- h265parse: Fix framerate handling regression
+- oggdemux: vp8 fixes
+- mp4mux, qtmux, qtdemux: Opus audio mapping fixes
+- pngdec: Fix wrong colours output from 16bit RGB images
+- ptp clock: Work around ptpd bug in default configuration
+- srtpdec: fix critical warnings on shutdown
+- v4l2src: fix support for bayer format
+- v4l2videoenc: support force-keyframe event in v4l2 encoder
+- vtenc: apply DTS offset to ensure DTS <= PTS
+- gst-python: allow more functions to be called before gst_init()
+- cerbero: fix vaapi variant; add qt6 build on windows; ensure errors
+ on unguarded use of new APIs, require macOS 10.13
+- packages: ship codecalpha, rtponvif, dvbsubenc, switchbin,
+ videosignal plugins; fix pango crash on 32-bit windows
+- various bug fixes, memory leak fixes, and other stability and
+ reliability improvements
+
+gstreamer
+
+- filesink: Fix buffered mode writing of buffer lists and buffers with
+ multiple memories
+- basesink: Clear EOS flag on STREAM-START event
+- typefindhelper: downgrade bogus error level debug log message
+- ptp: Correctly parse clock ID from the commandline parameters in the
+ helper
+- ptp: Work around bug in ptpd in default configuration
+
+gst-plugins-base
+
+- alsasink: Fix stall for transition from PAUSED to READY with USB
+ speakerphone.
+- appsink: unref buffer in prev sample early so buffers from v4l2 can
+ be released properly
+- basetextoverlay: Fix typo in ���text-y��� property description
+- gldownload: handle passthrough without a critical
+- glfilter: add parent meta to output buffer for input buffer
+- oggdemux: vp8: Push headers downstream and detect keyframe packets
+- opus: Fix potential crash when getting unexpected channel position
+- streamsynchronizer: reset eos on STREAM_START
+- subparse: Look for the closing > of a tag after the opening <
+- video: convertframe: Add D3D11 specific conversion path
+- videometa: Only validate the alignment only when it contains some
+ info
+- video-blend: Fix linking error with C++
+
+gst-plugins-good
+
+- flacparse: Avoid integer overflow in available data check for image
+ tags
+- flvmux: use the correct timestamp to calculate wait times
+- isomp4: Fix (E)AC-3 channel count handling
+- jpegdec: fixes related to interlaced jpeg
+- pngdec: Fix wrong colours output from 16bit RGB images
+- qtmux, qtdemux: fix byte order for opus extension
+- rtspsrc: Do not try send dropped get/set parameter
+- qt5, qt6: Add more meson options and eliminate all automagic
+- qt: glrenderer: don���t attempt to use QWindow from non-Qt main thread
+- qml6glsink: Support building on win32
+- v4l2src: fix support for bayer format
+- v4l2: Change to query only up to
+ V4L2_CID_PRIVATE_BASE+V4L2_CID_MAX_CTRLS
+- v4l2videodec: treat MPEG-1 format as MPEG-2
+- v4l2videoenc: support force keyframe event in v4l2 encoder
+- tests: rtpbin_buffer_list: fix possible unaligned write/read on
+ 32-bit ARM
+
+gst-plugins-bad
+
+- asfmux: fix possible unaligned write on 32-bit ARM
+- d3d11videosink: Fix error on pause and play
+- d3dvideosink: Fix navigation event leak
+- decklink: Correctly handle SDK strings on macOS and free strings
+ after usage on Linux
+- dvdspu: Make sure enough data is allocated for the available data
+- fdkaacdec: Support up to 5 rear channels
+- h265parse: Fix framerate handling
+- kmssink: Add STM32 LTDC and NXP i.MX8M Plus LCDIFv3 auto-detection
+- sdpdemux: ensure that only one srcpad is created per stream
+- srtpdec: fix critical warnings on shutdown
+- testsrcbin: Remove spurious caps unref
+- va: map the mbbrc to correct enum value in get_property()
+- vtenc: apply DTS offset to ensure DTS <= PTS
+- vtdec: time glitches on h264 playback
+- waylandsink: Emit ���map��� signal boarder surface is ready
+
+gst-plugins-ugly
+
+- No changes
+
+gst-libav
+
+- No changes
+
+gst-rtsp-server
+
+- No changes
+
+gstreamer-vaapi
+
+- vaapidecodebin: don���t load vaapipostproc if not available
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- python: More functions can be called before gst_init()
+
+gst-editing-services
+
+- ges: launcher: Never put sinks in a GstPipeline
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.22.4
+
+- Ship codecalpha, rtponvif, dvbsubenc, switchbin, videosignal plugins
+- pango: Fix crash on Windows 32bit build
+- qml6: Add support for building the qml6 plugin on Windows and bump
+ meson to 1.1.1
+- vaapi: update vaapi variant/recipe for meson option changes
+- packages: Put libass in the same category as assrender
+- cerbero: Don���t extract if already extracted in fetch
+- darwin: Ensure errors on unguarded use of new APIs, require macOS
+ 10.13
+
+Contributors to 1.22.4
+
+Andoni Morales Alastruey, Arun Raghavan, Colin Kinloch, Daniel Morin,
+Edward Hervey, ekwange, Elliot Chen, Fran��ois Laignel, Guillaume
+Desmottes, Haihua Hu, He Junyan, Hou Qi, Jan Alexander Steffens
+(heftig), Jochen Henneberg, Jordan Petridis, Kevin Song, Maksym
+Khomenko, Marek Vasut, Mathieu Duponchelle, Matthew Waters,
+Mengkejiergeli Ba, Michael Olbrich, Nicolas Beland, Nicolas Dufresne,
+Nirbheek Chauhan, Philippe Normand, Piotr Brzezi��ski, Sebastian Dr��ge,
+Seungha Yang, Thibault Saunier, Tim-Philipp M��ller, V��ctor Manuel J��quez
+Leal, William Manley, Xavier Claessens, Yuri Fedoseev,
+
+��� 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.22.4
+
+- List of Merge Requests applied in 1.22.4
+- List of Issues fixed in 1.22.4
+
Schedule for 1.24
Our next major feature release will be 1.24, and 1.23 will be the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/RELEASE new/gst-plugins-base-1.22.4/RELEASE
--- old/gst-plugins-base-1.22.3/RELEASE 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/RELEASE 2023-06-20 18:42:25.000000000 +0200
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-base 1.22.3.
+This is GStreamer gst-plugins-base 1.22.4.
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/gst-plugins-base-1.22.3/docs/plugins/gst_plugins_cache.json new/gst-plugins-base-1.22.4/docs/plugins/gst_plugins_cache.json
--- old/gst-plugins-base-1.22.3/docs/plugins/gst_plugins_cache.json 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/docs/plugins/gst_plugins_cache.json 2023-06-20 18:42:25.000000000 +0200
@@ -8923,7 +8923,7 @@
"writable": false
},
"text-y": {
- "blurb": "Resulting X position of font rendering.",
+ "blurb": "Resulting Y position of font rendering.",
"conditionally-available": false,
"construct": false,
"construct-only": false,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/alsa/gstalsasink.c new/gst-plugins-base-1.22.4/ext/alsa/gstalsasink.c
--- old/gst-plugins-base-1.22.3/ext/alsa/gstalsasink.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/ext/alsa/gstalsasink.c 2023-06-20 18:42:25.000000000 +0200
@@ -259,7 +259,6 @@
alsasink->is_paused = FALSE;
alsasink->after_paused = FALSE;
alsasink->hw_support_pause = FALSE;
- alsasink->stop_streaming_threads = TRUE;
g_mutex_init (&alsasink->alsa_lock);
g_mutex_init (&alsasink->delay_lock);
@@ -943,7 +942,6 @@
alsa->channels, GST_AUDIO_BASE_SINK (alsa)->ringbuffer);
#endif /* SND_CHMAP_API_VERSION */
- alsa->stop_streaming_threads = FALSE;
return TRUE;
/* ERRORS */
@@ -1063,8 +1061,6 @@
GST_ALSA_SINK_LOCK (asink);
while (cptr > 0) {
- if (alsa->stop_streaming_threads)
- goto write_error;
/* start by doing a blocking wait for free space. Set the timeout
* to 4 times the period time */
err = snd_pcm_wait (alsa->handle, (4 * alsa->period_time / 1000));
@@ -1173,7 +1169,6 @@
CHECK (snd_pcm_pause (alsa->handle, 1), pause_error);
GST_DEBUG_OBJECT (alsa, "pause done");
alsa->is_paused = TRUE;
- alsa->stop_streaming_threads = TRUE;
GST_ALSA_SINK_UNLOCK (asink);
} else {
gst_alsasink_stop (asink);
@@ -1186,6 +1181,7 @@
GST_ERROR_OBJECT (alsa, "alsa-pause: pcm pause error: %s",
snd_strerror (err));
GST_ALSA_SINK_UNLOCK (asink);
+ gst_alsasink_stop (asink);
return;
}
}
@@ -1205,7 +1201,6 @@
GST_ALSA_SINK_UNLOCK (asink);
}
- alsa->stop_streaming_threads = FALSE;
return;
resume_error:
@@ -1231,7 +1226,6 @@
GST_DEBUG_OBJECT (alsa, "prepare");
CHECK (snd_pcm_prepare (alsa->handle), prepare_error);
GST_DEBUG_OBJECT (alsa, "stop done");
- alsa->stop_streaming_threads = TRUE;
GST_ALSA_SINK_UNLOCK (asink);
return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/alsa/gstalsasink.h new/gst-plugins-base-1.22.4/ext/alsa/gstalsasink.h
--- old/gst-plugins-base-1.22.3/ext/alsa/gstalsasink.h 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/ext/alsa/gstalsasink.h 2023-06-20 18:42:25.000000000 +0200
@@ -77,7 +77,6 @@
gboolean is_paused;
gboolean after_paused;
gboolean hw_support_pause;
- gboolean stop_streaming_threads;
snd_pcm_sframes_t pos_in_buffer;
GMutex alsa_lock;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/gl/gstgldownloadelement.c new/gst-plugins-base-1.22.4/ext/gl/gstgldownloadelement.c
--- old/gst-plugins-base-1.22.3/ext/gl/gstgldownloadelement.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/ext/gl/gstgldownloadelement.c 2023-06-20 18:42:25.000000000 +0200
@@ -1237,9 +1237,14 @@
(void) bclass;
in_sync_meta = gst_buffer_get_gl_sync_meta (inbuf);
- if (in_sync_meta)
- gst_gl_sync_meta_wait (in_sync_meta, context);
-
+ if (in_sync_meta) {
+ if (context) {
+ gst_gl_sync_meta_wait (in_sync_meta, context);
+ } else if (dl->mode != GST_GL_DOWNLOAD_MODE_PASSTHROUGH) {
+ GST_WARNING_OBJECT (dl, "No configured GL context in non-passthrough "
+ "mode. Cannot wait on incoming `GstGLSyncMeta`");
+ }
+ }
#if GST_GL_HAVE_PLATFORM_EGL && defined(HAVE_NVMM)
if (dl->mode == GST_GL_DOWNLOAD_MODE_NVMM) {
GstNVMMParentMeta *buf_meta = gst_buffer_get_nvmm_parent_meta (inbuf);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/ogg/gstoggdemux.c new/gst-plugins-base-1.22.4/ext/ogg/gstoggdemux.c
--- old/gst-plugins-base-1.22.3/ext/ogg/gstoggdemux.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/ext/ogg/gstoggdemux.c 2023-06-20 18:42:25.000000000 +0200
@@ -580,6 +580,9 @@
if ((packet->bytes >= 7 && memcmp (packet->packet, "OVP80\2 ", 7) == 0) ||
packet->b_o_s ||
(packet->bytes >= 5 && memcmp (packet->packet, "OVP80", 5) == 0)) {
+ /* Request the first packet being pushed downstream to have the header
+ flag set, unblocking the keyframe_waiter_probe in decodebin3. */
+ pad->need_header_flag = TRUE;
/* We don't push header packets for VP8 */
goto done;
}
@@ -818,9 +821,11 @@
if (delta_unit)
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
- /* set header flag for buffers that are also in the streamheaders */
- if (is_header)
+ /* set header flag for buffers that are also in the streamheaders or when explicitely requested (VP8). */
+ if (is_header || pad->need_header_flag) {
+ pad->need_header_flag = FALSE;
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_HEADER);
+ }
if (packet->packet != NULL) {
/* copy packet in buffer */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/ogg/gstoggdemux.h new/gst-plugins-base-1.22.4/ext/ogg/gstoggdemux.h
--- old/gst-plugins-base-1.22.3/ext/ogg/gstoggdemux.h 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/ext/ogg/gstoggdemux.h 2023-06-20 18:42:25.000000000 +0200
@@ -102,6 +102,8 @@
GList *continued;
+ gboolean need_header_flag;
+
gboolean discont;
GstFlowReturn last_ret; /* last return of _pad_push() */
gboolean is_eos;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/ogg/gstoggstream.c new/gst-plugins-base-1.22.4/ext/ogg/gstoggstream.c
--- old/gst-plugins-base-1.22.3/ext/ogg/gstoggstream.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/ext/ogg/gstoggstream.c 2023-06-20 18:42:25.000000000 +0200
@@ -761,6 +761,22 @@
return ((gpos & 0x07ffffff) == 0);
}
+static gboolean
+is_packet_keyframe_vp8 (GstOggStream * pad, ogg_packet * packet)
+{
+ guint32 hdr;
+ gboolean is_kf = FALSE;
+
+ if (packet->bytes < 3) {
+ return FALSE;
+ }
+
+ hdr = GST_READ_UINT24_LE (packet->packet);
+
+ is_kf = (hdr & 0x1);
+ return is_kf;
+}
+
static gint64
granulepos_to_granule_vp8 (GstOggStream * pad, gint64 gpos)
{
@@ -2576,7 +2592,7 @@
granulepos_to_granule_vp8,
granule_to_granulepos_vp8,
is_keyframe_vp8,
- NULL,
+ is_packet_keyframe_vp8,
is_header_vp8,
packet_duration_vp8,
granulepos_to_key_granule_vp8,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/opus/gstopusenc.c new/gst-plugins-base-1.22.4/ext/opus/gstopusenc.c
--- old/gst-plugins-base-1.22.3/ext/opus/gstopusenc.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/ext/opus/gstopusenc.c 2023-06-20 18:42:25.000000000 +0200
@@ -508,8 +508,7 @@
}
}
GST_WARNING_OBJECT (enc,
- "Channel position %s is not representable in Vorbis order",
- gst_opus_channel_names[position]);
+ "Channel position %d is not representable in Vorbis order", position);
return -1;
}
@@ -620,8 +619,8 @@
needs to be done */
if (!positions_done[position]) {
int cv;
- GST_DEBUG_OBJECT (enc, "Channel position %s is not mapped yet, adding",
- gst_opus_channel_names[position]);
+ GST_DEBUG_OBJECT (enc, "Channel position %d is not mapped yet, adding",
+ position);
cv = gst_opus_enc_find_channel_position_in_vorbis_order (enc, position);
if (cv < 0)
g_assert_not_reached ();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/pango/gstbasetextoverlay.c new/gst-plugins-base-1.22.4/ext/pango/gstbasetextoverlay.c
--- old/gst-plugins-base-1.22.3/ext/pango/gstbasetextoverlay.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/ext/pango/gstbasetextoverlay.c 2023-06-20 18:42:25.000000000 +0200
@@ -430,7 +430,7 @@
*/
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TEXT_Y,
g_param_spec_int ("text-y", "vertical position",
- "Resulting X position of font rendering.", -G_MAXINT,
+ "Resulting Y position of font rendering.", -G_MAXINT,
G_MAXINT, DEFAULT_PROP_TEXT_Y, G_PARAM_READABLE));
/**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst/playback/gststreamsynchronizer.c new/gst-plugins-base-1.22.4/gst/playback/gststreamsynchronizer.c
--- old/gst-plugins-base-1.22.3/gst/playback/gststreamsynchronizer.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/gst/playback/gststreamsynchronizer.c 2023-06-20 18:42:25.000000000 +0200
@@ -388,6 +388,7 @@
GST_STREAM_SYNCHRONIZER_LOCK (self);
self->have_group_id &= have_group_id;
have_group_id = self->have_group_id;
+ self->eos = FALSE;
stream = gst_streamsync_pad_get_stream (pad);
@@ -580,12 +581,19 @@
GstSyncStream *stream;
GList *l;
GstClockTime new_group_start_time = 0;
+ gboolean reset_time;
+
+ gst_event_parse_flush_stop (event, &reset_time);
GST_STREAM_SYNCHRONIZER_LOCK (self);
+
stream = gst_streamsync_pad_get_stream (pad);
- GST_DEBUG_OBJECT (pad, "Resetting segment for stream %d",
- stream->stream_number);
- gst_segment_init (&stream->segment, GST_FORMAT_UNDEFINED);
+
+ if (reset_time) {
+ GST_DEBUG_OBJECT (pad, "Resetting segment for stream %d",
+ stream->stream_number);
+ gst_segment_init (&stream->segment, GST_FORMAT_UNDEFINED);
+ }
stream->is_eos = FALSE;
stream->eos_sent = FALSE;
@@ -593,32 +601,35 @@
stream->wait = FALSE;
g_cond_broadcast (&stream->stream_finish_cond);
- for (l = self->streams; l; l = l->next) {
- GstSyncStream *ostream = l->data;
- GstClockTime start_running_time;
-
- if (ostream == stream || ostream->flushing)
- continue;
-
- if (ostream->segment.format == GST_FORMAT_TIME) {
- if (ostream->segment.rate > 0)
- start_running_time =
- gst_segment_to_running_time (&ostream->segment,
- GST_FORMAT_TIME, ostream->segment.start);
- else
- start_running_time =
- gst_segment_to_running_time (&ostream->segment,
- GST_FORMAT_TIME, ostream->segment.stop);
+ if (reset_time) {
+ for (l = self->streams; l; l = l->next) {
+ GstSyncStream *ostream = l->data;
+ GstClockTime start_running_time;
- new_group_start_time = MAX (new_group_start_time, start_running_time);
+ if (ostream == stream || ostream->flushing)
+ continue;
+
+ if (ostream->segment.format == GST_FORMAT_TIME) {
+ if (ostream->segment.rate > 0)
+ start_running_time =
+ gst_segment_to_running_time (&ostream->segment,
+ GST_FORMAT_TIME, ostream->segment.start);
+ else
+ start_running_time =
+ gst_segment_to_running_time (&ostream->segment,
+ GST_FORMAT_TIME, ostream->segment.stop);
+
+ new_group_start_time =
+ MAX (new_group_start_time, start_running_time);
+ }
}
- }
- GST_DEBUG_OBJECT (pad,
- "Updating group start time from %" GST_TIME_FORMAT " to %"
- GST_TIME_FORMAT, GST_TIME_ARGS (self->group_start_time),
- GST_TIME_ARGS (new_group_start_time));
- self->group_start_time = new_group_start_time;
+ GST_DEBUG_OBJECT (pad,
+ "Updating group start time from %" GST_TIME_FORMAT " to %"
+ GST_TIME_FORMAT, GST_TIME_ARGS (self->group_start_time),
+ GST_TIME_ARGS (new_group_start_time));
+ self->group_start_time = new_group_start_time;
+ }
gst_syncstream_unref (stream);
GST_STREAM_SYNCHRONIZER_UNLOCK (self);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst/subparse/gstsubparse.c new/gst-plugins-base-1.22.4/gst/subparse/gstsubparse.c
--- old/gst-plugins-base-1.22.3/gst/subparse/gstsubparse.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/gst/subparse/gstsubparse.c 2023-06-20 18:42:25.000000000 +0200
@@ -779,7 +779,7 @@
}
if (*next_tag == '<' && *(next_tag + 1) == '/') {
- end_tag = strchr (cur, '>');
+ end_tag = strchr (next_tag, '>');
if (end_tag) {
const gchar *last = NULL;
if (num_open_tags > 0)
@@ -794,6 +794,8 @@
} else {
--num_open_tags;
g_ptr_array_remove_index (open_tags, num_open_tags);
+ cur = end_tag + 1;
+ continue;
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst-libs/gst/app/gstappsink.c new/gst-plugins-base-1.22.4/gst-libs/gst/app/gstappsink.c
--- old/gst-plugins-base-1.22.3/gst-libs/gst/app/gstappsink.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/gst-libs/gst/app/gstappsink.c 2023-06-20 18:42:25.000000000 +0200
@@ -775,6 +775,11 @@
gst_caps_replace (&priv->last_caps, NULL);
gst_segment_init (&priv->preroll_segment, GST_FORMAT_UNDEFINED);
gst_segment_init (&priv->last_segment, GST_FORMAT_UNDEFINED);
+ priv->sample = gst_sample_make_writable (priv->sample);
+ gst_sample_set_buffer (priv->sample, NULL);
+ gst_sample_set_buffer_list (priv->sample, NULL);
+ gst_sample_set_caps (priv->sample, NULL);
+ gst_sample_set_segment (priv->sample, NULL);
g_mutex_unlock (&priv->mutex);
return TRUE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst-libs/gst/gl/gstglfilter.c new/gst-plugins-base-1.22.4/gst-libs/gst/gl/gstglfilter.c
--- old/gst-plugins-base-1.22.3/gst-libs/gst/gl/gstglfilter.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/gst-libs/gst/gl/gstglfilter.c 2023-06-20 18:42:25.000000000 +0200
@@ -1032,6 +1032,14 @@
if (out_sync_meta)
gst_gl_sync_meta_set_sync_point (out_sync_meta, context);
+ /* since gl api is async operation, when return from transform()
+ * function, basetransform will unref input buffer immidiately,
+ * but gpu may still reading input buffer for rendering. Add parent
+ * buffer meta to hold one reference of inbuf, this can avoid this
+ * buffer sync problem.
+ */
+ gst_buffer_add_parent_buffer_meta (outbuf, inbuf);
+
return ret ? GST_FLOW_OK : GST_FLOW_ERROR;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst-libs/gst/tag/tags.c new/gst-plugins-base-1.22.4/gst-libs/gst/tag/tags.c
--- old/gst-plugins-base-1.22.3/gst-libs/gst/tag/tags.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/gst-libs/gst/tag/tags.c 2023-06-20 18:42:25.000000000 +0200
@@ -530,7 +530,8 @@
GstStructure *image_info = NULL;
g_return_val_if_fail (image_data != NULL, NULL);
- g_return_val_if_fail (image_data_len > 0, NULL);
+ g_return_val_if_fail (image_data_len > 0
+ || image_data_len == G_MAXUINT32, NULL);
g_return_val_if_fail (gst_tag_image_type_is_valid (image_type), NULL);
GST_DEBUG ("image data len: %u bytes", image_data_len);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst-libs/gst/video/convertframe.c new/gst-plugins-base-1.22.4/gst-libs/gst/video/convertframe.c
--- old/gst-plugins-base-1.22.3/gst-libs/gst/video/convertframe.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/gst-libs/gst/video/convertframe.c 2023-06-20 18:42:25.000000000 +0200
@@ -114,20 +114,101 @@
}
static GstElement *
+build_convert_frame_pipeline_d3d11 (GstElement ** src_element,
+ GstElement ** sink_element, GstCaps * from_caps, GstCaps * to_caps,
+ GError ** err)
+{
+ GstElement *pipeline = NULL;
+ GstElement *appsrc = NULL;
+ GstElement *d3d11_convert = NULL;
+ GstElement *d3d11_download = NULL;
+ GstElement *convert = NULL;
+ GstElement *enc = NULL;
+ GstElement *appsink = NULL;
+ GError *error = NULL;
+
+ if (!create_element ("appsrc", &appsrc, &error) ||
+ !create_element ("d3d11convert", &d3d11_convert, &error) ||
+ !create_element ("d3d11download", &d3d11_download, &error) ||
+ !create_element ("videoconvert", &convert, &error) ||
+ !create_element ("appsink", &appsink, &error)) {
+ GST_ERROR ("Could not create element");
+ goto failed;
+ }
+
+ if (caps_are_raw (to_caps)) {
+ if (!create_element ("identity", &enc, &error)) {
+ GST_ERROR ("Could not create identity element");
+ goto failed;
+ }
+ } else {
+ enc = get_encoder (to_caps, &error);
+ if (!enc) {
+ GST_ERROR ("Could not create encoder");
+ goto failed;
+ }
+ }
+
+ g_object_set (appsrc, "caps", from_caps, "emit-signals", TRUE,
+ "format", GST_FORMAT_TIME, NULL);
+ g_object_set (appsink, "caps", to_caps, "emit-signals", TRUE, NULL);
+
+ pipeline = gst_pipeline_new ("d3d11-convert-frame-pipeline");
+ gst_bin_add_many (GST_BIN (pipeline), appsrc, d3d11_convert, d3d11_download,
+ convert, enc, appsink, NULL);
+
+ if (!gst_element_link_many (appsrc,
+ d3d11_convert, d3d11_download, convert, enc, appsink, NULL)) {
+ /* Now pipeline takes ownership of all elements, so only top-level
+ * pipeline should be cleared */
+ appsrc = d3d11_convert = convert = enc = appsink = NULL;
+
+ error = g_error_new (GST_CORE_ERROR, GST_CORE_ERROR_NEGOTIATION,
+ "Could not configure pipeline for conversion");
+ }
+
+ *src_element = appsrc;
+ *sink_element = appsink;
+
+ return pipeline;
+
+failed:
+ if (err)
+ *err = error;
+ else
+ g_clear_error (&error);
+
+ gst_clear_object (&pipeline);
+ gst_clear_object (&appsrc);
+ gst_clear_object (&d3d11_convert);
+ gst_clear_object (&d3d11_download);
+ gst_clear_object (&convert);
+ gst_clear_object (&enc);
+ gst_clear_object (&appsink);
+
+ return NULL;
+}
+
+static GstElement *
build_convert_frame_pipeline (GstElement ** src_element,
- GstElement ** sink_element, const GstCaps * from_caps,
- GstVideoCropMeta * cmeta, const GstCaps * to_caps, GError ** err)
+ GstElement ** sink_element, GstCaps * from_caps,
+ GstVideoCropMeta * cmeta, GstCaps * to_caps, GError ** err)
{
GstElement *vcrop = NULL, *csp = NULL, *csp2 = NULL, *vscale = NULL;
GstElement *src = NULL, *sink = NULL, *encoder = NULL, *pipeline;
GstElement *dl = NULL;
GstVideoInfo info;
GError *error = NULL;
-#ifdef HAVE_GL
GstCapsFeatures *features;
features = gst_caps_get_features (from_caps, 0);
- if (gst_caps_features_contains (features, GST_CAPS_FEATURE_MEMORY_GL_MEMORY))
+ if (features && gst_caps_features_contains (features, "memory:D3D11Memory")) {
+ return build_convert_frame_pipeline_d3d11 (src_element, sink_element,
+ from_caps, to_caps, err);
+ }
+#ifdef HAVE_GL
+ if (features &&
+ gst_caps_features_contains (features, GST_CAPS_FEATURE_MEMORY_GL_MEMORY))
if (!create_element ("gldownload", &dl, &error))
goto no_elements;
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst-libs/gst/video/gstvideometa.c new/gst-plugins-base-1.22.4/gst-libs/gst/video/gstvideometa.c
--- old/gst-plugins-base-1.22.3/gst-libs/gst/video/gstvideometa.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/gst-libs/gst/video/gstvideometa.c 2023-06-20 18:42:25.000000000 +0200
@@ -395,12 +395,40 @@
}
static gboolean
+gst_video_meta_is_alignment_valid (GstVideoAlignment * align)
+{
+ gint i;
+
+ g_return_val_if_fail (align != NULL, FALSE);
+
+ if (align->padding_top != 0 || align->padding_bottom != 0 ||
+ align->padding_left != 0 || align->padding_right != 0)
+ return TRUE;
+
+ for (i = 0; i < GST_VIDEO_MAX_PLANES; i++) {
+ if (align->stride_align[i] != 0)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static gboolean
gst_video_meta_validate_alignment (GstVideoMeta * meta,
gsize plane_size[GST_VIDEO_MAX_PLANES])
{
GstVideoInfo info;
guint i;
+ if (!gst_video_meta_is_alignment_valid (&meta->alignment)) {
+ GST_LOG ("Set alignment on meta to all zero");
+
+ /* When alignment is invalid, no further check is needed,
+ unless user wants to calculate the pitch for each plane. */
+ if (!plane_size)
+ return TRUE;
+ }
+
gst_video_info_init (&info);
gst_video_info_set_format (&info, meta->format, meta->width, meta->height);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst-libs/gst/video/video-blend.h new/gst-plugins-base-1.22.4/gst-libs/gst/video/video-blend.h
--- old/gst-plugins-base-1.22.3/gst-libs/gst/video/video-blend.h 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/gst-libs/gst/video/video-blend.h 2023-06-20 18:42:25.000000000 +0200
@@ -27,6 +27,8 @@
#include <gst/gst.h>
#include <gst/video/video.h>
+G_BEGIN_DECLS
+
GST_VIDEO_API
void gst_video_blend_scale_linear_RGBA (GstVideoInfo * src, GstBuffer * src_buffer,
gint dest_height, gint dest_width,
@@ -38,4 +40,6 @@
gint x, gint y,
gfloat global_alpha);
+G_END_DECLS
+
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst-plugins-base.doap new/gst-plugins-base-1.22.4/gst-plugins-base.doap
--- old/gst-plugins-base-1.22.3/gst-plugins-base.doap 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/gst-plugins-base.doap 2023-06-20 18:42:25.000000000 +0200
@@ -36,6 +36,16 @@
<release>
<Version>
+ <revision>1.22.4</revision>
+ <branch>1.22</branch>
+ <name></name>
+ <created>2023-06-20</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.2…" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.22.3</revision>
<branch>1.22</branch>
<name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/meson.build new/gst-plugins-base-1.22.4/meson.build
--- old/gst-plugins-base-1.22.3/meson.build 2023-05-19 10:23:19.000000000 +0200
+++ new/gst-plugins-base-1.22.4/meson.build 2023-06-20 18:42:25.000000000 +0200
@@ -1,5 +1,5 @@
project('gst-plugins-base', 'c',
- version : '1.22.3',
+ version : '1.22.4',
meson_version : '>= 0.62',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/po/gst-plugins-base-1.0.pot new/gst-plugins-base-1.22.4/po/gst-plugins-base-1.0.pot
--- old/gst-plugins-base-1.22.3/po/gst-plugins-base-1.0.pot 2023-05-19 10:24:07.610512000 +0200
+++ new/gst-plugins-base-1.22.4/po/gst-plugins-base-1.0.pot 2023-06-20 18:44:09.739450500 +0200
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-base-1.22.3\n"
+"Project-Id-Version: gst-plugins-base-1.22.4\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-19 09:24+0100\n"
+"POT-Creation-Date: 2023-06-20 17:44+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL(a)li.org>\n"
@@ -17,30 +17,30 @@
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ext/alsa/gstalsasink.c:606
+#: ext/alsa/gstalsasink.c:605
msgid "Could not open device for playback in mono mode."
msgstr ""
-#: ext/alsa/gstalsasink.c:608
+#: ext/alsa/gstalsasink.c:607
msgid "Could not open device for playback in stereo mode."
msgstr ""
-#: ext/alsa/gstalsasink.c:612
+#: ext/alsa/gstalsasink.c:611
#, c-format
msgid "Could not open device for playback in %d-channel mode."
msgstr ""
-#: ext/alsa/gstalsasink.c:886
+#: ext/alsa/gstalsasink.c:885
msgid ""
"Could not open audio device for playback. Device is being used by another "
"application."
msgstr ""
-#: ext/alsa/gstalsasink.c:891
+#: ext/alsa/gstalsasink.c:890
msgid "Could not open audio device for playback."
msgstr ""
-#: ext/alsa/gstalsasink.c:1117
+#: ext/alsa/gstalsasink.c:1113
msgid "Error outputting to audio device. The device has been disconnected."
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/po/gst-plugins-base.pot new/gst-plugins-base-1.22.4/po/gst-plugins-base.pot
--- old/gst-plugins-base-1.22.3/po/gst-plugins-base.pot 2023-05-19 10:24:07.610512000 +0200
+++ new/gst-plugins-base-1.22.4/po/gst-plugins-base.pot 2023-06-20 18:44:09.739450500 +0200
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-base-1.22.3\n"
+"Project-Id-Version: gst-plugins-base-1.22.4\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-19 09:24+0100\n"
+"POT-Creation-Date: 2023-06-20 17:44+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL(a)li.org>\n"
@@ -17,30 +17,30 @@
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ext/alsa/gstalsasink.c:606
+#: ext/alsa/gstalsasink.c:605
msgid "Could not open device for playback in mono mode."
msgstr ""
-#: ext/alsa/gstalsasink.c:608
+#: ext/alsa/gstalsasink.c:607
msgid "Could not open device for playback in stereo mode."
msgstr ""
-#: ext/alsa/gstalsasink.c:612
+#: ext/alsa/gstalsasink.c:611
#, c-format
msgid "Could not open device for playback in %d-channel mode."
msgstr ""
-#: ext/alsa/gstalsasink.c:886
+#: ext/alsa/gstalsasink.c:885
msgid ""
"Could not open audio device for playback. Device is being used by another "
"application."
msgstr ""
-#: ext/alsa/gstalsasink.c:891
+#: ext/alsa/gstalsasink.c:890
msgid "Could not open audio device for playback."
msgstr ""
-#: ext/alsa/gstalsasink.c:1117
+#: ext/alsa/gstalsasink.c:1113
msgid "Error outputting to audio device. The device has been disconnected."
msgstr ""
++++++ reduce-required-meson.patch ++++++
--- /var/tmp/diff_new_pack.7GokJF/_old 2023-07-01 23:17:26.798042843 +0200
+++ /var/tmp/diff_new_pack.7GokJF/_new 2023-07-01 23:17:26.802042867 +0200
@@ -1,10 +1,10 @@
-Index: gst-plugins-base-1.22.3/meson.build
+Index: gst-plugins-base-1.22.4/meson.build
===================================================================
---- gst-plugins-base-1.22.3.orig/meson.build
-+++ gst-plugins-base-1.22.3/meson.build
+--- gst-plugins-base-1.22.4.orig/meson.build
++++ gst-plugins-base-1.22.4/meson.build
@@ -1,6 +1,6 @@
project('gst-plugins-base', 'c',
- version : '1.22.3',
+ version : '1.22.4',
- meson_version : '>= 0.62',
+ meson_version : '>= 0.61',
default_options : [ 'warning_level=1',
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gstreamer for openSUSE:Factory checked in at 2023-07-01 23:17:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer (Old)
and /work/SRC/openSUSE:Factory/.gstreamer.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer"
Sat Jul 1 23:17:22 2023 rev:88 rq:1096142 version:1.22.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/gstreamer/gstreamer.changes 2023-05-28 19:21:36.696522552 +0200
+++ /work/SRC/openSUSE:Factory/.gstreamer.new.13546/gstreamer.changes 2023-07-01 23:17:23.586023588 +0200
@@ -1,0 +2,37 @@
+Mon Jun 26 14:13:11 UTC 2023 - Bj��rn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 1.22.4:
+ + Highlighted bugfixes:
+ - Security fixes for flacparse, dvdspu, and subparse.
+ - d3d11videosink: Fix error on pause and play.
+ - decklink: Correctly handle SDK strings on macOS and free
+ strings after usage on Linux.
+ - filesink: Fix buffered mode writing of buffer lists and
+ buffers with multiple memories.
+ - gldownload: handle passthrough without a critical.
+ - h265parse: Fix framerate handling regression.
+ - oggdemux: vp8 fixes.
+ - mp4mux, qtmux, qtdemux: Opus audio mapping fixes.
+ - pngdec: Fix wrong colours output from 16bit RGB images.
+ - ptp clock: Work around ptpd bug in default configuration.
+ - srtpdec: fix critical warnings on shutdown.
+ - v4l2src: fix support for bayer format.
+ - v4l2videoenc: support force-keyframe event in v4l2 encoder.
+ - vtenc: apply DTS offset to ensure DTS <= PTS.
+ - gst-python: allow more functions to be called before
+ gst_init().
+ - various bug fixes, memory leak fixes, and other stability and
+ reliability improvements.
+ + gstreamer:
+ - filesink: Fix buffered mode writing of buffer lists and
+ buffers with multiple memories.
+ - basesink: Clear EOS flag on STREAM-START event.
+ - typefindhelper: downgrade bogus error level debug log
+ message.
+ - ptp:
+ . Correctly parse clock ID from the commandline parameters in
+ the helper.
+ . Work around bug in ptpd in default configuration.
+- Rebase reduce-required-meson.patch.
+
+-------------------------------------------------------------------
Old:
----
gstreamer-1.22.3.tar.xz
New:
----
gstreamer-1.22.4.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer.spec ++++++
--- /var/tmp/diff_new_pack.5bz04M/_old 2023-07-01 23:17:24.294027833 +0200
+++ /var/tmp/diff_new_pack.5bz04M/_new 2023-07-01 23:17:24.298027857 +0200
@@ -19,7 +19,7 @@
%define gst_branch 1.0
Name: gstreamer
-Version: 1.22.3
+Version: 1.22.4
Release: 0
Summary: Streaming-Media Framework Runtime
License: LGPL-2.1-or-later
++++++ gstreamer-1.22.3.tar.xz -> gstreamer-1.22.4.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.22.3/ChangeLog new/gstreamer-1.22.4/ChangeLog
--- old/gstreamer-1.22.3/ChangeLog 2023-05-19 10:23:31.598151000 +0200
+++ new/gstreamer-1.22.4/ChangeLog 2023-06-20 18:42:50.463896800 +0200
@@ -1,3 +1,75 @@
+=== release 1.22.4 ===
+
+2023-06-20 17:42:25 +0100 Tim-Philipp M��ller <tim(a)centricular.com>
+
+ * NEWS:
+ * RELEASE:
+ * gstreamer.doap:
+ * meson.build:
+ Release 1.22.4
+
+2023-06-09 17:51:28 +0800 Elliot Chen <elliot.chen(a)nxp.com>
+
+ * libs/gst/base/gsttypefindhelper.c:
+ typefindhelper: avoid printing error log
+ some plugins such as wavparse may need find if type of media
+ contained in the given data and will print error log if there
+ is no matching factory.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4859>
+
+2023-06-09 10:28:43 +0300 Sebastian Dr��ge <sebastian(a)centricular.com>
+
+ * libs/gst/helpers/gst-ptp-helper.c:
+ ptp: Correctly parse clock ID from the commandline parameters in the helper
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2652
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4813>
+
+2023-06-08 20:52:21 +0900 Seungha Yang <seungha(a)centricular.com>
+
+ * plugins/elements/gstelements_private.c:
+ * tests/check/elements/filesink.c:
+ filesink: Fix buffered mode writing
+ Fixing miscalculated buffer index when a buffer holds multiple
+ memories and it's not aligned to the vector size 16
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4817>
+
+2023-06-06 20:44:02 +0900 Seungha Yang <seungha(a)centricular.com>
+
+ * tests/check/libs/basesink.c:
+ tests: basesink: Add STREAM-START after EOS test
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4797>
+
+2023-06-06 04:42:05 +0900 Seungha Yang <seungha(a)centricular.com>
+
+ * libs/gst/base/gstbasesink.c:
+ basesink: Clear EOS flag on STREAM-START event
+ EOS -> STREAM-START -> new data flow is valid scenario
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4797>
+
+2023-06-01 14:49:06 +0530 Nirbheek Chauhan <nirbheek(a)centricular.com>
+
+ * gst/gstinfo.c:
+ docs: Use backticks to escape * in markdown
+ Otherwise it's interpreted as emphasis.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4763>
+
+2023-05-17 10:01:30 +0300 Sebastian Dr��ge <sebastian(a)centricular.com>
+
+ * libs/gst/net/gstptpclock.c:
+ ptp: Work around bug in ptpd in default configuration
+ ptpd is defaulting to the hybrid mode, and was sending invalid multicast
+ PTP messages in that configuration until ce96c742a88792a8d92deebaf03927e1b367f4a9.
+ While this commit was made in 2015 there was no release in the meantime.
+ Work around this by detecting this case and defaulting to the default
+ values for the given intervals as given by the PTP standard.
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4683>
+
+2023-05-19 12:36:19 +0100 Tim-Philipp M��ller <tim(a)centricular.com>
+
+ * meson.build:
+ Back to development
+ Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4679>
+
=== release 1.22.3 ===
2023-05-19 09:23:19 +0100 Tim-Philipp M��ller <tim(a)centricular.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.22.3/NEWS new/gstreamer-1.22.4/NEWS
--- old/gstreamer-1.22.3/NEWS 2023-05-19 10:23:19.000000000 +0200
+++ new/gstreamer-1.22.4/NEWS 2023-06-20 18:42:25.000000000 +0200
@@ -2,13 +2,13 @@
GStreamer 1.22.0 was originally released on 23 January 2023.
-The latest bug-fix release in the stable 1.22 series is 1.22.3 and was
-released on 19 May 2023.
+The latest bug-fix release in the stable 1.22 series is 1.22.4 and was
+released on 20 June 2023.
See https://gstreamer.freedesktop.org/releases/1.22/ for the latest
version of this document.
-Last updated: Friday 19 May 2023, 01:00 UTC (log)
+Last updated: Tuesday 20 June 2023, 16:30 UTC (log)
Introduction
@@ -1831,6 +1831,183 @@
- List of Merge Requests applied in 1.22.3
- List of Issues fixed in 1.22.3
+1.22.4
+
+The fourth 1.22 bug-fix release (1.22.4) was released on 20 June 2023.
+
+This release only contains bugfixes and security fixes and it should be
+safe to update from 1.22.x.
+
+Highlighted bugfixes in 1.22.4
+
+- Security fixes for flacparse, dvdspu, and subparse
+- d3d11videosink: Fix error on pause and play
+- decklink: Correctly handle SDK strings on macOS and free strings
+ after usage on Linux
+- filesink: Fix buffered mode writing of buffer lists and buffers with
+ multiple memories
+- gldownload: handle passthrough without a critical
+- h265parse: Fix framerate handling regression
+- oggdemux: vp8 fixes
+- mp4mux, qtmux, qtdemux: Opus audio mapping fixes
+- pngdec: Fix wrong colours output from 16bit RGB images
+- ptp clock: Work around ptpd bug in default configuration
+- srtpdec: fix critical warnings on shutdown
+- v4l2src: fix support for bayer format
+- v4l2videoenc: support force-keyframe event in v4l2 encoder
+- vtenc: apply DTS offset to ensure DTS <= PTS
+- gst-python: allow more functions to be called before gst_init()
+- cerbero: fix vaapi variant; add qt6 build on windows; ensure errors
+ on unguarded use of new APIs, require macOS 10.13
+- packages: ship codecalpha, rtponvif, dvbsubenc, switchbin,
+ videosignal plugins; fix pango crash on 32-bit windows
+- various bug fixes, memory leak fixes, and other stability and
+ reliability improvements
+
+gstreamer
+
+- filesink: Fix buffered mode writing of buffer lists and buffers with
+ multiple memories
+- basesink: Clear EOS flag on STREAM-START event
+- typefindhelper: downgrade bogus error level debug log message
+- ptp: Correctly parse clock ID from the commandline parameters in the
+ helper
+- ptp: Work around bug in ptpd in default configuration
+
+gst-plugins-base
+
+- alsasink: Fix stall for transition from PAUSED to READY with USB
+ speakerphone.
+- appsink: unref buffer in prev sample early so buffers from v4l2 can
+ be released properly
+- basetextoverlay: Fix typo in ���text-y��� property description
+- gldownload: handle passthrough without a critical
+- glfilter: add parent meta to output buffer for input buffer
+- oggdemux: vp8: Push headers downstream and detect keyframe packets
+- opus: Fix potential crash when getting unexpected channel position
+- streamsynchronizer: reset eos on STREAM_START
+- subparse: Look for the closing > of a tag after the opening <
+- video: convertframe: Add D3D11 specific conversion path
+- videometa: Only validate the alignment only when it contains some
+ info
+- video-blend: Fix linking error with C++
+
+gst-plugins-good
+
+- flacparse: Avoid integer overflow in available data check for image
+ tags
+- flvmux: use the correct timestamp to calculate wait times
+- isomp4: Fix (E)AC-3 channel count handling
+- jpegdec: fixes related to interlaced jpeg
+- pngdec: Fix wrong colours output from 16bit RGB images
+- qtmux, qtdemux: fix byte order for opus extension
+- rtspsrc: Do not try send dropped get/set parameter
+- qt5, qt6: Add more meson options and eliminate all automagic
+- qt: glrenderer: don���t attempt to use QWindow from non-Qt main thread
+- qml6glsink: Support building on win32
+- v4l2src: fix support for bayer format
+- v4l2: Change to query only up to
+ V4L2_CID_PRIVATE_BASE+V4L2_CID_MAX_CTRLS
+- v4l2videodec: treat MPEG-1 format as MPEG-2
+- v4l2videoenc: support force keyframe event in v4l2 encoder
+- tests: rtpbin_buffer_list: fix possible unaligned write/read on
+ 32-bit ARM
+
+gst-plugins-bad
+
+- asfmux: fix possible unaligned write on 32-bit ARM
+- d3d11videosink: Fix error on pause and play
+- d3dvideosink: Fix navigation event leak
+- decklink: Correctly handle SDK strings on macOS and free strings
+ after usage on Linux
+- dvdspu: Make sure enough data is allocated for the available data
+- fdkaacdec: Support up to 5 rear channels
+- h265parse: Fix framerate handling
+- kmssink: Add STM32 LTDC and NXP i.MX8M Plus LCDIFv3 auto-detection
+- sdpdemux: ensure that only one srcpad is created per stream
+- srtpdec: fix critical warnings on shutdown
+- testsrcbin: Remove spurious caps unref
+- va: map the mbbrc to correct enum value in get_property()
+- vtenc: apply DTS offset to ensure DTS <= PTS
+- vtdec: time glitches on h264 playback
+- waylandsink: Emit ���map��� signal boarder surface is ready
+
+gst-plugins-ugly
+
+- No changes
+
+gst-libav
+
+- No changes
+
+gst-rtsp-server
+
+- No changes
+
+gstreamer-vaapi
+
+- vaapidecodebin: don���t load vaapipostproc if not available
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- python: More functions can be called before gst_init()
+
+gst-editing-services
+
+- ges: launcher: Never put sinks in a GstPipeline
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.22.4
+
+- Ship codecalpha, rtponvif, dvbsubenc, switchbin, videosignal plugins
+- pango: Fix crash on Windows 32bit build
+- qml6: Add support for building the qml6 plugin on Windows and bump
+ meson to 1.1.1
+- vaapi: update vaapi variant/recipe for meson option changes
+- packages: Put libass in the same category as assrender
+- cerbero: Don���t extract if already extracted in fetch
+- darwin: Ensure errors on unguarded use of new APIs, require macOS
+ 10.13
+
+Contributors to 1.22.4
+
+Andoni Morales Alastruey, Arun Raghavan, Colin Kinloch, Daniel Morin,
+Edward Hervey, ekwange, Elliot Chen, Fran��ois Laignel, Guillaume
+Desmottes, Haihua Hu, He Junyan, Hou Qi, Jan Alexander Steffens
+(heftig), Jochen Henneberg, Jordan Petridis, Kevin Song, Maksym
+Khomenko, Marek Vasut, Mathieu Duponchelle, Matthew Waters,
+Mengkejiergeli Ba, Michael Olbrich, Nicolas Beland, Nicolas Dufresne,
+Nirbheek Chauhan, Philippe Normand, Piotr Brzezi��ski, Sebastian Dr��ge,
+Seungha Yang, Thibault Saunier, Tim-Philipp M��ller, V��ctor Manuel J��quez
+Leal, William Manley, Xavier Claessens, Yuri Fedoseev,
+
+��� 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.22.4
+
+- List of Merge Requests applied in 1.22.4
+- List of Issues fixed in 1.22.4
+
Schedule for 1.24
Our next major feature release will be 1.24, and 1.23 will be the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.22.3/RELEASE new/gstreamer-1.22.4/RELEASE
--- old/gstreamer-1.22.3/RELEASE 2023-05-19 10:23:19.000000000 +0200
+++ new/gstreamer-1.22.4/RELEASE 2023-06-20 18:42:25.000000000 +0200
@@ -1,4 +1,4 @@
-This is GStreamer core 1.22.3.
+This is GStreamer core 1.22.4.
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.22.3/gst/gstinfo.c new/gstreamer-1.22.4/gst/gstinfo.c
--- old/gstreamer-1.22.3/gst/gstinfo.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gstreamer-1.22.4/gst/gstinfo.c 2023-06-20 18:42:25.000000000 +0200
@@ -2387,8 +2387,8 @@
* %FALSE if adding the threshold described by @list to the one already set.
*
* Sets the debug logging wanted in the same form as with the GST_DEBUG
- * environment variable. You can use wildcards such as '*', but note that
- * the order matters when you use wild cards, e.g. "foosrc:6,*src:3,*:2" sets
+ * environment variable. You can use wildcards such as `*`, but note that
+ * the order matters when you use wild cards, e.g. `foosrc:6,*src:3,*:2` sets
* everything to log level 2.
*
* Since: 1.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.22.3/gstreamer.doap new/gstreamer-1.22.4/gstreamer.doap
--- old/gstreamer-1.22.3/gstreamer.doap 2023-05-19 10:23:19.000000000 +0200
+++ new/gstreamer-1.22.4/gstreamer.doap 2023-06-20 18:42:25.000000000 +0200
@@ -40,6 +40,16 @@
<release>
<Version>
+ <revision>1.22.4</revision>
+ <branch>1.22</branch>
+ <name></name>
+ <created>2023-06-20</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.22.4.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.22.3</revision>
<branch>1.22</branch>
<name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.22.3/libs/gst/base/gstbasesink.c new/gstreamer-1.22.4/libs/gst/base/gstbasesink.c
--- old/gstreamer-1.22.3/libs/gst/base/gstbasesink.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gstreamer-1.22.4/libs/gst/base/gstbasesink.c 2023-06-20 18:42:25.000000000 +0200
@@ -3664,6 +3664,9 @@
if (bclass->event)
result = bclass->event (basesink, event);
break;
+ case GST_EVENT_STREAM_START:
+ basesink->priv->received_eos = FALSE;
+ /* fallthrough */
default:
if (GST_EVENT_IS_SERIALIZED (event)) {
GST_BASE_SINK_PREROLL_LOCK (basesink);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.22.3/libs/gst/base/gsttypefindhelper.c new/gstreamer-1.22.4/libs/gst/base/gsttypefindhelper.c
--- old/gstreamer-1.22.3/libs/gst/base/gsttypefindhelper.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gstreamer-1.22.4/libs/gst/base/gsttypefindhelper.c 2023-06-20 18:42:25.000000000 +0200
@@ -742,7 +742,7 @@
factories = gst_type_find_list_factories_for_caps (obj, caps);
if (!factories) {
- GST_ERROR_OBJECT (obj, "Failed to typefind for caps: %" GST_PTR_FORMAT,
+ GST_INFO_OBJECT (obj, "Failed to typefind for caps: %" GST_PTR_FORMAT,
caps);
goto out;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.22.3/libs/gst/helpers/gst-ptp-helper.c new/gstreamer-1.22.4/libs/gst/helpers/gst-ptp-helper.c
--- old/gstreamer-1.22.3/libs/gst/helpers/gst-ptp-helper.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gstreamer-1.22.4/libs/gst/helpers/gst-ptp-helper.c 2023-06-20 18:42:25.000000000 +0200
@@ -71,10 +71,37 @@
static guint64 clock_id = (guint64) - 1;
static guint8 clock_id_array[8];
+static gboolean
+parse_clock_id (const gchar * option_name, const gchar * value, gpointer data,
+ GError ** err)
+{
+ gchar *endptr;
+ guint64 v;
+
+ errno = 0;
+ v = g_ascii_strtoull (value, &endptr, 16);
+ if (endptr == NULL || *endptr != '\0') {
+ g_set_error (err, G_OPTION_ERROR, G_OPTION_ERROR_UNKNOWN_OPTION,
+ "Cannot parse integer value \"%s\" for --clock-id", value);
+ return FALSE;
+ }
+
+ if (errno != 0) {
+ g_set_error (err, G_OPTION_ERROR, G_OPTION_ERROR_UNKNOWN_OPTION,
+ "Cannot parse integer value \"%s\" for --clock-id: %s", value,
+ g_strerror (errno));
+ return FALSE;
+ }
+
+ clock_id = v;
+
+ return TRUE;
+}
+
static GOptionEntry opt_entries[] = {
{"interface", 'i', 0, G_OPTION_ARG_STRING_ARRAY, &ifaces,
"Interface to listen on", NULL},
- {"clock-id", 'c', 0, G_OPTION_ARG_INT64, &clock_id,
+ {"clock-id", 'c', 0, G_OPTION_ARG_CALLBACK, parse_clock_id,
"PTP clock id", NULL},
{"verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
"Be verbose", NULL},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.22.3/libs/gst/net/gstptpclock.c new/gstreamer-1.22.4/libs/gst/net/gstptpclock.c
--- old/gstreamer-1.22.3/libs/gst/net/gstptpclock.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gstreamer-1.22.4/libs/gst/net/gstptpclock.c 2023-06-20 18:42:25.000000000 +0200
@@ -346,6 +346,11 @@
static gint domain_stats_n_hooks;
static gboolean domain_stats_hooks_initted = FALSE;
+/* Only ever accessed from the PTP thread */
+/* PTPD in hybrid mode (default) sends multicast PTP messages with an invalid
+ * logMessageInterval. We work around this here and warn once */
+static gboolean ptpd_hybrid_workaround_warned_once = FALSE;
+
/* Converts log2 seconds to GstClockTime */
static GstClockTime
log2_to_clock_time (gint l)
@@ -909,7 +914,17 @@
return;
}
- sender->announce_interval = log2_to_clock_time (msg->log_message_interval);
+ if (msg->log_message_interval == 0x7f) {
+ sender->announce_interval = 2 * GST_SECOND;
+
+ if (!ptpd_hybrid_workaround_warned_once) {
+ GST_WARNING ("Working around ptpd bug: ptpd sends multicast PTP packets "
+ "with invalid logMessageInterval");
+ ptpd_hybrid_workaround_warned_once = TRUE;
+ }
+ } else {
+ sender->announce_interval = log2_to_clock_time (msg->log_message_interval);
+ }
announce = g_new0 (PtpAnnounceMessage, 1);
announce->receive_time = receive_time;
@@ -1511,7 +1526,17 @@
return;
#endif
- domain->sync_interval = log2_to_clock_time (msg->log_message_interval);
+ if (msg->log_message_interval == 0x7f) {
+ domain->sync_interval = GST_SECOND;
+
+ if (!ptpd_hybrid_workaround_warned_once) {
+ GST_WARNING ("Working around ptpd bug: ptpd sends multicast PTP packets "
+ "with invalid logMessageInterval");
+ ptpd_hybrid_workaround_warned_once = TRUE;
+ }
+ } else {
+ domain->sync_interval = log2_to_clock_time (msg->log_message_interval);
+ }
/* Check if duplicated */
for (l = domain->pending_syncs.head; l; l = l->next) {
@@ -1708,8 +1733,18 @@
requesting_port_identity.port_number != ptp_clock_id.port_number)
return;
- domain->min_delay_req_interval =
- log2_to_clock_time (msg->log_message_interval);
+ if (msg->log_message_interval == 0x7f) {
+ domain->min_delay_req_interval = GST_SECOND;
+
+ if (!ptpd_hybrid_workaround_warned_once) {
+ GST_WARNING ("Working around ptpd bug: ptpd sends multicast PTP packets "
+ "with invalid logMessageInterval");
+ ptpd_hybrid_workaround_warned_once = TRUE;
+ }
+ } else {
+ domain->min_delay_req_interval =
+ log2_to_clock_time (msg->log_message_interval);
+ }
/* Check if we know about this one */
for (l = domain->pending_syncs.head; l; l = l->next) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.22.3/meson.build new/gstreamer-1.22.4/meson.build
--- old/gstreamer-1.22.3/meson.build 2023-05-19 10:23:19.000000000 +0200
+++ new/gstreamer-1.22.4/meson.build 2023-06-20 18:42:25.000000000 +0200
@@ -1,5 +1,5 @@
project('gstreamer', 'c',
- version : '1.22.3',
+ version : '1.22.4',
meson_version : '>= 0.62',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.22.3/plugins/elements/gstelements_private.c new/gstreamer-1.22.4/plugins/elements/gstelements_private.c
--- old/gstreamer-1.22.3/plugins/elements/gstelements_private.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gstreamer-1.22.4/plugins/elements/gstelements_private.c 2023-06-20 18:42:25.000000000 +0200
@@ -540,6 +540,10 @@
current_buf_mem_idx = 0;
}
current_buf_idx = i;
+ if (current_buf_mem_idx != 0) {
+ g_assert (current_buf_idx > 0);
+ current_buf_idx--;
+ }
}
do {
@@ -629,6 +633,10 @@
current_buf_mem_idx = 0;
}
current_buf_idx = i;
+ if (current_buf_mem_idx != 0) {
+ g_assert (current_buf_idx > 0);
+ current_buf_idx--;
+ }
}
} while (left > 0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.22.3/po/gstreamer-1.0.pot new/gstreamer-1.22.4/po/gstreamer-1.0.pot
--- old/gstreamer-1.22.3/po/gstreamer-1.0.pot 2023-05-19 10:23:31.362148500 +0200
+++ new/gstreamer-1.22.4/po/gstreamer-1.0.pot 2023-06-20 18:42:50.167898700 +0200
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: gstreamer-1.22.3\n"
+"Project-Id-Version: gstreamer-1.22.4\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-19 09:23+0100\n"
+"POT-Creation-Date: 2023-06-20 17:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL(a)li.org>\n"
@@ -1176,11 +1176,11 @@
msgid "A lot of buffers are being dropped."
msgstr ""
-#: libs/gst/base/gstbasesink.c:3799
+#: libs/gst/base/gstbasesink.c:3802
msgid "Internal data flow problem."
msgstr ""
-#: libs/gst/base/gstbasesink.c:4633 libs/gst/base/gstbasesrc.c:2773
+#: libs/gst/base/gstbasesink.c:4636 libs/gst/base/gstbasesrc.c:2773
msgid "Internal data flow error."
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.22.3/po/gstreamer.pot new/gstreamer-1.22.4/po/gstreamer.pot
--- old/gstreamer-1.22.3/po/gstreamer.pot 2023-05-19 10:23:31.362148500 +0200
+++ new/gstreamer-1.22.4/po/gstreamer.pot 2023-06-20 18:42:50.167898700 +0200
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: gstreamer-1.22.3\n"
+"Project-Id-Version: gstreamer-1.22.4\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-19 09:23+0100\n"
+"POT-Creation-Date: 2023-06-20 17:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL(a)li.org>\n"
@@ -1176,11 +1176,11 @@
msgid "A lot of buffers are being dropped."
msgstr ""
-#: libs/gst/base/gstbasesink.c:3799
+#: libs/gst/base/gstbasesink.c:3802
msgid "Internal data flow problem."
msgstr ""
-#: libs/gst/base/gstbasesink.c:4633 libs/gst/base/gstbasesrc.c:2773
+#: libs/gst/base/gstbasesink.c:4636 libs/gst/base/gstbasesrc.c:2773
msgid "Internal data flow error."
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.22.3/tests/check/elements/filesink.c new/gstreamer-1.22.4/tests/check/elements/filesink.c
--- old/gstreamer-1.22.3/tests/check/elements/filesink.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gstreamer-1.22.4/tests/check/elements/filesink.c 2023-06-20 18:42:25.000000000 +0200
@@ -24,6 +24,7 @@
#endif
#include <stdio.h>
+#include <string.h>
#include <glib.h>
#include <glib/gstdio.h>
@@ -484,6 +485,86 @@
GST_END_TEST;
+static void
+test_buffered_write (guint num_buf, guint num_mem_per_buf)
+{
+ GstElement *filesink;
+ guint i, j;
+ gchar *tmp_fn;
+ GstSegment segment;
+ const gsize size_per_mem = 4;
+ gsize total_size = size_per_mem * num_buf * num_mem_per_buf;
+ GStatBuf stat_buf;
+
+ tmp_fn = create_temporary_file ();
+ if (!tmp_fn)
+ return;
+
+ filesink = setup_filesink ();
+ g_object_set (filesink, "location", tmp_fn, NULL);
+
+ fail_unless_equals_int (gst_element_set_state (filesink, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ fail_unless (gst_pad_push_event (mysrcpad,
+ gst_event_new_stream_start ("test")));
+
+ gst_segment_init (&segment, GST_FORMAT_BYTES);
+ fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment)));
+
+ for (i = 0; i < num_buf; i++) {
+ GstBuffer *buf = gst_buffer_new ();
+ for (j = 0; j < num_mem_per_buf; j++) {
+ GstMemory *mem = gst_allocator_alloc (NULL, size_per_mem, NULL);
+ GstMapInfo info;
+ fail_unless (mem != NULL);
+
+ fail_unless (gst_memory_map (mem, &info, GST_MAP_WRITE));
+ memset (info.data, 0, info.size);
+ gst_memory_unmap (mem, &info);
+
+ gst_buffer_append_memory (buf, mem);
+ }
+
+ fail_unless_equals_int (gst_pad_push (mysrcpad, buf), GST_FLOW_OK);
+ }
+
+ fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()));
+
+ fail_unless_equals_int (gst_element_set_state (filesink, GST_STATE_NULL),
+ GST_STATE_CHANGE_SUCCESS);
+
+ cleanup_filesink (filesink);
+
+ if (g_stat (tmp_fn, &stat_buf) == 0)
+ fail_unless_equals_int64 (stat_buf.st_size, total_size);
+
+ g_remove (tmp_fn);
+ g_free (tmp_fn);
+}
+
+GST_START_TEST (test_buffered_write_17_1)
+{
+ test_buffered_write (17, 1);
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_buffered_write_9_2)
+{
+ test_buffered_write (9, 2);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_buffered_write_6_3)
+{
+ test_buffered_write (6, 3);
+}
+
+GST_END_TEST;
+
static Suite *
filesink_suite (void)
{
@@ -496,6 +577,9 @@
tcase_add_test (tc_chain, test_uri_interface);
tcase_add_test (tc_chain, test_seeking);
tcase_add_test (tc_chain, test_flush);
+ tcase_add_test (tc_chain, test_buffered_write_17_1);
+ tcase_add_test (tc_chain, test_buffered_write_9_2);
+ tcase_add_test (tc_chain, test_buffered_write_6_3);
return s;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gstreamer-1.22.3/tests/check/libs/basesink.c new/gstreamer-1.22.4/tests/check/libs/basesink.c
--- old/gstreamer-1.22.3/tests/check/libs/basesink.c 2023-05-19 10:23:19.000000000 +0200
+++ new/gstreamer-1.22.4/tests/check/libs/basesink.c 2023-06-20 18:42:25.000000000 +0200
@@ -282,6 +282,69 @@
GST_END_TEST;
+GST_START_TEST (basesink_stream_start_after_eos)
+{
+ GstElement *pipeline, *sink;
+ GstPad *pad;
+ GstEvent *ev;
+ GstSegment segment;
+ GstBuffer *buf;
+ GstFlowReturn ret;
+
+ sink = gst_element_factory_make ("fakesink", "sink");
+ g_object_set (sink, "async", FALSE, "sync", FALSE, NULL);
+ pad = gst_element_get_static_pad (sink, "sink");
+
+ pipeline = gst_pipeline_new (NULL);
+
+ gst_bin_add (GST_BIN (pipeline), sink);
+
+ fail_unless_equals_int (gst_element_set_state (pipeline, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_SUCCESS);
+
+ /* Normal data flow and EOS */
+ ev = gst_event_new_stream_start ("test");
+ fail_unless (gst_pad_send_event (pad, ev));
+
+ gst_segment_init (&segment, GST_FORMAT_TIME);
+ ev = gst_event_new_segment (&segment);
+ fail_unless (gst_pad_send_event (pad, ev));
+
+ buf = gst_buffer_new_and_alloc (4);
+ ret = gst_pad_chain (pad, buf);
+ fail_unless (ret == GST_FLOW_OK);
+
+ ev = gst_event_new_eos ();
+ fail_unless (gst_pad_send_event (pad, ev));
+
+ /* After EOS event, flow return should be EOS */
+ buf = gst_buffer_new_and_alloc (4);
+ ret = gst_pad_chain (pad, buf);
+ fail_unless (ret == GST_FLOW_EOS);
+
+ /* New data flow with new stream-start */
+ ev = gst_event_new_stream_start ("test");
+ fail_unless (gst_pad_send_event (pad, ev));
+
+ gst_segment_init (&segment, GST_FORMAT_TIME);
+ ev = gst_event_new_segment (&segment);
+ fail_unless (gst_pad_send_event (pad, ev));
+
+ buf = gst_buffer_new_and_alloc (4);
+ ret = gst_pad_chain (pad, buf);
+ fail_unless (ret == GST_FLOW_OK);
+
+ ev = gst_event_new_eos ();
+ fail_unless (gst_pad_send_event (pad, ev));
+
+ fail_unless_equals_int (gst_element_set_state (pipeline, GST_STATE_NULL),
+ GST_STATE_CHANGE_SUCCESS);
+ gst_object_unref (pad);
+ gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
static Suite *
gst_basesrc_suite (void)
{
@@ -294,6 +357,7 @@
tcase_add_test (tc, basesink_test_gap);
tcase_add_test (tc, basesink_test_eos_after_playing);
tcase_add_test (tc, basesink_position_query_handles_segment_offset);
+ tcase_add_test (tc, basesink_stream_start_after_eos);
return s;
}
++++++ reduce-required-meson.patch ++++++
--- /var/tmp/diff_new_pack.5bz04M/_old 2023-07-01 23:17:24.978031933 +0200
+++ /var/tmp/diff_new_pack.5bz04M/_new 2023-07-01 23:17:24.982031957 +0200
@@ -1,10 +1,10 @@
-Index: gstreamer-1.22.3/meson.build
+Index: gstreamer-1.22.4/meson.build
===================================================================
---- gstreamer-1.22.3.orig/meson.build
-+++ gstreamer-1.22.3/meson.build
+--- gstreamer-1.22.4.orig/meson.build
++++ gstreamer-1.22.4/meson.build
@@ -1,6 +1,6 @@
project('gstreamer', 'c',
- version : '1.22.3',
+ version : '1.22.4',
- meson_version : '>= 0.62',
+ meson_version : '>= 0.61',
default_options : [ 'warning_level=1',
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package sddm for openSUSE:Factory checked in at 2023-07-01 23:17:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sddm (Old)
and /work/SRC/openSUSE:Factory/.sddm.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sddm"
Sat Jul 1 23:17:21 2023 rev:65 rq:1096111 version:0.20.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/sddm/sddm.changes 2023-06-29 17:27:23.309928990 +0200
+++ /work/SRC/openSUSE:Factory/.sddm.new.13546/sddm.changes 2023-07-01 23:17:21.506011120 +0200
@@ -1,0 +2,8 @@
+Fri Jun 30 09:37:44 UTC 2023 - Fabian Vogt <fabian(a)ritter-vogt.de>
+
+- Add patches to allow dropping InputMethod= from 11-kwin_wayland.conf
+ (boo#1212880):
+ * 0001-greeter-Look-at-WAYLAND_DISPLAY-for-platform-detecti.patch
+ * 0002-Ignore-InputMethod-qtvirtualkeyboard-on-wayland.patch
+
+-------------------------------------------------------------------
New:
----
0001-greeter-Look-at-WAYLAND_DISPLAY-for-platform-detecti.patch
0002-Ignore-InputMethod-qtvirtualkeyboard-on-wayland.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sddm.spec ++++++
--- /var/tmp/diff_new_pack.9l9eEF/_old 2023-07-01 23:17:22.830019057 +0200
+++ /var/tmp/diff_new_pack.9l9eEF/_new 2023-07-01 23:17:22.834019080 +0200
@@ -38,6 +38,9 @@
# Patch0-100: PATCH-FIX-UPSTREAM
# https://github.com/sddm/sddm/pull/1746
Patch0: 0001-Session-Parse-.desktop-files-manually-again.patch
+# https://github.com/sddm/sddm/pull/1753
+Patch1: 0001-greeter-Look-at-WAYLAND_DISPLAY-for-platform-detecti.patch
+Patch2: 0002-Ignore-InputMethod-qtvirtualkeyboard-on-wayland.patch
# Patch100-?: PATCH-FIX-OPENSUSE
Patch101: 0001-Write-the-daemon-s-PID-to-a-file-on-startup.patch
Patch102: 0001-Set-XAUTHLOCALHOSTNAME-in-sessions.patch
++++++ 0001-greeter-Look-at-WAYLAND_DISPLAY-for-platform-detecti.patch ++++++
From e27b70957505dc7b986ab2fa68219af546c63344 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian(a)ritter-vogt.de>
Date: Fri, 30 Jun 2023 09:42:58 +0200
Subject: [PATCH 1/2] greeter: Look at WAYLAND_DISPLAY for platform detection
When running sddm-greeter manually in a wayland session, it otherwise
misdetects that as xcb.
---
src/greeter/GreeterApp.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/greeter/GreeterApp.cpp b/src/greeter/GreeterApp.cpp
index c2978d6..4e4f653 100644
--- a/src/greeter/GreeterApp.cpp
+++ b/src/greeter/GreeterApp.cpp
@@ -319,7 +319,7 @@ int main(int argc, char **argv)
platform = QString::fromUtf8(qgetenv("QT_QPA_PLATFORM"));
}
if (platform.isEmpty()) {
- platform = QStringLiteral("xcb");
+ platform = qEnvironmentVariableIsSet("WAYLAND_DISPLAY") ? QStringLiteral("wayland") : QStringLiteral("xcb");
}
// Install message handler
--
2.41.0
++++++ 0002-Ignore-InputMethod-qtvirtualkeyboard-on-wayland.patch ++++++
From 07631f2ef00a52d883d0fd47ff7d1e1a6bc6358f Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian(a)ritter-vogt.de>
Date: Fri, 30 Jun 2023 09:44:37 +0200
Subject: [PATCH 2/2] Ignore InputMethod=qtvirtualkeyboard on wayland
Using QT_IM_MODULE=qtvirtualkeyboard in wayland client applications is not
supported by Qt, but is sddm's builtin default. Avoid setting that.
---
src/greeter/GreeterApp.cpp | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/greeter/GreeterApp.cpp b/src/greeter/GreeterApp.cpp
index 4e4f653..01613cc 100644
--- a/src/greeter/GreeterApp.cpp
+++ b/src/greeter/GreeterApp.cpp
@@ -351,8 +351,14 @@ int main(int argc, char **argv)
qputenv("KDE_DEBUG", "1");
// Qt IM module
- if (!SDDM::mainConfig.InputMethod.get().isEmpty())
- qputenv("QT_IM_MODULE", SDDM::mainConfig.InputMethod.get().toLocal8Bit().constData());
+ QString inputMethod = SDDM::mainConfig.InputMethod.get();
+ // Using qtvirtualkeyboard as IM on wayland doesn't really work,
+ // it has to be done by the compositor instead.
+ if (platform.startsWith(QStringLiteral("wayland")) && inputMethod == QStringLiteral("qtvirtualkeyboard"))
+ inputMethod = QString{};
+
+ if (!inputMethod.isEmpty())
+ qputenv("QT_IM_MODULE", inputMethod.toLocal8Bit());
QGuiApplication app(argc, argv);
SDDM::SignalHandler s;
--
2.41.0
++++++ 11-kwin_wayland.conf ++++++
--- /var/tmp/diff_new_pack.9l9eEF/_old 2023-07-01 23:17:22.926019632 +0200
+++ /var/tmp/diff_new_pack.9l9eEF/_new 2023-07-01 23:17:22.930019656 +0200
@@ -1,6 +1,5 @@
[General]
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell
-InputMethod=
[Wayland]
# --locale1 was introduced in kwin 5.27
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000product for openSUSE:Factory checked in at 2023-07-01 05:20:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000product (Old)
and /work/SRC/openSUSE:Factory/.000product.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000product"
Sat Jul 1 05:20:10 2023 rev:3670 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ MicroOS-dvd5-dvd-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.Sfb6yS/_old 2023-07-01 05:20:14.696852878 +0200
+++ /var/tmp/diff_new_pack.Sfb6yS/_new 2023-07-01 05:20:14.704852925 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__MicroOS___20230629" schemaversion="4.1">
+<image name="OBS__MicroOS___20230630" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20230629</productvar>
+ <productvar name="VERSION">20230630</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:microos:20230629,openSUSE MicroOS</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:microos:20230630,openSUSE MicroOS</productinfo>
<productinfo name="LINGUAS">en_US </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/MicroOS/20230629/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/MicroOS/20230630/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
@@ -275,6 +275,7 @@
<repopackage name="docker"/>
<repopackage name="docker-bash-completion"/>
<repopackage name="docker-buildx"/>
+ <repopackage name="docker-rootless-extras"/>
<repopackage name="dolphin"/>
<repopackage name="dolphin-part"/>
<repopackage name="dolphin-part-lang"/>
@@ -831,6 +832,7 @@
<repopackage name="layer-shell-qt5"/>
<repopackage name="less"/>
<repopackage name="lftp"/>
+ <repopackage name="libabsl2301_0_0"/>
<repopackage name="libabw-0_1-1"/>
<repopackage name="libaccounts-glib0"/>
<repopackage name="libaccounts-qt5-1"/>
@@ -1565,8 +1567,8 @@
<repopackage name="libproc2-0"/>
<repopackage name="libprocps8"/>
<repopackage name="libprotobuf-c1"/>
- <repopackage name="libprotobuf-lite3_21_12"/>
- <repopackage name="libprotobuf3_21_12"/>
+ <repopackage name="libprotobuf-lite22_5_0"/>
+ <repopackage name="libprotobuf22_5_0"/>
<repopackage name="libproxy1"/>
<repopackage name="libproxy1-config-gnome3"/>
<repopackage name="libproxy1-config-kde"/>
@@ -2491,6 +2493,7 @@
<repopackage name="rebootmgr"/>
<repopackage name="redis"/>
<repopackage name="rgb"/>
+ <repopackage name="rootlesskit"/>
<repopackage name="rpcbind"/>
<repopackage name="rpm"/>
<repopackage name="rpm-config-SUSE"/>
++++++ openSUSE-Addon-NonOss-ftp-ftp-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.Sfb6yS/_old 2023-07-01 05:20:14.740853141 +0200
+++ /var/tmp/diff_new_pack.Sfb6yS/_new 2023-07-01 05:20:14.744853164 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE-Addon-NonOss___20230629" schemaversion="4.1">
+<image name="OBS__openSUSE-Addon-NonOss___20230630" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20230629</productvar>
+ <productvar name="VERSION">20230630</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse-addon-nonoss:20230629,openSUSE NonOSS Addon</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse-addon-nonoss:20230630,openSUSE NonOSS Addon</productinfo>
<productinfo name="LINGUAS">af ar be_BY bg br ca cy el et ga gl gu_IN he hi_IN hr ka km ko lt mk nn pa_IN rw sk sl sr_CS ss st tg th tr uk ve vi xh zu </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE-Addon-NonOss/2023…</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE-Addon-NonOss/2023…</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ openSUSE-cd-mini-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.Sfb6yS/_old 2023-07-01 05:20:14.768853308 +0200
+++ /var/tmp/diff_new_pack.Sfb6yS/_new 2023-07-01 05:20:14.772853332 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20230629" schemaversion="4.1">
+<image name="OBS__openSUSE___20230630" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20230629</productvar>
+ <productvar name="VERSION">20230630</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20230629,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20230630,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20230629/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20230630/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ openSUSE-dvd5-dvd-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.Sfb6yS/_old 2023-07-01 05:20:14.792853451 +0200
+++ /var/tmp/diff_new_pack.Sfb6yS/_new 2023-07-01 05:20:14.796853475 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20230629" schemaversion="4.1">
+<image name="OBS__openSUSE___20230630" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20230629</productvar>
+ <productvar name="VERSION">20230630</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20230629,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20230630,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20230629/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20230630/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
@@ -1200,6 +1200,7 @@
<repopackage name="lib389"/>
<repopackage name="liba52-0"/>
<repopackage name="libaa1"/>
+ <repopackage name="libabsl2301_0_0"/>
<repopackage name="libabw-0_1-1"/>
<repopackage name="libaccounts-glib0"/>
<repopackage name="libaccounts-qt5-1"/>
@@ -2305,7 +2306,9 @@
<repopackage name="libprocps8"/>
<repopackage name="libprojectM3"/>
<repopackage name="libprotobuf-c1"/>
+ <repopackage name="libprotobuf-lite22_5_0"/>
<repopackage name="libprotobuf-lite3_21_12"/>
+ <repopackage name="libprotobuf22_5_0"/>
<repopackage name="libprotobuf3_21_12"/>
<repopackage name="libproxy1"/>
<repopackage name="libproxy1-config-gnome3"/>
++++++ openSUSE-ftp-ftp-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.Sfb6yS/_old 2023-07-01 05:20:14.820853618 +0200
+++ /var/tmp/diff_new_pack.Sfb6yS/_new 2023-07-01 05:20:14.824853642 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20230629" schemaversion="4.1">
+<image name="OBS__openSUSE___20230630" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -23,7 +23,7 @@
<productvar name="DISTNAME">openSUSE</productvar>
<productvar name="FLAVOR">ftp</productvar>
<productvar name="MAKE_LISTINGS">true</productvar>
- <productvar name="MEDIUM_NAME">openSUSE-20230629-x86_64</productvar>
+ <productvar name="MEDIUM_NAME">openSUSE-20230630-x86_64</productvar>
<productvar name="MULTIPLE_MEDIA">true</productvar>
<productvar name="PRODUCT_DIR">/</productvar>
<productvar name="PRODUCT_NAME">$DISTNAME-$FLAVOR</productvar>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20230629</productvar>
+ <productvar name="VERSION">20230630</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20230629,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20230630,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20230629/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20230630/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="DEBUGMEDIUM">2</productoption>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ MicroOS.product ++++++
--- /var/tmp/diff_new_pack.Sfb6yS/_old 2023-07-01 05:20:14.876853953 +0200
+++ /var/tmp/diff_new_pack.Sfb6yS/_new 2023-07-01 05:20:14.884854000 +0200
@@ -6,7 +6,7 @@
<name>MicroOS</name>
<releasepkgname>MicroOS-release</releasepkgname>
<endoflife/>
- <version>20230629</version>
+ <version>20230630</version>
<!-- release is no longer optional -->
<release>0</release>
<productline>MicroOS</productline>
++++++ dvd.group ++++++
--- /var/tmp/diff_new_pack.Sfb6yS/_old 2023-07-01 05:20:15.004854717 +0200
+++ /var/tmp/diff_new_pack.Sfb6yS/_new 2023-07-01 05:20:15.016854789 +0200
@@ -1544,6 +1544,7 @@
<package name="libZXing3" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
<package name="liba52-0" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
<package name="libaa1" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde_multimedia -->
+ <package name="libabsl2301_0_0" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
<package name="libabw-0_1-1" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
<package name="libaccounts-glib0" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
<package name="libaccounts-qt5-1" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
@@ -2432,8 +2433,10 @@
<package name="libprocps8" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
<package name="libprojectM3" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde_multimedia -->
<package name="libprotobuf-c1" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
- <package name="libprotobuf-lite3_21_12" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
- <package name="libprotobuf3_21_12" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
+ <package name="libprotobuf-lite22_5_0" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
+ <package name="libprotobuf-lite3_21_12" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde_multimedia -->
+ <package name="libprotobuf22_5_0" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
+ <package name="libprotobuf3_21_12" supportstatus="unsupported"/> <!-- reason: dvd:patterns-base-console -->
<package name="libproxy1" supportstatus="unsupported"/> <!-- reason: dvd:openSUSE-release -->
<package name="libproxy1-config-gnome3" supportstatus="unsupported"/> <!-- reason: dvd:patterns-gnome-gnome -->
<package name="libproxy1-config-kde" supportstatus="unsupported"/> <!-- reason: dvd:patterns-kde-kde -->
++++++ openSUSE-Addon-NonOss.product ++++++
--- /var/tmp/diff_new_pack.Sfb6yS/_old 2023-07-01 05:20:15.040854932 +0200
+++ /var/tmp/diff_new_pack.Sfb6yS/_new 2023-07-01 05:20:15.048854979 +0200
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20230629</version>
+ <version>20230630</version>
<release>0</release>
<summary>openSUSE NonOSS Addon</summary>
<shortsummary>non oss addon</shortsummary>
++++++ openSUSE.product ++++++
--- /var/tmp/diff_new_pack.Sfb6yS/_old 2023-07-01 05:20:15.076855147 +0200
+++ /var/tmp/diff_new_pack.Sfb6yS/_new 2023-07-01 05:20:15.080855170 +0200
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20230629</version>
+ <version>20230630</version>
<release>0</release>
<productline>openSUSE</productline>
++++++ opensuse_microos.group ++++++
--- /var/tmp/diff_new_pack.Sfb6yS/_old 2023-07-01 05:20:15.136855505 +0200
+++ /var/tmp/diff_new_pack.Sfb6yS/_new 2023-07-01 05:20:15.140855529 +0200
@@ -269,6 +269,7 @@
<package name="docker" supportstatus="unsupported"/> <!-- reason: opensuse_microos:docker -->
<package name="docker-bash-completion" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:expansion -->
<package name="docker-buildx" supportstatus="unsupported"/> <!-- reason: opensuse_microos:docker -->
+ <package name="docker-rootless-extras" supportstatus="unsupported"/> <!-- reason: opensuse_microos:docker -->
<package name="dolphin" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="dolphin-part" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="dolphin-part-lang" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
@@ -1017,6 +1018,7 @@
<package name="libXxf86dga1" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libXxf86vm1" supportstatus="unsupported"/> <!-- reason: opensuse_microos:MicroOS-release -->
<package name="libZXing3" supportstatus="unsupported"/> <!-- reason: opensuse_microos:MicroOS-release -->
+ <package name="libabsl2301_0_0" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base -->
<package name="libabw-0_1-1" supportstatus="unsupported"/> <!-- reason: opensuse_microos:MicroOS-release -->
<package name="libaccounts-glib0" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
<package name="libaccounts-qt5-1" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
@@ -1624,8 +1626,8 @@
<package name="libproc2-0" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base -->
<package name="libprocps8" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:expansion -->
<package name="libprotobuf-c1" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-alt_onlyDVD -->
- <package name="libprotobuf-lite3_21_12" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base -->
- <package name="libprotobuf3_21_12" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-gnome -->
+ <package name="libprotobuf-lite22_5_0" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base -->
+ <package name="libprotobuf22_5_0" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-gnome -->
<package name="libproxy1" supportstatus="unsupported"/> <!-- reason: opensuse_microos:MicroOS-release -->
<package name="libproxy1-config-gnome3" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-gnome -->
<package name="libproxy1-config-kde" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
@@ -2440,6 +2442,7 @@
<package name="rebootmgr" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base -->
<package name="redis" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-alt_onlyDVD -->
<package name="rgb" supportstatus="unsupported"/> <!-- reason: opensuse_microos_desktop:patterns-microos-desktop-kde -->
+ <package name="rootlesskit" supportstatus="unsupported"/> <!-- reason: opensuse_microos:docker -->
<package name="rpcbind" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base -->
<package name="rpm" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base -->
<package name="rpm-config-SUSE" supportstatus="unsupported"/> <!-- reason: opensuse_microos:patterns-microos-base -->
++++++ unsorted.yml ++++++
--- /var/tmp/diff_new_pack.Sfb6yS/_old 2023-07-01 05:20:15.220856006 +0200
+++ /var/tmp/diff_new_pack.Sfb6yS/_new 2023-07-01 05:20:15.232856078 +0200
@@ -7430,6 +7430,7 @@
- gtypist
- gtypist-lang
- guake
+ - guake-doc
- guake-lang
- guava
- guava-javadoc
@@ -8774,7 +8775,6 @@
- jython
- jython-demo
- jython-javadoc
- - jython-manual
- jzlib
- jzlib-demo
- jzlib-javadoc
@@ -10535,7 +10535,7 @@
- libabigail2
- libabiword-3_0
- libabiword-3_0-devel
- - libabsl2301_0_0
+ - libabsl2301_0_0-32bit
- libabw-devel
- libabw-devel-doc
- libabw-tools
@@ -12236,9 +12236,9 @@
- libgravatar-devel
- libgromacs8
- libgromacs_mpi8
- - libgrpc++1_54
- - libgrpc1_54
- - libgrpc31
+ - libgrpc++1_56
+ - libgrpc1_56
+ - libgrpc33
- libgsasl-devel
- libgsequencer0
- libgsettings-qt1
@@ -12546,7 +12546,7 @@
- libhomfly-devel
- libhomfly0
- libhowl0
- - libhpdf2_4_2
+ - libhpdf2
- libhpx1
- libhs5
- libhs5-vectorscan5
@@ -14101,11 +14101,15 @@
- libprofiler0
- libproj25
- libprotobuf-c-devel
+ - libprotobuf-lite22_5_0-32bit
- libprotobuf-lite3_21_12-32bit
- libprotobuf-mutator-devel
- libprotobuf-mutator0
- libprotobuf-nanopb0
+ - libprotobuf22_5_0-32bit
- libprotobuf3_21_12-32bit
+ - libprotoc22_5_0
+ - libprotoc22_5_0-32bit
- libprotoc3_21_12
- libprotoc3_21_12-32bit
- libproxy-devel
@@ -14229,7 +14233,9 @@
- libqsastime0
- libqscintilla2_qt5-15
- libqscintilla2_qt6-15
+ - libqt5-dwaylandplugin
- libqt5-dxcbplugin
+ - libqt5-kwayland-shellplugin
- libqt5-linguist
- libqt5-linguist-devel
- libqt5-qt3d-devel
@@ -15377,7 +15383,7 @@
- libunwind-setjmp0
- libunwind-setjmp0-32bit
- libunwind8-32bit
- - libupb31
+ - libupb33
- libupm1
- libupnp-devel
- libupnpp-devel
@@ -17099,6 +17105,7 @@
- mdbtools-devel
- mdds-1_5-devel
- mdds-2_0-devel
+ - mdds-2_1-devel
- meabo
- meanwhile-devel
- meanwhile-doc
@@ -21774,6 +21781,7 @@
- plplot-doc
- plplot-driver-cairo
- plplot-driver-ntk
+ - plplot-driver-pdf
- plplot-driver-ps
- plplot-driver-psttf
- plplot-driver-svg
@@ -21781,7 +21789,6 @@
- plplot-driver-xwin
- plplot-java
- plplot-lua
- - plplot-python3-qt
- plplot-tcltk-devel
- plplot-tcltk-libs
- plplot-wxwidgets
@@ -22227,7 +22234,8 @@
- proteus
- protobuf-devel
- protobuf-java
- - protobuf-source
+ - protobuf21-devel
+ - protobuf21-source
- protonvpn-cli
- protonvpn-gui
- proxychains-ng
@@ -22794,7 +22802,6 @@
- python3-partio
- python3-pcp
- python3-plist
- - python3-plplot
- python3-pocketsphinx
- python3-pocketsphinx5
- python3-prelude-correlator
@@ -25115,6 +25122,8 @@
- python310-plette
- python310-plotly
- python310-plotly-jupyter
+ - python310-plplot
+ - python310-plplot-pyqt5
- python310-pluggy
- python310-pluginbase
- python310-plumbum
@@ -28476,6 +28485,7 @@
- python311-plette
- python311-plotly
- python311-plotly-jupyter
+ - python311-plplot
- python311-pluggy
- python311-pluginbase
- python311-plumbum
@@ -31908,6 +31918,8 @@
- python39-plette
- python39-plotly
- python39-plotly-jupyter
+ - python39-plplot
+ - python39-plplot-pyqt5
- python39-pluggy
- python39-pluginbase
- python39-plumbum
@@ -34100,7 +34112,6 @@
- rook-k8s-yaml
- rook-rookflex
- root-tail
- - rootlesskit
- rosegarden
- rott
- roundcubemail
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000release-packages for openSUSE:Factory checked in at 2023-07-01 05:20:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Sat Jul 1 05:20:07 2023 rev:2374 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
openSUSE-Addon-NonOss-release.spec: same change
openSUSE-release.spec: same change
stub.spec: same change
++++++ weakremovers.inc ++++++
--- /var/tmp/diff_new_pack.wgeQHM/_old 2023-07-01 05:20:10.712829094 +0200
+++ /var/tmp/diff_new_pack.wgeQHM/_new 2023-07-01 05:20:10.720829142 +0200
@@ -12155,6 +12155,7 @@
Provides: weakremover(libgrpc++1_49)
Provides: weakremover(libgrpc++1_50)
Provides: weakremover(libgrpc++1_51)
+Provides: weakremover(libgrpc++1_54)
Provides: weakremover(libgrpc-1_2_3)
Provides: weakremover(libgrpc-1_8_3)
Provides: weakremover(libgrpc-1_8_4)
@@ -12169,6 +12170,7 @@
Provides: weakremover(libgrpc16)
Provides: weakremover(libgrpc18)
Provides: weakremover(libgrpc19)
+Provides: weakremover(libgrpc1_54)
Provides: weakremover(libgrpc21)
Provides: weakremover(libgrpc22)
Provides: weakremover(libgrpc23)
@@ -12177,6 +12179,7 @@
Provides: weakremover(libgrpc27)
Provides: weakremover(libgrpc28)
Provides: weakremover(libgrpc29)
+Provides: weakremover(libgrpc31)
Provides: weakremover(libgrpc6)
Provides: weakremover(libgrpc7)
Provides: weakremover(libgrpc8)
@@ -12717,6 +12720,7 @@
Provides: weakremover(libhogweed5-32bit)
Provides: weakremover(libhpdf-2_2_1)
Provides: weakremover(libhpdf2_3_0)
+Provides: weakremover(libhpdf2_4_2)
Provides: weakremover(libhssi-io0)
Provides: weakremover(libhssi-io1)
Provides: weakremover(libhts-devel-32bit)
@@ -14832,8 +14836,6 @@
Provides: weakremover(libqt4-sql-unixODBC-32bit)
Provides: weakremover(libqt4-x11)
Provides: weakremover(libqt4-x11-32bit)
-Provides: weakremover(libqt5-dwaylandplugin)
-Provides: weakremover(libqt5-kwayland-shellplugin)
Provides: weakremover(libqt5-qtcanvas3d)
Provides: weakremover(libqt5-qtcanvas3d-examples)
Provides: weakremover(libqt5-qtdatavis3d)
@@ -15679,6 +15681,7 @@
Provides: weakremover(libupb27)
Provides: weakremover(libupb28)
Provides: weakremover(libupb29)
+Provides: weakremover(libupb31)
Provides: weakremover(libupnp13)
Provides: weakremover(libupnp13-32bit)
Provides: weakremover(libupnp15)
@@ -18993,6 +18996,7 @@
Provides: weakremover(profiteur)
Provides: weakremover(prometheus-cpp-devel)
Provides: weakremover(prometheus-hanadb_exporter)
+Provides: weakremover(protobuf-source)
Provides: weakremover(protoc-gen-go)
Provides: weakremover(protoc-gen-go-source)
Provides: weakremover(protoc-gen-gogo)
1
0