Index: content/browser/media/capture/desktop_capture_device_aura.cc |
diff --git a/content/browser/media/capture/desktop_capture_device_aura.cc b/content/browser/media/capture/desktop_capture_device_aura.cc |
index c99ad01e2bcf96074448b9fd0d77fb9a6ff42c75..b795b1cb8e39ed8476c2a74b6b3e93da72319d32 100644 |
--- a/content/browser/media/capture/desktop_capture_device_aura.cc |
+++ b/content/browser/media/capture/desktop_capture_device_aura.cc |
@@ -245,8 +245,15 @@ void DesktopVideoCaptureMachine::UpdateCaptureSize() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
if (oracle_proxy_ && desktop_window_) { |
ui::Layer* layer = desktop_window_->layer(); |
- oracle_proxy_->UpdateCaptureSize(ui::ConvertSizeToPixel( |
- layer, layer->bounds().size())); |
+ gfx::Size capture_size = |
+ ui::ConvertSizeToPixel(layer, layer->bounds().size()); |
+#if defined(OS_CHROMEOS) |
+ // Pad desktop capture size to multiples of 16 pixels to accommodate HW |
+ // encoder. TODO(hshi): remove this hack. See http://crbug.com/402151 |
+ capture_size.SetSize((capture_size.width() + 15) & ~15, |
+ (capture_size.height() + 15) & ~15); |
+#endif |
+ oracle_proxy_->UpdateCaptureSize(capture_size); |
} |
ClearCursorState(); |
} |