diff options
author | wez@chromium.org <wez@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-23 16:39:47 +0000 |
---|---|---|
committer | wez@chromium.org <wez@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-23 16:39:47 +0000 |
commit | 06fad541b4e5eb84c31b885732d0385611430c3c (patch) | |
tree | fd7c93911ff43a3f2f1d20dd14ab7fdad8f8e4d8 /media | |
parent | c8c857f3368cc40cc7eba1c0719a492a0d3002db (diff) | |
download | chromium_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.cc | 7 |
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); |