diff options
-rwxr-xr-x | src/com/android/camera/CaptureModule.java | 3 | ||||
-rwxr-xr-x | src/com/android/camera/util/CameraUtil.java | 13 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index 68f0d19f3..72ee26287 100755 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -6672,7 +6672,8 @@ public class CaptureModule implements CameraModule, PhotoController, private void setDisplayOrientation() { mDisplayRotation = CameraUtil.getDisplayRotation(mActivity); - mDisplayOrientation = CameraUtil.getDisplayOrientation(mDisplayRotation, getMainCameraId()); + mDisplayOrientation = CameraUtil.getDisplayOrientationForCamera2( + mDisplayRotation, getMainCameraId()); } @Override diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java index 6b5f941e0..85f38257c 100755 --- a/src/com/android/camera/util/CameraUtil.java +++ b/src/com/android/camera/util/CameraUtil.java @@ -501,6 +501,19 @@ public class CameraUtil { return result; } + public static int getDisplayOrientationForCamera2(int degrees, int cameraId) { + CameraCharacteristics info = CameraHolder.instance().getCameraCharacteristics(cameraId); + int result; + if (info.get(CameraCharacteristics.LENS_FACING) == + CameraCharacteristics.LENS_FACING_FRONT) { + result = (info.get(CameraCharacteristics.SENSOR_ORIENTATION) + degrees) % 360; + result = (360 - result) % 360; // compensate the mirror + } else { + result = (info.get(CameraCharacteristics.SENSOR_ORIENTATION) - degrees + 360) % 360; + } + return result; + } + public static int getCameraOrientation(int cameraId) { Camera.CameraInfo info = new Camera.CameraInfo(); Camera.getCameraInfo(cameraId, info); |