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

Commit b6dc0bf1 authored by Yin-Chia Yeh's avatar Yin-Chia Yeh
Browse files

CameraService: fix invalid access of camera metadata

static_camera_characteristics is not defined in API1.

Change-Id: I422953081b0a5581e12fc4b16052b67ca8062186
parent 9f1f00ce
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -66,6 +66,12 @@ int CameraModule::getCameraInfo(int cameraId, struct camera_info *info) {
        return -EINVAL;
    }

    // Only override static_camera_characteristics for API2 devices
    int apiVersion = mModule->common.module_api_version;
    if (apiVersion < CAMERA_MODULE_API_VERSION_2_0) {
        return mModule->get_camera_info(cameraId, info);
    }

    camera_info &wrappedInfo = mCameraInfo[cameraId];
    if (!mCameraInfoCached[cameraId]) {
        camera_info rawInfo;
@@ -75,14 +81,7 @@ int CameraModule::getCameraInfo(int cameraId, struct camera_info *info) {
        }
        CameraMetadata &m = mCameraCharacteristics[cameraId];
        m = rawInfo.static_camera_characteristics;
        int deviceVersion;
        int apiVersion = mModule->common.module_api_version;
        if (apiVersion >= CAMERA_MODULE_API_VERSION_2_0) {
            deviceVersion = rawInfo.device_version;
        } else {
            deviceVersion = CAMERA_DEVICE_API_VERSION_1_0;
        }
        deriveCameraCharacteristicsKeys(deviceVersion, m);
        deriveCameraCharacteristicsKeys(rawInfo.device_version, m);
        wrappedInfo = rawInfo;
        wrappedInfo.static_camera_characteristics = m.getAndLock();
        mCameraInfoCached[cameraId] = true;