From e6ca3b8c38a127ca6f00138ce248da510b87412d Mon Sep 17 00:00:00 2001 From: Jamie Walch Date: Tue, 18 Feb 2020 12:55:09 -0800 Subject: [PATCH] Add missing interface methods. DesktopCapturer includes a few methods that are not pure virtual because they were added after implementions existed in Chromium. The intent was to implement them in Chromium and then make them pure virtual, but that never happened, which caused a bug when DesktopAndCursorComposer did not delegate source-selection methods to the underlying capturer. This CL adds the missing methods to a couple of simple pass-through capturers; I will follow up with the necessary implementations for other capturers once I've fixed the underlying remoting bug. Change-Id: Icb3914a3cb3116878f57a9f685163c7670c1f89b Bug: webrtc:11370 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168780 Reviewed-by: Sergey Ulanov Commit-Queue: Jamie Walch Cr-Commit-Position: refs/heads/master@{#30550} --- .../blank_detector_desktop_capturer_wrapper.cc | 4 ++++ .../blank_detector_desktop_capturer_wrapper.h | 1 + .../desktop_and_cursor_composer.cc | 16 ++++++++++++++++ .../desktop_and_cursor_composer.h | 4 ++++ 4 files changed, 25 insertions(+) diff --git a/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.cc b/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.cc index e15a2cd344..ca3a89f49b 100644 --- a/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.cc +++ b/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.cc @@ -63,6 +63,10 @@ bool BlankDetectorDesktopCapturerWrapper::FocusOnSelectedSource() { return capturer_->FocusOnSelectedSource(); } +bool BlankDetectorDesktopCapturerWrapper::IsOccluded(const DesktopVector& pos) { + return capturer_->IsOccluded(pos); +} + void BlankDetectorDesktopCapturerWrapper::OnCaptureResult( Result result, std::unique_ptr frame) { diff --git a/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.h b/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.h index 6ec6b1a82f..46ba5257fe 100644 --- a/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.h +++ b/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.h @@ -46,6 +46,7 @@ class BlankDetectorDesktopCapturerWrapper final bool GetSourceList(SourceList* sources) override; bool SelectSource(SourceId id) override; bool FocusOnSelectedSource() override; + bool IsOccluded(const DesktopVector& pos) override; private: // DesktopCapturer::Callback interface. diff --git a/modules/desktop_capture/desktop_and_cursor_composer.cc b/modules/desktop_capture/desktop_and_cursor_composer.cc index 328cceb419..f282c1d500 100644 --- a/modules/desktop_capture/desktop_and_cursor_composer.cc +++ b/modules/desktop_capture/desktop_and_cursor_composer.cc @@ -187,6 +187,22 @@ void DesktopAndCursorComposer::SetExcludedWindow(WindowId window) { desktop_capturer_->SetExcludedWindow(window); } +bool DesktopAndCursorComposer::GetSourceList(SourceList* sources) { + return desktop_capturer_->GetSourceList(sources); +} + +bool DesktopAndCursorComposer::SelectSource(SourceId id) { + return desktop_capturer_->SelectSource(id); +} + +bool DesktopAndCursorComposer::FocusOnSelectedSource() { + return desktop_capturer_->FocusOnSelectedSource(); +} + +bool DesktopAndCursorComposer::IsOccluded(const DesktopVector& pos) { + return desktop_capturer_->IsOccluded(pos); +} + void DesktopAndCursorComposer::OnCaptureResult( DesktopCapturer::Result result, std::unique_ptr frame) { diff --git a/modules/desktop_capture/desktop_and_cursor_composer.h b/modules/desktop_capture/desktop_and_cursor_composer.h index 4219c4da30..8f95721ec2 100644 --- a/modules/desktop_capture/desktop_and_cursor_composer.h +++ b/modules/desktop_capture/desktop_and_cursor_composer.h @@ -53,6 +53,10 @@ class RTC_EXPORT DesktopAndCursorComposer std::unique_ptr shared_memory_factory) override; void CaptureFrame() override; void SetExcludedWindow(WindowId window) override; + bool GetSourceList(SourceList* sources) override; + bool SelectSource(SourceId id) override; + bool FocusOnSelectedSource() override; + bool IsOccluded(const DesktopVector& pos) override; // MouseCursorMonitor::Callback interface. void OnMouseCursor(MouseCursor* cursor) override;