summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/moz-patch-stack/0059.patch
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/moz-patch-stack/0059.patch')
-rw-r--r--third_party/libwebrtc/moz-patch-stack/0059.patch91
1 files changed, 91 insertions, 0 deletions
diff --git a/third_party/libwebrtc/moz-patch-stack/0059.patch b/third_party/libwebrtc/moz-patch-stack/0059.patch
new file mode 100644
index 0000000000..225dc2a8f2
--- /dev/null
+++ b/third_party/libwebrtc/moz-patch-stack/0059.patch
@@ -0,0 +1,91 @@
+From: Landry Breuil <landry@openbsd.org>
+Date: Wed, 22 Dec 2021 00:09:00 +0000
+Subject: Bug 1654448 - P2 - readd partial support for BSD to webrtc
+ build;r=mjf
+
+only OpenBSD/amd64 is supported for now
+
+Depends on D134432
+
+Differential Revision: https://phabricator.services.mozilla.com/D134433
+Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/0300b32b7de70fb8976dc82d7d3bb3adb9685857
+---
+ BUILD.gn | 3 +++
+ modules/video_capture/BUILD.gn | 2 +-
+ modules/video_capture/linux/device_info_v4l2.h | 2 ++
+ rtc_base/platform_thread_types.cc | 4 +++-
+ webrtc.gni | 2 +-
+ 5 files changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/BUILD.gn b/BUILD.gn
+index f32e632ff6..0272f6a8fe 100644
+--- a/BUILD.gn
++++ b/BUILD.gn
+@@ -215,6 +215,9 @@ config("common_inherited_config") {
+ if (is_linux || is_chromeos) {
+ defines += [ "WEBRTC_LINUX" ]
+ }
++ if (is_bsd) {
++ defines += [ "WEBRTC_BSD" ]
++ }
+ if (is_mac) {
+ defines += [ "WEBRTC_MAC" ]
+ }
+diff --git a/modules/video_capture/BUILD.gn b/modules/video_capture/BUILD.gn
+index 95548906c4..4a5bf62433 100644
+--- a/modules/video_capture/BUILD.gn
++++ b/modules/video_capture/BUILD.gn
+@@ -63,7 +63,7 @@ if (!build_with_chromium) {
+ "../../system_wrappers",
+ ]
+
+- if (is_linux || is_chromeos) {
++ if (is_linux || is_bsd || is_chromeos) {
+ sources = [
+ "linux/device_info_linux.cc",
+ "linux/device_info_v4l2.cc",
+diff --git a/modules/video_capture/linux/device_info_v4l2.h b/modules/video_capture/linux/device_info_v4l2.h
+index e3c2395f49..119cb07ab8 100644
+--- a/modules/video_capture/linux/device_info_v4l2.h
++++ b/modules/video_capture/linux/device_info_v4l2.h
+@@ -16,7 +16,9 @@
+ #include "modules/video_capture/device_info_impl.h"
+
+ #include "rtc_base/platform_thread.h"
++#ifdef WEBRTC_LINUX
+ #include <sys/inotify.h>
++#endif
+
+ struct v4l2_capability;
+
+diff --git a/rtc_base/platform_thread_types.cc b/rtc_base/platform_thread_types.cc
+index d64ea689bb..c3c6955a7b 100644
+--- a/rtc_base/platform_thread_types.cc
++++ b/rtc_base/platform_thread_types.cc
+@@ -50,7 +50,9 @@ PlatformThreadId CurrentThreadId() {
+ return static_cast<PlatformThreadId>(pthread_self());
+ #else
+ // Default implementation for nacl and solaris.
+- return reinterpret_cast<PlatformThreadId>(pthread_self());
++ // WEBRTC_BSD: pthread_t is a pointer, so cannot be casted to pid_t
++ // (aka int32_t) on 64-bit archs. Required on OpenBSD.
++ return reinterpret_cast<long>(pthread_self());
+ #endif
+ #endif // defined(WEBRTC_POSIX)
+ }
+diff --git a/webrtc.gni b/webrtc.gni
+index e23c9a1cc4..1b21d329b2 100644
+--- a/webrtc.gni
++++ b/webrtc.gni
+@@ -336,7 +336,7 @@ rtc_opus_dir = "//third_party/opus"
+
+ # Desktop capturer is supported only on Windows, OSX and Linux.
+ rtc_desktop_capture_supported =
+- (is_win && current_os != "winuwp") || is_mac ||
++ (is_win && current_os != "winuwp") || is_mac || is_bsd ||
+ ((is_linux || is_chromeos) && (rtc_use_x11_extensions || rtc_use_pipewire))
+
+ ###############################################################################
+--
+2.34.1
+