Enable Pipewire on BSDs

diff --git third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
index a0e116195e0e..cbe27e94108b 100644
--- third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
+++ third_party/libwebrtc/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
@@ -87,8 +87,13 @@ if CONFIG["OS_TARGET"] == "DragonFly":
     DEFINES["USE_X11"] = "1"
     DEFINES["WEBRTC_BSD"] = True
     DEFINES["WEBRTC_POSIX"] = True
+    DEFINES["WEBRTC_USE_PIPEWIRE"] = True
     DEFINES["_FILE_OFFSET_BITS"] = "64"
 
+    LOCAL_INCLUDES += [
+        "/third_party/pipewire/"
+    ]
+
     OS_LIBS += [
         "X11",
         "X11-xcb",
@@ -103,11 +108,14 @@ if CONFIG["OS_TARGET"] == "DragonFly":
     ]
 
     UNIFIED_SOURCES += [
+        "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/desktop_device_info_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc",
+        "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_display.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_util.cc",
+        "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_finder_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_list_utils.cc",
@@ -124,8 +132,13 @@ if CONFIG["OS_TARGET"] == "FreeBSD":
     DEFINES["USE_X11"] = "1"
     DEFINES["WEBRTC_BSD"] = True
     DEFINES["WEBRTC_POSIX"] = True
+    DEFINES["WEBRTC_USE_PIPEWIRE"] = True
     DEFINES["_FILE_OFFSET_BITS"] = "64"
 
+    LOCAL_INCLUDES += [
+        "/third_party/pipewire/"
+    ]
+
     OS_LIBS += [
         "X11",
         "X11-xcb",
@@ -140,11 +153,14 @@ if CONFIG["OS_TARGET"] == "FreeBSD":
     ]
 
     UNIFIED_SOURCES += [
+        "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/desktop_device_info_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc",
+        "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_display.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_util.cc",
+        "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_finder_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_list_utils.cc",
@@ -200,8 +216,13 @@ if CONFIG["OS_TARGET"] == "NetBSD":
     DEFINES["USE_X11"] = "1"
     DEFINES["WEBRTC_BSD"] = True
     DEFINES["WEBRTC_POSIX"] = True
+    DEFINES["WEBRTC_USE_PIPEWIRE"] = True
     DEFINES["_FILE_OFFSET_BITS"] = "64"
 
+    LOCAL_INCLUDES += [
+        "/third_party/pipewire/"
+    ]
+
     OS_LIBS += [
         "X11",
         "X11-xcb",
@@ -216,11 +237,14 @@ if CONFIG["OS_TARGET"] == "NetBSD":
     ]
 
     UNIFIED_SOURCES += [
+        "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/desktop_device_info_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc",
+        "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_display.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_util.cc",
+        "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_finder_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_list_utils.cc",
@@ -237,8 +261,13 @@ if CONFIG["OS_TARGET"] == "OpenBSD":
     DEFINES["USE_X11"] = "1"
     DEFINES["WEBRTC_BSD"] = True
     DEFINES["WEBRTC_POSIX"] = True
+    DEFINES["WEBRTC_USE_PIPEWIRE"] = True
     DEFINES["_FILE_OFFSET_BITS"] = "64"
 
+    LOCAL_INCLUDES += [
+        "/third_party/pipewire/"
+    ]
+
     OS_LIBS += [
         "X11",
         "X11-xcb",
@@ -253,11 +282,14 @@ if CONFIG["OS_TARGET"] == "OpenBSD":
     ]
 
     UNIFIED_SOURCES += [
+        "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/desktop_device_info_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc",
+        "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/screen_capturer_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_display.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/shared_x_util.cc",
+        "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_capturer_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_finder_x11.cc",
         "/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/window_list_utils.cc",
