From cd5c62362fd7ea2e2a6d8c3829f4ade5dea5823b Mon Sep 17 00:00:00 2001 From: Michael Olbrich Date: Wed, 8 Feb 2023 14:49:32 +0100 Subject: [PATCH] Build video capture implementation for chromium It will be used to support cameras via xdg desktop portal / pipewire in chromium. This includes exporting additional classes that will be used by chromium. Bug: webrtc:13177 Change-Id: I7524ffb47ed2eb7af1de4d7fd741fbb15277a0a1 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/264553 Reviewed-by: Ilya Nikolaevskiy Commit-Queue: Ilya Nikolaevskiy Cr-Commit-Position: refs/heads/main@{#39350} --- modules/video_capture/BUILD.gn | 3 ++- modules/video_capture/video_capture_factory.h | 3 ++- modules/video_capture/video_capture_impl.h | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/video_capture/BUILD.gn b/modules/video_capture/BUILD.gn index 2bbc701e17..b42536db85 100644 --- a/modules/video_capture/BUILD.gn +++ b/modules/video_capture/BUILD.gn @@ -40,13 +40,14 @@ rtc_library("video_capture_module") { "../../rtc_base:stringutils", "../../rtc_base:timeutils", "../../rtc_base/synchronization:mutex", + "../../rtc_base/system:rtc_export", "../../system_wrappers", "//third_party/libyuv", ] absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] } -if (!build_with_chromium) { +if (!build_with_chromium || is_linux || is_chromeos) { rtc_source_set("video_capture_internal_impl") { visibility = [ "*" ] deps = [ diff --git a/modules/video_capture/video_capture_factory.h b/modules/video_capture/video_capture_factory.h index 80bf2aec0b..62b4067c3a 100644 --- a/modules/video_capture/video_capture_factory.h +++ b/modules/video_capture/video_capture_factory.h @@ -17,12 +17,13 @@ #include "api/scoped_refptr.h" #include "modules/video_capture/video_capture.h" #include "modules/video_capture/video_capture_defines.h" +#include "rtc_base/system/rtc_export.h" namespace webrtc { class VideoCaptureOptions; -class VideoCaptureFactory { +class RTC_EXPORT VideoCaptureFactory { public: // Create a video capture module object // id - unique identifier of this video capture module object. diff --git a/modules/video_capture/video_capture_impl.h b/modules/video_capture/video_capture_impl.h index d7f1c8f74d..1f7aa89883 100644 --- a/modules/video_capture/video_capture_impl.h +++ b/modules/video_capture/video_capture_impl.h @@ -26,6 +26,7 @@ #include "modules/video_capture/video_capture_config.h" #include "modules/video_capture/video_capture_defines.h" #include "rtc_base/synchronization/mutex.h" +#include "rtc_base/system/rtc_export.h" namespace webrtc { @@ -33,7 +34,7 @@ class VideoCaptureOptions; namespace videocapturemodule { // Class definitions -class VideoCaptureImpl : public VideoCaptureModule { +class RTC_EXPORT VideoCaptureImpl : public VideoCaptureModule { public: /* * Create a video capture module object