Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kpipewire for openSUSE:Factory checked in at 2023-05-11 12:32:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kpipewire (Old) and /work/SRC/openSUSE:Factory/.kpipewire.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kpipewire" Thu May 11 12:32:14 2023 rev:13 rq:1085885 version:5.27.5 Changes: -------- --- /work/SRC/openSUSE:Factory/kpipewire/kpipewire.changes 2023-04-05 21:34:44.906257984 +0200 +++ /work/SRC/openSUSE:Factory/.kpipewire.new.1533/kpipewire.changes 2023-05-11 12:32:26.050392848 +0200 @@ -1,0 +2,14 @@ +Tue May 9 13:44:08 UTC 2023 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to 5.27.5 + * New bugfix release + * For more details please see: + * https://kde.org/announcements/plasma/5/5.27.5 +- Changes since 5.27.4: + * Item: hide the cursor when we start getting null positions + * Item: Make sure we have a texture at all times + * Do not process corrupt frames + * Record: Do not crash when closing while recording (kde#467593) + * Expose the stream size in PipewireSourceItem + +------------------------------------------------------------------- Old: ---- kpipewire-5.27.4.tar.xz kpipewire-5.27.4.tar.xz.sig New: ---- kpipewire-5.27.5.tar.xz kpipewire-5.27.5.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kpipewire.spec ++++++ --- /var/tmp/diff_new_pack.ITq9nL/_old 2023-05-11 12:32:26.566395385 +0200 +++ /var/tmp/diff_new_pack.ITq9nL/_new 2023-05-11 12:32:26.570395404 +0200 @@ -21,7 +21,7 @@ %{!?_plasma5_bugfix: %global _plasma5_bugfix %{version}} %bcond_without released Name: kpipewire -Version: 5.27.4 +Version: 5.27.5 Release: 0 Summary: PipeWire integration for KDE Plasma License: LGPL-2.0-only AND LGPL-3.0-only ++++++ kpipewire-5.27.4.tar.xz -> kpipewire-5.27.5.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-5.27.4/CMakeLists.txt new/kpipewire-5.27.5/CMakeLists.txt --- old/kpipewire-5.27.4/CMakeLists.txt 2023-04-04 12:38:03.000000000 +0200 +++ new/kpipewire-5.27.5/CMakeLists.txt 2023-05-09 13:36:50.000000000 +0200 @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.16) project(KPipewire) -set(PROJECT_VERSION "5.27.4") +set(PROJECT_VERSION "5.27.5") set(PROJECT_VERSION_MAJOR 5) set(KF5_MIN_VERSION "5.102.0") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-5.27.4/po/gl/kpipewire5.po new/kpipewire-5.27.5/po/gl/kpipewire5.po --- old/kpipewire-5.27.4/po/gl/kpipewire5.po 1970-01-01 01:00:00.000000000 +0100 +++ new/kpipewire-5.27.5/po/gl/kpipewire5.po 2023-05-09 13:36:50.000000000 +0200 @@ -0,0 +1,33 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kpipewire package. +# Adrián Chaves (Gallaecio) <adr...@chaves.io>, 2023. +# +msgid "" +msgstr "" +"Project-Id-Version: kpipewire\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-05-31 00:52+0000\n" +"PO-Revision-Date: 2023-04-24 07:46+0200\n" +"Last-Translator: Adrián Chaves (Gallaecio) <adr...@chaves.io>\n" +"Language-Team: Galician <proxe...@trasno.gal>\n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 22.12.3\n" + +#: pipewirecore.cpp:86 +#, kde-format +msgid "Failed to create PipeWire context" +msgstr "Non se puido crear o contexto de PipeWire" + +#: pipewirecore.cpp:96 +#, kde-format +msgid "Failed to connect to PipeWire" +msgstr "Non se puido conectar a PipeWire" + +#: pipewirecore.cpp:103 +#, kde-format +msgid "Failed to start main PipeWire loop" +msgstr "Non se puido iniciar o bucle principal de PipeWire" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-5.27.4/po/ja/kpipewire5.po new/kpipewire-5.27.5/po/ja/kpipewire5.po --- old/kpipewire-5.27.4/po/ja/kpipewire5.po 1970-01-01 01:00:00.000000000 +0100 +++ new/kpipewire-5.27.5/po/ja/kpipewire5.po 2023-05-09 13:36:50.000000000 +0200 @@ -0,0 +1,30 @@ +msgid "" +msgstr "" +"Project-Id-Version: kpipewire\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-05-31 00:52+0000\n" +"PO-Revision-Date: 2022-06-04 21:24-0700\n" +"Last-Translator: Japanese KDE translation team <kde...@kde.org>\n" +"Language-Team: Japanese <kde...@kde.org>\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: pipewirecore.cpp:86 +#, kde-format +msgid "Failed to create PipeWire context" +msgstr "" + +#: pipewirecore.cpp:96 +#, kde-format +msgid "Failed to connect to PipeWire" +msgstr "" + +#: pipewirecore.cpp:103 +#, kde-format +msgid "Failed to start main PipeWire loop" +msgstr "" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-5.27.4/po/zh_CN/kpipewire5.po new/kpipewire-5.27.5/po/zh_CN/kpipewire5.po --- old/kpipewire-5.27.4/po/zh_CN/kpipewire5.po 2023-04-04 12:38:03.000000000 +0200 +++ new/kpipewire-5.27.5/po/zh_CN/kpipewire5.po 2023-05-09 13:36:50.000000000 +0200 @@ -3,7 +3,7 @@ "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2022-05-31 00:52+0000\n" -"PO-Revision-Date: 2023-03-27 12:02\n" +"PO-Revision-Date: 2023-04-29 08:36\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-5.27.4/po/zh_TW/kpipewire5.po new/kpipewire-5.27.5/po/zh_TW/kpipewire5.po --- old/kpipewire-5.27.4/po/zh_TW/kpipewire5.po 1970-01-01 01:00:00.000000000 +0100 +++ new/kpipewire-5.27.5/po/zh_TW/kpipewire5.po 2023-05-09 13:36:50.000000000 +0200 @@ -0,0 +1,34 @@ +# Chinese translations for kpipewire package +# kpipewire å¥ä»¶çæ£é«ä¸æç¿»è¯. +# Copyright (C) 2022 This file is copyright: +# This file is distributed under the same license as the kpipewire package. +# Automatically generated, 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: kpipewire\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-05-31 00:52+0000\n" +"PO-Revision-Date: 2022-05-31 00:52+0000\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: pipewirecore.cpp:86 +#, kde-format +msgid "Failed to create PipeWire context" +msgstr "" + +#: pipewirecore.cpp:96 +#, kde-format +msgid "Failed to connect to PipeWire" +msgstr "" + +#: pipewirecore.cpp:103 +#, kde-format +msgid "Failed to start main PipeWire loop" +msgstr "" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-5.27.4/src/CMakeLists.txt new/kpipewire-5.27.5/src/CMakeLists.txt --- old/kpipewire-5.27.4/src/CMakeLists.txt 2023-04-04 12:38:03.000000000 +0200 +++ new/kpipewire-5.27.5/src/CMakeLists.txt 2023-05-09 13:36:50.000000000 +0200 @@ -49,6 +49,8 @@ target_link_libraries(KPipeWire PRIVATE Qt::Quick Qt::GuiPrivate KF5::I18n KF5::CoreAddons PkgConfig::PipeWire epoxy::epoxy PkgConfig::GBM) +target_compile_definitions(KPipeWire INTERFACE -DKPW_WITH_SOURCESIZE=1) + if (QT_MAJOR_VERSION EQUAL "5") target_link_libraries(KPipeWire PRIVATE Qt5::Gui_EGL) if (${Qt5Gui_OPENGL_IMPLEMENTATION} STREQUAL "GLESv2") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-5.27.4/src/pipewirerecord.cpp new/kpipewire-5.27.5/src/pipewirerecord.cpp --- old/kpipewire-5.27.4/src/pipewirerecord.cpp 2023-04-04 12:38:03.000000000 +0200 +++ new/kpipewire-5.27.5/src/pipewirerecord.cpp 2023-05-09 13:36:50.000000000 +0200 @@ -117,6 +117,10 @@ if (d->m_fd) { close(*d->m_fd); } + + if (d->m_recordThread) { + d->m_recordThread->wait(); + } } PipeWireRecord::State PipeWireRecord::state() const diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-5.27.4/src/pipewiresourceitem.cpp new/kpipewire-5.27.5/src/pipewiresourceitem.cpp --- old/kpipewire-5.27.4/src/pipewiresourceitem.cpp 2023-04-04 12:38:03.000000000 +0200 +++ new/kpipewire-5.27.5/src/pipewiresourceitem.cpp 2023-05-09 13:36:50.000000000 +0200 @@ -151,6 +151,7 @@ d->m_createNextTexture = [] { return nullptr; }; + Q_EMIT streamSizeChanged(); } void PipeWireSourceItem::refresh() @@ -163,11 +164,16 @@ if (d->m_nodeId == 0) { d->m_stream.reset(nullptr); + Q_EMIT streamSizeChanged(); + d->m_createNextTexture = [] { return nullptr; }; } else { d->m_stream.reset(new PipeWireSourceStream(this)); + Q_EMIT streamSizeChanged(); + connect(d->m_stream.get(), &PipeWireSourceStream::streamParametersChanged, this, &PipeWireSourceItem::streamSizeChanged); + d->m_stream->createStream(d->m_nodeId, d->m_fd.value_or(0)); if (!d->m_stream->error().isEmpty()) { d->m_stream.reset(nullptr); @@ -279,7 +285,7 @@ pwNode->discardCursor(); } else { QSGImageNode *cursorNode = pwNode->cursorNode(window()); - if (d->m_cursor.dirty) { + if (d->m_cursor.dirty || !cursorNode->texture()) { cursorNode->setTexture(window()->createTextureFromImage(d->m_cursor.texture)); d->m_cursor.dirty = false; } @@ -322,6 +328,9 @@ d->m_cursor.dirty = true; d->m_cursor.texture = frame.cursor->texture; } + } else { + d->m_cursor.position = std::nullopt; + d->m_cursor.hotspot = {}; } if (frame.dmabuf) { @@ -442,3 +451,11 @@ { return d->m_nodeId; } + +QSize PipeWireSourceItem::streamSize() const +{ + if (!d->m_stream) { + return QSize(); + } + return d->m_stream->size(); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-5.27.4/src/pipewiresourceitem.h new/kpipewire-5.27.5/src/pipewiresourceitem.h --- old/kpipewire-5.27.4/src/pipewiresourceitem.h 2023-04-04 12:38:03.000000000 +0200 +++ new/kpipewire-5.27.5/src/pipewiresourceitem.h 2023-05-09 13:36:50.000000000 +0200 @@ -44,6 +44,12 @@ * Transfers the ownership of the fd, will close it when it's done with it. */ Q_PROPERTY(uint fd READ fd WRITE setFd NOTIFY fdChanged RESET resetFd) + + /** + * Returns the size of the source being rendered + * @note: This won't be updated until the first frame is recieved + */ + Q_PROPERTY(QSize streamSize READ streamSize NOTIFY streamSizeChanged) public: enum class StreamState { Error, Unconnected, Connecting, Paused, Streaming }; Q_ENUM(StreamState); @@ -61,6 +67,8 @@ void resetFd(); uint fd() const; + QSize streamSize() const; + void componentComplete() override; void releaseResources() override; @@ -70,6 +78,7 @@ void nodeIdChanged(uint nodeId); void fdChanged(uint fd); void stateChanged(); + void streamSizeChanged(); private: void itemChange(ItemChange change, const ItemChangeData &data) override; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpipewire-5.27.4/src/pipewiresourcestream.cpp new/kpipewire-5.27.5/src/pipewiresourcestream.cpp --- old/kpipewire-5.27.4/src/pipewiresourcestream.cpp 2023-04-04 12:38:03.000000000 +0200 +++ new/kpipewire-5.27.5/src/pipewiresourcestream.cpp 2023-05-09 13:36:50.000000000 +0200 @@ -477,7 +477,7 @@ } } - if (spaBuffer->datas->chunk->size == 0) { + if (spaBuffer->datas->chunk->size == 0 || spaBuffer->datas->chunk->flags == SPA_CHUNK_FLAG_CORRUPTED) { // do not get a frame } else if (spaBuffer->datas->type == SPA_DATA_MemFd) { if (spaBuffer->datas->chunk->size == 0)