Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c64e80dd authored by Ruben Brunk's avatar Ruben Brunk
Browse files

Fix intermediate preview size selection for legacy.

Bug: 19606058
Change-Id: I4bf4c5bafdd5a50e46aa117b76d96381a3b82e5d
parent 68c40faf
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -413,6 +413,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);
@@ -420,6 +423,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());

@@ -431,7 +437,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;
                }
@@ -452,8 +458,6 @@ public class RequestThreadManager {
            }
        }

        Size smallestSupportedJpegSize = calculatePictureSize(mCallbackOutputs,
                callbackOutputSizes, mParams);
        if (smallestSupportedJpegSize != null) {
            /*
             * Set takePicture size to the smallest supported JPEG size large enough