Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(62)

Unified Diff: media/video/capture/screen/screen_capture_device.cc

Issue 15692018: Remove screen capturers from media/video/capture/screen. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/video/capture/screen/screen_capture_device.cc
diff --git a/media/video/capture/screen/screen_capture_device.cc b/media/video/capture/screen/screen_capture_device.cc
index 546112b04f71cad931a758bec545a8052bc4dcc5..03c912846109099b1b11d36803e7e797e0e828a6 100644
--- a/media/video/capture/screen/screen_capture_device.cc
+++ b/media/video/capture/screen/screen_capture_device.cc
@@ -9,10 +9,11 @@
#include "base/logging.h"
#include "base/sequenced_task_runner.h"
#include "base/synchronization/lock.h"
-#include "media/video/capture/screen/mouse_cursor_shape.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkDevice.h"
#include "third_party/webrtc/modules/desktop_capture/desktop_frame.h"
+#include "third_party/webrtc/modules/desktop_capture/mouse_cursor_shape.h"
+#include "third_party/webrtc/modules/desktop_capture/screen_capturer.h"
namespace media {
@@ -27,7 +28,7 @@ class ScreenCaptureDevice::Core
explicit Core(scoped_refptr<base::SequencedTaskRunner> task_runner);
// Helper used in tests to supply a fake capturer.
- void SetScreenCapturerForTest(scoped_ptr<ScreenCapturer> capturer) {
+ void SetScreenCapturerForTest(scoped_ptr<webrtc::ScreenCapturer> capturer) {
screen_capturer_ = capturer.Pass();
}
@@ -77,7 +78,7 @@ class ScreenCaptureDevice::Core
int frame_rate_;
// The underlying ScreenCapturer instance used to capture frames.
- scoped_ptr<ScreenCapturer> screen_capturer_;
+ scoped_ptr<webrtc::ScreenCapturer> screen_capturer_;
// After Allocate() is called we need to call OnFrameInfo() method of the
// |event_handler_| to specify the size of the frames this capturer will
@@ -273,22 +274,23 @@ void ScreenCaptureDevice::Core::DoAllocate(int frame_rate) {
frame_rate_ = frame_rate;
// Create and start frame capturer.
+ if (!screen_capturer_) {
#if defined(OS_CHROMEOS) && !defined(ARCH_CPU_ARMEL)
- // ScreenCapturerX11 polls by default, due to poor driver support for DAMAGE.
- // ChromeOS' drivers [can be patched to] support DAMAGE properly, so use it.
- // However ARM driver seems to not support this properly, so disable it for
- // ARM. See http://crbug.com/230105.
- if (!screen_capturer_)
- screen_capturer_ = ScreenCapturer::CreateWithXDamage(true);
+ // ScreenCapturerX11 polls by default, due to poor driver support for
+ // DAMAGE. ChromeOS' drivers [can be patched to] support DAMAGE properly, so
+ // use it. However ARM driver seems to not support this properly, so disable
+ // it for ARM. See http://crbug.com/230105.
+ screen_capturer_.reset(webrtc::ScreenCapturer::CreateWithXDamage(true));
#elif defined(OS_WIN)
- // ScreenCapturerWin disables Aero by default. We don't want it disabled for
- // WebRTC screen capture, though.
- if (!screen_capturer_)
- screen_capturer_ = ScreenCapturer::CreateWithDisableAero(false);
+ // ScreenCapturerWin disables Aero by default. We don't want it disabled for
+ // WebRTC screen capture, though.
+ screen_capturer_.reset(
+ webrtc::ScreenCapturer::CreateWithDisableAero(false));
#else
- if (!screen_capturer_)
- screen_capturer_ = ScreenCapturer::Create();
+ screen_capturer_.reset(webrtc::ScreenCapturer::Create());
#endif
+ }
+
if (screen_capturer_)
screen_capturer_->Start(this);
@@ -362,7 +364,7 @@ ScreenCaptureDevice::~ScreenCaptureDevice() {
}
void ScreenCaptureDevice::SetScreenCapturerForTest(
- scoped_ptr<ScreenCapturer> capturer) {
+ scoped_ptr<webrtc::ScreenCapturer> capturer) {
core_->SetScreenCapturerForTest(capturer.Pass());
}
« no previous file with comments | « media/video/capture/screen/screen_capture_device.h ('k') | media/video/capture/screen/screen_capture_device_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698