/* * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef MODULES_DESKTOP_CAPTURE_DESKTOP_CAPTURER_DIFFER_WRAPPER_H_ #define MODULES_DESKTOP_CAPTURE_DESKTOP_CAPTURER_DIFFER_WRAPPER_H_ #include <memory> #if defined(WEBRTC_USE_GIO) #include "modules/desktop_capture/desktop_capture_metadata.h" #endif // defined(WEBRTC_USE_GIO) #include "modules/desktop_capture/desktop_capture_types.h" #include "modules/desktop_capture/desktop_capturer.h" #include "modules/desktop_capture/desktop_frame.h" #include "modules/desktop_capture/desktop_geometry.h" #include "modules/desktop_capture/shared_desktop_frame.h" #include "modules/desktop_capture/shared_memory.h" #include "rtc_base/system/rtc_export.h" namespace webrtc { // DesktopCapturer wrapper that calculates updated_region() by comparing frames // content. This class always expects the underlying DesktopCapturer // implementation returns a superset of updated regions in DestkopFrame. If a // DesktopCapturer implementation does not know the updated region, it should // set updated_region() to full frame. // // This class marks entire frame as updated if the frame size or frame stride // has been changed. class RTC_EXPORT DesktopCapturerDifferWrapper : public DesktopCapturer, public DesktopCapturer::Callback { … }; } // namespace webrtc #endif // MODULES_DESKTOP_CAPTURE_DESKTOP_CAPTURER_DIFFER_WRAPPER_H_