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

Commit 0a484a04 authored by Nobuo, Ishii X's avatar Nobuo, Ishii X Committed by Hidenari Koshimae
Browse files

Camera: Correct ae regions request for metering area

The size of ae regions may be zero by rounding error.
But it should be at least 1 if metering area size is not zero.

This problem causes CTS fail for
android.hardware.cts.CameraTest#testMeteringAreas on
the device which has the active array width less than 3556
if the preview size is 1920x1080.

Bug: 63795820
Test: ran Camera CTS
Change-Id: Ie3995e40aedba193393df8fd05d95f740a25ef3d
parent ae6088e4
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -2108,6 +2108,14 @@ status_t Parameters::updateRequest(CameraMetadata *request) const {
                normalizedXToArray(meteringAreas[j].right);
            reqMeteringAreas[i + 3] =
                normalizedYToArray(meteringAreas[j].bottom);
            // Requested size may be zero by rounding error with/without zooming.
            // The ae regions should be at least 1 if metering width/height is not zero.
            if (reqMeteringAreas[i + 0] == reqMeteringAreas[i + 2]) {
                reqMeteringAreas[i + 2]++;
            }
            if (reqMeteringAreas[i + 1] == reqMeteringAreas[i + 3]) {
                reqMeteringAreas[i + 3]++;
            }
        } else {
            reqMeteringAreas[i + 0] = 0;
            reqMeteringAreas[i + 1] = 0;