From c4eb91e5643abedca73acbf3099a5f7fad46bcbe Mon Sep 17 00:00:00 2001 From: zhuw Date: Tue, 27 Nov 2018 14:01:03 +0800 Subject: fix unknow camera id error when getcamerainfo in APP use camera2 API instead of camera1 API Change-Id: Ie1d6311b8e8ee3c76cbb322c8809690fdf80dd79 CRs-Fixed:2356334 --- src/com/android/camera/CaptureModule.java | 3 ++- src/com/android/camera/util/CameraUtil.java | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'src') 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); -- cgit v1.2.3