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

Commit 22d6ae3b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Camera: Fix test pattern data propagation" into sc-dev am: 001d1473

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/15379651

Change-Id: I89ca5da43d280ac3299ee777c3ad0b9ac27c9ea4
parents d322411c 001d1473
Loading
Loading
Loading
Loading
+13 −6
Original line number Original line Diff line number Diff line
@@ -2450,9 +2450,9 @@ sp<Camera3Device::CaptureRequest> Camera3Device::createCaptureRequest(


        auto testPatternDataEntry =
        auto testPatternDataEntry =
                newRequest->mSettingsList.begin()->metadata.find(ANDROID_SENSOR_TEST_PATTERN_DATA);
                newRequest->mSettingsList.begin()->metadata.find(ANDROID_SENSOR_TEST_PATTERN_DATA);
        if (testPatternDataEntry.count > 0) {
        if (testPatternDataEntry.count >= 4) {
            memcpy(newRequest->mOriginalTestPatternData, testPatternModeEntry.data.i32,
            memcpy(newRequest->mOriginalTestPatternData, testPatternDataEntry.data.i32,
                    sizeof(newRequest->mOriginalTestPatternData));
                    sizeof(CaptureRequest::mOriginalTestPatternData));
        } else {
        } else {
            newRequest->mOriginalTestPatternData[0] = 0;
            newRequest->mOriginalTestPatternData[0] = 0;
            newRequest->mOriginalTestPatternData[1] = 0;
            newRequest->mOriginalTestPatternData[1] = 0;
@@ -5829,6 +5829,13 @@ bool Camera3Device::RequestThread::overrideTestPattern(
        const sp<CaptureRequest> &request) {
        const sp<CaptureRequest> &request) {
    ATRACE_CALL();
    ATRACE_CALL();


    {
        sp<Camera3Device> parent = mParent.promote();
        if (parent != nullptr) {
            if (!parent->supportsCameraMute()) return false;
        }
    }

    Mutex::Autolock l(mTriggerMutex);
    Mutex::Autolock l(mTriggerMutex);


    bool changed = false;
    bool changed = false;
@@ -5864,16 +5871,16 @@ bool Camera3Device::RequestThread::overrideTestPattern(
    }
    }


    auto testPatternColor = metadata.find(ANDROID_SENSOR_TEST_PATTERN_DATA);
    auto testPatternColor = metadata.find(ANDROID_SENSOR_TEST_PATTERN_DATA);
    if (testPatternColor.count > 0) {
    if (testPatternColor.count >= 4) {
        for (size_t i = 0; i < 4; i++) {
        for (size_t i = 0; i < 4; i++) {
            if (testPatternColor.data.i32[i] != (int32_t)testPatternData[i]) {
            if (testPatternColor.data.i32[i] != testPatternData[i]) {
                testPatternColor.data.i32[i] = testPatternData[i];
                testPatternColor.data.i32[i] = testPatternData[i];
                changed = true;
                changed = true;
            }
            }
        }
        }
    } else {
    } else {
        metadata.update(ANDROID_SENSOR_TEST_PATTERN_DATA,
        metadata.update(ANDROID_SENSOR_TEST_PATTERN_DATA,
                (int32_t*)testPatternData, 4);
                testPatternData, 4);
        changed = true;
        changed = true;
    }
    }