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 <sergeyu@chromium.org>
Commit-Queue: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#30550}
This commit is contained in:
Jamie Walch
2020-02-18 12:55:09 -08:00
committed by Commit Bot
parent 1282babe66
commit e6ca3b8c38
4 changed files with 25 additions and 0 deletions

View File

@ -63,6 +63,10 @@ bool BlankDetectorDesktopCapturerWrapper::FocusOnSelectedSource() {
return capturer_->FocusOnSelectedSource(); return capturer_->FocusOnSelectedSource();
} }
bool BlankDetectorDesktopCapturerWrapper::IsOccluded(const DesktopVector& pos) {
return capturer_->IsOccluded(pos);
}
void BlankDetectorDesktopCapturerWrapper::OnCaptureResult( void BlankDetectorDesktopCapturerWrapper::OnCaptureResult(
Result result, Result result,
std::unique_ptr<DesktopFrame> frame) { std::unique_ptr<DesktopFrame> frame) {

View File

@ -46,6 +46,7 @@ class BlankDetectorDesktopCapturerWrapper final
bool GetSourceList(SourceList* sources) override; bool GetSourceList(SourceList* sources) override;
bool SelectSource(SourceId id) override; bool SelectSource(SourceId id) override;
bool FocusOnSelectedSource() override; bool FocusOnSelectedSource() override;
bool IsOccluded(const DesktopVector& pos) override;
private: private:
// DesktopCapturer::Callback interface. // DesktopCapturer::Callback interface.

View File

@ -187,6 +187,22 @@ void DesktopAndCursorComposer::SetExcludedWindow(WindowId window) {
desktop_capturer_->SetExcludedWindow(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( void DesktopAndCursorComposer::OnCaptureResult(
DesktopCapturer::Result result, DesktopCapturer::Result result,
std::unique_ptr<DesktopFrame> frame) { std::unique_ptr<DesktopFrame> frame) {

View File

@ -53,6 +53,10 @@ class RTC_EXPORT DesktopAndCursorComposer
std::unique_ptr<SharedMemoryFactory> shared_memory_factory) override; std::unique_ptr<SharedMemoryFactory> shared_memory_factory) override;
void CaptureFrame() override; void CaptureFrame() override;
void SetExcludedWindow(WindowId window) 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. // MouseCursorMonitor::Callback interface.
void OnMouseCursor(MouseCursor* cursor) override; void OnMouseCursor(MouseCursor* cursor) override;