diff options
author | Ruben Brunk <rubenbrunk@google.com> | 2015-06-11 20:29:25 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-11 20:29:28 +0000 |
commit | c2b409267e1d9b99d4357d566291fcb9a2e88464 (patch) | |
tree | 45a6d51051d0571093acef8863796cd1e7a975d7 | |
parent | dba1cf3d515b382e997a5a0e50b50215e3f65f9e (diff) | |
parent | c64e80ddda5516ceabdbbe9da41ae5e7165157b4 (diff) | |
download | frameworks_base-c2b409267e1d9b99d4357d566291fcb9a2e88464.zip frameworks_base-c2b409267e1d9b99d4357d566291fcb9a2e88464.tar.gz frameworks_base-c2b409267e1d9b99d4357d566291fcb9a2e88464.tar.bz2 |
Merge "Fix intermediate preview size selection for legacy." into mnc-dev
-rw-r--r-- | core/java/android/hardware/camera2/legacy/RequestThreadManager.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/core/java/android/hardware/camera2/legacy/RequestThreadManager.java b/core/java/android/hardware/camera2/legacy/RequestThreadManager.java index 5ea1ab8..f80726f 100644 --- a/core/java/android/hardware/camera2/legacy/RequestThreadManager.java +++ b/core/java/android/hardware/camera2/legacy/RequestThreadManager.java @@ -412,6 +412,9 @@ public class RequestThreadManager { mParams.setPreviewFpsRange(bestRange[Camera.Parameters.PREVIEW_FPS_MIN_INDEX], bestRange[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]); + Size smallestSupportedJpegSize = calculatePictureSize(mCallbackOutputs, + callbackOutputSizes, mParams); + if (previewOutputSizes.size() > 0) { Size largestOutput = SizeAreaComparator.findLargestByArea(previewOutputSizes); @@ -419,6 +422,9 @@ public class RequestThreadManager { // Find largest jpeg dimension - assume to have the same aspect ratio as sensor. Size largestJpegDimen = ParameterUtils.getLargestSupportedJpegSizeByArea(mParams); + Size chosenJpegDimen = (smallestSupportedJpegSize != null) ? smallestSupportedJpegSize + : largestJpegDimen; + List<Size> supportedPreviewSizes = ParameterUtils.convertSizeList( mParams.getSupportedPreviewSizes()); @@ -430,7 +436,7 @@ public class RequestThreadManager { for (Size s : supportedPreviewSizes) { long currArea = s.getWidth() * s.getHeight(); long bestArea = bestPreviewDimen.getWidth() * bestPreviewDimen.getHeight(); - if (checkAspectRatiosMatch(largestJpegDimen, s) && (currArea < bestArea && + if (checkAspectRatiosMatch(chosenJpegDimen, s) && (currArea < bestArea && currArea >= largestOutputArea)) { bestPreviewDimen = s; } @@ -451,8 +457,6 @@ public class RequestThreadManager { } } - Size smallestSupportedJpegSize = calculatePictureSize(mCallbackOutputs, - callbackOutputSizes, mParams); if (smallestSupportedJpegSize != null) { /* * Set takePicture size to the smallest supported JPEG size large enough |