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-09-29 21:12:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-good (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-plugins-good.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-good"
Fri Sep 29 21:12:58 2023 rev:97 rq:1113995 version:1.22.6
Changes:
--------
---
/work/SRC/openSUSE:Factory/gstreamer-plugins-good/gstreamer-plugins-good.changes
2023-08-02 16:49:32.865060229 +0200
+++
/work/SRC/openSUSE:Factory/.gstreamer-plugins-good.new.28202/gstreamer-plugins-good.changes
2023-09-29 21:13:33.949731283 +0200
@@ -1,0 +2,26 @@
+Fri Sep 22 11:40:03 UTC 2023 - Bjørn Lie <[email protected]>
+
+- Update to version 1.22.6:
+ + adaptivedemux2: fix memory leak
+ + pulsedeviceprovider: fix incorrect usage of GST_ELEMENT_ERROR
+ + qt:
+ - Unbreak build with qt-egl enabled but viv_fb missing
+ - Fix searching of qt5/qt6 tools with qmake in Meson
+ + qtdemux:
+ - Fix premature EOS when some files are played in push mode
+ - Attach cbcs crypt info at the right moment
+ + rtpjitterbuffer: Avoid integer overflow in max saveable packets
+ calculation with negative offset
+ + videoflip: fix concurrent access when modifying the tag list
+ + v4l2:
+ - allocator: Don't close foreign dmabuf
+ - bufferpool:
+ . Fix large encoded stream regression
+ . Problems when checking for truncated buffer
+ - Fix support for left and top padding
+ + v4l2object: clear format lists if source change event is
+ received
+- Rebase reduce-required-meson.patch
+- Add libqt5-linguist BuildRequires: New dependency.
+
+-------------------------------------------------------------------
Old:
----
gst-plugins-good-1.22.5.tar.xz
New:
----
gst-plugins-good-1.22.6.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-plugins-good.spec ++++++
--- /var/tmp/diff_new_pack.dbpebf/_old 2023-09-29 21:13:35.117773426 +0200
+++ /var/tmp/diff_new_pack.dbpebf/_new 2023-09-29 21:13:35.121773570 +0200
@@ -26,7 +26,7 @@
%define gst_branch 1.0
Name: gstreamer-plugins-good
-Version: 1.22.5
+Version: 1.22.6
Release: 0
Summary: GStreamer Streaming-Media Framework Plug-Ins
License: LGPL-2.1-or-later
@@ -58,6 +58,7 @@
BuildRequires: zlib-devel
BuildRequires: libQt5Gui-private-headers-devel
+BuildRequires: libqt5-linguist
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5Gui)
BuildRequires: pkgconfig(Qt5Qml)
++++++ gst-plugins-good-1.22.5.tar.xz -> gst-plugins-good-1.22.6.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/ChangeLog
new/gst-plugins-good-1.22.6/ChangeLog
--- old/gst-plugins-good-1.22.5/ChangeLog 2023-07-20 16:24:30.626389700
+0200
+++ new/gst-plugins-good-1.22.6/ChangeLog 2023-09-20 19:14:20.772092600
+0200
@@ -1,3 +1,193 @@
+=== release 1.22.6 ===
+
+2023-09-20 18:10:57 +0100 Tim-Philipp Müller <[email protected]>
+
+ * NEWS:
+ * RELEASE:
+ * docs/gst_plugins_cache.json:
+ * gst-plugins-good.doap:
+ * meson.build:
+ Release 1.22.6
+
+2023-09-19 09:14:31 +0200 Olivier Blin <[email protected]>
+
+ * ext/pulse/pulsedeviceprovider.c:
+ pulsedeviceprovider: fix incorrect usage of GST_ELEMENT_ERROR
+ The provider is not a GStreamer element.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5354>
+
+2023-09-05 16:56:44 -0400 Nicolas Dufresne <[email protected]>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2: object: Handle video helper return value
+ gst_video_info_set_interlaced_format() can return an error if the
+ width/height causes integer overflow. Handle this case, so that we can
+ fail cleanly. This has been experienced while testing an in-progress
+ driver.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5319>
+
+2023-09-05 16:51:24 -0400 Nicolas Dufresne <[email protected]>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2: bufferpool: Avoid warnings on empty last buffer
+ Some drivers will push an buffer flagged LAST but empty. In decoder
+ case, this results in an "producing too many buffer" warning, even
+ though the result is entirely correct. Detect this case in order to
+ signal EOS earlier and avoid this warning.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5319>
+
+2023-09-05 16:15:19 -0400 Nicolas Dufresne <[email protected]>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ v4l2: bufferpool: Do not resize compressed buffer
+ Avoid resizing compressed buffer to their maximum size. This fixes a
+ regression that caused valid but very large streams to be generated.
+ Fixes #2953
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5319>
+
+2023-09-07 17:23:37 +0300 Sebastian Dröge <[email protected]>
+
+ * gst/rtpmanager/gstrtpjitterbuffer.c:
+ rtpjitterbuffer: Avoid integer overflow in max saveable packets
calculation with negative offset
+ The timestamp offset can be negative, and it can be a bigger negative
+ number than the latency introduced by the rtpjitterbuffer so the
overall
+ timeout offset can be negative.
+ Using the negative offset for calculating how many packets can still
+ arrive in time when encountering a lost packet in an equidistant
stream
+ would then overflow and instead of considering fewer packets lost a
lot
+ more packets are considered lost.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5318>
+
+2023-08-22 09:57:14 +0800 Ming Qian <[email protected]>
+
+ * sys/v4l2/gstv4l2object.c:
+ v4l2object: clear format lists if source change event is received
+ If decoder notify a source change event when the capture format is
+ changed, not the resolution changed.
+ then gst_v4l2_object_acquire_format will retuen false due to
+ unsupported format.
+ we need to clear the format lists in the source change flow,
+ and reenumerate format list
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5223>
+
+2023-07-25 15:14:11 -0400 Nicolas Dufresne <[email protected]>
+
+ * sys/v4l2/gstv4l2allocator.c:
+ v4l2: allocator: Don't close foreign dmabuf
+ Imported dmabuf are not being duped, so they should never be closed.
Instead,
+ we ensure their live time by having strong reference on their original
+ buffer. This should fix potential flickering due to dmabuf being
closed
+ too early.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5217>
+
+2023-07-20 19:13:36 +0200 Jan Alexander Steffens (heftig)
<[email protected]>
+
+ * ext/qt/meson.build:
+ qt: Unbreak build with qt-egl enabled but viv_fb missing
+ Avoids an error message when the feature is explicitly enabled:
+ ERROR: Feature qt-egl cannot be enabled: gstreamer-gl-viv_fb-1.0 is
required
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5200>
+
+2023-08-07 14:18:21 +0800 Wang Chuan <[email protected]>
+
+ * ext/adaptivedemux2/gstadaptivedemux.c:
+ gstadaptivedemux: fix memory leak
+ GstQuery leaks when using invalid url
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5156>
+
+2023-08-04 15:11:05 +0530 Nirbheek Chauhan <[email protected]>
+
+ * ext/qt/meson.build:
+ * ext/qt6/meson.build:
+ meson: Fix searching of qt5/qt6 tools with qmake
+ If the pkg-config files are broken, we want to ensure that qmake is
+ used. This can easily happen on macOS with the official Qt binaries.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5149>
+
+2023-07-12 12:37:34 +0200 Alicia Boya GarcÃa <[email protected]>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: Fix premature EOS when some files are played in push mode
+ Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2771
+ This EOS branch exists so that if a seek with a stop is made, qtdemux
+ stops accepting bytes from the sink after the entire requested
playback
+ range is demuxed, as otherwise we could keep download content that is
+ not being used.
+ This patch fixes two flaws that were present in that EOS check:
+ 1) A comparison was made between track time and movie time without
conversion.
+ This made the check trigger early in files with edit lists. This
patch fixes
+ this by converting the track PTS to movie PTS (stream time) for the
check.
+ 2) To avoid sending a EOS prematurely when the segment stop is within
a GOP and
+ B-frames are present, the check for EOS should only be done for
keyframes. I
+ gather this was already the intention with the existing code, but
because it
+ used `stream->on_keyframe` instead of the local variable `keyframe`
the old
+ code was checking if the *previous* frame was a keyframe.
+ It's interesting to note that these two flaws in the old code mask
each other
+ in most cases: the track PTS will have reached the movie end PTS, but
EOS would
+ only be sent if the previous frame was a keyframe. A simple case
where they
+ wouldn't mask each other, reproducing the bug, is a sequence of 3
frame GOPs
+ with structure I-B-P.
+ The following validateflow tests have been added to future-proof the
+ fix:
+ * validate.test.mp4.qtdemux_ibpibp_non_frag_pull.default
+ * validate.test.mp4.qtdemux_ibpibp_non_frag_push.default
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5114>
+
+2023-06-22 10:10:43 -0400 Nicolas Dufresne <[email protected]>
+
+ * sys/v4l2/gstv4l2bufferpool.c:
+ * sys/v4l2/gstv4l2object.c:
+ * sys/v4l2/gstv4l2object.h:
+ v4l2: Fix support for left and top padding
+ In the current implementation, we support for most pixel format left
+ and top padding by changing the offset in the video meta. Though, to
+ align driver bytesused to the offset, we recalculate the offset, which
+ removed the modification we did before.
+ Instead, save the plane size, and truncate the driver reported
bytesused
+ to the expected size, which ensures that the offsets still match. This
+ should also fix issues were the buffer size ended up bigger then the
+ pool size due to driver introduced padding.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5132>
+
+2023-07-25 15:15:58 +0200 Guillaume Desmottes
<[email protected]>
+
+ * gst/videofilter/gstvideoflip.c:
+ videoflip: fix concurrent access when modifying the tag list
+ We were checking if the tag list is writable, but it may actually be
+ shared through the same event (tee upstream or multiple consumers).
+ Fix a bug where multiple branches have a videoflip element checking
the
+ taglist. The first one was changing the orientation back to rotate-0
+ which was resetting the other instances.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5099>
+
+2023-07-21 12:48:08 +0200 Xabier Rodriguez Calvar <[email protected]>
+
+ * gst/isomp4/qtdemux.c:
+ qtdemux: attach cbcs crypt info at the right moment
+ Before it was always added but that can cause issues when the stream
begins
+ unencrypted.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5096>
+
+2023-07-14 08:28:10 +0530 Nirbheek Chauhan <[email protected]>
+
+ * ext/soup/meson.build:
+ * meson_options.txt:
+ meson: Ensure that soup plugin is built on Windows
+ The libpsl subproject wasn't building successfully and CI didn't
+ notice because:
+ 1. The plugin wasn't explicitly enabled
+ 2. Even when the plugin is explicitly enabled, the dep is not required
+ at build time when not building a static plugin
+ So fix all of these issues.
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4890>
+
+2023-07-20 16:57:47 +0100 Tim-Philipp Müller <[email protected]>
+
+ * docs/gst_plugins_cache.json:
+ * meson.build:
+ Back to development
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5082>
+
=== release 1.22.5 ===
2023-07-20 15:22:48 +0100 Tim-Philipp Müller <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/NEWS
new/gst-plugins-good-1.22.6/NEWS
--- old/gst-plugins-good-1.22.5/NEWS 2023-07-20 16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/NEWS 2023-09-20 19:10:57.000000000 +0200
@@ -2189,6 +2189,183 @@
- List of Merge Requests applied in 1.22.5
- List of Issues fixed in 1.22.5
+1.22.6
+
+The sixth 1.22 bug-fix release (1.22.6) was released on 20 September
+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.6
+
+- Security fixes for the MXF demuxer and H.265 video parser
+- Fix latency regression in H.264 hardware decoder base class
+- androidmedia: fix HEVC codec profile registration and fix coded_data
+ handling
+- decodebin3: fix switching from a raw stream to an encoded stream
+- gst-inspect: prettier and more correct signal and action signals
+ printing
+- rtmp2: Allow NULL flash version, omitting the field, for better RTMP
+ server compatibility
+- rtspsrc: better compatibility with buggy RTSP servers that donât set
+ a clock-rate
+- rtpjitterbuffer: fix integer overflow that led to more packets being
+ declared lost than have been lost
+- v4l2: fix video encoding regression on RPi and fix support for left
+ and top padding
+- waylandsink: Crop surfaces to their display width height
+- cerbero: recognise Manjaro; add Rust support for MSVC ARM64; cmake
+ detection fixes
+- various bug fixes, build fixes, memory leak fixes, and other
+ stability and reliability improvements
+
+gstreamer
+
+- gst-inspect: prettier and more correct signal printing, and print
+ action signals in g_signal_emit_by_name() format
+- gst-launch: Disable fault signal handlers on macOS
+
+gst-plugins-base
+
+- audio: Make sure to stop ringbuffer on error
+- decodebin3: avoid identity, sinkpad, parsebin leakage when reset
+ input
+- decodebin3: Ensure the slot is unlinked before linking to decoder
+- sdp: fix wrong debug log error message for missing clock-rate in
+ caps
+- sdp: Parse zero clock-rate as default
+
+gst-plugins-good
+
+- adaptivedemux2: fix memory leak
+- pulsedeviceprovider: fix incorrect usage of GST_ELEMENT_ERROR
+- qt: Unbreak build with qt-egl enabled but viv_fb missing
+- qt: Fix searching of qt5/qt6 tools with qmake in Meson
+- qtdemux: Fix premature EOS when some files are played in push mode
+- qtdemux: attach cbcs crypt info at the right moment
+- rtpjitterbuffer: Avoid integer overflow in max saveable packets
+ calculation with negative offset
+- videoflip: fix concurrent access when modifying the tag list
+- v4l2: allocator: Donât close foreign dmabuf
+- v4l2: bufferpool: Fix large encoded stream regression
+- v4l2: bufferpool: Problems when checking for truncated buffer
+- v4l2: Fix support for left and top padding
+- v4l2object: clear format lists if source change event is received
+
+gst-plugins-bad
+
+- androidmedia/enc: handle codec-data before popping
+ GstVideoCodecFrames
+- androidmedia: fix hevc codec profile registration
+- androidmedia: Small fixes
+- androidmedia: Add more null checks (of env) to JNI utilities
+- applemedia: Fix pixel format for I420 and NV12
+- audiolatency: Forward latency query and event upstream
+- av1parser: Fix segmentation params update
+- codecparsers: Fix MPEG-1 aspect ratio table
+- d3d11convert: Passthrough allocation query on same caps
+- h264decoder: Update latency dynamically
+- h265parser: Allow partially broken hvcC data
+- h265parser: Fix possible overflow using max_sub_layers_minus1
+- hlssink2: Always use forward slash separator
+- mdns: Fix a crash on context error
+- mxfdemux: Fix integer overflow causing out of bounds writes when
+ handling invalid uncompressed video and check channels for AES3
+- nvencoder: Fix negotiation error when interlace-mode is unspecified
+- rtmp2: Allow NULL flash version, omitting the field
+- rtmp2sink: fix crash if message conversion failed
+- transcodebin: Fixes for upstream selectable support
+- va: Fix in error logs functions mismatches
+- waylandsink: Crop surfaces to their display width height
+- waylandsink: Fix cropping for video with non-square aspect ratio
+- webrtc: Fix docs for create-data-channel action signal
+- win32ipc: Fix pipe handle leak
+
+gst-plugins-ugly
+
+- No changes
+
+gst-plugins-rs
+
+- fallbackswitch: locking/deadlock fixes
+- onvifmetadataparse: Skip metadata frames with unrepresentable UTC
+ time
+- transcriberbin: Configure audioresample in front of transcriber
+- webrtcsink: Propagate GstContext messages
+- webrtcsink: Add support for d3d11 memory and qsvh264enc
+- webrtcsink: fix TWCC extension adding
+- webrtcsink: donât forget to setup encoders for discoveries
+- webrtcsink: NVIDIA V4L2 encoders always require NVMM memory
+- meson: Fix handling of optional deps, and donât require Python 3.8
+
+gst-libav
+
+- No changes
+
+gst-rtsp-server
+
+- No changes
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- No changes
+
+gst-validate + gst-integration-testsuites
+
+- gst-validate: Disable fault signal handlers on macOS
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- macos-bison: Update to 3.8.2 and add an ARM64 build
+- wrap: update libpsl to 0.21.2
+
+Cerbero build tool and packaging changes in 1.22.6
+
+- Add Rust support for MSVC ARM64
+- Recognise PERL5LIB as a joinable Unix variable
+- Recognise Manjaro as an Arch derivative
+- Fix picking up cmake from build-tools
+
+Contributors to 1.22.6
+
+Akihiro Sagawa, Alicia Boya GarcÃa, Guillaume Desmottes, Haihua Hu,
+Hugues Fruchet, Ivan Molodetskikh, Jan Alexander Steffens (heftig), Jan
+Schmidt, L. E. Segovia, Mathieu Duponchelle, Matthew Waters, Ming Qian,
+Nicolas Dufresne, Nirbheek Chauhan, Olivier Blin, Olivier Crête,
+Philippe Normand, Piotr BrzeziÅski, Robert Ayrapetyan, Ryan Pavlik,
+Sebastian Dröge, Seungha Yang, Stéphane Cerveau, Stephan Seitz, Thomas
+Schneider, Tim-Philipp Müller, VÃctor Manuel Jáquez Leal, Wang Chuan,
+Xabier Rodriguez Calvar,
+
+⦠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.6
+
+- List of Merge Requests applied in 1.22.6
+- List of Issues fixed in 1.22.6
+
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-good-1.22.5/RELEASE
new/gst-plugins-good-1.22.6/RELEASE
--- old/gst-plugins-good-1.22.5/RELEASE 2023-07-20 16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/RELEASE 2023-09-20 19:10:57.000000000 +0200
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-good 1.22.5.
+This is GStreamer gst-plugins-good 1.22.6.
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-good-1.22.5/docs/gst_plugins_cache.json
new/gst-plugins-good-1.22.6/docs/gst_plugins_cache.json
--- old/gst-plugins-good-1.22.5/docs/gst_plugins_cache.json 2023-07-20
16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/docs/gst_plugins_cache.json 2023-09-20
19:10:57.000000000 +0200
@@ -7027,7 +7027,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer 1.22.5 FLV muxer",
+ "default": "GStreamer 1.22.6 FLV muxer",
"mutable": "null",
"readable": true,
"type": "gchararray",
@@ -7039,7 +7039,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer 1.22.5 FLV muxer",
+ "default": "GStreamer 1.22.6 FLV muxer",
"mutable": "null",
"readable": true,
"type": "gchararray",
@@ -21257,7 +21257,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer/1.22.5",
+ "default": "GStreamer/1.22.6",
"mutable": "null",
"readable": true,
"type": "gchararray",
@@ -21816,7 +21816,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer 1.22.5",
+ "default": "GStreamer 1.22.6",
"mutable": "null",
"readable": true,
"type": "gchararray",
@@ -23253,7 +23253,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer souphttpsrc 1.22.5 ",
+ "default": "GStreamer souphttpsrc 1.22.6 ",
"mutable": "null",
"readable": true,
"type": "gchararray",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-good-1.22.5/ext/adaptivedemux2/gstadaptivedemux.c
new/gst-plugins-good-1.22.6/ext/adaptivedemux2/gstadaptivedemux.c
--- old/gst-plugins-good-1.22.5/ext/adaptivedemux2/gstadaptivedemux.c
2023-07-20 16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/ext/adaptivedemux2/gstadaptivedemux.c
2023-09-20 19:10:57.000000000 +0200
@@ -960,6 +960,7 @@
GST_ELEMENT_ERROR (demux, STREAM, DEMUX,
(_("Invalid manifest URI")),
("Manifest URI needs to use either data:, http:// or https://"));
+ gst_query_unref (query);
ret = FALSE;
goto unlock_out;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-good-1.22.5/ext/pulse/pulsedeviceprovider.c
new/gst-plugins-good-1.22.6/ext/pulse/pulsedeviceprovider.c
--- old/gst-plugins-good-1.22.5/ext/pulse/pulsedeviceprovider.c 2023-07-20
16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/ext/pulse/pulsedeviceprovider.c 2023-09-20
19:10:57.000000000 +0200
@@ -440,8 +440,8 @@
state = pa_context_get_state (c);
if (!PA_CONTEXT_IS_GOOD (state)) {
- GST_ELEMENT_ERROR (self, RESOURCE, FAILED, ("Failed to connect: %s",
- pa_strerror (pa_context_errno (c))), (NULL));
+ GST_ERROR_OBJECT (self, "Failed to connect: %s",
+ pa_strerror (pa_context_errno (c)));
goto failed;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/ext/qt/meson.build
new/gst-plugins-good-1.22.6/ext/qt/meson.build
--- old/gst-plugins-good-1.22.5/ext/qt/meson.build 2023-07-20
16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/ext/qt/meson.build 2023-09-20
19:10:57.000000000 +0200
@@ -43,23 +43,16 @@
endif
qt5_mod = import('qt5')
-qt5qml_dep = dependency('qt5', modules : ['Core', 'Gui', 'Qml', 'Quick'],
- method: qt5_method, required: qt5_option, static:
host_system == 'ios')
-
-# On Linux, distros often have the Qt5 pkg-config files and moc in separate
-# packages, so the user may not have both installed. Check for moc and ensure
-# that it's installed.
-# We don't do this check on other OSes because they need to be able to simply
-# point the `QMAKE` env var to `qmake` to build against a particular Qt5.
-if host_system == 'linux' and not meson.is_cross_build()
- moc = find_program('moc-qt5', 'moc', required : qt5_option)
-else
- # We only check if `moc` was found, and then discard it, so we can fake it.
- # This is also a good unit test of the fact that we *don't* use it.
- moc = declare_dependency()
+if not qt5_mod.has_tools(method: qt5_method)
+ if qt5_option.enabled()
+ error('qt5 qmlglsink plugin is enabled, but qt specific tools were not
found')
+ endif
+ subdir_done()
endif
-if not qt5qml_dep.found() or not moc.found()
+qt5qml_dep = dependency('qt5', modules : ['Core', 'Gui', 'Qml', 'Quick'],
+ method: qt5_method, required: qt5_option, static:
host_system == 'ios')
+if not qt5qml_dep.found()
subdir_done()
endif
@@ -120,6 +113,12 @@
qt_defines += ['-DHAVE_QT_EGLFS']
optional_deps += gstglegl_dep
have_qt_windowing = true
+
+ # EGL windowing for Vivante Framebuffer (e.g. i.MX6)
+ if gstglviv_fb_dep.found()
+ qt_defines += ['-DHAVE_QT_VIV_FB']
+ optional_deps += gstglviv_fb_dep
+ endif
endif
# Android windowing
@@ -184,17 +183,6 @@
endif
endif
-# EGL windowing for Vivante Framebuffer (e.g. i.MX6)
-qt5_viv_fb = qt5_egl \
- .require(host_system == 'linux') \
- .require(gstglviv_fb_dep.found(), error_message: 'gstreamer-gl-viv_fb-1.0
is required') \
- .require(gst_gl_have_platform_egl, error_message: 'egl platform support in
gstreamer-gl is required')
-if qt5_viv_fb.allowed()
- qt_defines += ['-DHAVE_QT_VIV_FB']
- optional_deps += gstglviv_fb_dep
- have_qt_windowing = true
-endif
-
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 = {}
@@ -206,7 +194,7 @@
endif
# Build it!
- moc_files = qt5_mod.preprocess(moc_headers : moc_headers)
+ moc_files = qt5_mod.preprocess(moc_headers : moc_headers, method: qt5_method)
gstqmlgl = library('gstqmlgl', sources, moc_files,
cpp_args : gst_plugins_good_args + qt_defines,
link_args : noseh_link_args,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/ext/qt6/meson.build
new/gst-plugins-good-1.22.6/ext/qt6/meson.build
--- old/gst-plugins-good-1.22.5/ext/qt6/meson.build 2023-07-20
16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/ext/qt6/meson.build 2023-09-20
19:10:57.000000000 +0200
@@ -35,7 +35,7 @@
endif
qt6_mod = import('qt6')
-if not qt6_mod.has_tools()
+if not qt6_mod.has_tools(method: qt6_method)
if qt6_option.enabled()
error('qt6 qmlglsink plugin is enabled, but qt specific tools were not
found')
endif
@@ -145,7 +145,7 @@
if qt6_option.require(have_qt_windowing).allowed()
# Build it!
- moc_files = qt6_mod.preprocess(moc_headers : moc_headers)
+ moc_files = qt6_mod.preprocess(moc_headers : moc_headers, method: qt6_method)
gstqml6gl = library('gstqml6', sources, moc_files,
cpp_args : gst_plugins_good_args + qt_defines,
link_args : noseh_link_args,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/ext/soup/meson.build
new/gst-plugins-good-1.22.6/ext/soup/meson.build
--- old/gst-plugins-good-1.22.5/ext/soup/meson.build 2023-07-20
16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/ext/soup/meson.build 2023-09-20
19:10:57.000000000 +0200
@@ -17,7 +17,7 @@
static_args = []
static_deps = []
default_library = get_option('default_library')
-if default_library in ['static', 'both']
+if default_library in ['static', 'both'] or get_option('soup-lookup-dep')
libsoup2_dep = dependency('libsoup-2.4', version : '>=2.48',
required : false, fallback : ['libsoup',
'libsoup_dep'],
default_options: ['sysprof=disabled'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/gst/isomp4/qtdemux.c
new/gst-plugins-good-1.22.6/gst/isomp4/qtdemux.c
--- old/gst-plugins-good-1.22.5/gst/isomp4/qtdemux.c 2023-07-20
16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/gst/isomp4/qtdemux.c 2023-09-20
19:10:57.000000000 +0200
@@ -6092,13 +6092,22 @@
if (info->crypto_info == NULL) {
if (stream->protection_scheme_type == FOURCC_cbcs) {
- crypto_info = qtdemux_get_cenc_sample_properties (qtdemux, stream, 0);
- if (!crypto_info || !gst_buffer_add_protection_meta (buf,
crypto_info)) {
- GST_ERROR_OBJECT (qtdemux,
- "failed to attach cbcs metadata to buffer");
- qtdemux_gst_structure_free (crypto_info);
+ if (CUR_STREAM (stream)->fourcc == FOURCC_enca ||
+ CUR_STREAM (stream)->fourcc == FOURCC_encs ||
+ CUR_STREAM (stream)->fourcc == FOURCC_enct ||
+ CUR_STREAM (stream)->fourcc == FOURCC_encv) {
+ crypto_info = qtdemux_get_cenc_sample_properties (qtdemux, stream,
0);
+ if (!crypto_info
+ || !gst_buffer_add_protection_meta (buf, crypto_info)) {
+ GST_ERROR_OBJECT (qtdemux,
+ "failed to attach cbcs metadata to buffer");
+ qtdemux_gst_structure_free (crypto_info);
+ } else {
+ GST_TRACE_OBJECT (qtdemux, "added cbcs protection metadata");
+ }
} else {
- GST_TRACE_OBJECT (qtdemux, "added cbcs protection metadata");
+ GST_TRACE_OBJECT (qtdemux,
+ "cbcs stream is not encrypted yet, not adding protection
metadata");
}
} else {
GST_DEBUG_OBJECT (qtdemux,
@@ -7312,6 +7321,42 @@
return gst_qtdemux_process_adapter (demux, FALSE);
}
+static guint64
+gst_segment_to_stream_time_clamped (const GstSegment * segment,
+ guint64 position)
+{
+ guint64 segment_stream_time_start;
+ guint64 segment_stream_time_stop = GST_CLOCK_TIME_NONE;
+ guint64 stream_pts_unsigned;
+ int ret;
+
+ g_return_val_if_fail (segment != NULL, GST_CLOCK_TIME_NONE);
+ g_return_val_if_fail (segment->format == GST_FORMAT_TIME,
+ GST_CLOCK_TIME_NONE);
+
+ segment_stream_time_start = segment->time;
+ if (segment->stop != GST_CLOCK_TIME_NONE)
+ segment_stream_time_stop =
+ gst_segment_to_stream_time (segment, GST_FORMAT_TIME, segment->stop);
+
+ ret =
+ gst_segment_to_stream_time_full (segment, GST_FORMAT_TIME, position,
+ &stream_pts_unsigned);
+ /* ret == 0 if the segment is invalid (either position, segment->time or the
segment start are -1). */
+ g_return_val_if_fail (ret != 0, GST_CLOCK_TIME_NONE);
+
+ if (ret == -1 || stream_pts_unsigned < segment_stream_time_start) {
+ /* Negative or prior to segment start stream time, clamp to segment start.
*/
+ return segment_stream_time_start;
+ } else if (segment_stream_time_stop != GST_CLOCK_TIME_NONE
+ && stream_pts_unsigned > segment_stream_time_stop) {
+ /* Clamp to segment end. */
+ return segment_stream_time_stop;
+ } else {
+ return stream_pts_unsigned;
+ }
+}
+
static GstFlowReturn
gst_qtdemux_process_adapter (GstQTDemux * demux, gboolean force)
{
@@ -7720,7 +7765,7 @@
case QTDEMUX_STATE_MOVIE:{
QtDemuxStream *stream = NULL;
QtDemuxSample *sample;
- GstClockTime dts, pts, duration;
+ GstClockTime dts, pts, stream_pts, duration;
gboolean keyframe;
gint i;
@@ -7832,12 +7877,14 @@
dts = QTSAMPLE_DTS (stream, sample);
pts = QTSAMPLE_PTS (stream, sample);
+ stream_pts =
+ gst_segment_to_stream_time_clamped (&stream->segment, pts);
duration = QTSAMPLE_DUR_DTS (stream, sample, dts);
keyframe = QTSAMPLE_KEYFRAME (stream, sample);
/* check for segment end */
if (G_UNLIKELY (demux->segment.stop != -1
- && demux->segment.stop <= pts && stream->on_keyframe)
+ && demux->segment.stop <= stream_pts && keyframe)
&& !(demux->upstream_format_is_time && demux->segment.rate < 0))
{
GST_DEBUG_OBJECT (demux, "we reached the end of our segment.");
stream->time_position = GST_CLOCK_TIME_NONE; /* this means
EOS */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-good-1.22.5/gst/rtpmanager/gstrtpjitterbuffer.c
new/gst-plugins-good-1.22.6/gst/rtpmanager/gstrtpjitterbuffer.c
--- old/gst-plugins-good-1.22.5/gst/rtpmanager/gstrtpjitterbuffer.c
2023-07-20 16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/gst/rtpmanager/gstrtpjitterbuffer.c
2023-09-20 19:10:57.000000000 +0200
@@ -2669,7 +2669,7 @@
/* based on the estimated packet duration, we
can figure out how many packets we could possibly save */
- if (est_pkt_duration)
+ if (est_pkt_duration && offset > 0)
max_saveable_packets = offset / est_pkt_duration;
/* and say that the amount of lost packet is the sequence-number
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-plugins-good-1.22.5/gst/videofilter/gstvideoflip.c
new/gst-plugins-good-1.22.6/gst/videofilter/gstvideoflip.c
--- old/gst-plugins-good-1.22.5/gst/videofilter/gstvideoflip.c 2023-07-20
16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/gst/videofilter/gstvideoflip.c 2023-09-20
19:10:57.000000000 +0200
@@ -1790,19 +1790,15 @@
gst_video_flip_set_method (vf, method, TRUE);
if (vf->method == GST_VIDEO_ORIENTATION_AUTO) {
- /* update the orientation tag as we rotate the video accordingly */
- if (gst_tag_list_is_writable (taglist)) {
- gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE,
- "image-orientation", "rotate-0", NULL);
- } else {
- taglist = gst_tag_list_copy (taglist);
+ /* Update the orientation tag as we rotate the video accordingly.
+ * The event (and so the tag list) can be shared so always copy
both. */
+ taglist = gst_tag_list_copy (taglist);
- gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE,
- "image-orientation", "rotate-0", NULL);
+ gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE,
+ "image-orientation", "rotate-0", NULL);
- gst_event_unref (event);
- event = gst_event_new_tag (taglist);
- }
+ gst_event_unref (event);
+ event = gst_event_new_tag (taglist);
}
}
break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/gst-plugins-good.doap
new/gst-plugins-good-1.22.6/gst-plugins-good.doap
--- old/gst-plugins-good-1.22.5/gst-plugins-good.doap 2023-07-20
16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/gst-plugins-good.doap 2023-09-20
19:10:57.000000000 +0200
@@ -34,6 +34,16 @@
<release>
<Version>
+ <revision>1.22.6</revision>
+ <branch>1.22</branch>
+ <name></name>
+ <created>2023-09-20</created>
+ <file-release
rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.22.6.tar.xz"
/>
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.22.5</revision>
<branch>1.22</branch>
<name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/meson.build
new/gst-plugins-good-1.22.6/meson.build
--- old/gst-plugins-good-1.22.5/meson.build 2023-07-20 16:22:48.000000000
+0200
+++ new/gst-plugins-good-1.22.6/meson.build 2023-09-20 19:10:57.000000000
+0200
@@ -1,5 +1,5 @@
project('gst-plugins-good', 'c',
- version : '1.22.5',
+ version : '1.22.6',
meson_version : '>= 0.62',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/meson_options.txt
new/gst-plugins-good-1.22.6/meson_options.txt
--- old/gst-plugins-good-1.22.5/meson_options.txt 2023-07-20
16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/meson_options.txt 2023-09-20
19:10:57.000000000 +0200
@@ -67,7 +67,6 @@
option('png', type : 'feature', value : 'auto', description : 'PNG image codec
plugin')
option('pulse', type : 'feature', value : 'auto', description : 'Pulseaudio
audio source/sink plugin')
option('shout2', type : 'feature', value : 'auto', description :
'Shout-casting network sink plugin based on libshout2')
-option('soup', type : 'feature', value : 'auto', description : 'libsoup HTTP
client source/sink plugin')
option('speex', type : 'feature', value : 'auto', description : 'Speex audio
codec plugin')
option('taglib', type : 'feature', value : 'auto', description : 'Tag-writing
plugin based on taglib')
option('twolame', type : 'feature', value : 'auto', description : 'twolame mp2
audio encoder plugin')
@@ -84,6 +83,11 @@
option('rpi-header-dir', type : 'string', value : '/opt/vc/include',
description : 'Directory where VideoCore/MMAL headers and bcm_host.h can be
found')
option('rpi-lib-dir', type : 'string', value : '/opt/vc/lib', description :
'Directory where VideoCore/MMAL libraries can be found')
+# soup plugin options
+option('soup', type : 'feature', value : 'auto', description : 'libsoup HTTP
client source/sink plugin')
+option('soup-lookup-dep', type : 'boolean', value : 'false',
+ description : 'Lookup libsoup dep at build time even when building a
shared plugin')
+
# Qt plugin options
option('qt-method', type: 'combo', value: 'auto', choices: ['auto',
'pkg-config', 'qmake'],
description: 'Method to use to find Qt')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/po/gst-plugins-good-1.0.pot
new/gst-plugins-good-1.22.6/po/gst-plugins-good-1.0.pot
--- old/gst-plugins-good-1.22.5/po/gst-plugins-good-1.0.pot 2023-07-20
16:24:30.354385100 +0200
+++ new/gst-plugins-good-1.22.6/po/gst-plugins-good-1.0.pot 2023-09-20
19:14:20.448089000 +0200
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-good-1.22.5\n"
+"Project-Id-Version: gst-plugins-good-1.22.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-07-20 15:24+0100\n"
+"POT-Creation-Date: 2023-09-20 18:14+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
@@ -99,8 +99,8 @@
msgid "This file contains no playable streams."
msgstr ""
-#: gst/isomp4/qtdemux.c:556 gst/isomp4/qtdemux.c:7363 gst/isomp4/qtdemux.c:7432
-#: gst/isomp4/qtdemux.c:7738 gst/isomp4/qtdemux.c:9134
+#: gst/isomp4/qtdemux.c:556 gst/isomp4/qtdemux.c:7408 gst/isomp4/qtdemux.c:7477
+#: gst/isomp4/qtdemux.c:7783 gst/isomp4/qtdemux.c:9181
msgid "This file is invalid and cannot be played."
msgstr ""
@@ -108,10 +108,10 @@
msgid "Cannot play stream because it is encrypted with PlayReady DRM."
msgstr ""
-#: gst/isomp4/qtdemux.c:4364 gst/isomp4/qtdemux.c:8521
-#: gst/isomp4/qtdemux.c:8528 gst/isomp4/qtdemux.c:9836
-#: gst/isomp4/qtdemux.c:10278 gst/isomp4/qtdemux.c:10285
-#: gst/isomp4/qtdemux.c:13525
+#: gst/isomp4/qtdemux.c:4364 gst/isomp4/qtdemux.c:8568
+#: gst/isomp4/qtdemux.c:8575 gst/isomp4/qtdemux.c:9883
+#: gst/isomp4/qtdemux.c:10325 gst/isomp4/qtdemux.c:10332
+#: gst/isomp4/qtdemux.c:13572
msgid "This file is corrupt and cannot be played."
msgstr ""
@@ -131,7 +131,7 @@
msgid "This file is incomplete and cannot be played."
msgstr ""
-#: gst/isomp4/qtdemux.c:11419
+#: gst/isomp4/qtdemux.c:11466
msgid "The video in this file might not play correctly."
msgstr ""
@@ -208,7 +208,7 @@
msgid "Raspberry Pi Camera Module"
msgstr ""
-#: sys/v4l2/gstv4l2bufferpool.c:1845
+#: sys/v4l2/gstv4l2bufferpool.c:1858
#, c-format
msgid "Error reading %d bytes from device '%s'."
msgstr ""
@@ -233,84 +233,84 @@
msgid "The driver of device '%s' does not support any known IO method."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4125
+#: sys/v4l2/gstv4l2object.c:4118
msgid "Invalid caps"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4132 sys/v4l2/gstv4l2object.c:4156
+#: sys/v4l2/gstv4l2object.c:4125 sys/v4l2/gstv4l2object.c:4149
#, c-format
msgid "Device '%s' has no supported format"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4138 sys/v4l2/gstv4l2object.c:4162
+#: sys/v4l2/gstv4l2object.c:4131 sys/v4l2/gstv4l2object.c:4155
#, c-format
msgid "Device '%s' failed during initialization"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4150
+#: sys/v4l2/gstv4l2object.c:4143
#, c-format
msgid "Device '%s' is busy"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4173
+#: sys/v4l2/gstv4l2object.c:4166
#, c-format
msgid "Device '%s' cannot capture at %dx%d"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4182
+#: sys/v4l2/gstv4l2object.c:4175
#, c-format
msgid "Device '%s' cannot capture in the specified format"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4193
+#: sys/v4l2/gstv4l2object.c:4186
#, c-format
msgid "Device '%s' does support non-contiguous planes"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4208
+#: sys/v4l2/gstv4l2object.c:4201
#, c-format
msgid "Device '%s' does not support %s interlacing"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4222
+#: sys/v4l2/gstv4l2object.c:4215
#, c-format
msgid "Device '%s' does not support %s colorimetry"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4234
+#: sys/v4l2/gstv4l2object.c:4227
#, c-format
msgid "Could not get parameters on device '%s'"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4242
+#: sys/v4l2/gstv4l2object.c:4235
msgid "Video device did not accept new frame rate setting."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4383
+#: sys/v4l2/gstv4l2object.c:4377
msgid "Video device did not provide output format."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4389
+#: sys/v4l2/gstv4l2object.c:4383
msgid "Video device returned invalid dimensions."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4397
+#: sys/v4l2/gstv4l2object.c:4391
msgid "Video device uses an unsupported interlacing method."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4404
+#: sys/v4l2/gstv4l2object.c:4398
msgid "Video device uses an unsupported pixel format."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:5319
+#: sys/v4l2/gstv4l2object.c:5313
msgid "Failed to configure internal buffer pool."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:5325
+#: sys/v4l2/gstv4l2object.c:5319
msgid "Video device did not suggest any buffer size."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:5331
+#: sys/v4l2/gstv4l2object.c:5325
msgid "No downstream pool to import from."
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/po/gst-plugins-good.pot
new/gst-plugins-good-1.22.6/po/gst-plugins-good.pot
--- old/gst-plugins-good-1.22.5/po/gst-plugins-good.pot 2023-07-20
16:24:30.354385100 +0200
+++ new/gst-plugins-good-1.22.6/po/gst-plugins-good.pot 2023-09-20
19:14:20.448089000 +0200
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-good-1.22.5\n"
+"Project-Id-Version: gst-plugins-good-1.22.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-07-20 15:24+0100\n"
+"POT-Creation-Date: 2023-09-20 18:14+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
@@ -99,8 +99,8 @@
msgid "This file contains no playable streams."
msgstr ""
-#: gst/isomp4/qtdemux.c:556 gst/isomp4/qtdemux.c:7363 gst/isomp4/qtdemux.c:7432
-#: gst/isomp4/qtdemux.c:7738 gst/isomp4/qtdemux.c:9134
+#: gst/isomp4/qtdemux.c:556 gst/isomp4/qtdemux.c:7408 gst/isomp4/qtdemux.c:7477
+#: gst/isomp4/qtdemux.c:7783 gst/isomp4/qtdemux.c:9181
msgid "This file is invalid and cannot be played."
msgstr ""
@@ -108,10 +108,10 @@
msgid "Cannot play stream because it is encrypted with PlayReady DRM."
msgstr ""
-#: gst/isomp4/qtdemux.c:4364 gst/isomp4/qtdemux.c:8521
-#: gst/isomp4/qtdemux.c:8528 gst/isomp4/qtdemux.c:9836
-#: gst/isomp4/qtdemux.c:10278 gst/isomp4/qtdemux.c:10285
-#: gst/isomp4/qtdemux.c:13525
+#: gst/isomp4/qtdemux.c:4364 gst/isomp4/qtdemux.c:8568
+#: gst/isomp4/qtdemux.c:8575 gst/isomp4/qtdemux.c:9883
+#: gst/isomp4/qtdemux.c:10325 gst/isomp4/qtdemux.c:10332
+#: gst/isomp4/qtdemux.c:13572
msgid "This file is corrupt and cannot be played."
msgstr ""
@@ -131,7 +131,7 @@
msgid "This file is incomplete and cannot be played."
msgstr ""
-#: gst/isomp4/qtdemux.c:11419
+#: gst/isomp4/qtdemux.c:11466
msgid "The video in this file might not play correctly."
msgstr ""
@@ -208,7 +208,7 @@
msgid "Raspberry Pi Camera Module"
msgstr ""
-#: sys/v4l2/gstv4l2bufferpool.c:1845
+#: sys/v4l2/gstv4l2bufferpool.c:1858
#, c-format
msgid "Error reading %d bytes from device '%s'."
msgstr ""
@@ -233,84 +233,84 @@
msgid "The driver of device '%s' does not support any known IO method."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4125
+#: sys/v4l2/gstv4l2object.c:4118
msgid "Invalid caps"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4132 sys/v4l2/gstv4l2object.c:4156
+#: sys/v4l2/gstv4l2object.c:4125 sys/v4l2/gstv4l2object.c:4149
#, c-format
msgid "Device '%s' has no supported format"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4138 sys/v4l2/gstv4l2object.c:4162
+#: sys/v4l2/gstv4l2object.c:4131 sys/v4l2/gstv4l2object.c:4155
#, c-format
msgid "Device '%s' failed during initialization"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4150
+#: sys/v4l2/gstv4l2object.c:4143
#, c-format
msgid "Device '%s' is busy"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4173
+#: sys/v4l2/gstv4l2object.c:4166
#, c-format
msgid "Device '%s' cannot capture at %dx%d"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4182
+#: sys/v4l2/gstv4l2object.c:4175
#, c-format
msgid "Device '%s' cannot capture in the specified format"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4193
+#: sys/v4l2/gstv4l2object.c:4186
#, c-format
msgid "Device '%s' does support non-contiguous planes"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4208
+#: sys/v4l2/gstv4l2object.c:4201
#, c-format
msgid "Device '%s' does not support %s interlacing"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4222
+#: sys/v4l2/gstv4l2object.c:4215
#, c-format
msgid "Device '%s' does not support %s colorimetry"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4234
+#: sys/v4l2/gstv4l2object.c:4227
#, c-format
msgid "Could not get parameters on device '%s'"
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4242
+#: sys/v4l2/gstv4l2object.c:4235
msgid "Video device did not accept new frame rate setting."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4383
+#: sys/v4l2/gstv4l2object.c:4377
msgid "Video device did not provide output format."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4389
+#: sys/v4l2/gstv4l2object.c:4383
msgid "Video device returned invalid dimensions."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4397
+#: sys/v4l2/gstv4l2object.c:4391
msgid "Video device uses an unsupported interlacing method."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:4404
+#: sys/v4l2/gstv4l2object.c:4398
msgid "Video device uses an unsupported pixel format."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:5319
+#: sys/v4l2/gstv4l2object.c:5313
msgid "Failed to configure internal buffer pool."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:5325
+#: sys/v4l2/gstv4l2object.c:5319
msgid "Video device did not suggest any buffer size."
msgstr ""
-#: sys/v4l2/gstv4l2object.c:5331
+#: sys/v4l2/gstv4l2object.c:5325
msgid "No downstream pool to import from."
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/sys/v4l2/gstv4l2allocator.c
new/gst-plugins-good-1.22.6/sys/v4l2/gstv4l2allocator.c
--- old/gst-plugins-good-1.22.5/sys/v4l2/gstv4l2allocator.c 2023-07-20
16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/sys/v4l2/gstv4l2allocator.c 2023-09-20
19:10:57.000000000 +0200
@@ -357,7 +357,6 @@
switch (allocator->memory) {
case V4L2_MEMORY_DMABUF:
- close (mem->dmafd);
mem->dmafd = -1;
break;
case V4L2_MEMORY_USERPTR:
@@ -396,8 +395,7 @@
obj->munmap (mem->data, group->planes[mem->plane].length);
}
- /* This apply for both mmap with expbuf, and dmabuf imported memory */
- if (mem->dmafd >= 0)
+ if (allocator->memory == V4L2_MEMORY_MMAP && mem->dmafd >= 0)
close (mem->dmafd);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/sys/v4l2/gstv4l2bufferpool.c
new/gst-plugins-good-1.22.6/sys/v4l2/gstv4l2bufferpool.c
--- old/gst-plugins-good-1.22.5/sys/v4l2/gstv4l2bufferpool.c 2023-07-20
16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/sys/v4l2/gstv4l2bufferpool.c 2023-09-20
19:10:57.000000000 +0200
@@ -1237,8 +1237,7 @@
GstV4l2Object *obj = pool->obj;
GstClockTime timestamp;
GstV4l2MemoryGroup *group;
- GstVideoMeta *vmeta;
- gsize size;
+ const GstVideoInfo *info = &obj->info;
gint i;
gint old_buffer_state;
@@ -1276,6 +1275,12 @@
group->buffer.index);
}
+ if (group->buffer.flags & V4L2_BUF_FLAG_LAST &&
+ group->planes[0].bytesused == 0) {
+ GST_DEBUG_OBJECT (pool, "Empty last buffer, signalling eos.");
+ goto eos;
+ }
+
outbuf = pool->buffers[group->buffer.index];
if (outbuf == NULL)
goto no_buffer;
@@ -1289,9 +1294,9 @@
timestamp = GST_TIMEVAL_TO_TIME (group->buffer.timestamp);
- size = 0;
- vmeta = gst_buffer_get_video_meta (outbuf);
for (i = 0; i < group->n_mem; i++) {
+ const GstVideoFormatInfo *finfo = info->finfo;
+
GST_LOG_OBJECT (pool,
"dequeued buffer %p seq:%d (ix=%d), mem %p used %d, plane=%d, flags
%08x, ts %"
GST_TIME_FORMAT ", pool-queued=%d, buffer=%p, previous-state=%i",
@@ -1299,10 +1304,18 @@
group->planes[i].bytesused, i, group->buffer.flags,
GST_TIME_ARGS (timestamp), pool->num_queued, outbuf, old_buffer_state);
- if (vmeta) {
- vmeta->offset[i] = size;
- size += gst_memory_get_sizes (group->mem[i], NULL, NULL);
+ if (GST_VIDEO_INFO_FORMAT (&pool->caps_info) == GST_VIDEO_FORMAT_ENCODED)
+ break;
+
+ /* Ensure our offset matches the expected plane size, or image size if
+ * there is only one memory */
+ if (group->n_mem == 1) {
+ gst_memory_resize (group->mem[0], 0, info->size + info->offset[0]);
+ break;
}
+
+ if (!GST_VIDEO_FORMAT_INFO_IS_TILED (finfo))
+ gst_memory_resize (group->mem[i], 0, obj->plane_size[i]);
}
/* Ignore timestamp and field for OUTPUT device */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/sys/v4l2/gstv4l2object.c
new/gst-plugins-good-1.22.6/sys/v4l2/gstv4l2object.c
--- old/gst-plugins-good-1.22.5/sys/v4l2/gstv4l2object.c 2023-07-20
16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/sys/v4l2/gstv4l2object.c 2023-09-20
19:10:57.000000000 +0200
@@ -3441,18 +3441,11 @@
if ((align->padding_left + align->padding_top) > 0)
GST_WARNING_OBJECT (v4l2object->dbg_obj,
"Left and top padding is not permitted for tiled formats");
+ memset (v4l2object->plane_size, 0,
+ sizeof (v4l2object->plane_size[0] * GST_VIDEO_MAX_PLANES));
} else {
- for (i = 0; i < finfo->n_planes; i++) {
- gint vedge, hedge;
-
- /* FIXME we assume plane as component as this is true for all supported
- * format we support. */
-
- hedge = GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (finfo, i,
align->padding_left);
- vedge = GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (finfo, i,
align->padding_top);
-
- info->offset[i] += (vedge * info->stride[i]) +
- (hedge * GST_VIDEO_INFO_COMP_PSTRIDE (info, i));
+ if (!gst_video_info_align_full (info, align, v4l2object->plane_size)) {
+ GST_WARNING_OBJECT (v4l2object->dbg_obj, "Failed to align video info");
}
}
@@ -4357,8 +4350,9 @@
goto unsupported_field;
}
- gst_video_info_set_interlaced_format (info, format, interlace_mode, width,
- height);
+ if (!gst_video_info_set_interlaced_format (info, format, interlace_mode,
+ width, height))
+ goto invalid_dimensions;
gst_v4l2_object_get_colorspace (v4l2object, &fmt, &info->colorimetry);
gst_v4l2_object_get_streamparm (v4l2object, info);
@@ -5582,6 +5576,9 @@
goto again;
}
+ if (v4l2object->formats)
+ gst_v4l2_object_clear_format_list (v4l2object);
+
return GST_V4L2_FLOW_RESOLUTION_CHANGE;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/gst-plugins-good-1.22.5/sys/v4l2/gstv4l2object.h
new/gst-plugins-good-1.22.6/sys/v4l2/gstv4l2object.h
--- old/gst-plugins-good-1.22.5/sys/v4l2/gstv4l2object.h 2023-07-20
16:22:48.000000000 +0200
+++ new/gst-plugins-good-1.22.6/sys/v4l2/gstv4l2object.h 2023-09-20
19:10:57.000000000 +0200
@@ -146,6 +146,7 @@
GstVideoInfo info;
GstVideoAlignment align;
GstVideoTransferFunction transfer;
+ gsize plane_size[GST_VIDEO_MAX_PLANES];
/* Features */
gboolean need_video_meta;
++++++ reduce-required-meson.patch ++++++
--- /var/tmp/diff_new_pack.dbpebf/_old 2023-09-29 21:13:35.897801566 +0200
+++ /var/tmp/diff_new_pack.dbpebf/_new 2023-09-29 21:13:35.901801710 +0200
@@ -1,10 +1,10 @@
-Index: gst-plugins-good-1.22.5/meson.build
+Index: gst-plugins-good-1.22.6/meson.build
===================================================================
---- gst-plugins-good-1.22.5.orig/meson.build
-+++ gst-plugins-good-1.22.5/meson.build
+--- gst-plugins-good-1.22.6.orig/meson.build
++++ gst-plugins-good-1.22.6/meson.build
@@ -1,6 +1,6 @@
project('gst-plugins-good', 'c',
- version : '1.22.5',
+ version : '1.22.6',
- meson_version : '>= 0.62',
+ meson_version : '>= 0.61',
default_options : [ 'warning_level=1',