Index: media/video/capture/screen/screen_capturer.h |
diff --git a/media/video/capture/screen/screen_capturer.h b/media/video/capture/screen/screen_capturer.h |
index bc3d454e945971b618a25ae8c753c120d7a3d911..5fef2a1ad159d750fa6928a03998e07af4ca1091 100644 |
--- a/media/video/capture/screen/screen_capturer.h |
+++ b/media/video/capture/screen/screen_capturer.h |
@@ -8,15 +8,12 @@ |
#include "base/basictypes.h" |
#include "base/callback.h" |
#include "base/memory/ref_counted.h" |
-#include "base/shared_memory.h" |
#include "media/base/media_export.h" |
-#include "media/video/capture/screen/shared_buffer.h" |
+#include "third_party/webrtc/modules/desktop_capture/desktop_capturer.h" |
namespace media { |
-class ScreenCaptureData; |
struct MouseCursorShape; |
-class SharedBuffer; |
// Class used to capture video frames asynchronously. |
// |
@@ -36,32 +33,22 @@ class SharedBuffer; |
// Implementation has to ensure the following guarantees: |
// 1. Double buffering |
// Since data can be read while another capture action is happening. |
-class MEDIA_EXPORT ScreenCapturer { |
+class MEDIA_EXPORT ScreenCapturer |
+ : public NON_EXPORTED_BASE(webrtc::DesktopCapturer) { |
public: |
// Provides callbacks used by the capturer to pass captured video frames and |
// mouse cursor shapes to the processing pipeline. |
- class MEDIA_EXPORT Delegate { |
+ // |
+ // TODO(sergeyu): Move cursor shape capturing to a separate class because it's |
+ // unrelated. |
+ class MEDIA_EXPORT MouseShapeObserver { |
public: |
- // Creates a shared memory buffer of the given size. Returns NULL if shared |
- // buffers are not supported. |
- virtual scoped_refptr<SharedBuffer> CreateSharedBuffer(uint32 size); |
- |
- // Notifies the delegate that the buffer is no longer used and can be |
- // released. |
- virtual void ReleaseSharedBuffer(scoped_refptr<SharedBuffer> buffer); |
- |
- // Called when a video frame has been captured. |capture_data| describes |
- // a captured frame. |
- virtual void OnCaptureCompleted( |
- scoped_refptr<ScreenCaptureData> capture_data) = 0; |
- |
// Called when the cursor shape has changed. |
- // TODO(sergeyu): Move cursor shape capturing to a separate class. |
virtual void OnCursorShapeChanged( |
scoped_ptr<MouseCursorShape> cursor_shape) = 0; |
protected: |
- virtual ~Delegate() {} |
+ virtual ~MouseShapeObserver() {} |
}; |
virtual ~ScreenCapturer() {} |
@@ -77,20 +64,12 @@ class MEDIA_EXPORT ScreenCapturer { |
// Creates Windows-specific capturer and instructs it whether or not to |
// disable desktop compositing. |
static scoped_ptr<ScreenCapturer> CreateWithDisableAero(bool disable_aero); |
-#endif |
- |
- // Called at the beginning of a capturing session. |delegate| must remain |
- // valid until Stop() is called. |
- virtual void Start(Delegate* delegate) = 0; |
+#endif // defined(OS_WIN) |
- // Captures the screen data associated with each of the accumulated |
- // dirty region. When the capture is complete, the delegate is notified even |
- // if the dirty region is empty. |
- // |
- // It is OK to call this method while another thread is reading |
- // data of the previous capture. There can be at most one concurrent read |
- // going on when this method is called. |
- virtual void CaptureFrame() = 0; |
+ // Called at the beginning of a capturing session. |mouse_shape_observer| must |
+ // remain valid until the capturer is destroyed. |
+ virtual void SetMouseShapeObserver( |
+ MouseShapeObserver* mouse_shape_observer) = 0; |
}; |
} // namespace media |