Cleanup shared memory handling in DesktopCapturer interface.
Previously shared memory buffers for DesktopCapturer were created
using DesktopCapturer::Callback::CreateSharedBuffer(). That made it
difficult to proxy DesktopCapturer interface from one thread to another.
This CL adds SharedBufferFactory interface that's allowed to be called
on a background thread. This also simplifies clients that don't
need to use shared memory, as they no longer need to override
CreateSharedBuffer().
Review URL: https://codereview.webrtc.org/1678073003
Cr-Commit-Position: refs/heads/master@{#11543}
diff --git a/webrtc/modules/desktop_capture/desktop_and_cursor_composer.h b/webrtc/modules/desktop_capture/desktop_and_cursor_composer.h
index 7a72031..6d381c8 100644
--- a/webrtc/modules/desktop_capture/desktop_and_cursor_composer.h
+++ b/webrtc/modules/desktop_capture/desktop_and_cursor_composer.h
@@ -20,8 +20,8 @@
// A wrapper for DesktopCapturer that also captures mouse using specified
// MouseCursorMonitor and renders it on the generated streams.
class DesktopAndCursorComposer : public DesktopCapturer,
- public DesktopCapturer::Callback,
- public MouseCursorMonitor::Callback {
+ public DesktopCapturer::Callback,
+ public MouseCursorMonitor::Callback {
public:
// Creates a new blender that captures mouse cursor using |mouse_monitor| and
// renders it into the frames generated by |desktop_capturer|. If
@@ -33,12 +33,13 @@
// DesktopCapturer interface.
void Start(DesktopCapturer::Callback* callback) override;
+ void SetSharedMemoryFactory(
+ rtc::scoped_ptr<SharedMemoryFactory> shared_memory_factory) override;
void Capture(const DesktopRegion& region) override;
void SetExcludedWindow(WindowId window) override;
private:
// DesktopCapturer::Callback interface.
- SharedMemory* CreateSharedMemory(size_t size) override;
void OnCaptureCompleted(DesktopFrame* frame) override;
// MouseCursorMonitor::Callback interface.