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

Commit 98a4990f authored by Jayant Chowdhary's avatar Jayant Chowdhary
Browse files

libcamera2ndk_vendor: Add missing physicalCameraSettings metadata in saved...


libcamera2ndk_vendor: Add missing physicalCameraSettings metadata in saved cached CaptureRequest metadata.

Bug: 131925326

Test: AImageReaderVendorTest; test using vendor process using
      libcamera2ndk_vendor

Change-Id: Ie86ec7f070e985121cdc89367bb0d4b227b41985
Signed-off-by: default avatarJayant Chowdhary <jchowdhary@google.com>
parent b61a9d4c
Loading
Loading
Loading
Loading
+19 −7
Original line number Diff line number Diff line
@@ -259,15 +259,27 @@ camera_status_t CameraDevice::isSessionConfigurationSupported(
    }
}

void CameraDevice::addRequestSettingsMetadata(ACaptureRequest *aCaptureRequest,
        sp<CaptureRequest> &req) {
    CameraMetadata metadataCopy = aCaptureRequest->settings->getInternalData();
static void addMetadataToPhysicalCameraSettings(const CameraMetadata *metadata,
        const std::string &cameraId, PhysicalCameraSettings *physicalCameraSettings) {
    CameraMetadata metadataCopy = *metadata;
    camera_metadata_t *camera_metadata = metadataCopy.release();
    HCameraMetadata hCameraMetadata;
    utils::convertToHidl(camera_metadata, &hCameraMetadata, true);
    req->mPhysicalCameraSettings.resize(1);
    req->mPhysicalCameraSettings[0].settings.metadata(std::move(hCameraMetadata));
    req->mPhysicalCameraSettings[0].id = getId();
    utils::convertToHidl(camera_metadata, &hCameraMetadata, /*shouldOwn*/ true);
    physicalCameraSettings->settings.metadata(std::move(hCameraMetadata));
    physicalCameraSettings->id = cameraId;
}

void CameraDevice::addRequestSettingsMetadata(ACaptureRequest *aCaptureRequest,
        sp<CaptureRequest> &req) {
    req->mPhysicalCameraSettings.resize(1 + aCaptureRequest->physicalSettings.size());
    addMetadataToPhysicalCameraSettings(&(aCaptureRequest->settings->getInternalData()), getId(),
                    &(req->mPhysicalCameraSettings[0]));
    size_t i = 1;
    for (auto &physicalSetting : aCaptureRequest->physicalSettings) {
        addMetadataToPhysicalCameraSettings(&(physicalSetting.second->getInternalData()),
                physicalSetting.first, &(req->mPhysicalCameraSettings[i]));
        i++;
    }
}

camera_status_t CameraDevice::updateOutputConfigurationLocked(ACaptureSessionOutput *output) {