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

Commit 005d6fa4 authored by Rucha Katakwar's avatar Rucha Katakwar Committed by Android (Google) Code Review
Browse files

Merge "Camera: Fix up flash strength level metadata tag" into main

parents bdc9f69c 47c2e7ca
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -159,6 +159,23 @@ status_t fixupAutoframingTags(CameraMetadata& resultMetadata) {
    return res;
}

status_t fixupManualFlashStrengthControlTags(CameraMetadata& resultMetadata) {
    status_t res = OK;
    camera_metadata_entry strengthLevelEntry =
            resultMetadata.find(ANDROID_FLASH_STRENGTH_LEVEL);
    if (strengthLevelEntry.count == 0) {
        const int32_t defaultStrengthLevelEntry = ANDROID_FLASH_STRENGTH_LEVEL;
        res = resultMetadata.update(ANDROID_FLASH_STRENGTH_LEVEL, &defaultStrengthLevelEntry, 1);
        if (res != OK) {
            ALOGE("%s: Failed to update ANDROID_FLASH_STRENGTH_LEVEL: %s (%d)",
                  __FUNCTION__, strerror(-res), res);
            return res;
        }
    }

    return res;
}

void correctMeteringRegions(camera_metadata_t *meta) {
    if (meta == nullptr) return;

@@ -385,6 +402,22 @@ void sendCaptureResult(
        }
    }

    // Fix up manual flash strength control metadata
    res = fixupManualFlashStrengthControlTags(captureResult.mMetadata);
    if (res != OK) {
        SET_ERR("Failed to set flash strength level defaults in result metadata: %s (%d)",
                strerror(-res), res);
        return;
    }
    for (auto& physicalMetadata : captureResult.mPhysicalMetadatas) {
        res = fixupManualFlashStrengthControlTags(physicalMetadata.mPhysicalCameraMetadata);
        if (res != OK) {
            SET_ERR("Failed to set flash strength level defaults in physical result"
                    " metadata: %s (%d)", strerror(-res), res);
            return;
        }
    }

    // Fix up autoframing metadata
    res = fixupAutoframingTags(captureResult.mMetadata);
    if (res != OK) {