From 09a6bed6c6e613edfda6cb45499c4277e4446513 Mon Sep 17 00:00:00 2001 From: Ruben Brunk Date: Sun, 21 Sep 2014 13:17:02 -0700 Subject: [PATCH 1/2] camera2: Fix JPEG orientation set by LEGACY request. Bug: 17589231 Change-Id: Id449bc7a39a6550413e6c441b6dc204e11eacda9 --- .../android/hardware/camera2/legacy/LegacyRequestMapper.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java b/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java index 7c6475dde8140..8b911075ba222 100644 --- a/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java +++ b/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java @@ -399,8 +399,9 @@ public class LegacyRequestMapper { // jpeg.orientation { - int orientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION); - params.setRotation(ParamsUtils.getOrDefault(request, JPEG_ORIENTATION, orientation)); + Integer orientation = request.get(CaptureRequest.JPEG_ORIENTATION); + params.setRotation(ParamsUtils.getOrDefault(request, JPEG_ORIENTATION, + (orientation == null) ? 0 : orientation)); } // jpeg.quality From 97b5301b093000e74f70f1db0453eec3610b4215 Mon Sep 17 00:00:00 2001 From: Ruben Brunk Date: Sun, 21 Sep 2014 15:04:30 -0700 Subject: [PATCH 2/2] camera2: Avoid setting null metering regions in LEGACY. Bug: 17587491 - If a single region with zero weight is set, revert to default metering region rather than attempting to set a null to avoid setParameters failure. Change-Id: Iccd4d53d5a2134a9d744eafb731f464b653a154d --- .../android/hardware/camera2/legacy/LegacyRequestMapper.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java b/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java index 8b911075ba222..72d2d81bff4ce 100644 --- a/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java +++ b/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java @@ -497,6 +497,11 @@ public class LegacyRequestMapper { } } + if (meteringRectangleList.size() == 0) { + Log.w(TAG, "Only received metering rectangles with weight 0."); + return Arrays.asList(ParameterUtils.CAMERA_AREA_DEFAULT); + } + // Ignore any regions beyond our maximum supported count int countMeteringAreas = Math.min(maxNumMeteringAreas, meteringRectangleList.size());