Index: remoting/host/ipc_video_frame_capturer.cc |
diff --git a/remoting/host/ipc_video_frame_capturer.cc b/remoting/host/ipc_video_frame_capturer.cc |
index ccf72fbef2922f53220c4469c67c34ce631c8fbe..b8a9fb08b98f4832d12be9f3f70734d198894710 100644 |
--- a/remoting/host/ipc_video_frame_capturer.cc |
+++ b/remoting/host/ipc_video_frame_capturer.cc |
@@ -5,14 +5,15 @@ |
#include "remoting/host/ipc_video_frame_capturer.h" |
#include "media/video/capture/screen/mouse_cursor_shape.h" |
-#include "media/video/capture/screen/screen_capture_data.h" |
#include "remoting/host/desktop_session_proxy.h" |
+#include "third_party/webrtc/modules/desktop_capture/desktop_frame.h" |
namespace remoting { |
IpcVideoFrameCapturer::IpcVideoFrameCapturer( |
scoped_refptr<DesktopSessionProxy> desktop_session_proxy) |
- : delegate_(NULL), |
+ : callback_(NULL), |
+ mouse_shape_observer_(NULL), |
desktop_session_proxy_(desktop_session_proxy), |
weak_factory_(this) { |
} |
@@ -20,25 +21,33 @@ IpcVideoFrameCapturer::IpcVideoFrameCapturer( |
IpcVideoFrameCapturer::~IpcVideoFrameCapturer() { |
} |
-void IpcVideoFrameCapturer::Start(Delegate* delegate) { |
- delegate_ = delegate; |
+void IpcVideoFrameCapturer::Start(Callback* callback) { |
+ DCHECK(!callback_); |
+ DCHECK(callback); |
+ callback_ = callback; |
desktop_session_proxy_->SetVideoCapturer(weak_factory_.GetWeakPtr()); |
} |
-void IpcVideoFrameCapturer::CaptureFrame() { |
+void IpcVideoFrameCapturer::SetMouseShapeObserver( |
+ MouseShapeObserver* mouse_shape_observer) { |
+ DCHECK(!mouse_shape_observer_); |
+ DCHECK(mouse_shape_observer); |
+ mouse_shape_observer_ = mouse_shape_observer; |
+} |
+ |
+void IpcVideoFrameCapturer::Capture(const webrtc::DesktopRegion& region) { |
desktop_session_proxy_->CaptureFrame(); |
} |
void IpcVideoFrameCapturer::OnCaptureCompleted( |
- scoped_refptr<media::ScreenCaptureData> capture_data) { |
- if (delegate_) |
- delegate_->OnCaptureCompleted(capture_data); |
+ scoped_ptr<webrtc::DesktopFrame> frame) { |
+ callback_->OnCaptureCompleted(frame.release()); |
} |
void IpcVideoFrameCapturer::OnCursorShapeChanged( |
scoped_ptr<media::MouseCursorShape> cursor_shape) { |
- if (delegate_) |
- delegate_->OnCursorShapeChanged(cursor_shape.Pass()); |
+ if (mouse_shape_observer_) |
+ mouse_shape_observer_->OnCursorShapeChanged(cursor_shape.Pass()); |
} |
} // namespace remoting |