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

Commit 3ee67613 authored by Shuzhen Wang's avatar Shuzhen Wang Committed by Android (Google) Code Review
Browse files

Merge "Camera: Use focalLength in CaptureResult for CameraParameters" into tm-qpr-dev

parents ea1601d6 f3d7e730
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -59,6 +59,8 @@ FrameProcessor::FrameProcessor(wp<CameraDeviceBase> device,
        m3aState.aeState = ANDROID_CONTROL_AE_STATE_INACTIVE;
        m3aState.afState = ANDROID_CONTROL_AF_STATE_INACTIVE;
        m3aState.awbState = ANDROID_CONTROL_AWB_STATE_INACTIVE;

        mLastFocalLength = l.mParameters.params.getFloat(CameraParameters::KEY_FOCAL_LENGTH);
    }
}

@@ -92,9 +94,32 @@ bool FrameProcessor::processSingleFrame(CaptureResult &frame,
        client->notifyRequestId(mCurrentRequestId);
    }

    processLensState(frame.mMetadata, client);

    return FrameProcessorBase::processSingleFrame(frame, device);
}

void FrameProcessor::processLensState(const CameraMetadata &frame,
        const sp<Camera2Client> &client) {
    ATRACE_CALL();
    camera_metadata_ro_entry_t entry;

    entry = frame.find(ANDROID_LENS_FOCAL_LENGTH);
    if (entry.count == 0) {
        return;
    }

    if (fabs(entry.data.f[0] - mLastFocalLength) > 0.001f) {
        SharedParameters::Lock l(client->getParameters());
        l.mParameters.params.setFloat(
                CameraParameters::KEY_FOCAL_LENGTH,
                entry.data.f[0]);
        l.mParameters.paramsFlattened = l.mParameters.params.flatten();

        mLastFocalLength = entry.data.f[0];
    }
}

status_t FrameProcessor::processFaceDetect(const CameraMetadata &frame,
        const sp<Camera2Client> &client) {
    status_t res = BAD_VALUE;
+6 −0
Original line number Diff line number Diff line
@@ -57,6 +57,9 @@ class FrameProcessor : public FrameProcessorBase {
    virtual bool processSingleFrame(CaptureResult &frame,
                                    const sp<FrameProducer> &device);

    void processLensState(const CameraMetadata &frame,
            const sp<Camera2Client> &client);

    status_t processFaceDetect(const CameraMetadata &frame,
            const sp<Camera2Client> &client);

@@ -110,6 +113,9 @@ class FrameProcessor : public FrameProcessorBase {
    // Emit FaceDetection event to java if faces changed
    void callbackFaceDetection(const sp<Camera2Client>& client,
                               const camera_frame_metadata &metadata);

    // Track most recent focal length sent by the camera device
    float mLastFocalLength;
};