summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorwez@chromium.org <wez@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-23 16:39:47 +0000
committerwez@chromium.org <wez@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-23 16:39:47 +0000
commit06fad541b4e5eb84c31b885732d0385611430c3c (patch)
treefd7c93911ff43a3f2f1d20dd14ab7fdad8f8e4d8 /media
parentc8c857f3368cc40cc7eba1c0719a492a0d3002db (diff)
downloadchromium_src-06fad541b4e5eb84c31b885732d0385611430c3c.zip
chromium_src-06fad541b4e5eb84c31b885732d0385611430c3c.tar.gz
chromium_src-06fad541b4e5eb84c31b885732d0385611430c3c.tar.bz2
Take advantage of XDAMAGE to support Screen Capture under ChromeOS.
Screen Capture polls under Linux/X11, to avoid issues with poor XDAMAGE support in some X hardware drivers for things like 3D rendering. This CL enables XDAMAGE support under ChromeOS, since on that platform we can make sure that the drivers support it properly. BUG=177977 Review URL: https://chromiumcodereview.appspot.com/12408035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190032 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r--media/video/capture/screen/screen_capture_device.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/media/video/capture/screen/screen_capture_device.cc b/media/video/capture/screen/screen_capture_device.cc
index 6182f8d..c831d03 100644
--- a/media/video/capture/screen/screen_capture_device.cc
+++ b/media/video/capture/screen/screen_capture_device.cc
@@ -271,8 +271,15 @@ void ScreenCaptureDevice::Core::DoAllocate(int frame_rate) {
frame_rate_ = frame_rate;
// Create and start frame capturer.
+#if defined(OS_CHROMEOS)
+ // ScreenCapturerX11 polls by default, due to poor driver support for DAMAGE.
+ // ChromeOS' drivers [can be patched to] support DAMAGE properly, so use it.
+ if (!screen_capturer_)
+ screen_capturer_ = ScreenCapturer::CreateWithXDamage(true);
+#else
if (!screen_capturer_)
screen_capturer_ = ScreenCapturer::Create();
+#endif
if (screen_capturer_)
screen_capturer_->Start(this);