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

Commit d33fe9fc authored by Bharatt Kukreja's avatar Bharatt Kukreja
Browse files

Set default autoframing values

Set default values for autoframing in CaptureRequest, CaptureResult and
CameraCharacteristics. This will also fix
CaptureRequestTest#testAutoframing which is complaining about
autoframingAvailable key being null.

Test: atest CaptureResultTest#testCameraCaptureResultAllKeys,
CaptureRequestTest#testAutoframing
Bug: 259572724

Change-Id: I596abc0bd1e7aa57c4ef1326fe6185695894951c
parent 4605759a
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -1353,6 +1353,19 @@ status_t CameraProviderManager::ProviderInfo::DeviceInfo3::addRotateCropTags() {
    return res;
}

status_t CameraProviderManager::ProviderInfo::DeviceInfo3::addAutoframingTags() {
    status_t res = OK;
    auto& c = mCameraCharacteristics;

    auto availableAutoframingEntry = c.find(ANDROID_CONTROL_AUTOFRAMING_AVAILABLE);
    if (availableAutoframingEntry.count == 0) {
        uint8_t  defaultAutoframingEntry = ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_FALSE;
        res = c.update(ANDROID_CONTROL_AUTOFRAMING_AVAILABLE,
                &defaultAutoframingEntry, 1);
    }
    return res;
}

status_t CameraProviderManager::ProviderInfo::DeviceInfo3::addPreCorrectionActiveArraySize() {
    status_t res = OK;
    auto& c = mCameraCharacteristics;
+1 −0
Original line number Diff line number Diff line
@@ -669,6 +669,7 @@ private:
            status_t addDynamicDepthTags(bool maxResolution = false);
            status_t deriveHeicTags(bool maxResolution = false);
            status_t addRotateCropTags();
            status_t addAutoframingTags();
            status_t addPreCorrectionActiveArraySize();
            status_t addReadoutTimestampTag(bool readoutTimestampSupported = true);

+5 −0
Original line number Diff line number Diff line
@@ -521,6 +521,11 @@ AidlProviderInfo::AidlDeviceInfo3::AidlDeviceInfo3(
        ALOGE("%s: Unable to add default SCALER_ROTATE_AND_CROP tags: %s (%d)", __FUNCTION__,
                strerror(-res), res);
    }
    res = addAutoframingTags();
    if (OK != res) {
        ALOGE("%s: Unable to add default AUTOFRAMING tags: %s (%d)", __FUNCTION__,
                strerror(-res), res);
    }
    res = addPreCorrectionActiveArraySize();
    if (OK != res) {
        ALOGE("%s: Unable to add PRE_CORRECTION_ACTIVE_ARRAY_SIZE: %s (%d)", __FUNCTION__,
+5 −0
Original line number Diff line number Diff line
@@ -644,6 +644,11 @@ HidlProviderInfo::HidlDeviceInfo3::HidlDeviceInfo3(
        ALOGE("%s: Unable to add default SCALER_ROTATE_AND_CROP tags: %s (%d)", __FUNCTION__,
                strerror(-res), res);
    }
    res = addAutoframingTags();
    if (OK != res) {
        ALOGE("%s: Unable to add default AUTOFRAMING tags: %s (%d)", __FUNCTION__,
                strerror(-res), res);
    }
    res = addPreCorrectionActiveArraySize();
    if (OK != res) {
        ALOGE("%s: Unable to add PRE_CORRECTION_ACTIVE_ARRAY_SIZE: %s (%d)", __FUNCTION__,
+7 −0
Original line number Diff line number Diff line
@@ -1461,6 +1461,13 @@ status_t Camera3Device::createDefaultRequest(camera_request_template_t templateI
                    &kDefaultJpegQuality, 1);
        }

        // Fill in AUTOFRAMING if not available
        if (!mRequestTemplateCache[templateId].exists(ANDROID_CONTROL_AUTOFRAMING)) {
            static const uint8_t kDefaultAutoframingMode = ANDROID_CONTROL_AUTOFRAMING_OFF;
            mRequestTemplateCache[templateId].update(ANDROID_CONTROL_AUTOFRAMING,
                    &kDefaultAutoframingMode, 1);
        }

        *request = mRequestTemplateCache[templateId];
        mLastTemplateId = templateId;
    }
Loading