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;
+ }
+ }