summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRuben Brunk <rubenbrunk@google.com>2015-06-11 20:29:25 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-11 20:29:28 +0000
commitc2b409267e1d9b99d4357d566291fcb9a2e88464 (patch)
tree45a6d51051d0571093acef8863796cd1e7a975d7
parentdba1cf3d515b382e997a5a0e50b50215e3f65f9e (diff)
parentc64e80ddda5516ceabdbbe9da41ae5e7165157b4 (diff)
downloadframeworks_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.java10
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