From b2ee05b6c453b7da24b23139489ad92bb2c79621 Mon Sep 17 00:00:00 2001 From: Wu-cheng Li Date: Thu, 21 Oct 2010 12:50:37 +0800 Subject: Remove the FLIP_H/ROT_90 workaround from CameraService.do not merge Now overlay does flip before rotation. bug:3114236 Change-Id: I1780e56154566435a0ceeb2f101de7ed0a0613cb --- services/camera/libcameraservice/CameraService.cpp | 14 +++++--------- services/camera/libcameraservice/CameraService.h | 2 -- 2 files changed, 5 insertions(+), 11 deletions(-) (limited to 'services') 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 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, const sp& cameraClient, const sp& 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, 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& hardware, int cameraId, int cameraFacing, - int mCameraOrientation, int clientPid); ~Client(); @@ -162,7 +161,6 @@ private: sp mCameraClient; int mCameraId; // immutable after constructor int mCameraFacing; // immutable after constructor - int mCameraOrientation; // immutable after constructor pid_t mClientPid; sp mHardware; // cleared after disconnect() bool mUseOverlay; // immutable after constructor -- cgit v1.1