From d6756537dd8cf4d9816dc63ada66ea026e0fd128 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Thu, 12 Nov 2020 14:33:57 +0100 Subject: Updated to 83.0, Updated PipeWire patches from mozbz#1672944 --- pw3.patch | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 pw3.patch (limited to 'pw3.patch') 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 +# 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" + -- cgit