#include "modules/desktop_capture/desktop_capturer.h"
#include <stdlib.h>
#include <string.h>
#include <cstring>
#include <utility>
#include "modules/desktop_capture/cropping_window_capturer.h"
#include "modules/desktop_capture/desktop_capture_options.h"
#include "modules/desktop_capture/desktop_capturer_differ_wrapper.h"
#include "system_wrappers/include/metrics.h"
#if defined(RTC_ENABLE_WIN_WGC)
#include "modules/desktop_capture/win/wgc_capturer_win.h"
#include "rtc_base/win/windows_version.h"
#endif
#if defined(WEBRTC_USE_PIPEWIRE)
#include "modules/desktop_capture/linux/wayland/base_capturer_pipewire.h"
#endif
namespace webrtc {
void LogDesktopCapturerFullscreenDetectorUsage() { … }
DesktopCapturer::~DesktopCapturer() = default;
DelegatedSourceListController*
DesktopCapturer::GetDelegatedSourceListController() { … }
void DesktopCapturer::SetSharedMemoryFactory(
std::unique_ptr<SharedMemoryFactory> shared_memory_factory) { … }
void DesktopCapturer::SetExcludedWindow(WindowId window) { … }
bool DesktopCapturer::GetSourceList(SourceList* sources) { … }
bool DesktopCapturer::SelectSource(SourceId id) { … }
bool DesktopCapturer::FocusOnSelectedSource() { … }
bool DesktopCapturer::IsOccluded(const DesktopVector& pos) { … }
std::unique_ptr<DesktopCapturer> DesktopCapturer::CreateWindowCapturer(
const DesktopCaptureOptions& options) { … }
std::unique_ptr<DesktopCapturer> DesktopCapturer::CreateScreenCapturer(
const DesktopCaptureOptions& options) { … }
std::unique_ptr<DesktopCapturer> DesktopCapturer::CreateGenericCapturer(
const DesktopCaptureOptions& options) { … }
#if defined(WEBRTC_USE_PIPEWIRE) || defined(WEBRTC_USE_X11)
bool DesktopCapturer::IsRunningUnderWayland() { … }
#endif
}