Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gstreamer-plugins-base for openSUSE:Factory checked in at 2023-07-01 23:17:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-base (Old) and /work/SRC/openSUSE:Factory/.gstreamer-plugins-base.new.13546 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-plugins-base" Sat Jul 1 23:17:23 2023 rev:93 rq:1096144 version:1.22.4 Changes: -------- --- /work/SRC/openSUSE:Factory/gstreamer-plugins-base/gstreamer-plugins-base.changes 2023-05-28 19:21:37.936529931 +0200 +++ /work/SRC/openSUSE:Factory/.gstreamer-plugins-base.new.13546/gstreamer-plugins-base.changes 2023-07-01 23:17:25.262033635 +0200 @@ -1,0 +2,23 @@ +Mon Jun 26 14:18:54 UTC 2023 - Bjørn Lie <bjorn....@gmail.com> + +- Update to version 1.22.4: + + alsasink: Fix stall for transition from PAUSED to READY with + USB speakerphone. + + appsink: unref buffer in prev sample early so buffers from v4l2 + can be released properly. + + basetextoverlay: Fix typo in "text-y" property description. + + gldownload: handle passthrough without a critical. + + glfilter: add parent meta to output buffer for input buffer. + + oggdemux: vp8: Push headers downstream and detect keyframe + packets. + + opus: Fix potential crash when getting unexpected channel + position. + + streamsynchronizer: reset eos on STREAM_START. + + subparse: Look for the closing > of a tag after the opening <. + + video: convertframe: Add D3D11 specific conversion path. + + videometa: Only validate the alignment only when it contains + some info. + + video-blend: Fix linking error with C++. +- Rebase reduce-required-meson.patch. + +------------------------------------------------------------------- Old: ---- gst-plugins-base-1.22.3.tar.xz New: ---- gst-plugins-base-1.22.4.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gstreamer-plugins-base.spec ++++++ --- /var/tmp/diff_new_pack.7GokJF/_old 2023-07-01 23:17:25.902037472 +0200 +++ /var/tmp/diff_new_pack.7GokJF/_new 2023-07-01 23:17:25.906037496 +0200 @@ -20,7 +20,7 @@ %define gst_branch 1.0 %define gstreamer_req_version %(echo %{version} | sed -e "s/+.*//") Name: gstreamer-plugins-base -Version: 1.22.3 +Version: 1.22.4 Release: 0 Summary: GStreamer Streaming-Media Framework Plug-Ins License: GPL-2.0-or-later AND LGPL-2.1-or-later ++++++ gst-plugins-base-1.22.3.tar.xz -> gst-plugins-base-1.22.4.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ChangeLog new/gst-plugins-base-1.22.4/ChangeLog --- old/gst-plugins-base-1.22.3/ChangeLog 2023-05-19 10:24:07.850514400 +0200 +++ new/gst-plugins-base-1.22.4/ChangeLog 2023-06-20 18:44:10.143448800 +0200 @@ -1,3 +1,185 @@ +=== release 1.22.4 === + +2023-06-20 17:42:25 +0100 Tim-Philipp Müller <t...@centricular.com> + + * NEWS: + * RELEASE: + * gst-plugins-base.doap: + * meson.build: + Release 1.22.4 + +2023-06-13 12:58:26 +0300 Sebastian Dröge <sebast...@centricular.com> + + * gst/subparse/gstsubparse.c: + subparse: Skip after the end of a valid closing tag instead of only skipping `<` + This is a small optimization and avoids restarting the next parsing + iteration on already accepted data. + On its own it would also fix ZDI-CAN-20968 (see previous commit) but the + previous commit independently is also a valid fix for it. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4898> + +2023-06-13 12:53:13 +0300 Sebastian Dröge <sebast...@centricular.com> + + * gst/subparse/gstsubparse.c: + subparse: Look for the closing `>` of a tag after the opening `<` + Previously when fixing up subrip markip, we were looking from the start + of the remaining buffer instead. Due to how skipping over closing tags + works, the remaining buffer will still contain the closing `>` of the + previous tag so if a unexpected closing tag is found after another + closing tag, we would potentially do an out of bounds memmove(). + Fixes ZDI-CAN-20968 + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2662 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4898> + +2023-06-13 13:22:57 +0300 Sebastian Dröge <sebast...@centricular.com> + + * gst-libs/gst/tag/tags.c: + tags: Don't allow image tags with G_MAXUINT32 length + This will cause an integer overflow a little bit further down because we + allocate a bit more memory to allow for a NUL-terminator. + The caller should've avoided passing that much data in already as it's + not going to be a valid image and there's likely not even that much data + available. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4897> + +2023-06-13 10:30:16 +0800 Haihua Hu <jared...@nxp.com> + + * gst-libs/gst/gl/gstglfilter.c: + glfilter: add parent meta to output buffer for input buffer + glfilter will unref input buffer after _transform() call immidiately, + but gpu may still reading input buffer for rendering because gl + api is executed async. Need hold reference for input buffer by + adding parent meta to output buffer. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4846> + +2023-06-07 14:24:46 -0400 Xavier Claessens <xavier.claess...@collabora.com> + + * ext/opus/gstopusenc.c: + opus: Fix crash when getting unexpected channel position + gst_opus_channel_names is a static array with only 13 items. + GstAudioChannelPosition have bigger values than that. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4843> + +2016-06-01 11:52:38 +0100 William Manley <w...@williammanley.net> + + * docs/plugins/gst_plugins_cache.json: + * ext/pango/gstbasetextoverlay.c: + basetextoverlay: Fix typo in "text-y" property description + Looks like a copy and paste error. + Co-authored-by: Fabian Orccon <cfoch.fab...@gmail.com> + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4827> + +2023-06-09 21:08:36 +0800 Kevin Song <kes...@nvidia.com> + + * gst-libs/gst/app/gstappsink.c: + appsink: unref gstbuffer in prev sample early + Appsink will unref prev sample in dispose function. Which is later + when V4L2 video decoder link with appsink as V4L2 video decoder + will close V4L2 device fd during GST_STATE_CHANGE_READY_TO_NULL. + If the video buffer return to V4L2 video decoder after the decoder + closed V4L2 device fd, V4L2 can't release the video frame buffer + which allocated with MMAP mode as application can't call + VIDIOC_REQBUFS 0 to release the video frame buffer by V4L2 driver. + The memory of the video frame will leak. + Unref the gstbuffer in stop() function, so V4L2 video decoder + can received all video frame buffers and release it before close + V4L2 device fd. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4820> + +2023-06-07 13:46:39 +1000 Matthew Waters <matt...@centricular.com> + + * ext/gl/gstgldownloadelement.c: + gldownload: handle passthrough without a critical + With passthrough mode, gldownload/glbasefilter may not ever retrieve a + relevant GstGLContext as it doesn't actually query the surrounding + elements. Guard against that. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4800> + +2023-05-27 13:06:22 +0100 Philippe Normand <ph...@igalia.com> + + * ext/ogg/gstoggdemux.c: + * ext/ogg/gstoggdemux.h: + * ext/ogg/gstoggstream.c: + oggdemux: vp8: Detect keyframe packets + decodebin3 drops data on video streams until a keyframe or header is detected, + so for Ogg/VP8 we now need to correctly flag and signal keyframes downstream. + The first buffer pushed from each src pad also has the HEADER flag set. + Fixes playback of + https://github.com/web-platform-tests/wpt/raw/master/media/test.ogv in playbin3. + Fixes #1418 + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4745> + +2023-05-31 16:26:45 +0200 Guillaume Desmottes <guillaume.desmot...@onestream.live> + + * gst/playback/gststreamsynchronizer.c: + streamsynchronizer: check reset-time when handling FLUSH_STOP + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4755> + +2023-05-31 16:05:48 +0200 Guillaume Desmottes <guillaume.desmot...@onestream.live> + + * gst/playback/gststreamsynchronizer.c: + streamsynchronizer: reset eos on STREAM_START + self->eos was never reset after streamsynchronizer has sent EOS + (except on explicit flush or switching back to PAUSED). + As a result, synchronization was broken if new streams were pushed later + as gst_stream_synchronizer_wait() does not wait if self->eos is set. + Fix this by reseting self->eos on STREAM_START as that means a new + stream is being sent upstream and so a new EOS will follow later on. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4755> + +2023-05-29 02:14:44 +0900 Seungha Yang <seun...@centricular.com> + + * gst-libs/gst/video/video-blend.h: + video-blend: Fix linking error with C++ + Add missing extern "C" + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4735> + +2023-05-19 15:20:16 +0800 He Junyan <junyan...@intel.com> + + * gst-libs/gst/video/gstvideometa.c: + videometa: Only validate the alignment only when it contains some info + When the alignment contains nothing, all its fields are 0 and always + can be satisfied. So there is no need to validate it in this case. + And there are a lot of places just setting this alignment to default + all zero value, this validation generates lots of warnings. + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4704> + +2023-05-15 15:57:15 -0400 Nicolas Beland <nico...@inogeni.com> + + * ext/alsa/gstalsasink.c: + * ext/alsa/gstalsasink.h: + alsasink: Fix stall for transition of alsasink from PAUSED to READY with USB speakerphone + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4699> + +2022-07-05 05:14:01 +0900 Seungha Yang <seun...@centricular.com> + + * gst-libs/gst/video/convertframe.c: + video: convertframe: Add D3D11 specific conversion path + Add d3d11 conversion path to make gst_video_convert_sample() work + for GstD3D11Memory. + Note that just adding "d3d11download" to the exisitng code is + suboptimal from GstD3D11 point of view because: + * d3d11convert element can support crop/colorspace-conversion/scale + all at once while existing software pipeline needs intermediate steps + for the conversion + * "Process everything on GPU then download it to CPU memory" would be likely + faster than "download GPU memory to CPU then processing it on CPU" + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4689> + +2022-07-05 04:42:57 +0900 Seungha Yang <seun...@centricular.com> + + * gst-libs/gst/video/convertframe.c: + video: convertframe: Remove pointless const qualifier + const keyword for refcounted object does not very make sense + and unnecessary in this case + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4689> + +2023-05-19 12:36:19 +0100 Tim-Philipp Müller <t...@centricular.com> + + * meson.build: + Back to development + Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4679> + === release 1.22.3 === 2023-05-19 09:23:19 +0100 Tim-Philipp Müller <t...@centricular.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/NEWS new/gst-plugins-base-1.22.4/NEWS --- old/gst-plugins-base-1.22.3/NEWS 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/NEWS 2023-06-20 18:42:25.000000000 +0200 @@ -2,13 +2,13 @@ GStreamer 1.22.0 was originally released on 23 January 2023. -The latest bug-fix release in the stable 1.22 series is 1.22.3 and was -released on 19 May 2023. +The latest bug-fix release in the stable 1.22 series is 1.22.4 and was +released on 20 June 2023. See https://gstreamer.freedesktop.org/releases/1.22/ for the latest version of this document. -Last updated: Friday 19 May 2023, 01:00 UTC (log) +Last updated: Tuesday 20 June 2023, 16:30 UTC (log) Introduction @@ -1831,6 +1831,183 @@ - List of Merge Requests applied in 1.22.3 - List of Issues fixed in 1.22.3 +1.22.4 + +The fourth 1.22 bug-fix release (1.22.4) was released on 20 June 2023. + +This release only contains bugfixes and security fixes and it should be +safe to update from 1.22.x. + +Highlighted bugfixes in 1.22.4 + +- Security fixes for flacparse, dvdspu, and subparse +- d3d11videosink: Fix error on pause and play +- decklink: Correctly handle SDK strings on macOS and free strings + after usage on Linux +- filesink: Fix buffered mode writing of buffer lists and buffers with + multiple memories +- gldownload: handle passthrough without a critical +- h265parse: Fix framerate handling regression +- oggdemux: vp8 fixes +- mp4mux, qtmux, qtdemux: Opus audio mapping fixes +- pngdec: Fix wrong colours output from 16bit RGB images +- ptp clock: Work around ptpd bug in default configuration +- srtpdec: fix critical warnings on shutdown +- v4l2src: fix support for bayer format +- v4l2videoenc: support force-keyframe event in v4l2 encoder +- vtenc: apply DTS offset to ensure DTS <= PTS +- gst-python: allow more functions to be called before gst_init() +- cerbero: fix vaapi variant; add qt6 build on windows; ensure errors + on unguarded use of new APIs, require macOS 10.13 +- packages: ship codecalpha, rtponvif, dvbsubenc, switchbin, + videosignal plugins; fix pango crash on 32-bit windows +- various bug fixes, memory leak fixes, and other stability and + reliability improvements + +gstreamer + +- filesink: Fix buffered mode writing of buffer lists and buffers with + multiple memories +- basesink: Clear EOS flag on STREAM-START event +- typefindhelper: downgrade bogus error level debug log message +- ptp: Correctly parse clock ID from the commandline parameters in the + helper +- ptp: Work around bug in ptpd in default configuration + +gst-plugins-base + +- alsasink: Fix stall for transition from PAUSED to READY with USB + speakerphone. +- appsink: unref buffer in prev sample early so buffers from v4l2 can + be released properly +- basetextoverlay: Fix typo in âtext-yâ property description +- gldownload: handle passthrough without a critical +- glfilter: add parent meta to output buffer for input buffer +- oggdemux: vp8: Push headers downstream and detect keyframe packets +- opus: Fix potential crash when getting unexpected channel position +- streamsynchronizer: reset eos on STREAM_START +- subparse: Look for the closing > of a tag after the opening < +- video: convertframe: Add D3D11 specific conversion path +- videometa: Only validate the alignment only when it contains some + info +- video-blend: Fix linking error with C++ + +gst-plugins-good + +- flacparse: Avoid integer overflow in available data check for image + tags +- flvmux: use the correct timestamp to calculate wait times +- isomp4: Fix (E)AC-3 channel count handling +- jpegdec: fixes related to interlaced jpeg +- pngdec: Fix wrong colours output from 16bit RGB images +- qtmux, qtdemux: fix byte order for opus extension +- rtspsrc: Do not try send dropped get/set parameter +- qt5, qt6: Add more meson options and eliminate all automagic +- qt: glrenderer: donât attempt to use QWindow from non-Qt main thread +- qml6glsink: Support building on win32 +- v4l2src: fix support for bayer format +- v4l2: Change to query only up to + V4L2_CID_PRIVATE_BASE+V4L2_CID_MAX_CTRLS +- v4l2videodec: treat MPEG-1 format as MPEG-2 +- v4l2videoenc: support force keyframe event in v4l2 encoder +- tests: rtpbin_buffer_list: fix possible unaligned write/read on + 32-bit ARM + +gst-plugins-bad + +- asfmux: fix possible unaligned write on 32-bit ARM +- d3d11videosink: Fix error on pause and play +- d3dvideosink: Fix navigation event leak +- decklink: Correctly handle SDK strings on macOS and free strings + after usage on Linux +- dvdspu: Make sure enough data is allocated for the available data +- fdkaacdec: Support up to 5 rear channels +- h265parse: Fix framerate handling +- kmssink: Add STM32 LTDC and NXP i.MX8M Plus LCDIFv3 auto-detection +- sdpdemux: ensure that only one srcpad is created per stream +- srtpdec: fix critical warnings on shutdown +- testsrcbin: Remove spurious caps unref +- va: map the mbbrc to correct enum value in get_property() +- vtenc: apply DTS offset to ensure DTS <= PTS +- vtdec: time glitches on h264 playback +- waylandsink: Emit âmapâ signal boarder surface is ready + +gst-plugins-ugly + +- No changes + +gst-libav + +- No changes + +gst-rtsp-server + +- No changes + +gstreamer-vaapi + +- vaapidecodebin: donât load vaapipostproc if not available + +gstreamer-sharp + +- No changes + +gst-omx + +- No changes + +gst-python + +- python: More functions can be called before gst_init() + +gst-editing-services + +- ges: launcher: Never put sinks in a GstPipeline + +gst-validate + gst-integration-testsuites + +- No changes + +gst-examples + +- No changes + +Development build environment + +- No changes + +Cerbero build tool and packaging changes in 1.22.4 + +- Ship codecalpha, rtponvif, dvbsubenc, switchbin, videosignal plugins +- pango: Fix crash on Windows 32bit build +- qml6: Add support for building the qml6 plugin on Windows and bump + meson to 1.1.1 +- vaapi: update vaapi variant/recipe for meson option changes +- packages: Put libass in the same category as assrender +- cerbero: Donât extract if already extracted in fetch +- darwin: Ensure errors on unguarded use of new APIs, require macOS + 10.13 + +Contributors to 1.22.4 + +Andoni Morales Alastruey, Arun Raghavan, Colin Kinloch, Daniel Morin, +Edward Hervey, ekwange, Elliot Chen, François Laignel, Guillaume +Desmottes, Haihua Hu, He Junyan, Hou Qi, Jan Alexander Steffens +(heftig), Jochen Henneberg, Jordan Petridis, Kevin Song, Maksym +Khomenko, Marek Vasut, Mathieu Duponchelle, Matthew Waters, +Mengkejiergeli Ba, Michael Olbrich, Nicolas Beland, Nicolas Dufresne, +Nirbheek Chauhan, Philippe Normand, Piotr BrzeziÅski, Sebastian Dröge, +Seungha Yang, Thibault Saunier, Tim-Philipp Müller, VÃctor Manuel Jáquez +Leal, William Manley, Xavier Claessens, Yuri Fedoseev, + +⦠and many others who have contributed bug reports, translations, sent +suggestions or helped testing. Thank you all! + +List of merge requests and issues fixed in 1.22.4 + +- List of Merge Requests applied in 1.22.4 +- List of Issues fixed in 1.22.4 + Schedule for 1.24 Our next major feature release will be 1.24, and 1.23 will be the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/RELEASE new/gst-plugins-base-1.22.4/RELEASE --- old/gst-plugins-base-1.22.3/RELEASE 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/RELEASE 2023-06-20 18:42:25.000000000 +0200 @@ -1,4 +1,4 @@ -This is GStreamer gst-plugins-base 1.22.3. +This is GStreamer gst-plugins-base 1.22.4. The GStreamer team is thrilled to announce a new major feature release of your favourite cross-platform multimedia framework! diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/docs/plugins/gst_plugins_cache.json new/gst-plugins-base-1.22.4/docs/plugins/gst_plugins_cache.json --- old/gst-plugins-base-1.22.3/docs/plugins/gst_plugins_cache.json 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/docs/plugins/gst_plugins_cache.json 2023-06-20 18:42:25.000000000 +0200 @@ -8923,7 +8923,7 @@ "writable": false }, "text-y": { - "blurb": "Resulting X position of font rendering.", + "blurb": "Resulting Y position of font rendering.", "conditionally-available": false, "construct": false, "construct-only": false, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/alsa/gstalsasink.c new/gst-plugins-base-1.22.4/ext/alsa/gstalsasink.c --- old/gst-plugins-base-1.22.3/ext/alsa/gstalsasink.c 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/ext/alsa/gstalsasink.c 2023-06-20 18:42:25.000000000 +0200 @@ -259,7 +259,6 @@ alsasink->is_paused = FALSE; alsasink->after_paused = FALSE; alsasink->hw_support_pause = FALSE; - alsasink->stop_streaming_threads = TRUE; g_mutex_init (&alsasink->alsa_lock); g_mutex_init (&alsasink->delay_lock); @@ -943,7 +942,6 @@ alsa->channels, GST_AUDIO_BASE_SINK (alsa)->ringbuffer); #endif /* SND_CHMAP_API_VERSION */ - alsa->stop_streaming_threads = FALSE; return TRUE; /* ERRORS */ @@ -1063,8 +1061,6 @@ GST_ALSA_SINK_LOCK (asink); while (cptr > 0) { - if (alsa->stop_streaming_threads) - goto write_error; /* start by doing a blocking wait for free space. Set the timeout * to 4 times the period time */ err = snd_pcm_wait (alsa->handle, (4 * alsa->period_time / 1000)); @@ -1173,7 +1169,6 @@ CHECK (snd_pcm_pause (alsa->handle, 1), pause_error); GST_DEBUG_OBJECT (alsa, "pause done"); alsa->is_paused = TRUE; - alsa->stop_streaming_threads = TRUE; GST_ALSA_SINK_UNLOCK (asink); } else { gst_alsasink_stop (asink); @@ -1186,6 +1181,7 @@ GST_ERROR_OBJECT (alsa, "alsa-pause: pcm pause error: %s", snd_strerror (err)); GST_ALSA_SINK_UNLOCK (asink); + gst_alsasink_stop (asink); return; } } @@ -1205,7 +1201,6 @@ GST_ALSA_SINK_UNLOCK (asink); } - alsa->stop_streaming_threads = FALSE; return; resume_error: @@ -1231,7 +1226,6 @@ GST_DEBUG_OBJECT (alsa, "prepare"); CHECK (snd_pcm_prepare (alsa->handle), prepare_error); GST_DEBUG_OBJECT (alsa, "stop done"); - alsa->stop_streaming_threads = TRUE; GST_ALSA_SINK_UNLOCK (asink); return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/alsa/gstalsasink.h new/gst-plugins-base-1.22.4/ext/alsa/gstalsasink.h --- old/gst-plugins-base-1.22.3/ext/alsa/gstalsasink.h 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/ext/alsa/gstalsasink.h 2023-06-20 18:42:25.000000000 +0200 @@ -77,7 +77,6 @@ gboolean is_paused; gboolean after_paused; gboolean hw_support_pause; - gboolean stop_streaming_threads; snd_pcm_sframes_t pos_in_buffer; GMutex alsa_lock; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/gl/gstgldownloadelement.c new/gst-plugins-base-1.22.4/ext/gl/gstgldownloadelement.c --- old/gst-plugins-base-1.22.3/ext/gl/gstgldownloadelement.c 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/ext/gl/gstgldownloadelement.c 2023-06-20 18:42:25.000000000 +0200 @@ -1237,9 +1237,14 @@ (void) bclass; in_sync_meta = gst_buffer_get_gl_sync_meta (inbuf); - if (in_sync_meta) - gst_gl_sync_meta_wait (in_sync_meta, context); - + if (in_sync_meta) { + if (context) { + gst_gl_sync_meta_wait (in_sync_meta, context); + } else if (dl->mode != GST_GL_DOWNLOAD_MODE_PASSTHROUGH) { + GST_WARNING_OBJECT (dl, "No configured GL context in non-passthrough " + "mode. Cannot wait on incoming `GstGLSyncMeta`"); + } + } #if GST_GL_HAVE_PLATFORM_EGL && defined(HAVE_NVMM) if (dl->mode == GST_GL_DOWNLOAD_MODE_NVMM) { GstNVMMParentMeta *buf_meta = gst_buffer_get_nvmm_parent_meta (inbuf); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/ogg/gstoggdemux.c new/gst-plugins-base-1.22.4/ext/ogg/gstoggdemux.c --- old/gst-plugins-base-1.22.3/ext/ogg/gstoggdemux.c 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/ext/ogg/gstoggdemux.c 2023-06-20 18:42:25.000000000 +0200 @@ -580,6 +580,9 @@ if ((packet->bytes >= 7 && memcmp (packet->packet, "OVP80\2 ", 7) == 0) || packet->b_o_s || (packet->bytes >= 5 && memcmp (packet->packet, "OVP80", 5) == 0)) { + /* Request the first packet being pushed downstream to have the header + flag set, unblocking the keyframe_waiter_probe in decodebin3. */ + pad->need_header_flag = TRUE; /* We don't push header packets for VP8 */ goto done; } @@ -818,9 +821,11 @@ if (delta_unit) GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT); - /* set header flag for buffers that are also in the streamheaders */ - if (is_header) + /* set header flag for buffers that are also in the streamheaders or when explicitely requested (VP8). */ + if (is_header || pad->need_header_flag) { + pad->need_header_flag = FALSE; GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_HEADER); + } if (packet->packet != NULL) { /* copy packet in buffer */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/ogg/gstoggdemux.h new/gst-plugins-base-1.22.4/ext/ogg/gstoggdemux.h --- old/gst-plugins-base-1.22.3/ext/ogg/gstoggdemux.h 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/ext/ogg/gstoggdemux.h 2023-06-20 18:42:25.000000000 +0200 @@ -102,6 +102,8 @@ GList *continued; + gboolean need_header_flag; + gboolean discont; GstFlowReturn last_ret; /* last return of _pad_push() */ gboolean is_eos; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/ogg/gstoggstream.c new/gst-plugins-base-1.22.4/ext/ogg/gstoggstream.c --- old/gst-plugins-base-1.22.3/ext/ogg/gstoggstream.c 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/ext/ogg/gstoggstream.c 2023-06-20 18:42:25.000000000 +0200 @@ -761,6 +761,22 @@ return ((gpos & 0x07ffffff) == 0); } +static gboolean +is_packet_keyframe_vp8 (GstOggStream * pad, ogg_packet * packet) +{ + guint32 hdr; + gboolean is_kf = FALSE; + + if (packet->bytes < 3) { + return FALSE; + } + + hdr = GST_READ_UINT24_LE (packet->packet); + + is_kf = (hdr & 0x1); + return is_kf; +} + static gint64 granulepos_to_granule_vp8 (GstOggStream * pad, gint64 gpos) { @@ -2576,7 +2592,7 @@ granulepos_to_granule_vp8, granule_to_granulepos_vp8, is_keyframe_vp8, - NULL, + is_packet_keyframe_vp8, is_header_vp8, packet_duration_vp8, granulepos_to_key_granule_vp8, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/opus/gstopusenc.c new/gst-plugins-base-1.22.4/ext/opus/gstopusenc.c --- old/gst-plugins-base-1.22.3/ext/opus/gstopusenc.c 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/ext/opus/gstopusenc.c 2023-06-20 18:42:25.000000000 +0200 @@ -508,8 +508,7 @@ } } GST_WARNING_OBJECT (enc, - "Channel position %s is not representable in Vorbis order", - gst_opus_channel_names[position]); + "Channel position %d is not representable in Vorbis order", position); return -1; } @@ -620,8 +619,8 @@ needs to be done */ if (!positions_done[position]) { int cv; - GST_DEBUG_OBJECT (enc, "Channel position %s is not mapped yet, adding", - gst_opus_channel_names[position]); + GST_DEBUG_OBJECT (enc, "Channel position %d is not mapped yet, adding", + position); cv = gst_opus_enc_find_channel_position_in_vorbis_order (enc, position); if (cv < 0) g_assert_not_reached (); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/ext/pango/gstbasetextoverlay.c new/gst-plugins-base-1.22.4/ext/pango/gstbasetextoverlay.c --- old/gst-plugins-base-1.22.3/ext/pango/gstbasetextoverlay.c 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/ext/pango/gstbasetextoverlay.c 2023-06-20 18:42:25.000000000 +0200 @@ -430,7 +430,7 @@ */ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TEXT_Y, g_param_spec_int ("text-y", "vertical position", - "Resulting X position of font rendering.", -G_MAXINT, + "Resulting Y position of font rendering.", -G_MAXINT, G_MAXINT, DEFAULT_PROP_TEXT_Y, G_PARAM_READABLE)); /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst/playback/gststreamsynchronizer.c new/gst-plugins-base-1.22.4/gst/playback/gststreamsynchronizer.c --- old/gst-plugins-base-1.22.3/gst/playback/gststreamsynchronizer.c 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/gst/playback/gststreamsynchronizer.c 2023-06-20 18:42:25.000000000 +0200 @@ -388,6 +388,7 @@ GST_STREAM_SYNCHRONIZER_LOCK (self); self->have_group_id &= have_group_id; have_group_id = self->have_group_id; + self->eos = FALSE; stream = gst_streamsync_pad_get_stream (pad); @@ -580,12 +581,19 @@ GstSyncStream *stream; GList *l; GstClockTime new_group_start_time = 0; + gboolean reset_time; + + gst_event_parse_flush_stop (event, &reset_time); GST_STREAM_SYNCHRONIZER_LOCK (self); + stream = gst_streamsync_pad_get_stream (pad); - GST_DEBUG_OBJECT (pad, "Resetting segment for stream %d", - stream->stream_number); - gst_segment_init (&stream->segment, GST_FORMAT_UNDEFINED); + + if (reset_time) { + GST_DEBUG_OBJECT (pad, "Resetting segment for stream %d", + stream->stream_number); + gst_segment_init (&stream->segment, GST_FORMAT_UNDEFINED); + } stream->is_eos = FALSE; stream->eos_sent = FALSE; @@ -593,32 +601,35 @@ stream->wait = FALSE; g_cond_broadcast (&stream->stream_finish_cond); - for (l = self->streams; l; l = l->next) { - GstSyncStream *ostream = l->data; - GstClockTime start_running_time; - - if (ostream == stream || ostream->flushing) - continue; - - if (ostream->segment.format == GST_FORMAT_TIME) { - if (ostream->segment.rate > 0) - start_running_time = - gst_segment_to_running_time (&ostream->segment, - GST_FORMAT_TIME, ostream->segment.start); - else - start_running_time = - gst_segment_to_running_time (&ostream->segment, - GST_FORMAT_TIME, ostream->segment.stop); + if (reset_time) { + for (l = self->streams; l; l = l->next) { + GstSyncStream *ostream = l->data; + GstClockTime start_running_time; - new_group_start_time = MAX (new_group_start_time, start_running_time); + if (ostream == stream || ostream->flushing) + continue; + + if (ostream->segment.format == GST_FORMAT_TIME) { + if (ostream->segment.rate > 0) + start_running_time = + gst_segment_to_running_time (&ostream->segment, + GST_FORMAT_TIME, ostream->segment.start); + else + start_running_time = + gst_segment_to_running_time (&ostream->segment, + GST_FORMAT_TIME, ostream->segment.stop); + + new_group_start_time = + MAX (new_group_start_time, start_running_time); + } } - } - GST_DEBUG_OBJECT (pad, - "Updating group start time from %" GST_TIME_FORMAT " to %" - GST_TIME_FORMAT, GST_TIME_ARGS (self->group_start_time), - GST_TIME_ARGS (new_group_start_time)); - self->group_start_time = new_group_start_time; + GST_DEBUG_OBJECT (pad, + "Updating group start time from %" GST_TIME_FORMAT " to %" + GST_TIME_FORMAT, GST_TIME_ARGS (self->group_start_time), + GST_TIME_ARGS (new_group_start_time)); + self->group_start_time = new_group_start_time; + } gst_syncstream_unref (stream); GST_STREAM_SYNCHRONIZER_UNLOCK (self); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst/subparse/gstsubparse.c new/gst-plugins-base-1.22.4/gst/subparse/gstsubparse.c --- old/gst-plugins-base-1.22.3/gst/subparse/gstsubparse.c 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/gst/subparse/gstsubparse.c 2023-06-20 18:42:25.000000000 +0200 @@ -779,7 +779,7 @@ } if (*next_tag == '<' && *(next_tag + 1) == '/') { - end_tag = strchr (cur, '>'); + end_tag = strchr (next_tag, '>'); if (end_tag) { const gchar *last = NULL; if (num_open_tags > 0) @@ -794,6 +794,8 @@ } else { --num_open_tags; g_ptr_array_remove_index (open_tags, num_open_tags); + cur = end_tag + 1; + continue; } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst-libs/gst/app/gstappsink.c new/gst-plugins-base-1.22.4/gst-libs/gst/app/gstappsink.c --- old/gst-plugins-base-1.22.3/gst-libs/gst/app/gstappsink.c 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/gst-libs/gst/app/gstappsink.c 2023-06-20 18:42:25.000000000 +0200 @@ -775,6 +775,11 @@ gst_caps_replace (&priv->last_caps, NULL); gst_segment_init (&priv->preroll_segment, GST_FORMAT_UNDEFINED); gst_segment_init (&priv->last_segment, GST_FORMAT_UNDEFINED); + priv->sample = gst_sample_make_writable (priv->sample); + gst_sample_set_buffer (priv->sample, NULL); + gst_sample_set_buffer_list (priv->sample, NULL); + gst_sample_set_caps (priv->sample, NULL); + gst_sample_set_segment (priv->sample, NULL); g_mutex_unlock (&priv->mutex); return TRUE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst-libs/gst/gl/gstglfilter.c new/gst-plugins-base-1.22.4/gst-libs/gst/gl/gstglfilter.c --- old/gst-plugins-base-1.22.3/gst-libs/gst/gl/gstglfilter.c 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/gst-libs/gst/gl/gstglfilter.c 2023-06-20 18:42:25.000000000 +0200 @@ -1032,6 +1032,14 @@ if (out_sync_meta) gst_gl_sync_meta_set_sync_point (out_sync_meta, context); + /* since gl api is async operation, when return from transform() + * function, basetransform will unref input buffer immidiately, + * but gpu may still reading input buffer for rendering. Add parent + * buffer meta to hold one reference of inbuf, this can avoid this + * buffer sync problem. + */ + gst_buffer_add_parent_buffer_meta (outbuf, inbuf); + return ret ? GST_FLOW_OK : GST_FLOW_ERROR; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst-libs/gst/tag/tags.c new/gst-plugins-base-1.22.4/gst-libs/gst/tag/tags.c --- old/gst-plugins-base-1.22.3/gst-libs/gst/tag/tags.c 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/gst-libs/gst/tag/tags.c 2023-06-20 18:42:25.000000000 +0200 @@ -530,7 +530,8 @@ GstStructure *image_info = NULL; g_return_val_if_fail (image_data != NULL, NULL); - g_return_val_if_fail (image_data_len > 0, NULL); + g_return_val_if_fail (image_data_len > 0 + || image_data_len == G_MAXUINT32, NULL); g_return_val_if_fail (gst_tag_image_type_is_valid (image_type), NULL); GST_DEBUG ("image data len: %u bytes", image_data_len); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst-libs/gst/video/convertframe.c new/gst-plugins-base-1.22.4/gst-libs/gst/video/convertframe.c --- old/gst-plugins-base-1.22.3/gst-libs/gst/video/convertframe.c 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/gst-libs/gst/video/convertframe.c 2023-06-20 18:42:25.000000000 +0200 @@ -114,20 +114,101 @@ } static GstElement * +build_convert_frame_pipeline_d3d11 (GstElement ** src_element, + GstElement ** sink_element, GstCaps * from_caps, GstCaps * to_caps, + GError ** err) +{ + GstElement *pipeline = NULL; + GstElement *appsrc = NULL; + GstElement *d3d11_convert = NULL; + GstElement *d3d11_download = NULL; + GstElement *convert = NULL; + GstElement *enc = NULL; + GstElement *appsink = NULL; + GError *error = NULL; + + if (!create_element ("appsrc", &appsrc, &error) || + !create_element ("d3d11convert", &d3d11_convert, &error) || + !create_element ("d3d11download", &d3d11_download, &error) || + !create_element ("videoconvert", &convert, &error) || + !create_element ("appsink", &appsink, &error)) { + GST_ERROR ("Could not create element"); + goto failed; + } + + if (caps_are_raw (to_caps)) { + if (!create_element ("identity", &enc, &error)) { + GST_ERROR ("Could not create identity element"); + goto failed; + } + } else { + enc = get_encoder (to_caps, &error); + if (!enc) { + GST_ERROR ("Could not create encoder"); + goto failed; + } + } + + g_object_set (appsrc, "caps", from_caps, "emit-signals", TRUE, + "format", GST_FORMAT_TIME, NULL); + g_object_set (appsink, "caps", to_caps, "emit-signals", TRUE, NULL); + + pipeline = gst_pipeline_new ("d3d11-convert-frame-pipeline"); + gst_bin_add_many (GST_BIN (pipeline), appsrc, d3d11_convert, d3d11_download, + convert, enc, appsink, NULL); + + if (!gst_element_link_many (appsrc, + d3d11_convert, d3d11_download, convert, enc, appsink, NULL)) { + /* Now pipeline takes ownership of all elements, so only top-level + * pipeline should be cleared */ + appsrc = d3d11_convert = convert = enc = appsink = NULL; + + error = g_error_new (GST_CORE_ERROR, GST_CORE_ERROR_NEGOTIATION, + "Could not configure pipeline for conversion"); + } + + *src_element = appsrc; + *sink_element = appsink; + + return pipeline; + +failed: + if (err) + *err = error; + else + g_clear_error (&error); + + gst_clear_object (&pipeline); + gst_clear_object (&appsrc); + gst_clear_object (&d3d11_convert); + gst_clear_object (&d3d11_download); + gst_clear_object (&convert); + gst_clear_object (&enc); + gst_clear_object (&appsink); + + return NULL; +} + +static GstElement * build_convert_frame_pipeline (GstElement ** src_element, - GstElement ** sink_element, const GstCaps * from_caps, - GstVideoCropMeta * cmeta, const GstCaps * to_caps, GError ** err) + GstElement ** sink_element, GstCaps * from_caps, + GstVideoCropMeta * cmeta, GstCaps * to_caps, GError ** err) { GstElement *vcrop = NULL, *csp = NULL, *csp2 = NULL, *vscale = NULL; GstElement *src = NULL, *sink = NULL, *encoder = NULL, *pipeline; GstElement *dl = NULL; GstVideoInfo info; GError *error = NULL; -#ifdef HAVE_GL GstCapsFeatures *features; features = gst_caps_get_features (from_caps, 0); - if (gst_caps_features_contains (features, GST_CAPS_FEATURE_MEMORY_GL_MEMORY)) + if (features && gst_caps_features_contains (features, "memory:D3D11Memory")) { + return build_convert_frame_pipeline_d3d11 (src_element, sink_element, + from_caps, to_caps, err); + } +#ifdef HAVE_GL + if (features && + gst_caps_features_contains (features, GST_CAPS_FEATURE_MEMORY_GL_MEMORY)) if (!create_element ("gldownload", &dl, &error)) goto no_elements; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst-libs/gst/video/gstvideometa.c new/gst-plugins-base-1.22.4/gst-libs/gst/video/gstvideometa.c --- old/gst-plugins-base-1.22.3/gst-libs/gst/video/gstvideometa.c 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/gst-libs/gst/video/gstvideometa.c 2023-06-20 18:42:25.000000000 +0200 @@ -395,12 +395,40 @@ } static gboolean +gst_video_meta_is_alignment_valid (GstVideoAlignment * align) +{ + gint i; + + g_return_val_if_fail (align != NULL, FALSE); + + if (align->padding_top != 0 || align->padding_bottom != 0 || + align->padding_left != 0 || align->padding_right != 0) + return TRUE; + + for (i = 0; i < GST_VIDEO_MAX_PLANES; i++) { + if (align->stride_align[i] != 0) + return TRUE; + } + + return FALSE; +} + +static gboolean gst_video_meta_validate_alignment (GstVideoMeta * meta, gsize plane_size[GST_VIDEO_MAX_PLANES]) { GstVideoInfo info; guint i; + if (!gst_video_meta_is_alignment_valid (&meta->alignment)) { + GST_LOG ("Set alignment on meta to all zero"); + + /* When alignment is invalid, no further check is needed, + unless user wants to calculate the pitch for each plane. */ + if (!plane_size) + return TRUE; + } + gst_video_info_init (&info); gst_video_info_set_format (&info, meta->format, meta->width, meta->height); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst-libs/gst/video/video-blend.h new/gst-plugins-base-1.22.4/gst-libs/gst/video/video-blend.h --- old/gst-plugins-base-1.22.3/gst-libs/gst/video/video-blend.h 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/gst-libs/gst/video/video-blend.h 2023-06-20 18:42:25.000000000 +0200 @@ -27,6 +27,8 @@ #include <gst/gst.h> #include <gst/video/video.h> +G_BEGIN_DECLS + GST_VIDEO_API void gst_video_blend_scale_linear_RGBA (GstVideoInfo * src, GstBuffer * src_buffer, gint dest_height, gint dest_width, @@ -38,4 +40,6 @@ gint x, gint y, gfloat global_alpha); +G_END_DECLS + #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/gst-plugins-base.doap new/gst-plugins-base-1.22.4/gst-plugins-base.doap --- old/gst-plugins-base-1.22.3/gst-plugins-base.doap 2023-05-19 10:23:19.000000000 +0200 +++ new/gst-plugins-base-1.22.4/gst-plugins-base.doap 2023-06-20 18:42:25.000000000 +0200 @@ -36,6 +36,16 @@ <release> <Version> + <revision>1.22.4</revision> + <branch>1.22</branch> + <name></name> + <created>2023-06-20</created> + <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.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 <l...@li.org>\n" @@ -17,30 +17,30 @@ "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ext/alsa/gstalsasink.c:606 +#: ext/alsa/gstalsasink.c:605 msgid "Could not open device for playback in mono mode." msgstr "" -#: ext/alsa/gstalsasink.c:608 +#: ext/alsa/gstalsasink.c:607 msgid "Could not open device for playback in stereo mode." msgstr "" -#: ext/alsa/gstalsasink.c:612 +#: ext/alsa/gstalsasink.c:611 #, c-format msgid "Could not open device for playback in %d-channel mode." msgstr "" -#: ext/alsa/gstalsasink.c:886 +#: ext/alsa/gstalsasink.c:885 msgid "" "Could not open audio device for playback. Device is being used by another " "application." msgstr "" -#: ext/alsa/gstalsasink.c:891 +#: ext/alsa/gstalsasink.c:890 msgid "Could not open audio device for playback." msgstr "" -#: ext/alsa/gstalsasink.c:1117 +#: ext/alsa/gstalsasink.c:1113 msgid "Error outputting to audio device. The device has been disconnected." msgstr "" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-plugins-base-1.22.3/po/gst-plugins-base.pot new/gst-plugins-base-1.22.4/po/gst-plugins-base.pot --- old/gst-plugins-base-1.22.3/po/gst-plugins-base.pot 2023-05-19 10:24:07.610512000 +0200 +++ new/gst-plugins-base-1.22.4/po/gst-plugins-base.pot 2023-06-20 18:44:09.739450500 +0200 @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gst-plugins-base-1.22.3\n" +"Project-Id-Version: gst-plugins-base-1.22.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-19 09:24+0100\n" +"POT-Creation-Date: 2023-06-20 17:44+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <l...@li.org>\n" @@ -17,30 +17,30 @@ "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ext/alsa/gstalsasink.c:606 +#: ext/alsa/gstalsasink.c:605 msgid "Could not open device for playback in mono mode." msgstr "" -#: ext/alsa/gstalsasink.c:608 +#: ext/alsa/gstalsasink.c:607 msgid "Could not open device for playback in stereo mode." msgstr "" -#: ext/alsa/gstalsasink.c:612 +#: ext/alsa/gstalsasink.c:611 #, c-format msgid "Could not open device for playback in %d-channel mode." msgstr "" -#: ext/alsa/gstalsasink.c:886 +#: ext/alsa/gstalsasink.c:885 msgid "" "Could not open audio device for playback. Device is being used by another " "application." msgstr "" -#: ext/alsa/gstalsasink.c:891 +#: ext/alsa/gstalsasink.c:890 msgid "Could not open audio device for playback." msgstr "" -#: ext/alsa/gstalsasink.c:1117 +#: ext/alsa/gstalsasink.c:1113 msgid "Error outputting to audio device. The device has been disconnected." msgstr "" ++++++ reduce-required-meson.patch ++++++ --- /var/tmp/diff_new_pack.7GokJF/_old 2023-07-01 23:17:26.798042843 +0200 +++ /var/tmp/diff_new_pack.7GokJF/_new 2023-07-01 23:17:26.802042867 +0200 @@ -1,10 +1,10 @@ -Index: gst-plugins-base-1.22.3/meson.build +Index: gst-plugins-base-1.22.4/meson.build =================================================================== ---- gst-plugins-base-1.22.3.orig/meson.build -+++ gst-plugins-base-1.22.3/meson.build +--- gst-plugins-base-1.22.4.orig/meson.build ++++ gst-plugins-base-1.22.4/meson.build @@ -1,6 +1,6 @@ project('gst-plugins-base', 'c', - version : '1.22.3', + version : '1.22.4', - meson_version : '>= 0.62', + meson_version : '>= 0.61', default_options : [ 'warning_level=1',