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

Commit 0b1f476a authored by Ravneet Dhanjal's avatar Ravneet Dhanjal
Browse files

Camera: Refine enforcement of supported resolutions in extensions

- The extensions are currently mandated to support only
JPEG and YUV formats. When the extension returns an empty resolution
size list, the enforcement of using device-supported resolutions should
apply exclusively to the originally mandated formats to prevent
errors for optional formats such as JPEG_R and YCBCR_P010

Test: CTS Test
Bug: 329204434
Change-Id: I514487c24d070c1154aa70ba13dca504171f167b
parent 20a1d7b5
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -227,14 +227,18 @@ public final class CameraExtensionCharacteristics {
    private static List<Size> generateSupportedSizes(List<SizeList> sizesList,
                                                     Integer format,
                                                     StreamConfigurationMap streamMap) {
        ArrayList<Size> ret = getSupportedSizes(sizesList, format);

        if (format == ImageFormat.JPEG || format == ImageFormat.YUV_420_888) {
            // Per API contract it is assumed that the extension is able to support all
        // camera advertised sizes for a given format in case it doesn't return
            // camera advertised sizes for JPEG and YUV_420_888 in case it doesn't return
            // a valid non-empty size list.
        ArrayList<Size> ret = getSupportedSizes(sizesList, format);
            Size[] supportedSizes = streamMap.getOutputSizes(format);
            if ((ret.isEmpty()) && (supportedSizes != null)) {
                ret.addAll(Arrays.asList(supportedSizes));
            }
        }

        return ret;
    }