firefox/pw3.patch

184 lines
6.7 KiB
Diff

# 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"