commit:     b7cb7ed1d5174a7395628c9ea9f266fe8886aeca
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Tue Apr  8 10:54:05 2025 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Wed Apr  9 03:43:10 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b7cb7ed1

www-client/chromium: add webrtc pipewire 1.4 fix to current stable

Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>

 www-client/chromium/chromium-135.0.7049.52.ebuild  |  1 +
 .../files/chromium-135-webrtc-pipewire.patch       | 29 ++++++++++++++++++++++
 2 files changed, 30 insertions(+)

diff --git a/www-client/chromium/chromium-135.0.7049.52.ebuild 
b/www-client/chromium/chromium-135.0.7049.52.ebuild
index 00bcbe0f5e29..cc7b2ccbfc8e 100644
--- a/www-client/chromium/chromium-135.0.7049.52.ebuild
+++ b/www-client/chromium/chromium-135.0.7049.52.ebuild
@@ -411,6 +411,7 @@ src_prepare() {
                "${FILESDIR}/chromium-134-bindgen-custom-toolchain.patch"
                "${FILESDIR}/chromium-135-oauth2-client-switches.patch"
                "${FILESDIR}/chromium-135-map_droppable-glibc.patch"
+               "${FILESDIR}/chromium-135-webrtc-pipewire.patch"
        )
 
        if use bundled-toolchain; then

diff --git a/www-client/chromium/files/chromium-135-webrtc-pipewire.patch 
b/www-client/chromium/files/chromium-135-webrtc-pipewire.patch
new file mode 100644
index 000000000000..c100643b69f0
--- /dev/null
+++ b/www-client/chromium/files/chromium-135-webrtc-pipewire.patch
@@ -0,0 +1,29 @@
+https://webrtc.googlesource.com/src/+/0a9787897f3d36055130b0532967d31c31e8408f
+
+Pipewire 1.4 changed some functions from taking void*
+to taking the actual type they expect, which makes
+some code that built with 1.2 no longer build with 1.4.
+
+For older versions, this is effectively a no-op.
+
+--- a/third_party/webrtc/modules/video_capture/linux/pipewire_session.cc
++++ b/third_party/webrtc/modules/video_capture/linux/pipewire_session.cc
+
+@@ -87,7 +87,7 @@
+       .param = OnNodeParam,
+   };
+ 
+-  pw_node_add_listener(proxy_, &node_listener_, &node_events, this);
++  pw_node_add_listener(reinterpret_cast<pw_node*>(proxy_), &node_listener_, 
&node_events, this);
+ }
+ 
+ // static
+@@ -119,7 +119,7 @@
+       uint32_t id = info->params[i].id;
+       if (id == SPA_PARAM_EnumFormat &&
+           info->params[i].flags & SPA_PARAM_INFO_READ) {
+-        pw_node_enum_params(that->proxy_, 0, id, 0, UINT32_MAX, nullptr);
++        pw_node_enum_params(reinterpret_cast<pw_node*>(that->proxy_), 0, id, 
0, UINT32_MAX, nullptr);
+         break;
+       }
+     }

Reply via email to