summaryrefslogtreecommitdiff
path: root/pw3.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pw3.patch')
-rw-r--r--pw3.patch183
1 files changed, 183 insertions, 0 deletions
diff --git a/pw3.patch b/pw3.patch
new file mode 100644
index 0000000..82d451e
--- /dev/null
+++ b/pw3.patch
@@ -0,0 +1,183 @@
+
+# HG changeset patch
+# User stransky <stransky@redhat.com>
+# Date 1604562423 0
+# Node ID d1a244822d7811575f5bb3cd024f8f324275aec2
+# Parent 998e6d0b24e4a560e5664aaef87307e9c069ad87
+Bug 1672989 Build PipeWire as a part of default builds, r=dminor
+
+Differential Revision: https://phabricator.services.mozilla.com/D94590
+
+diff --git a/third_party/libwebrtc/webrtc/modules/desktop_capture/BUILD.gn b/third_party/libwebrtc/webrtc/modules/desktop_capture/BUILD.gn
+--- a/third_party/libwebrtc/webrtc/modules/desktop_capture/BUILD.gn
++++ b/third_party/libwebrtc/webrtc/modules/desktop_capture/BUILD.gn
+@@ -152,22 +152,17 @@ if (rtc_include_tests) {
+ "../../rtc_base:rtc_base_approved",
+ "../../test:test_support",
+ ]
+ }
+ }
+
+ if (is_linux) {
+ if (rtc_use_pipewire) {
+- pkg_config("pipewire") {
+- packages = [ "libpipewire-0.2" ]
+-
+- defines = [ "WEBRTC_USE_PIPEWIRE" ]
+- }
+-
++ defines = [ "WEBRTC_USE_PIPEWIRE" ]
+ pkg_config("gio") {
+ packages = [
+ "gio-2.0",
+ "gio-unix-2.0",
+ ]
+ }
+ }
+ }
+@@ -326,16 +321,17 @@ rtc_static_library("desktop_capture_gene
+ } else {
+ sources += [
+ "fake_desktop_capturer.cc",
+ "fake_desktop_capturer.h",
+ ]
+ }
+
+ if (use_x11 || rtc_use_pipewire) {
++ include_dirs = [ "/third_party/libwebrtc/third_party/pipewire" ]
+ sources += [
+ "mouse_cursor_monitor_linux.cc",
+ "screen_capturer_linux.cc",
+ "window_capturer_linux.cc",
+ ]
+ }
+
+ if (use_x11) {
+@@ -367,16 +363,17 @@ rtc_static_library("desktop_capture_gene
+ "linux/desktop_device_info_x11.h",
+ "linux/shared_x_util.cc",
+ "linux/shared_x_util.h",
+ ]
+ }
+ }
+
+ if (rtc_use_pipewire) {
++ include_dirs = [ "/third_party/libwebrtc/third_party/pipewire" ]
+ sources += [
+ "linux/base_capturer_pipewire.cc",
+ "linux/base_capturer_pipewire.h",
+ "linux/screen_capturer_pipewire.cc",
+ "linux/screen_capturer_pipewire.h",
+ "linux/window_capturer_pipewire.cc",
+ "linux/window_capturer_pipewire.h",
+ ]
+diff --git a/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build b/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
+--- a/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
++++ b/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
+@@ -20,17 +20,18 @@ DEFINES["WEBRTC_RESTRICT_LOGGING"] = Tru
+ FINAL_LIBRARY = "webrtc"
+
+
+ LOCAL_INCLUDES += [
+ "!/ipc/ipdl/_ipdlheaders",
+ "/ipc/chromium/src",
+ "/ipc/glue",
+ "/media/libyuv/libyuv/include/",
+- "/third_party/libwebrtc/webrtc/"
++ "/third_party/libwebrtc/webrtc/",
++ "/third_party/pipewire"
+ ]
+
+ UNIFIED_SOURCES += [
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.cc",
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/capture_result_desktop_capturer_wrapper.cc",
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/cropped_desktop_frame.cc",
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/cropping_window_capturer.cc",
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_and_cursor_composer.cc",
+@@ -156,16 +157,17 @@ if CONFIG["OS_TARGET"] == "FreeBSD":
+
+ if CONFIG["OS_TARGET"] == "Linux":
+
+ DEFINES["USE_NSS_CERTS"] = "1"
+ DEFINES["USE_X11"] = "1"
+ DEFINES["WEBRTC_LINUX"] = True
+ DEFINES["WEBRTC_POSIX"] = True
+ DEFINES["_FILE_OFFSET_BITS"] = "64"
++ DEFINES["WEBRTC_USE_PIPEWIRE"] = "1"
+
+ OS_LIBS += [
+ "rt",
+ "X11",
+ "X11-xcb",
+ "xcb",
+ "Xcomposite",
+ "Xcursor",
+@@ -188,16 +190,24 @@ if CONFIG["OS_TARGET"] == "Linux":
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/x_atom_cache.cc",
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/x_error_trap.cc",
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/x_server_pixel_buffer.cc",
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/mouse_cursor_monitor_linux.cc",
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/screen_capturer_linux.cc",
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/window_capturer_linux.cc"
+ ]
+
++ CXXFLAGS += CONFIG['TK_CFLAGS']
++
++ UNIFIED_SOURCES += [
++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc",
++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc",
++ "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc"
++ ]
++
+ if CONFIG["OS_TARGET"] == "NetBSD":
+
+ DEFINES["USE_X11"] = "1"
+ DEFINES["WEBRTC_BSD"] = True
+ DEFINES["WEBRTC_POSIX"] = True
+ DEFINES["_FILE_OFFSET_BITS"] = "64"
+
+ OS_LIBS += [
+diff --git a/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_options.h b/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_options.h
+--- a/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_options.h
++++ b/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_options.h
+@@ -136,15 +136,15 @@ class DesktopCaptureOptions {
+ #if defined(USE_X11)
+ bool use_update_notifications_ = false;
+ #else
+ bool use_update_notifications_ = true;
+ #endif
+ bool disable_effects_ = true;
+ bool detect_updated_region_ = false;
+ #if defined(WEBRTC_USE_PIPEWIRE)
+- bool allow_pipewire_ = false;
++ bool allow_pipewire_ = true;
+ #endif
+ };
+
+ } // namespace webrtc
+
+ #endif // MODULES_DESKTOP_CAPTURE_DESKTOP_CAPTURE_OPTIONS_H_
+diff --git a/third_party/libwebrtc/webrtc/moz.build b/third_party/libwebrtc/webrtc/moz.build
+--- a/third_party/libwebrtc/webrtc/moz.build
++++ b/third_party/libwebrtc/webrtc/moz.build
+@@ -181,16 +181,19 @@ if CONFIG["OS_TARGET"] == "Linux":
+
+ DIRS += [
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_generic_gn",
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_gn",
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/primitives_gn",
+ "/third_party/libwebrtc/webrtc/modules/video_capture/video_capture_internal_impl_gn",
+ "/third_party/libwebrtc/webrtc/system_wrappers/cpu_features_linux_gn"
+ ]
++ DIRS += [
++ "/third_party/pipewire/libpipewire"
++ ]
+
+ if CONFIG["OS_TARGET"] == "NetBSD":
+
+ DIRS += [
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_generic_gn",
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_gn",
+ "/third_party/libwebrtc/webrtc/modules/desktop_capture/primitives_gn",
+ "/third_party/libwebrtc/webrtc/modules/video_capture/video_capture_internal_impl_gn"
+
bgstack15