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

Commit 0c493654 authored by Jayant Chowdhary's avatar Jayant Chowdhary Committed by Android (Google) Code Review
Browse files

Merge "camera2: create session now checks surface size compatibility for shared surfaces" into main

parents b8bc01d0 2b355e0a
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -629,6 +629,9 @@ public class CameraDeviceImpl extends CameraDevice
                    "any output streams");
        }

        if (!checkSurfaceSizesCompatible(outputs)) {
            return false;
        }
        checkInputConfiguration(inputConfig);

        boolean success = false;
@@ -1870,6 +1873,22 @@ public class CameraDeviceImpl extends CameraDevice
        return false;
    }

    private boolean checkSurfaceSizesCompatible(List<OutputConfiguration> outputConfigs) {
        for (OutputConfiguration outputConfig : outputConfigs) {
            Size configuredSize = outputConfig.getConfiguredSize();
            for (Surface surface : outputConfig.getSurfaces()) {
                Size surfaceSize = SurfaceUtils.getSurfaceSize(surface);
                if (!surfaceSize.equals(configuredSize)) {
                    Log.e(TAG, "Surface size not compatible with " +
                            " outputConfiguration, configured size " + configuredSize +
                            " surface size " + surfaceSize);
                    return false;
                }
            }
        }
        return true;
    }

    private void checkInputConfiguration(InputConfiguration inputConfig) {
        if (inputConfig == null) {
            return;