[arch-commits] Commit in xdg-desktop-portal-kde/repos/extra-x86_64 (3 files)

Antonio Rojas arojas at archlinux.org
Thu Jul 19 17:35:58 UTC 2018


    Date: Thursday, July 19, 2018 @ 17:35:58
  Author: arojas
Revision: 329071

archrelease: copy trunk to extra-x86_64

Added:
  xdg-desktop-portal-kde/repos/extra-x86_64/PKGBUILD
    (from rev 329070, xdg-desktop-portal-kde/trunk/PKGBUILD)
Deleted:
  xdg-desktop-portal-kde/repos/extra-x86_64/PKGBUILD
  xdg-desktop-portal-kde/repos/extra-x86_64/pipewire-0.2.diff

-------------------+
 PKGBUILD          |   89 ++++++++++++++--------------
 pipewire-0.2.diff |  160 ----------------------------------------------------
 2 files changed, 45 insertions(+), 204 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2018-07-19 17:35:32 UTC (rev 329070)
+++ PKGBUILD	2018-07-19 17:35:58 UTC (rev 329071)
@@ -1,44 +0,0 @@
-# $Id$
-# Maintainer: Antonio Rojas <arojas at archlinux.org>
-
-pkgname=xdg-desktop-portal-kde
-pkgver=5.13.3
-pkgrel=2
-pkgdesc='A backend implementation for xdg-desktop-portal using Qt/KF5'
-arch=(x86_64)
-url='https://www.kde.org/workspaces/plasmadesktop/'
-license=(LGPL)
-depends=(ki18n knotifications pipewire libepoxy kwayland kwidgetsaddons)
-makedepends=(extra-cmake-modules)
-provides=(xdg-desktop-portal-impl)
-groups=(plasma)
-source=("https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"{,.sig}
-        pipewire-0.2.diff)
-sha256sums=('e7302fdccb17f53aaf3cba37fa3cffc4d5f4cef0c38f2060e661b1bbab6c094c'
-            'SKIP'
-            'eec0732df19ff3502f3763da29d84ee6bd97c75900a0e6d11df5559d3d9b7092')
-validpgpkeys=('2D1D5B0588357787DE9EE225EC94D18F7F05997E'  # Jonathan Riddell
-              '0AAC775BB6437A8D9AF7A3ACFE0784117FBCE11D'  # Bhushan Shah <bshah at kde.org>
-              'D07BD8662C56CB291B316EB2F5675605C74E02CF'  # David Edmundson
-              '1FA881591C26B276D7A5518EEAAF29B42A678C20') # Marco Martin <notmart at gmail.com>
-
-prepare() {
-  mkdir -p build
-  cd $pkgname-$pkgver
-  # Port of mutter commit 0407a8b33d
-  patch -Np1 -i ../pipewire-0.2.diff
-}
-
-build() {
-  cd build
-  cmake ../$pkgname-$pkgver \
-    -DCMAKE_INSTALL_PREFIX=/usr \
-    -DCMAKE_INSTALL_LIBDIR=lib \
-    -DCMAKE_INSTALL_LIBEXECDIR=lib \
-    -DBUILD_TESTING=OFF
-  cmake --build .
-}
-
-package() {
-  DESTDIR="$pkgdir" cmake --build build --target install
-}

Copied: xdg-desktop-portal-kde/repos/extra-x86_64/PKGBUILD (from rev 329070, xdg-desktop-portal-kde/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2018-07-19 17:35:58 UTC (rev 329071)
@@ -0,0 +1,45 @@
+# $Id$
+# Maintainer: Antonio Rojas <arojas at archlinux.org>
+
+pkgname=xdg-desktop-portal-kde
+pkgver=5.13.3
+pkgrel=3
+pkgdesc='A backend implementation for xdg-desktop-portal using Qt/KF5'
+arch=(x86_64)
+url='https://www.kde.org/workspaces/plasmadesktop/'
+license=(LGPL)
+depends=(ki18n knotifications pipewire libepoxy kwayland kwidgetsaddons)
+makedepends=(extra-cmake-modules)
+provides=(xdg-desktop-portal-impl)
+groups=(plasma)
+source=("https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"{,.sig}
+        xdg-desktop-portal-kde-pipewire-0.2.patch::"https://cgit.kde.org/xdg-desktop-portal-kde.git/patch/?id=96abec69")
+sha256sums=('e7302fdccb17f53aaf3cba37fa3cffc4d5f4cef0c38f2060e661b1bbab6c094c'
+            'SKIP'
+            '1db01f59867d7fbd2863749010b1688974879cc1ec0a9d96c0d85b3c8fc39e15')
+validpgpkeys=('2D1D5B0588357787DE9EE225EC94D18F7F05997E'  # Jonathan Riddell
+              '0AAC775BB6437A8D9AF7A3ACFE0784117FBCE11D'  # Bhushan Shah <bshah at kde.org>
+              'D07BD8662C56CB291B316EB2F5675605C74E02CF'  # David Edmundson
+              '1FA881591C26B276D7A5518EEAAF29B42A678C20') # Marco Martin <notmart at gmail.com>
+
+prepare() {
+  mkdir -p build
+  cd $pkgname-$pkgver
+  # Fix build with pipewire 0.2
+  patch -Np1 -i ../xdg-desktop-portal-kde-pipewire-0.2.patch
+}
+
+build() {
+  cd build
+  cmake ../$pkgname-$pkgver \
+    -DCMAKE_INSTALL_PREFIX=/usr \
+    -DCMAKE_INSTALL_LIBDIR=lib \
+    -DCMAKE_INSTALL_LIBEXECDIR=lib \
+    -DBUILD_TESTING=OFF
+  make
+}
+
+package() {
+  cd build
+  make DESTDIR="$pkgdir" install
+}

Deleted: pipewire-0.2.diff
===================================================================
--- pipewire-0.2.diff	2018-07-19 17:35:32 UTC (rev 329070)
+++ pipewire-0.2.diff	2018-07-19 17:35:58 UTC (rev 329071)
@@ -1,160 +0,0 @@
-diff -u -r xdg-desktop-portal-kde-5.13.3/src/screencaststream.cpp xdg-desktop-portal-kde-5.13.3-pw02/src/screencaststream.cpp
---- xdg-desktop-portal-kde-5.13.3/src/screencaststream.cpp	2018-07-10 12:18:37.000000000 +0200
-+++ xdg-desktop-portal-kde-5.13.3-pw02/src/screencaststream.cpp	2018-07-18 21:48:57.801596393 +0200
-@@ -43,8 +43,6 @@
- #define MIN_DIVISOR     1.0e-10
- #define MAX_ERROR       1.0e-20
- 
--#define PROP_RANGE(min, max) 2, (min), (max)
--
- #define BITS_PER_PIXEL  4
- 
- static int greatestCommonDivisor(int a, int b)
-@@ -193,7 +191,7 @@
-     }
- }
- 
--static void onStreamFormatChanged(void *data, struct spa_pod *format)
-+static void onStreamFormatChanged(void *data, const struct spa_pod *format)
- {
-     qCDebug(XdgDesktopPortalKdeScreenCastStream) << "Stream format changed";
- 
-@@ -202,7 +200,7 @@
-     uint8_t paramsBuffer[1024];
-     int32_t width, height, stride, size;
-     struct spa_pod_builder pod_builder;
--    struct spa_pod *params[1];
-+    const struct spa_pod *params[1];
-     const int bpp = 4;
- 
-     if (!format) {
-@@ -223,7 +221,7 @@
-                                                    pw->pwCoreType->param.idBuffers, pw->pwCoreType->param_buffers.Buffers,
-                                                    ":", pw->pwCoreType->param_buffers.size, "i", size,
-                                                    ":", pw->pwCoreType->param_buffers.stride, "i", stride,
--                                                   ":", pw->pwCoreType->param_buffers.buffers, "iru", 16, PROP_RANGE (2, 16),
-+                                                   ":", pw->pwCoreType->param_buffers.buffers, "iru", 16, SPA_POD_PROP_MIN_MAX (2, 16),
-                                                    ":", pw->pwCoreType->param_buffers.align, "i", 16);
- 
-     pw_stream_finish_format (pw->pwStream, 0,
-@@ -245,8 +243,7 @@
-     .format_changed = onStreamFormatChanged,
-     .add_buffer = nullptr,
-     .remove_buffer = nullptr,
--    .new_buffer = nullptr,
--    .need_buffer = nullptr,
-+    .process = nullptr,
- };
- 
- ScreenCastStream::ScreenCastStream(const QSize &resolution, QObject *parent)
-@@ -321,36 +318,32 @@
- 
-     const float frameRate = 25;
- 
--    spa_fraction maxFramerate;
--    spa_fraction minFramerate;
-     const spa_pod *params[1];
- 
-     pwStream = pw_stream_new(pwRemote, "kwin-screen-cast", nullptr);
- 
--    PwFraction fraction = pipewireFractionFromDouble(frameRate);
--
--    minFramerate = SPA_FRACTION(1, 1);
--    maxFramerate = SPA_FRACTION((uint32_t)fraction.num, (uint32_t)fraction.denom);
--
--    spa_rectangle minResolution = SPA_RECTANGLE(1, 1);
-     int width = resolution.width();
-     int height = resolution.height();
-+    spa_rectangle minResolution = SPA_RECTANGLE(1, 1);
-+    spa_rectangle maxResolution = SPA_RECTANGLE((uint32_t)width, (uint32_t)height);
- 
--    spa_fraction paramFraction = SPA_FRACTION(0, 1);
--    spa_rectangle paramRectangle = SPA_RECTANGLE((uint32_t)width, (uint32_t)height);
-+    const spa_fraction variableFramerate = SPA_FRACTION(0, 1);
-+    PwFraction fraction = pipewireFractionFromDouble(frameRate);
-+    spa_fraction minFramerate = SPA_FRACTION(1, 1);
-+    spa_fraction maxFramerate = SPA_FRACTION((uint32_t)fraction.num, (uint32_t)fraction.denom);
- 
-     params[0] = (spa_pod*)spa_pod_builder_object(&podBuilder,
-                                        pwCoreType->param.idEnumFormat, pwCoreType->spa_format,
-                                        "I", pwType->media_type.video,
-                                        "I", pwType->media_subtype.raw,
-                                        ":", pwType->format_video.format, "I", pwType->video_format.RGBx,
--                                       ":", pwType->format_video.size, "Rru", &minResolution, SPA_POD_PROP_MIN_MAX(&width, &height),
--                                       ":", pwType->format_video.framerate, "F", &paramFraction,
--                                       ":", pwType->format_video.max_framerate, "Fru", &maxFramerate, PROP_RANGE (&minFramerate, &maxFramerate));
-+                                       ":", pwType->format_video.size, "Rru", &minResolution, SPA_POD_PROP_MIN_MAX(&minResolution, &maxResolution),
-+                                       ":", pwType->format_video.framerate, "F", &variableFramerate,
-+                                       ":", pwType->format_video.max_framerate, "Fru", &maxFramerate, SPA_POD_PROP_MIN_MAX(&minFramerate, &maxFramerate));
- 
-     pw_stream_add_listener(pwStream, &streamListener, &pwStreamEvents, this);
- 
--    if (pw_stream_connect(pwStream, PW_DIRECTION_OUTPUT, nullptr, PW_STREAM_FLAG_NONE, params, G_N_ELEMENTS(&params)) != 0) {
-+    if (pw_stream_connect(pwStream, PW_DIRECTION_OUTPUT, nullptr, (pw_stream_flags) (PW_STREAM_FLAG_DRIVER | PW_STREAM_FLAG_MAP_BUFFERS), params, G_N_ELEMENTS(params)) != 0) {
-         qCWarning(XdgDesktopPortalKdeScreenCastStream) << "Could not connect to stream";
-         return false;
-     }
-@@ -360,8 +353,8 @@
- 
- bool ScreenCastStream::recordFrame(uint8_t *screenData)
- {
--    uint32_t bufferId;
--    struct spa_buffer *buffer;
-+    struct pw_buffer *buffer;
-+    struct spa_buffer *spa_buffer;
-     uint8_t *map = nullptr;
-     uint8_t *data = nullptr;
- 
-@@ -371,39 +364,39 @@
-         return false;
-     }
- 
--    bufferId = pw_stream_get_empty_buffer(pwStream);
--
--    if (bufferId == SPA_ID_INVALID) {
--        qCWarning(XdgDesktopPortalKdeScreenCastStream) << "Failed to get empty stream buffer: " << strerror(errno);
-+    buffer = pw_stream_dequeue_buffer(pwStream);
-+    if (!buffer) {
-+        qCWarning(XdgDesktopPortalKdeScreenCastStream) << "Failed to dequeue PipeWire buffer";
-         return false;
-     }
- 
--    buffer = pw_stream_peek_buffer(pwStream, bufferId);
-+    spa_buffer = buffer->buffer;
- 
--    if (buffer->datas[0].type == pwCoreType->data.MemFd) {
--        map = (uint8_t *)mmap(nullptr, buffer->datas[0].maxsize + buffer->datas[0].mapoffset, PROT_READ | PROT_WRITE, MAP_SHARED, buffer->datas[0].fd, 0);
-+    if (spa_buffer->datas[0].data) {
-+        data = (uint8_t *)spa_buffer->datas[0].data;
-+    } else if (spa_buffer->datas[0].type == pwCoreType->data.MemFd) {
-+        map = (uint8_t *)mmap(nullptr, spa_buffer->datas[0].maxsize + spa_buffer->datas[0].mapoffset, PROT_READ | PROT_WRITE, MAP_SHARED, spa_buffer->datas[0].fd, 0);
- 
-         if (map == MAP_FAILED) {
-             qCWarning(XdgDesktopPortalKdeScreenCastStream) << "Failed to mmap pipewire stream buffer: " << strerror(errno);
-             return false;
-         }
- 
--        data = SPA_MEMBER(map, buffer->datas[0].mapoffset, uint8_t);
--    } else if (buffer->datas[0].type == pwCoreType->data.MemPtr) {
--        data = (uint8_t *) buffer->datas[0].data;
-+        data = SPA_MEMBER(map, spa_buffer->datas[0].mapoffset, uint8_t);
-     } else {
-+        qCWarning(XdgDesktopPortalKdeScreenCastStream) << "Unhandled spa buffer type: " << spa_buffer->datas[0].type;
-         return false;
-     }
- 
-     memcpy(data, screenData, BITS_PER_PIXEL * videoFormat.size.height * videoFormat.size.width * sizeof(uint8_t));
- 
-     if (map) {
--        munmap(map, buffer->datas[0].maxsize + buffer->datas[0].mapoffset);
-+        munmap(map, spa_buffer->datas[0].maxsize + spa_buffer->datas[0].mapoffset);
-     }
- 
--    buffer->datas[0].chunk->size = buffer->datas[0].maxsize;
-+    spa_buffer->datas[0].chunk->size = spa_buffer->datas[0].maxsize;
- 
--    pw_stream_send_buffer(pwStream, bufferId);
-+    pw_stream_queue_buffer(pwStream, buffer);
- 
-     return true;
- }



More information about the arch-commits mailing list