diff options
author | avayvod@chromium.org <avayvod@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-18 17:40:48 +0000 |
---|---|---|
committer | avayvod@chromium.org <avayvod@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-18 17:40:48 +0000 |
commit | 0c832befd5ae7ed4c9dbbbc01ca59d6c22fa2253 (patch) | |
tree | c21e1c02d40e292d138e1b9af3e352e4f9dfb414 | |
parent | c3a7bceb912a3c934724a31871a84991cdcf74c3 (diff) | |
download | chromium_src-0c832befd5ae7ed4c9dbbbc01ca59d6c22fa2253.zip chromium_src-0c832befd5ae7ed4c9dbbbc01ca59d6c22fa2253.tar.gz chromium_src-0c832befd5ae7ed4c9dbbbc01ca59d6c22fa2253.tar.bz2 |
Increased timeout for select() call.
Removed handling of capture failure to avoid image flickering.
BUG=chromiumos:7612
TEST=Login with new user, verify that camera image doesn't flicker changing from actual image to broken camera image and back in any circumstances.
Review URL: http://codereview.chromium.org/3799008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62946 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chromeos/login/camera.cc | 7 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/user_image_screen.cc | 7 |
2 files changed, 9 insertions, 5 deletions
diff --git a/chrome/browser/chromeos/login/camera.cc b/chrome/browser/chromeos/login/camera.cc index dd4c9b5..6de6075 100644 --- a/chrome/browser/chromeos/login/camera.cc +++ b/chrome/browser/chromeos/login/camera.cc @@ -22,6 +22,7 @@ #include "base/logging.h" #include "base/string_util.h" #include "base/stringprintf.h" +#include "base/time.h" #include "chrome/browser/browser_thread.h" #include "gfx/size.h" #include "skia/ext/image_operations.h" @@ -119,7 +120,7 @@ const int kFrameHeight = 480; // Number of buffers to request from the device. const int kRequestBuffersCount = 4; // Timeout for select() call in microseconds. -const long kSelectTimeout = 10000; +const long kSelectTimeout = 1 * base::Time::kMicrosecondsPerSecond; } // namespace @@ -421,8 +422,8 @@ void Camera::OnCapture() { FD_SET(device_descriptor_, &fds); timeval tv = {}; - tv.tv_sec = 0; - tv.tv_usec = kSelectTimeout; + tv.tv_sec = kSelectTimeout / base::Time::kMicrosecondsPerSecond; + tv.tv_usec = kSelectTimeout % base::Time::kMicrosecondsPerSecond; int result = select(device_descriptor_ + 1, &fds, NULL, NULL, &tv); if (result == -1) { diff --git a/chrome/browser/chromeos/login/user_image_screen.cc b/chrome/browser/chromeos/login/user_image_screen.cc index 7f1a6a4..b54c47d 100644 --- a/chrome/browser/chromeos/login/user_image_screen.cc +++ b/chrome/browser/chromeos/login/user_image_screen.cc @@ -85,8 +85,11 @@ void UserImageScreen::OnCaptureSuccess(const SkBitmap& frame) { } void UserImageScreen::OnCaptureFailure() { - if (view()) - view()->ShowCameraError(); + // If camera failed to provide a picture we don't want to show broken + // camera image since it may lead to flicker if capturing fails and then + // works again. + // TODO(avayvod): Find a better way to handle such cases. + VLOG(1) << "Capturing image failed."; } void UserImageScreen::OnOK(const SkBitmap& image) { |