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 <[email protected]>
+
+- 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 <[email protected]>
+
+ * NEWS:
+ * RELEASE:
+ * gst-plugins-base.doap:
+ * meson.build:
+ Release 1.22.4
+
+2023-06-13 12:58:26 +0300 Sebastian Dröge <[email protected]>
+
+ * 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 <[email protected]>
+
+ * 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 <[email protected]>
+
+ * 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 <[email protected]>
+
+ * 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 <[email protected]>
+
+ * 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 <[email protected]>
+
+ * 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 <[email protected]>
+ Part-of:
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4827>
+
+2023-06-09 21:08:36 +0800 Kevin Song <[email protected]>
+
+ * 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 <[email protected]>
+
+ * 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 <[email protected]>
+
+ * 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
<[email protected]>
+
+ * 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
<[email protected]>
+
+ * 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 <[email protected]>
+
+ * 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 <[email protected]>
+
+ * 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 <[email protected]>
+
+ * 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 <[email protected]>
+
+ * 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 <[email protected]>
+
+ * 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 <[email protected]>
+
+ * 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 <[email protected]>
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.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/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 <[email protected]>\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 <[email protected]>\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',