diff options
author | Wu-cheng Li <wuchengli@google.com> | 2010-10-21 12:50:37 +0800 |
---|---|---|
committer | Wu-cheng Li <wuchengli@google.com> | 2010-10-25 14:56:22 +0800 |
commit | b2ee05b6c453b7da24b23139489ad92bb2c79621 (patch) | |
tree | c87270874c46e1835b4c825bdd78109006856d3a /services | |
parent | 12ac08f2e1ffb74fd4efdc726066db15e6d3d50d (diff) | |
download | frameworks_av-b2ee05b6c453b7da24b23139489ad92bb2c79621.zip frameworks_av-b2ee05b6c453b7da24b23139489ad92bb2c79621.tar.gz frameworks_av-b2ee05b6c453b7da24b23139489ad92bb2c79621.tar.bz2 |
Remove the FLIP_H/ROT_90 workaround from CameraService.do not merge
Now overlay does flip before rotation.
bug:3114236
Change-Id: I1780e56154566435a0ceeb2f101de7ed0a0613cb
Diffstat (limited to 'services')
-rw-r--r-- | services/camera/libcameraservice/CameraService.cpp | 14 | ||||
-rw-r--r-- | services/camera/libcameraservice/CameraService.h | 2 |
2 files changed, 5 insertions, 11 deletions
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp index 121819a..a64ddcf 100644 --- a/services/camera/libcameraservice/CameraService.cpp +++ b/services/camera/libcameraservice/CameraService.cpp @@ -153,7 +153,7 @@ sp<ICamera> CameraService::connect( CameraInfo info; HAL_getCameraInfo(cameraId, &info); client = new Client(this, cameraClient, hardware, cameraId, info.facing, - info.orientation, callingPid); + callingPid); mClient[cameraId] = client; LOG1("CameraService::connect X"); return client; @@ -295,7 +295,7 @@ void CameraService::playSound(sound_kind kind) { CameraService::Client::Client(const sp<CameraService>& cameraService, const sp<ICameraClient>& cameraClient, const sp<CameraHardwareInterface>& hardware, - int cameraId, int cameraFacing, int cameraOrientation, int clientPid) { + int cameraId, int cameraFacing, int clientPid) { int callingPid = getCallingPid(); LOG1("Client::Client E (pid %d)", callingPid); @@ -304,7 +304,6 @@ CameraService::Client::Client(const sp<CameraService>& cameraService, mHardware = hardware; mCameraId = cameraId; mCameraFacing = cameraFacing; - mCameraOrientation = cameraOrientation; mClientPid = clientPid; mUseOverlay = mHardware->useOverlay(); mMsgEnabled = 0; @@ -1203,18 +1202,15 @@ int CameraService::Client::getOrientation(int degrees, bool mirror) { else if (degrees == 90) return HAL_TRANSFORM_ROT_90; else if (degrees == 180) return HAL_TRANSFORM_ROT_180; else if (degrees == 270) return HAL_TRANSFORM_ROT_270; - } else { // mirror (horizontal flip) - // Now overlay does ROT_90 before FLIP_V or FLIP_H. It should be FLIP_V - // or FLIP_H first. - // TODO: change this after overlay is fixed. + } else { // Do mirror (horizontal flip) if (degrees == 0) { // FLIP_H and ROT_0 return HAL_TRANSFORM_FLIP_H; } else if (degrees == 90) { // FLIP_H and ROT_90 - return HAL_TRANSFORM_ROT_90 | HAL_TRANSFORM_FLIP_V; + return HAL_TRANSFORM_FLIP_H | HAL_TRANSFORM_ROT_90; } else if (degrees == 180) { // FLIP_H and ROT_180 return HAL_TRANSFORM_FLIP_V; } else if (degrees == 270) { // FLIP_H and ROT_270 - return HAL_TRANSFORM_ROT_90 | HAL_TRANSFORM_FLIP_H; + return HAL_TRANSFORM_FLIP_V | HAL_TRANSFORM_ROT_90; } } LOGE("Invalid setDisplayOrientation degrees=%d", degrees); diff --git a/services/camera/libcameraservice/CameraService.h b/services/camera/libcameraservice/CameraService.h index 0dec2ab..f09773d 100644 --- a/services/camera/libcameraservice/CameraService.h +++ b/services/camera/libcameraservice/CameraService.h @@ -109,7 +109,6 @@ private: const sp<CameraHardwareInterface>& hardware, int cameraId, int cameraFacing, - int mCameraOrientation, int clientPid); ~Client(); @@ -162,7 +161,6 @@ private: sp<ICameraClient> mCameraClient; int mCameraId; // immutable after constructor int mCameraFacing; // immutable after constructor - int mCameraOrientation; // immutable after constructor pid_t mClientPid; sp<CameraHardwareInterface> mHardware; // cleared after disconnect() bool mUseOverlay; // immutable after constructor |