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

Commit 287fce0e authored by Jayant Chowdhary's avatar Jayant Chowdhary Committed by Automerger Merge Worker
Browse files

Merge "camera2: Add non burst sizes to mandatory streams for ultra high...

Merge "camera2: Add non burst sizes to mandatory streams for ultra high resolution sensors" am: 74ab3f49 am: 65915a08

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2237375



Change-Id: Ibf9dffd58282f824e05a40443bdcb9a654d692eb
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 758bf327 65915a08
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -826,7 +826,9 @@ public abstract class CameraDevice implements AutoCloseable {
     * <p> Here, SC Map, refers to the {@link StreamConfigurationMap}, the target stream sizes must
     * be chosen from. {@code DEFAULT} refers to the default sensor pixel mode {@link
     * StreamConfigurationMap} and {@code MAX_RES} refers to the maximum resolution {@link
     * StreamConfigurationMap}. The same capture request must not mix targets from
     * StreamConfigurationMap}. For {@code MAX_RES} streams, {@code MAX} in the {@code Max size} column refers to the maximum size from
     * {@link StreamConfigurationMap#getOutputSizes} and {@link StreamConfigurationMap#getHighResolutionOutputSizes}.
     * Note: The same capture request must not mix targets from
     * {@link StreamConfigurationMap}s corresponding to different sensor pixel modes. </p>
     *
     * <p> 10-bit output capable
+26 −1
Original line number Diff line number Diff line
@@ -1723,7 +1723,17 @@ public final class MandatoryStreamCombination {
                }

                if (isUltraHighResolution) {
                    sizes.add(getMaxSize(sm.getOutputSizes(formatChosen)));
                    Size [] outputSizes = sm.getOutputSizes(formatChosen);
                    Size [] highResolutionOutputSizes =
                            sm.getHighResolutionOutputSizes(formatChosen);
                    Size maxBurstSize = getMaxSizeOrNull(outputSizes);
                    Size maxHighResolutionSize = getMaxSizeOrNull(highResolutionOutputSizes);
                    Size chosenMaxSize =
                            maxBurstSize != null ? maxBurstSize : maxHighResolutionSize;
                    if (maxBurstSize != null && maxHighResolutionSize != null) {
                        chosenMaxSize = getMaxSize(maxBurstSize, maxHighResolutionSize);
                    }
                    sizes.add(chosenMaxSize);
                } else {
                    if (formatChosen == ImageFormat.RAW_SENSOR) {
                        // RAW_SENSOR always has MAXIMUM threshold.
@@ -2125,6 +2135,21 @@ public final class MandatoryStreamCombination {
            return sz;
        }

        /**
         * Get the largest size by area.
         *
         * @param sizes an array of sizes
         *
         * @return Largest Size or null if sizes was null or had 0 elements
         */
        public static @Nullable Size getMaxSizeOrNull(Size... sizes) {
            if (sizes == null || sizes.length == 0) {
                return null;
            }

            return getMaxSize(sizes);
        }

        /**
         * Whether or not the hardware level reported by android.info.supportedHardwareLevel is
         * at least the desired one (but could be higher)